{# Tablet breakpoint matches bcms-card-component.module (1024px); mobile uses theme sm (767). #}
{% import "../../css/_variables.css" as var %}
{# Match bcms-card-component: tablet 1024px, phone 767px. Do not use var.sm here — imported namespaces often omit plain {% set %} values from _variables.css. #}
{% set sm = 767 %}
{% set gutter = var.gutter|default(24)|int %}
{% set bq_tablet = 1024 %}
{% set text_lg = theme.typography.text.size.lg|default(16)|float %}
{% set ui_comp = theme.components.ui_icon_size|default(20)|float %}
{% set ui_base = (ui_comp / text_lg)|round(2) %}
{% set ui_arrow = (ui_base * 1.2)|round(2) %}
{% set splide_dark = theme.color.dark.color %}
{% set splide_white = '#ffffff' %}
{% set splide_borders = theme.color.borders.color %}
{% if theme.color.accent_color == 'gradient' %}
  {% set splide_accent_dot = theme.color.gradient_start.color %}
{% else %}
  {% set splide_accent_dot = theme.color.accent.color %}
{% endif %}
{% set splide_white_borders = 'rgba(255, 255, 255, 0.2)' %}
{% set splide_rtl = theme.miscellaneous.rtl_ready %}

/* BCMS Quote — standalone styles (quote + compact-card + grid + theme tokens) */

.module--bcms-quote .bcms-quote {
  --brand-bg: transparent;
  --brand-surface: #ffffff;
  --brand-border: #e5e7eb;
  --brand-text: #181818;
  --brand-muted: #6b7280;
  --brand-accent: #2563eb;
  --brand-accent-hover: #1d4ed8;
  --brand-secondary: #004b8d;
  --bc-quote-accent-shade: 10%;
  /* Optional tint mix for accent-tinted surfaces */
  --brand-accent-tint: color-mix(in srgb, var(--brand-accent) var(--bc-quote-accent-shade), #ffffff);
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.module--bcms-quote .bcms-quote,
.module--bcms-quote .bcms-quote * {
  box-sizing: border-box;
}

.module--bcms-quote .bcms-quote[data-bc-brand="academy"] {
  --brand-bg: #f5f5f5;
  --brand-surface: #ffffff;
  --brand-border: #e6e6e6;
  --brand-text: #333333;
  --brand-muted: #6b7785;
  --brand-accent: #cc0000;
  --brand-accent-hover: #a30000;
  --brand-secondary: #004b8d;
}

.module--bcms-quote .bcms-quote[data-bc-brand="automation"] {
  --brand-bg: #f0f6f7;
  --brand-surface: #ffffff;
  --brand-border: #dce7ea;
  --brand-text: #2a3a3f;
  --brand-muted: #5f6f74;
  --brand-accent: #1f6d82;
  --brand-accent-hover: #185b6c;
  --brand-secondary: #cc0000;
}

.module--bcms-quote .bcms-quote[data-bc-brand="valueops"] {
  --brand-bg: #fafcfd;
  --brand-surface: #ffffff;
  --brand-border: #c5e8f2;
  --brand-text: #1a1a1a;
  --brand-muted: #4a5568;
  /* Value Ops microsite primary / interactive blues */
  --brand-accent: #005c8a;
  --brand-accent-hover: #0097c7;
  --brand-secondary: #61a60e;
}

.module--bcms-quote .bcms-quote[data-bc-brand="network_observability"] {
  --brand-bg: #eff5f7;
  --brand-surface: #ffffff;
  --brand-border: #d4e2e8;
  --brand-text: #283840;
  --brand-muted: #5a6870;
  --brand-accent: #0f5b78;
  --brand-accent-hover: #0c4e68;
  --brand-secondary: #cc0000;
}

.module--bcms-quote .bcms-quote.bcms-quote--dark {
  --brand-bg: #0f1419;
  --brand-surface: #1f2937;
  --brand-text: #f3f4f6;
  --brand-muted: #9ca3af;
  --brand-border: #374151;
  --brand-accent-tint: color-mix(in srgb, var(--brand-accent) 25%, var(--brand-surface));
}

/* No data-bc-brand: match Value Ops microsite so pages stay on-brand if preset was never saved */
.module--bcms-quote .bcms-quote:not([data-bc-brand]) {
  --brand-accent: #005c8a;
  --brand-accent-hover: #0097c7;
}

/* Theme wrapper: one inner box per module; numeric Wrapper → Max width is inlined on this element only (max-width + width:100%), not on cards. */
.module--bcms-quote > .module__inner {
  min-width: 0;
  max-width: 100%;
  width: 100%;
}

/* ── Multi-card grid: mirrors bcms-card-component — parent .bcms-quote__grid--s* + .bcms-quote__col.md-s* ── */
/* Scope .bcms-quote (always on module root inner) so grid rules survive without relying on .module--bcms-quote. */
.bcms-quote .bcms-quote__grid {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--bq-gutter, 24px);
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.bcms-quote .bcms-quote__grid.justify-start {
  justify-content: flex-start;
}

.bcms-quote .bcms-quote__grid.justify-center {
  justify-content: center;
}

.bcms-quote .bcms-quote__grid.justify-end {
  justify-content: flex-end;
}

.bcms-quote .bcms-quote__grid--s12:not(.bcms-quote__slick-slider) .bcms-quote__col {
  flex: 0 0 100%;
  max-width: 100%;
}

.bcms-quote .bcms-quote__grid--s6:not(.bcms-quote__slick-slider) .bcms-quote__col {
  flex: 0 0 calc(50% - var(--bq-gutter, 24px) / 2);
  max-width: calc(50% - var(--bq-gutter, 24px) / 2);
}

.bcms-quote .bcms-quote__grid--s4:not(.bcms-quote__slick-slider) .bcms-quote__col {
  flex: 0 0 calc(33.333% - var(--bq-gutter, 24px) * 2 / 3);
  max-width: calc(33.333% - var(--bq-gutter, 24px) * 2 / 3);
}

.bcms-quote .bcms-quote__col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  min-height: 0;
  height: auto;
  box-sizing: border-box;
  float: none;
}

.bcms-quote .bcms-quote__col > .quote {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  min-height: 100%;
}

/* Tablet: chain .grid--s* + .col.md-s* so rules beat base column widths — skip horizontal scroll strip grids. */
@media (max-width: 1024px) {
  .bcms-quote .bcms-quote__grid.bcms-quote__grid--s12:not(.bcms-quote__grid--strip) .bcms-quote__col.md-s12,
  .bcms-quote .bcms-quote__grid.bcms-quote__grid--s6:not(.bcms-quote__grid--strip) .bcms-quote__col.md-s12,
  .bcms-quote .bcms-quote__grid.bcms-quote__grid--s4:not(.bcms-quote__grid--strip) .bcms-quote__col.md-s12 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100%;
  }

  .bcms-quote .bcms-quote__grid.bcms-quote__grid--s12:not(.bcms-quote__grid--strip) .bcms-quote__col.md-s6,
  .bcms-quote .bcms-quote__grid.bcms-quote__grid--s6:not(.bcms-quote__grid--strip) .bcms-quote__col.md-s6,
  .bcms-quote .bcms-quote__grid.bcms-quote__grid--s4:not(.bcms-quote__grid--strip) .bcms-quote__col.md-s6 {
    flex: 0 0 calc(50% - var(--bq-gutter, 24px) / 2) !important;
    max-width: calc(50% - var(--bq-gutter, 24px) / 2) !important;
    width: auto;
  }
}

@media (max-width: 767px) {
  .bcms-quote .bcms-quote__grid:not(.bcms-quote__grid--strip) > .bcms-quote__col,
  .bcms-quote .bcms-quote__grid:not(.bcms-quote__grid--strip) > .bcms-quote__col.md-s6,
  .bcms-quote .bcms-quote__grid:not(.bcms-quote__grid--strip) > .bcms-quote__col.md-s12 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100%;
  }
}

/* ── Horizontal scroll strip + side arrows (Settings → Horizontal scroll) ── */
.bcms-quote .bcms-quote__scroll-shell {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0.75rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.bcms-quote .bcms-quote__scroll-viewport {
  flex: 1 1 auto;
  min-width: 0;
  container-name: bq-quote-strip;
  container-type: inline-size;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  /* Hide horizontal scrollbar — arrows / swipe / trackpad still scroll (see focus ring for keyboard). */
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  outline: none;
}

.bcms-quote .bcms-quote__scroll-viewport::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

@media (prefers-reduced-motion: reduce) {
  .bcms-quote .bcms-quote__scroll-viewport {
    scroll-behavior: auto;
    scroll-snap-type: none;
  }
}

.bcms-quote .bcms-quote__scroll-viewport:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand-accent, #2563eb) 55%, transparent);
  border-radius: 6px;
}

/* Loop ON: Slick infinite carousel (ValueOps Product-Cards pattern) */
.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__scroll-viewport {
  overflow: hidden;
  scroll-snap-type: none;
  scroll-behavior: auto;
}

.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider {
  position: relative;
  width: 100%;
  margin: 0;
  gap: 0;
}

/* Slick owns layout — grid column % widths break infinite loop + slidesToShow */
.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider.slick-initialized {
  display: block;
}

.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .bcms-quote__col {
  flex: none;
  max-width: none;
  width: auto;
}

.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-list {
  overflow: hidden;
}

.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-track {
  display: flex;
  align-items: stretch;
}

.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-slide {
  margin: 0 calc(var(--bq-gutter, 24px) * 0.5);
  height: auto;
  box-sizing: border-box;
}

.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-slide > div,
.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-slide.bcms-quote__col {
  height: 100%;
}

.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-slide .quote {
  width: 100%;
  min-width: 0;
}

/* Hide duplicate arrows if Slick injects any inside the track (custom prevArrow/nextArrow are outside) */
.bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider > .slick-arrow {
  display: none !important;
}

/* Native scroll strip only (loop off or Slick unavailable) */
.bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip {
  flex-wrap: nowrap;
  align-content: flex-start;
  justify-content: flex-start;
  width: max-content;
  max-width: none;
  min-width: 100%;
}

.bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip .bcms-quote__col {
  --bq-sv: var(--bq-scroll-visible-lg, 1);
  scroll-snap-align: start;
  scroll-margin-inline: calc(var(--bq-gutter, 24px) * 0.35);
}

@supports (width: 1cqi) {
  .bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip .bcms-quote__col {
    flex: 0 0 calc((100cqi - (var(--bq-sv, 1) - 1) * var(--bq-gutter, 24px)) / var(--bq-sv, 1));
    max-width: calc((100cqi - (var(--bq-sv, 1) - 1) * var(--bq-gutter, 24px)) / var(--bq-sv, 1));
    min-width: 0;
    width: auto;
  }

  @media (max-width: 1024px) {
    .bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip .bcms-quote__col {
      --bq-sv: var(--bq-scroll-visible-md, var(--bq-scroll-visible-lg, 1));
    }
  }

  @media (max-width: 767px) {
    .bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip .bcms-quote__col {
      --bq-sv: 1;
    }
  }
}

/* Fallback without container queries: approximate card breadth from viewport-ish width */
@supports not (width: 1cqi) {
  .bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip .bcms-quote__col {
    flex: 0 0 min(380px, 85vw);
    max-width: min(380px, 85vw);
  }
}

/* Carousel arrows — same Slick classes + visuals as ValueOps Product Cards */
.bcms-quote .bcms-quote__scroll-shell button.slick-arrow {
  flex: 0 0 auto;
  align-self: center;
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  transform: none;
  width: 41px;
  height: 41px;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 100%;
  font-size: 0;
  line-height: 0;
  color: transparent;
  outline: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center center;
  cursor: pointer;
  transition: background 0.35s ease-in-out, opacity 0.18s ease;
  z-index: 2;
}

.bcms-quote .bcms-quote__scroll-shell button.slick-arrow:before {
  display: none !important;
  content: none !important;
}

.bcms-quote .bcms-quote__scroll-shell button.slick-prev {
  background-image: url(https://enterprise-software.broadcom.com/hubfs/arrow-left-blue.png);
}

.bcms-quote .bcms-quote__scroll-shell button.slick-next {
  background-image: url(https://enterprise-software.broadcom.com/hubfs/arrow-right-blue.png);
}

.bcms-quote .bcms-quote__scroll-shell button.slick-prev:hover:not(:disabled):not(.slick-disabled) {
  background-image: url(https://enterprise-software.broadcom.com/hubfs/arrow-left-hover.png);
}

.bcms-quote .bcms-quote__scroll-shell button.slick-next:hover:not(:disabled):not(.slick-disabled) {
  background-image: url(https://enterprise-software.broadcom.com/hubfs/arrow-right-hover.png);
}

.bcms-quote .bcms-quote__scroll-shell button.slick-arrow:disabled,
.bcms-quote .bcms-quote__scroll-shell button.slick-arrow.slick-disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.bcms-quote .bcms-quote__scroll-shell button.slick-arrow[hidden] {
  display: none !important;
}

/* ── Quote icon (replaces theme .icon) ── */
.module--bcms-quote .bcms-quote__icon-disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.64rem;
  height: 3.64rem;
  border-radius: 999px;
  background: var(--brand-accent);
  color: #ffffff;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06), 0 4px 8px rgba(0, 0, 0, 0.05);
}

.module--bcms-quote .bcms-quote__icon-glyph {
  display: block;
  width: 1.82rem;
  height: 1.82rem;
  line-height: 0;
}

.module--bcms-quote .bcms-quote__icon-glyph svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
}

/* Date sits in the card’s top corner (inline-end), same top inset as card padding / quote icon band. */
.module--bcms-quote .bcms-review-card__date-corner {
  position: absolute;
  z-index: 2;
  top: 1.1rem;
  inset-inline-end: 1.35rem;
  max-width: min(11rem, calc(100% - 5.5rem));
  text-align: end;
}

.module--bcms-quote .bcms-quote .quote__icon {
  margin-bottom: 0;
}

.module--bcms-quote .bcms-quote .quote__card {
  margin-top: 0.15rem;
}

/* ── Review card (bordered; inner padding mirrors theme compact-card ~0.77rem × 1.11rem) ── */
.module--bcms-quote .bcms-quote .bcms-review-card {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  min-height: 100%;
  background: var(--brand-surface);
  color: var(--brand-text);
  border: 1px solid var(--brand-border);
  border-radius: var(--bc-card-radius, 12px);
  box-shadow: var(--bc-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.08), 0 8px 24px rgba(0, 0, 0, 0.06));
  padding: 1.1rem 1.35rem 1.05rem;
  width: 100%;
  max-width: 100%;
  text-align: inherit;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.module--bcms-quote .bcms-quote.bcms-quote--dark .bcms-review-card {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}

.module--bcms-quote .bcms-review-card__date {
  display: inline-block;
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--brand-muted);
  text-align: end;
  line-height: 1.3;
  padding: 0.25rem 0.6rem;
  border: 1px solid var(--brand-border);
  border-radius: 8px;
  background: color-mix(in srgb, var(--brand-surface) 92%, var(--brand-border));
}

.module--bcms-quote .bcms-review-card__stars-inner {
  display: inline-flex;
  gap: 2px;
  font-size: 1.05rem;
  line-height: 1;
  letter-spacing: 0.02em;
}

.module--bcms-quote .bcms-review-card__star {
  display: inline-block;
}

/* Star fill color — Settings → Star color (theme accent = --brand-accent per microsite) */
.module--bcms-quote .bcms-quote {
  --bq-rating-star-on: var(--brand-accent);
  --bq-rating-star-off: color-mix(in srgb, var(--brand-muted) 45%, transparent);
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-broadcom_primary {
  --bq-rating-star-on: #005c8a;
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-bright_blue {
  --bq-rating-star-on: #0097c7;
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-bright_green {
  --bq-rating-star-on: #61a60e;
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-gold {
  --bq-rating-star-on: #f5a623;
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-academy_red {
  --bq-rating-star-on: #cc0000;
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-automation_teal {
  --bq-rating-star-on: #1f6d82;
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-valueops_orange {
  --bq-rating-star-on: #ea580c;
}

.module--bcms-quote .bcms-quote.bcms-quote--rating-netops_teal {
  --bq-rating-star-on: #0f5b78;
}

.module--bcms-quote .bcms-review-card__star--on {
  color: var(--bq-rating-star-on, var(--brand-accent));
}

.module--bcms-quote .bcms-review-card__star--off {
  color: var(--bq-rating-star-off, color-mix(in srgb, var(--brand-muted) 45%, transparent));
}

/* ── Card row alignment: fixed grid zones (default / collapsed state) ── */
.module--bcms-quote .bcms-quote {
  --bq-lead-lines: 5;
  --bq-lead-lh: 1.2;
  --bq-zone-icon: calc(3.64rem + var(--bq-gutter, 24px) * 1.15);
  --bq-zone-rating: calc(1.05rem + 8px);
  --bq-rating-gap: 8px;
  --bq-zone-body: calc(2 * 1.55rem + 0.45rem + 1.35rem);
  --bq-zone-heading: 2.75rem;
  --bq-meta-name-lines: 2;
  --bq-meta-role-lines: 2;
  --bq-meta-name-h: calc(1rem * 1.25 * var(--bq-meta-name-lines));
  --bq-meta-role-h: calc(0.875rem * 1.4 * var(--bq-meta-role-lines));
  --bq-meta-link-gap: 4px;
  --bq-meta-link-h: calc(0.875rem * 1.35);
  --bq-meta-identity-h: calc(var(--bq-meta-name-h) + var(--bq-meta-role-h));
  --bq-meta-block-h: calc(var(--bq-meta-identity-h) + var(--bq-meta-link-gap) + var(--bq-meta-link-h));
  --bq-footer-min-h: max(3.25rem, var(--bq-meta-block-h));
}

.module--bcms-quote .bcms-quote.bcms-quote--quote-size-small {
  --bq-lead-font: clamp(0.95rem, 2.8vw, 1.05rem);
  --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
}

.module--bcms-quote .bcms-quote.bcms-quote--quote-size-normal {
  --bq-lead-font: clamp(1.05rem, 3.2vw, 1.2rem);
  --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
}

.module--bcms-quote .bcms-quote.bcms-quote--quote-size-large {
  --bq-lead-font: clamp(1.12rem, 3.6vw, 1.38rem);
  --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
}

.module--bcms-quote .bcms-quote.bcms-quote--quote-size-xlarge {
  --bq-lead-font: clamp(1.15rem, 4.5vw, 1.85rem);
  --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
}

@media (max-width: px) {
  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-xlarge {
    --bq-lead-font: clamp(1.1rem, 4vw, 1.45rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }
}

@media (max-width: px) {
  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-small {
    --bq-lead-font: clamp(0.93rem, 2.6vw, 1rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }

  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-normal {
    --bq-lead-font: clamp(1rem, 3vw, 1.12rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }

  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-large {
    --bq-lead-font: clamp(1.08rem, 3.4vw, 1.28rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }
}

@media (max-width: px) {
  .module--bcms-quote .bcms-quote {
    --bq-lead-lines: 4;
    --bq-zone-icon: calc(3.2rem + var(--bq-gutter, 24px));
    --bq-zone-heading: 2.5rem;
    --bq-zone-body: calc(2 * 1.55rem + 0.45rem + 1.35rem);
  }

  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-small {
    --bq-lead-font: clamp(0.9rem, 4.2vw, 1rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }

  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-normal {
    --bq-lead-font: clamp(0.98rem, 4.5vw, 1.1rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }

  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-large {
    --bq-lead-font: clamp(1.02rem, 4.8vw, 1.2rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }

  .module--bcms-quote .bcms-quote.bcms-quote--quote-size-xlarge {
    --bq-lead-font: clamp(1.05rem, 5vw, 1.25rem);
    --bq-zone-quote: calc(var(--bq-lead-lines) * var(--bq-lead-lh) * var(--bq-lead-font));
  }
}

.module--bcms-quote .bcms-review-card__main {
  flex: 0 0 auto;
  min-height: 0;
}

.module--bcms-quote .bcms-review-card__layout {
  display: grid;
  grid-template-rows:
    var(--bq-zone-icon)
    var(--bq-zone-quote)
    var(--bq-zone-heading)
    var(--bq-zone-rating)
    var(--bq-zone-body);
  align-items: start;
}

.module--bcms-quote .bcms-review-card__zone {
  min-width: 0;
  min-height: 0;
}

.module--bcms-quote .bcms-review-card__zone--icon {
  min-height: var(--bq-zone-icon);
}

.module--bcms-quote .bcms-review-card__zone--quote {
  min-height: var(--bq-zone-quote);
}

.module--bcms-quote .bcms-review-card__zone--rating {
  min-height: var(--bq-zone-rating);
}

.module--bcms-quote .bcms-review-card__zone--rating:not(:has(.bcms-review-card__zone-placeholder)) {
  padding-bottom: var(--bq-rating-gap, 8px);
  box-sizing: border-box;
}

.module--bcms-quote .bcms-review-card__zone--body {
  min-height: var(--bq-zone-body);
}

.module--bcms-quote .bcms-review-card__zone--heading {
  min-height: var(--bq-zone-heading);
}

/* Natural-height cards: single-column mobile + 1-up carousel (no cross-card row to align) */
@media (max-width: px) {
  .module--bcms-quote .bcms-review-card__layout {
    grid-template-rows: auto;
  }

  .module--bcms-quote .bcms-review-card__zone--icon,
  .module--bcms-quote .bcms-review-card__zone--quote,
  .module--bcms-quote .bcms-review-card__zone--rating,
  .module--bcms-quote .bcms-review-card__zone--body,
  .module--bcms-quote .bcms-review-card__zone--heading {
    min-height: 0;
  }

  .module--bcms-quote .bcms-quote .quote__quote.bcms-review-card__quote--lead {
    min-height: 0;
  }

  .module--bcms-quote .bcms-review-card__zone--quote .bcms-review-card__lead-quote {
    -webkit-line-clamp: 8;
    line-clamp: 8;
  }

  .module--bcms-quote .bcms-review-card__body-zone {
    min-height: 0;
  }

  .module--bcms-quote .bcms-review-card__body-zone:has(.bcms-review-card__body-text--placeholder),
  .module--bcms-quote .bcms-review-card__zone--body:has(.bcms-review-card__body-text--placeholder) {
    display: none;
  }

  .module--bcms-quote .bcms-review-card__zone--rating:has(.bcms-review-card__zone-placeholder) {
    display: none;
  }

  .module--bcms-quote .bcms-review-card__zone--heading:has(.bcms-review-card__heading--placeholder) {
    display: none;
  }

  .module--bcms-quote .bcms-review-card__heading-block {
    min-height: 0;
  }

  .module--bcms-quote .bcms-review-card__meta {
    min-height: 0;
  }

  .module--bcms-quote .bcms-review-card__meta-identity,
  .module--bcms-quote .bcms-review-card__name,
  .module--bcms-quote .bcms-review-card__role,
  .module--bcms-quote .bcms-review-card__link-wrap {
    min-height: 0;
  }

  .module--bcms-quote .bcms-review-card__name,
  .module--bcms-quote .bcms-review-card__role {
    -webkit-line-clamp: unset;
    line-clamp: unset;
    display: block;
  }

  .module--bcms-quote .bcms-review-card__link-wrap {
    margin-top: var(--bq-meta-link-gap, 4px);
  }

  .module--bcms-quote .bcms-review-card__footer {
    flex-wrap: wrap;
    min-height: 0;
  }

  .module--bcms-quote .bcms-review-card__tail {
    min-height: 0;
  }

  .module--bcms-quote .bcms-review-card__date-corner {
    max-width: min(9rem, calc(100% - 4.25rem));
  }

  .module--bcms-quote .bcms-review-card__rule {
    width: 35%;
    max-width: 8rem;
  }
}

@media (max-width: 991px) {
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__layout {
    grid-template-rows: auto;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--icon,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--quote,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--rating,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--body,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--heading {
    min-height: 0;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .quote__quote.bcms-review-card__quote--lead {
    min-height: 0;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--quote .bcms-review-card__lead-quote {
    -webkit-line-clamp: 8;
    line-clamp: 8;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__body-zone {
    min-height: 0;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__body-zone:has(.bcms-review-card__body-text--placeholder),
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--body:has(.bcms-review-card__body-text--placeholder) {
    display: none;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--rating:has(.bcms-review-card__zone-placeholder) {
    display: none;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__zone--heading:has(.bcms-review-card__heading--placeholder) {
    display: none;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__meta {
    min-height: 0;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__meta-identity,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__name,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__role,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__link-wrap {
    min-height: 0;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__name,
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__role {
    -webkit-line-clamp: unset;
    line-clamp: unset;
    display: block;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__link-wrap {
    margin-top: var(--bq-meta-link-gap, 4px);
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__footer {
    flex-wrap: wrap;
    min-height: 0;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__tail {
    min-height: 0;
  }
}

/* Carousel 2+ slides: restore uniform footer/meta slots (1-up rules above relax through 991px) */
@media (min-width: 992px) {
  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__meta {
    min-height: var(--bq-meta-block-h);
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__meta-identity {
    min-height: var(--bq-meta-identity-h);
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__name {
    min-height: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--bq-meta-name-lines, 2);
    line-clamp: var(--bq-meta-name-lines, 2);
    overflow: hidden;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__role {
    min-height: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--bq-meta-role-lines, 2);
    line-clamp: var(--bq-meta-role-lines, 2);
    overflow: hidden;
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__link-wrap {
    min-height: var(--bq-meta-link-h);
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__footer {
    min-height: var(--bq-footer-min-h);
  }

  .module--bcms-quote .bcms-quote__scroll-shell--slick .bcms-review-card__tail {
    min-height: calc(var(--bq-zone-rule, 2px) + 0.35rem + 1rem + var(--bq-footer-min-h));
  }
}

.module--bcms-quote .bcms-review-card__zone-placeholder {
  display: block;
  visibility: hidden;
  pointer-events: none;
}

.module--bcms-quote .bcms-review-card__tail {
  flex-shrink: 0;
  margin-top: auto;
  min-height: calc(var(--bq-zone-rule, 2px) + 0.35rem + 1rem + var(--bq-footer-min-h));
  box-sizing: border-box;
}

.module--bcms-quote .bcms-review-card__rating-row {
  margin: 0;
}

.module--bcms-quote .bcms-review-card__zone--rating .bcms-review-card__zone-placeholder {
  min-height: 1.05rem;
  padding-bottom: 0;
}

.module--bcms-quote .bcms-review-card__body-zone {
  margin: 0;
  min-height: var(--bq-zone-body);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.module--bcms-quote .bcms-review-card__body-zone:not(.is-expanded) .bcms-review-card__body-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--bq-body-lines, 2);
  line-clamp: var(--bq-body-lines, 2);
  overflow: hidden;
}

.module--bcms-quote .bcms-review-card__body-zone.is-expanded .bcms-review-card__body-text {
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  overflow: visible;
}

.module--bcms-quote .bcms-review-card__body-toggle {
  display: inline-block;
  margin: 0.45rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--brand-accent);
  cursor: pointer;
  text-align: inherit;
}

.module--bcms-quote .bcms-review-card__body-toggle:hover {
  color: var(--brand-accent-hover);
  text-decoration: underline;
}

.module--bcms-quote .bcms-review-card__body-toggle[hidden] {
  display: inline-block;
  visibility: hidden;
  pointer-events: none;
}

.module--bcms-quote .bcms-review-card__body-text--placeholder {
  min-height: calc(2 * 1.55rem);
}

.module--bcms-quote .bcms-review-card__body {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--brand-text);
  white-space: pre-line;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.module--bcms-quote .bcms-quote.quote--dark .bcms-review-card__body {
  color: #e5e7eb;
}

.module--bcms-quote .bcms-review-card__heading-block {
  margin: 0;
  min-height: 100%;
}

.module--bcms-quote .bcms-review-card__heading {
  margin: 0;
  font-size: clamp(1rem, 2.8vw, 1.125rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--brand-text);
  line-height: 1.25;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.module--bcms-quote .bcms-review-card__heading--placeholder {
  display: block;
  min-height: calc(1.125rem * 1.25);
  visibility: hidden;
  pointer-events: none;
}

.module--bcms-quote .bcms-quote .quote--dark .bcms-review-card__heading {
  color: #f3f4f6;
}

.module--bcms-quote .bcms-quote .quote--dark .bcms-review-card__date {
  color: #d1d5db;
  border-color: var(--brand-border);
  background: rgba(255, 255, 255, 0.06);
}

.module--bcms-quote .bcms-quote .quote__quote {
  margin-bottom: 0;
}

.module--bcms-quote .bcms-quote .quote__quote.bcms-review-card__quote--lead {
  margin-bottom: 0;
  min-height: 0;
}

.module--bcms-quote .bcms-review-card__zone--quote {
  font-size: var(--bq-lead-font, 1.15rem);
}

.module--bcms-quote .bcms-review-card__zone--quote .bcms-review-card__lead-quote {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--bq-lead-lines, 5);
  line-clamp: var(--bq-lead-lines, 5);
  overflow: hidden;
  min-height: calc(var(--bq-lead-lines, 5) * 1.2em);
}

.module--bcms-quote .bcms-review-card__body-zone.is-expanded {
  min-height: 0;
}

.module--bcms-quote .bcms-review-card:has(.bcms-review-card__body-zone.is-expanded) .bcms-review-card__zone--body {
  min-height: 0;
}

.module--bcms-quote .bcms-review-card:has(.bcms-review-card__body-zone.is-expanded) .bcms-review-card__layout {
  grid-template-rows:
    var(--bq-zone-icon)
    var(--bq-zone-quote)
    var(--bq-zone-heading)
    var(--bq-zone-rating)
    auto;
}

.module--bcms-quote .bcms-review-card__blockquote {
  font-style: italic;
  border: none;
  padding: 0;
  margin: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}

.module--bcms-quote .bcms-review-card__lead-quote {
  font-style: normal;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.2;
}

.module--bcms-quote .bcms-review-card__lead-quote.small-text {
  font-size: clamp(0.95rem, 2.8vw, 1.05rem);
}

.module--bcms-quote .bcms-review-card__lead-quote.normal-text {
  font-size: clamp(1.05rem, 3.2vw, 1.2rem);
}

.module--bcms-quote .bcms-review-card__lead-quote.large-text {
  font-size: clamp(1.12rem, 3.6vw, 1.38rem);
}

.module--bcms-quote .bcms-review-card__lead-quote.xlarge-text {
  font-size: clamp(1.15rem, 4.5vw, 1.85rem);
}

@media (max-width: px) {
  .module--bcms-quote .bcms-review-card__lead-quote.xlarge-text {
    font-size: clamp(1.1rem, 4vw, 1.45rem);
  }
}

@media (max-width: px) {
  .module--bcms-quote .bcms-review-card__lead-quote.xlarge-text {
    font-size: clamp(1.05rem, 5vw, 1.25rem);
  }
}

.module--bcms-quote .bcms-review-card__rule {
  width: 25%;
  max-width: 11rem;
  height: 2px;
  margin: 0.35rem 0 1rem;
  border: 0;
  border-radius: 1px;
  background: var(--brand-accent);
  opacity: 0.9;
}

.module--bcms-quote .bcms-review-card__footer {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.85rem;
  padding-top: 0.85rem;
  margin-top: 0;
  border-top: none;
  min-height: var(--bq-footer-min-h);
  box-sizing: border-box;
}

/* No avatar image: meta starts at inline-start (no 52px gap) */
.module--bcms-quote .bcms-review-card__footer--no-avatar {
  justify-content: flex-start;
  gap: 0;
}

.module--bcms-quote .bcms-review-card__footer--no-avatar .bcms-review-card__meta {
  flex: 1 1 auto;
  width: 100%;
  text-align: start;
}

.module--bcms-quote.module--text-center .bcms-review-card__footer--no-avatar,
.module--bcms-quote.module--text-right .bcms-review-card__footer--no-avatar {
  justify-content: flex-start;
  flex-direction: row;
}

.module--bcms-quote.module--text-center .bcms-review-card__footer--no-avatar .bcms-review-card__meta,
.module--bcms-quote.module--text-right .bcms-review-card__footer--no-avatar .bcms-review-card__meta {
  text-align: start;
}

@media (max-width: px) {
  .module--bcms-quote.module--md-text-center .bcms-review-card__footer--no-avatar,
  .module--bcms-quote.module--md-text-right .bcms-review-card__footer--no-avatar {
    justify-content: flex-start;
    flex-direction: row;
  }

  .module--bcms-quote.module--md-text-center .bcms-review-card__footer--no-avatar .bcms-review-card__meta,
  .module--bcms-quote.module--md-text-right .bcms-review-card__footer--no-avatar .bcms-review-card__meta {
    text-align: start;
  }
}

@media (max-width: px) {
  .module--bcms-quote.module--sm-text-center .bcms-review-card__footer--no-avatar,
  .module--bcms-quote.module--sm-text-right .bcms-review-card__footer--no-avatar {
    justify-content: flex-start;
    flex-direction: row;
  }

  .module--bcms-quote.module--sm-text-center .bcms-review-card__footer--no-avatar .bcms-review-card__meta,
  .module--bcms-quote.module--sm-text-right .bcms-review-card__footer--no-avatar .bcms-review-card__meta {
    text-align: start;
  }
}

.module--bcms-quote .bcms-review-card__avatar-slot {
  flex: 0 0 52px;
  width: 52px;
  min-height: 52px;
}

.module--bcms-quote .bcms-review-card__avatar {
  flex-shrink: 0;
}

.module--bcms-quote .bcms-review-card img {
  max-width: 100%;
  height: auto;
}

.module--bcms-quote .bcms-review-card__avatar img {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  object-fit: cover;
  display: block;
}

.module--bcms-quote .bcms-review-card__meta {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  min-height: var(--bq-meta-block-h);
}

.module--bcms-quote .bcms-review-card__meta-identity {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  justify-content: flex-start;
  gap: 0;
  min-height: var(--bq-meta-identity-h);
}

.module--bcms-quote .bcms-review-card__name {
  font-weight: 700;
  font-size: 1rem;
  color: var(--brand-text);
  margin: 0;
  min-height: 0;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--bq-meta-name-lines, 2);
  line-clamp: var(--bq-meta-name-lines, 2);
  overflow: hidden;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.module--bcms-quote .bcms-review-card__role {
  font-size: 0.875rem;
  color: var(--brand-muted);
  margin: 0;
  min-height: 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--bq-meta-role-lines, 2);
  line-clamp: var(--bq-meta-role-lines, 2);
  overflow: hidden;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.module--bcms-quote .bcms-review-card__link-wrap {
  display: block;
  flex: 0 0 auto;
  min-height: var(--bq-meta-link-h);
  margin: var(--bq-meta-link-gap, 4px) 0 0;
  padding: 0;
}

.module--bcms-quote .bcms-review-card__review-link {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  overflow: hidden;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--brand-accent) !important;
  text-decoration: none;
  margin: 0;
  line-height: 1.35;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.module--bcms-quote .bcms-review-card__review-link:hover {
  color: var(--brand-accent-hover) !important;
  text-decoration: underline;
}

.module--bcms-quote .bcms-quote.txt--dark .bcms-review-card__review-link,
.module--bcms-quote .bcms-quote.quote--dark .bcms-review-card__review-link {
  color: var(--brand-accent) !important;
}

/*
 * Card content alignment: use module "Wrapper → Text alignment" (module--text-* / module--md-text-* / module--sm-text-*).
 * Footer uses flex; accent rule uses auto margins. Review date stays at the end of the card header (see __header-date).
 */
.module--bcms-quote.module--text-left .bcms-review-card__rule { margin-left: 0; margin-right: auto; }
.module--bcms-quote.module--text-center .bcms-review-card__rule { margin-left: auto; margin-right: auto; }
.module--bcms-quote.module--text-right .bcms-review-card__rule { margin-left: auto; margin-right: 0; }

.module--bcms-quote.module--text-left .bcms-review-card__footer { justify-content: flex-start; flex-direction: row; }
.module--bcms-quote.module--text-center .bcms-review-card__footer { justify-content: center; flex-direction: row; }
.module--bcms-quote.module--text-right .bcms-review-card__footer { justify-content: flex-end; flex-direction: row-reverse; }
.module--bcms-quote.module--text-right .bcms-review-card__meta { text-align: right; }

@media (max-width: px) {
  .module--bcms-quote.module--md-text-left .bcms-review-card__rule { margin-left: 0; margin-right: auto; }
  .module--bcms-quote.module--md-text-center .bcms-review-card__rule { margin-left: auto; margin-right: auto; }
  .module--bcms-quote.module--md-text-right .bcms-review-card__rule { margin-left: auto; margin-right: 0; }

  .module--bcms-quote.module--md-text-left .bcms-review-card__footer { justify-content: flex-start; flex-direction: row; }
  .module--bcms-quote.module--md-text-center .bcms-review-card__footer { justify-content: center; flex-direction: row; }
  .module--bcms-quote.module--md-text-right .bcms-review-card__footer { justify-content: flex-end; flex-direction: row-reverse; }
  .module--bcms-quote.module--md-text-right .bcms-review-card__meta { text-align: right; }
  .module--bcms-quote.module--md-text-left .bcms-review-card__meta { text-align: left; }
  .module--bcms-quote.module--md-text-center .bcms-review-card__meta { text-align: center; }
}

@media (max-width: px) {
  .module--bcms-quote.module--sm-text-left .bcms-review-card__rule { margin-left: 0; margin-right: auto; }
  .module--bcms-quote.module--sm-text-center .bcms-review-card__rule { margin-left: auto; margin-right: auto; }
  .module--bcms-quote.module--sm-text-right .bcms-review-card__rule { margin-left: auto; margin-right: 0; }

  .module--bcms-quote.module--sm-text-left .bcms-review-card__footer { justify-content: flex-start; flex-direction: row; }
  .module--bcms-quote.module--sm-text-center .bcms-review-card__footer { justify-content: center; flex-direction: row; }
  .module--bcms-quote.module--sm-text-right .bcms-review-card__footer { justify-content: flex-end; flex-direction: row-reverse; }
  .module--bcms-quote.module--sm-text-right .bcms-review-card__meta { text-align: right; }
  .module--bcms-quote.module--sm-text-left .bcms-review-card__meta { text-align: left; }
  .module--bcms-quote.module--sm-text-center .bcms-review-card__meta { text-align: center; }
}

/* lg defaults for meta when right-aligned (md/sm blocks reset tablet/phone) */
.module--bcms-quote.module--text-right .bcms-review-card__meta { text-align: right; }
.module--bcms-quote.module--text-left .bcms-review-card__meta { text-align: left; }
.module--bcms-quote.module--text-center .bcms-review-card__meta { text-align: center; }

/* ── Quote shell — matches theme quote.module / css/components/quote.css .quote (scoped here) ── */
.module--bcms-quote .bcms-quote .quote {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  flex: 1 1 auto;
  padding-bottom: calc(var(--bq-gutter, 24px) * 2);
  padding-left: var(--bq-gutter, 24px);
  padding-right: var(--bq-gutter, 24px);
  transition: 0.2s ease-in-out;
}

.module--bcms-quote .bcms-quote .quote--vertical-center {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  height: 100%;
}

.module--bcms-quote .bcms-quote .quote--vertical-center .bcms-review-card {
  display: block;
  width: 100%;
  max-width: 100%;
  flex-shrink: 0;
}

@media (max-width: px) {
  /*
   * Mobile: theme .dnd-section adds horizontal gutter (see css/_layout.css) outside modules.
   * Break out of that inset on drag-and-drop pages; card keeps only --bq-mobile-card-pad inside.
   */
  .module--bcms-quote {
    --bq-dnd-gutter: px;
    --bq-mobile-card-pad: 12px;
    box-sizing: border-box;
    padding-inline: 0 !important;
  }

  .dnd-section .module--bcms-quote {
    width: calc(100% + (2 * var(--bq-dnd-gutter, 24px)));
    max-width: none;
    margin-inline: calc(-1 * var(--bq-dnd-gutter, 24px));
  }

  .module--bcms-quote > .module__inner {
    width: 100%;
    max-width: 100%;
    padding-inline: 0 !important;
    margin-inline: 0;
  }

  .module--bcms-quote .bcms-quote {
    --bq-gutter: 12px;
    --bq-mobile-gutter: var(--bq-mobile-card-pad, 12px);
    --bq-zone-icon: calc(3.2rem + 0.75rem);
  }

  .module--bcms-quote .bcms-quote__header {
    padding-inline: var(--bq-mobile-card-pad, 12px);
  }

  .module--bcms-quote .bcms-quote .quote {
    padding: 0;
    margin: 0;
  }

  .module--bcms-quote .bcms-quote .bcms-review-card {
    padding: 0.875rem var(--bq-mobile-card-pad, 12px) 0.85rem;
    border-radius: 0;
    border-inline: none;
  }

  .module--bcms-quote .bcms-review-card__date-corner {
    top: 0.875rem;
    inset-inline-end: var(--bq-mobile-card-pad, 12px);
  }

  .bcms-quote .bcms-quote__grid {
    gap: 12px;
  }

  /* Stacked grid: one card per row, full width */
  .bcms-quote .bcms-quote__grid > .bcms-quote__col {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  /* Native horizontal strip: full width (not 85vw peek) */
  .bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip .bcms-quote__col {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }

  @supports not (width: 1cqi) {
    .bcms-quote .bcms-quote__scroll-shell:not(.bcms-quote__scroll-shell--slick) .bcms-quote__grid--strip .bcms-quote__col {
      flex: 0 0 100%;
      max-width: 100%;
    }
  }

  /* Slick 1-up: edge-to-edge slide; arrows overlay */
  .bcms-quote .bcms-quote__scroll-shell,
  .bcms-quote .bcms-quote__scroll-shell--slick {
    position: relative;
    gap: 0;
    width: 100%;
    max-width: 100%;
  }

  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__scroll-viewport,
  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider,
  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-list,
  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-track {
    width: 100%;
    max-width: 100%;
  }

  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__scroll-viewport {
    flex: 1 1 100%;
    min-width: 0;
  }

  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-slide {
    margin: 0;
    padding: 0;
  }

  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-slide > div,
  .bcms-quote .bcms-quote__scroll-shell--slick .bcms-quote__slick-slider .slick-slide.bcms-quote__col {
    width: 100% !important;
    max-width: 100%;
  }

  .bcms-quote .bcms-quote__scroll-shell--slick button.slick-arrow {
    position: absolute;
    top: 50%;
    left: auto;
    right: auto;
    margin-top: -18px;
    z-index: 3;
    width: 36px;
    height: 36px;
    flex: none;
  }

  .bcms-quote .bcms-quote__scroll-shell--slick button.slick-prev {
    inset-inline-start: max(6px, env(safe-area-inset-left, 0px));
  }

  .bcms-quote .bcms-quote__scroll-shell--slick button.slick-next {
    inset-inline-end: max(6px, env(safe-area-inset-right, 0px));
  }

  /* Legacy Splide carousel */
  .module--bcms-quote .splide--arrows-sm.splide--arrows-outside {
    padding-left: 0;
    padding-right: 0;
  }

  .module--bcms-quote .bcms-quote .splide .quote {
    padding: 0;
    margin: 0;
  }

  .module--bcms-quote .bcms-quote .splide .bcms-review-card {
    padding: 0.875rem var(--bq-mobile-card-pad, 12px) 0.85rem;
    border-radius: 0;
    border-inline: none;
  }
}

@media (min-width: px) {
  .module--bcms-quote .bcms-quote .splide--center-mode:not(.splide--lg-2) .splide__slide:not(.is-active) .quote {
    transform: scale(0.9);
    transform-origin: center center;
  }
}

@media (max-width: px) and (min-width: px) {
  .module--bcms-quote .bcms-quote .splide--center-mode:not(.splide--md-2) .splide__slide:not(.is-active) .quote {
    transform: scale(0.9);
    transform-origin: center center;
  }
}

/*
 * Mobile: do not scale peek slides - with perPage 1 + loop, scaling non-active slides kept
 * neighbour cards visible in one row (unlike bc-card full-bleed single column). One clean
 * slide on small screens.
 */
@media (max-width: px) {
  .module--bcms-quote .bcms-quote .splide--center-mode .splide__slide .quote {
    transform: none;
  }
}

/* Typography helpers */
.module--bcms-quote .bcms-quote .important-text {
  color: var(--brand-text);
  margin: 0;
}

.module--bcms-quote .bcms-quote .quote__quote.txt--dark .important-text,
.module--bcms-quote .bcms-quote .quote--dark .bcms-review-card__blockquote {
  color: #ffffff;
}

.module--bcms-quote .bcms-quote .small-text { font-size: 0.89rem; }
.module--bcms-quote .bcms-quote .normal-text,
.module--bcms-quote .bcms-quote blockquote.normal-text { font-size: 1rem; }
.module--bcms-quote .bcms-quote .large-text { font-size: 1.125rem; }
.module--bcms-quote .bcms-quote .xlarge-text { font-size: 1.5rem; }

@media (max-width: px) {
  .module--bcms-quote .bcms-quote .xlarge-text { font-size: 1.3rem; }
}

@media (max-width: px) {
  .module--bcms-quote .bcms-quote .xlarge-text { font-size: 1.1rem; }
}

.module--bcms-quote .bcms-quote .splide .quote {
  margin-bottom: 0;
}

.module--bcms-quote .bcms-quote .splide--dots-below .splide__pagination {
  padding-top: var(--bq-gutter, 24px);
}

/* Brand preset: match dot / slider accents to microsite accent */
.module--bcms-quote .bcms-quote[data-bc-brand] .splide__pagination__page.is-active,
.module--bcms-quote .bcms-quote[data-bc-brand] .splide__pagination__page:hover {
  background: var(--brand-accent);
}

/* When a BCMS preset is active, nudge quote block to brand text */
.module--bcms-quote .bcms-quote[data-bc-brand] .quote__quote.txt--light .important-text {
  color: var(--brand-text);
}

.module--bcms-quote .bcms-quote[data-bc-brand] .quote__quote.txt--dark .important-text {
  color: #ffffff;
}

/* ── Splide (carousel) — compiled with theme tokens above ── */

.splide {
  position: relative;
  visibility: hidden;
}

/* bcms-quote: Splide hides root until mount(); if JS errors or 404s, keep reviews readable */
.module--bcms-quote .bcms-quote .splide:not([style*="visibility"]) {
  visibility: visible;
}

.splide__track {
  position: relative;
  z-index: 0;
  overflow: hidden;
}

.splide__list {
  margin: 0;
  padding: 0;
  width: -webkit-max-content;
  width: max-content;
  will-change: transform;
}

.splide.is-active .splide__list {
  display: flex;
}

.splide--fade > .splide__track > .splide__list {
  display: flex;
  align-items: stretch;
}

.splide__slide {
  position: relative;
  flex-shrink: 0;
  outline: none;
  display: flex;
  align-items: stretch;
}

.splide__slide > * {
  width: 100%;
}

.splide--draggable > .splide__track > .splide__list > .splide__slide {
  -webkit-user-select: none;
  user-select: none;
}

.splide--fade > .splide__track > .splide__list > .splide__slide {
  position: relative;
  z-index: 0;
  opacity: 0;
}

.splide--fade > .splide__track > .splide__list > .splide__slide.is-active {
  z-index: 1;
  opacity: 1;
}

.splide__slide:not(.is-visible) {
  overflow: hidden;
}

.splide--running .splide__slide {
  overflow: visible;
}

/* bcms-quote: default Splide hides overflow on non-.is-visible slides, which clips card copy/shadows before/around mount; track still clips horizontal overflow */
.module--bcms-quote .bcms-quote .splide__slide,
.module--bcms-quote .bcms-quote .splide__slide:not(.is-visible) {
  overflow: visible;
}

.splide__arrows {
  display: none;
}

@media (min-width: px) {
  .splide--arrows-lg.splide--arrows-outside {
    padding-left: calc(px + rem);
    padding-right: calc(px + rem);
  }

  .splide--arrows-lg .splide__arrows {
    display: block;
  }
}

@media (max-width: px) and (min-width: px) {
  .splide--arrows-md.splide--arrows-outside {
    padding-left: calc(px + rem);
    padding-right: calc(px + rem);
  }

  .splide--arrows-md .splide__arrows {
    display: block;
  }
}

@media (max-width: px) {
  .splide--arrows-sm.splide--arrows-outside {
    padding-left: calc(px + rem);
    padding-right: calc(px + rem);
  }

  .splide--arrows-sm .splide__arrows {
    display: block;
  }
}

.splide__arrow {
  width: rem;
  height: rem;
  margin-top: -rem;
  padding: 0;
  position: absolute;
  top: 50%;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid #005c8a;
  background: #005c8a;
  color: #ffffff;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.2s ease-in-out, box-shadow 0.18s ease;
  outline: none;
  cursor: pointer;
}

.splide--white-arrows .splide__arrow {
  border-color: ;
  background: ;
  color: #005c8a;
}

.splide--white-arrows .splide__arrow:hover {
  border-color: #61a60e;
  background: #61a60e;
  color: #ffffff;
}

.splide__arrow:hover {
  border-color: #61a60e;
  background: #61a60e;
  color: #ffffff;
  transform: scale(1.08, 1.08);
  box-shadow: 0 4px 12px rgba(97, 166, 14, 0.25);
}

.splide__arrow svg {
  fill: currentColor;
}

.splide__arrow svg path[fill='none'],
.splide__arrow svg [fill='none'] {
  fill: none;
  stroke: currentColor;
}

.splide__arrow--prev {
  left: px;
}

.splide__arrow--next {
  right: px;
}

.splide--arrows-outside .splide__arrow--prev {
  left: 0;
}

.splide--arrows-outside .splide__arrow--next {
  right: 0;
}

{% if splide_rtl %}
[dir='rtl'] .splide__arrow--prev {
  left: auto;
  right: px;
}

[dir='rtl'] .splide__arrow--next {
  right: auto;
  left: px;
}

[dir='rtl'] .splide--arrows-outside .splide__arrow--prev {
  left: auto;
  right: 0;
}

[dir='rtl'] .splide--arrows-outside .splide__arrow--next {
  right: auto;
  left: 0;
}
{% endif %}

.splide__pagination {
  display: none;
  margin: 0;
  padding: 0;
  position: absolute;
  left: 0;
  right: 0;
  bottom: px;
  list-style: none;
  font-size: 0;
  line-height: 0;
  text-align: center;
}

.splide--dots-below .splide__pagination {
  bottom: auto;
}

@media (min-width: px) {
  .splide--dots-lg .splide__pagination {
    display: block;
  }
}

@media (max-width: px) and (min-width: px) {
  .splide--dots-md .splide__pagination {
    display: block;
  }
}

@media (max-width: px) {
  .splide--dots-sm .splide__pagination {
    display: block;
  }
}

.splide--dots-below .splide__pagination {
  position: relative;
}

.splide__pagination li {
  display: inline-block;
}

.splide__pagination__page {
  display: inline-block;
  width: 10px;
  height: 10px;
  background: ;
  border-radius: 100%;
  margin: 5px;
  padding: 0;
  border: none;
  outline: none;
  cursor: pointer;
}

.splide__pagination__page.is-active {
  background: ;
}

.splide__pagination__page:hover {
  background: ;
  transition: 0.2s ease-in-out;
}

.splide--white-dots .splide__pagination__page {
  background: ;
}

.splide--white-dots .splide__pagination__page.is-active,
.splide--white-dots .splide__pagination__page:hover {
  background: ;
}

.splide--solo .splide__arrows,
.splide--solo .splide__pagination {
  display: none;
}

.splide--solo > .splide__track > .splide__list > .splide__slide {
  -webkit-user-select: auto;
  user-select: auto;
}

.splide--full-height .splide__slide {
  min-height: 100vh;
}

/* ── Section header (Settings → Section header) ── */
.module--bcms-quote .bcms-quote__header {
  width: 100%;
  max-width: 100%;
}

.module--bcms-quote .bcms-quote__header-title {
  margin: 0 0 0.5rem;
  font-weight: 700;
  color: var(--bq-header-title-color, #005c8a);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.module--bcms-quote .bcms-quote__header--align-center {
  text-align: center;
}

.module--bcms-quote .bcms-quote__header--align-left {
  text-align: left;
}

.module--bcms-quote .bcms-quote__header--align-right {
  text-align: right;
}

.module--bcms-quote .bcms-quote__header-subtitle {
  margin: 0;
  color: var(--bq-header-subtitle-color, #000000);
  font-size: 1rem;
  line-height: 1.55;
}

.module--bcms-quote .bcms-quote__header-subtitle.rte p,
.module--bcms-quote .bcms-quote__header-subtitle.rte li,
.module--bcms-quote .bcms-quote__header-subtitle.rte span {
  margin: 0;
  color: inherit;
}

.module--bcms-quote .bcms-quote__header-subtitle.rte a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.module--bcms-quote .bcms-quote.bcms-quote--dark .bcms-quote__header-subtitle {
  color: var(--bq-header-subtitle-color, rgba(255, 255, 255, 0.88));
}

/* ── Horizontal scroll: button styles use .bcms-quote__scroll-* (see strip block above). Legacy pagination rules removed. ── */
