/* ZOT Page Builder components 0.7 — layouts */

/* Space BETWEEN sections — margins only (never override component padding) */
.zot-pb {
  margin-block: clamp(2.75rem, 6vw, 4.5rem);
  margin-inline: 0;
  padding-block: 0;
}
.zot-pb:first-child {
  margin-top: 0;
}
.zot-pb:last-child {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

/* Section layout shell (ADR 056) */
.zot-layout {
  width: 100%;
}
.zot-layout__inner {
  width: 100%;
}
.zot-layout--contained {
  max-width: var(--zot-max, 1080px);
  margin-inline: auto;
}
.zot-layout--contained .zot-layout__inner,
.zot-layout--banded .zot-layout__inner {
  max-width: var(--zot-max, 1080px);
  margin-inline: auto;
  padding-inline: 24px;
}
.zot-layout--contained .zot-layout__inner {
  padding-inline: 0;
}
.zot-layout--contained {
  padding-inline: 24px;
}
.zot-layout--full .zot-layout__inner {
  max-width: none;
  padding-inline: clamp(1rem, 4vw, 1.5rem);
}
.zot-layout--banded {
  /* section itself is full width; background comes from component tones */
}
.zot-pb-intro { margin-bottom: 1.25rem; }
.zot-pb-intro h2 { margin: 0 0 0.5rem; font-family: var(--zot-font-display, Georgia, serif); }
.zot-pb-lead { color: var(--zot-muted); font-size: 1.05rem; max-width: 42rem; }
.zot-pb-eyebrow { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.75rem; color: var(--zot-accent); font-weight: 600; margin: 0 0 0.75rem; }
.zot-pb-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
.zot-pb-button {
  display: inline-block; padding: 0.75rem 1.25rem; background: var(--zot-accent); color: #111 !important;
  text-decoration: none; font-size: 0.8rem; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase;
  border-radius: 999px; border: 0; cursor: pointer;
}
.zot-pb-button-ghost { background: transparent; color: var(--zot-text) !important; border: 1px solid var(--zot-border); }
.zot-pb-bullets { margin: 1rem 0 0; padding-left: 1.1rem; color: var(--zot-muted); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* Hero conversion */
.zot-pb-hero-conversion {
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--zot-border);
}
.zot-pb-hero-conversion > .zot-layout__inner {
  display: grid;
  gap: 1.75rem;
}
@media (min-width: 900px) {
  .zot-pb-hero-conversion > .zot-layout__inner {
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
  }
}
.zot-pb-hero h1 { font-family: var(--zot-font-display, Georgia, serif); font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.1; margin: 0 0 0.75rem; }
.zot-pb-hero-media img, .zot-pb-hero-media video {
  width: 100%; display: block; border-radius: var(--zot-radius, 4px); border: 1px solid var(--zot-border);
  max-height: 420px; object-fit: cover;
}
.zot-pb-trust { list-style: none; display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; margin: 1.5rem 0 0; padding: 0; color: var(--zot-muted); font-size: 0.85rem; }
.zot-pb-trust li { display: inline-flex; align-items: center; gap: 0.4rem; }
.zot-pb-trust img { height: 22px; width: auto; opacity: 0.85; }

/* Hero split */
.zot-pb-hero-split > .zot-layout__inner {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}
@media (min-width: 900px) {
  .zot-pb-hero-split > .zot-layout__inner { grid-template-columns: 1fr 1fr; }
  .zot-pb-hero-split.is-media-left .zot-pb-hero-media { order: -1; }
}

/* CTA / banner */
.zot-pb-cta, .zot-pb-text {
  background: var(--zot-surface); border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); padding: 1.5rem 1.4rem;
}
.zot-pb-cta-banner { border-radius: var(--zot-radius, 4px); padding: 2.25rem 1.75rem; }
.zot-pb-cta-banner.tone-accent { background: var(--zot-accent); color: #111; }
.zot-pb-cta-banner.tone-accent .zot-pb-lead, .zot-pb-cta-banner.tone-accent h2 { color: #111; }
.zot-pb-cta-banner.tone-dark { background: #161311; color: #f5efe6; }
.zot-pb-cta-banner.tone-light { background: #f4f1ea; color: #222; border: 1px solid var(--zot-border); }
.zot-pb-cta-banner .zot-pb-button { background: #111; color: #fff !important; }

/* Slider */
.zot-pb-slider-viewport { position: relative; overflow: hidden; aspect-ratio: 16/9; border-radius: var(--zot-radius, 4px); border: 1px solid var(--zot-border); background: var(--zot-surface); }
.zot-pb-slide { position: absolute; inset: 0; margin: 0; opacity: 0; pointer-events: none; transition: opacity .45s ease; }
.zot-pb-slide.is-active { opacity: 1; pointer-events: auto; z-index: 1; }
.zot-pb-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zot-pb-slide figcaption { position: absolute; inset: auto 0 0 0; padding: 3rem 1.5rem 1.25rem; background: linear-gradient(transparent, rgba(0,0,0,.72)); color: #f7f4ef; }
.zot-pb-slide h3 { margin: 0 0 .4rem; font-family: var(--zot-font-display, Georgia, serif); color: #fff; }
.zot-pb-slider-controls { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .85rem; }
.zot-pb-slider-prev, .zot-pb-slider-next { width: 2.5rem; height: 2.5rem; border-radius: 999px; border: 1px solid var(--zot-border); background: var(--zot-surface); color: var(--zot-text); cursor: pointer; }
.zot-pb-slider-dots { display: flex; gap: .45rem; }
.zot-pb-slider-dots button { width: .5rem; height: .5rem; border: 0; border-radius: 999px; background: var(--zot-border); padding: 0; cursor: pointer; }
.zot-pb-slider-dots button[aria-selected="true"] { width: 1.35rem; background: var(--zot-accent); }

/* Profiles */
.zot-pb-profiles-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.1rem; }
.zot-pb-profile-card { display: flex; flex-direction: column; background: var(--zot-surface); border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); overflow: hidden; }
.zot-pb-profile-photo { aspect-ratio: 4/3; background: color-mix(in srgb, var(--zot-accent) 16%, var(--zot-surface)); }
.zot-pb-profile-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.zot-pb-profile-fallback { display: grid; place-items: center; font-size: 2.5rem; color: var(--zot-accent); font-family: var(--zot-font-display, Georgia, serif); }
.zot-pb-profile-body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.zot-pb-profile-name { margin: 0; font-family: var(--zot-font-display, Georgia, serif); font-size: 1.3rem; }
.zot-pb-profile-role { margin: 0; color: var(--zot-accent); font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 650; }
.zot-pb-profile-meta, .zot-pb-profile-bio { margin: 0; color: var(--zot-muted); font-size: .92rem; }
.zot-pb-profile-body .zot-pb-actions { margin-top: auto; }

/* Logo cloud */
.zot-pb-logo-cloud.is-grid .zot-pb-logo-track { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 1rem; align-items: center; }
.zot-pb-logo { display: grid; place-items: center; min-height: 64px; padding: .75rem; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); color: var(--zot-muted); text-decoration: none; font-size: .85rem; }
.zot-pb-logo img { max-height: 28px; max-width: 120px; object-fit: contain; filter: grayscale(1); opacity: .85; }
.zot-pb-logo-cloud.is-marquee { overflow: hidden; }
.zot-pb-logo-cloud.is-marquee .zot-pb-logo-track { display: flex; gap: 1rem; width: max-content; animation: zot-marquee 28s linear infinite; }
@keyframes zot-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Testimonials */
.zot-pb-testimonials-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.zot-pb-testimonial-card { margin: 0; padding: 1.25rem; background: var(--zot-surface); border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); }
.zot-pb-stars { color: var(--zot-accent); margin: 0 0 .5rem; letter-spacing: .1em; }
.zot-pb-quote { color: var(--zot-text); margin-bottom: 1rem; }
.zot-pb-testimonial-meta { display: flex; gap: .75rem; align-items: center; }
.zot-pb-testimonial-meta img { width: 42px; height: 42px; border-radius: 999px; object-fit: cover; }
.zot-pb-testimonial-meta cite { font-style: normal; font-weight: 650; display: block; }
.zot-pb-testimonial-meta span, .zot-pb-verified { display: block; color: var(--zot-muted); font-size: .85rem; }
.zot-pb-verified { color: var(--zot-accent) !important; font-style: normal; }

/* Metrics */
.zot-pb-metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; }
.zot-pb-metric { text-align: center; padding: 1.25rem .75rem; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); }
.zot-pb-metric-value { font-family: var(--zot-font-display, Georgia, serif); font-size: clamp(2rem, 4vw, 3rem); margin: 0; line-height: 1; }
.zot-pb-metric-label { margin: .5rem 0 0; color: var(--zot-muted); font-size: .9rem; }

/* Case studies */
.zot-pb-case { display: grid; gap: 1rem; margin: 1.25rem 0; padding: 1.25rem; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); }
@media (min-width: 800px) { .zot-pb-case { grid-template-columns: .9fr 1.1fr; align-items: start; } }
.zot-pb-case-media img { width: 100%; border-radius: var(--zot-radius, 4px); display: block; object-fit: cover; max-height: 260px; }
.zot-pb-case-dl { display: grid; gap: .85rem; margin: 1rem 0; }
.zot-pb-case-dl dt { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--zot-accent); }
.zot-pb-case-dl dd { margin: .25rem 0 0; color: var(--zot-muted); }

/* Feature grid */
.zot-pb-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
.zot-pb-feature { padding: 1.2rem; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); }
.zot-pb-feature h3 { margin: .5rem 0; font-family: var(--zot-font-display, Georgia, serif); }
.zot-pb-feature-icon { font-size: 1.5rem; margin: 0; }
.zot-pb-feature-img { width: 100%; height: 120px; object-fit: cover; border-radius: 4px; }

/* Bento */
.zot-pb-bento-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: .85rem; }
.zot-pb-bento-item { grid-column: span 3; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); overflow: hidden; background: var(--zot-surface); min-height: 160px; display: flex; flex-direction: column; }
.zot-pb-bento-item.size-sm { grid-column: span 2; }
.zot-pb-bento-item.size-lg { grid-column: span 4; min-height: 240px; }
.zot-pb-bento-item img { width: 100%; height: 120px; object-fit: cover; }
.zot-pb-bento-item.size-lg img { height: 160px; }
.zot-pb-bento-item > div { padding: 1rem; }
.zot-pb-bento-item h3 { margin: 0 0 .35rem; font-family: var(--zot-font-display, Georgia, serif); }
@media (max-width: 700px) {
  .zot-pb-bento-item, .zot-pb-bento-item.size-sm, .zot-pb-bento-item.size-lg { grid-column: span 6; }
}

/* Before / after */
.zot-pb-ba { position: relative; overflow: hidden; border-radius: var(--zot-radius, 4px); border: 1px solid var(--zot-border); aspect-ratio: 16/9; user-select: none; }
.zot-pb-ba-after, .zot-pb-ba-before { width: 100%; height: 100%; object-fit: cover; display: block; }
.zot-pb-ba-before-wrap { position: absolute; inset: 0; width: var(--pos, 50%); overflow: hidden; border-right: 2px solid #fff; }
.zot-pb-ba-range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; }
.zot-pb-ba-label { position: absolute; top: .75rem; padding: .25rem .55rem; background: rgba(0,0,0,.55); color: #fff; font-size: .75rem; border-radius: 4px; }
.zot-pb-ba-label.before { left: .75rem; }
.zot-pb-ba-label.after { right: .75rem; }

/* Process */
.zot-pb-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 800px) { .zot-pb-steps { grid-template-columns: repeat(4, 1fr); } }
.zot-pb-steps li { display: grid; gap: .75rem; padding: 1.1rem; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); }
.zot-pb-step-num { width: 2rem; height: 2rem; border-radius: 999px; display: grid; place-items: center; background: var(--zot-accent); color: #111; font-weight: 700; }
.zot-pb-steps h3 { margin: 0 0 .35rem; font-family: var(--zot-font-display, Georgia, serif); }

/* Tabs */
.zot-pb-tablist { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.zot-pb-tablist button { border: 1px solid var(--zot-border); background: var(--zot-surface); color: var(--zot-text); padding: .55rem .9rem; border-radius: 999px; cursor: pointer; }
.zot-pb-tablist button[aria-selected="true"] { background: var(--zot-accent); color: #111; border-color: transparent; }
.zot-pb-tabpanel { display: grid; gap: 1rem; padding: 1.1rem; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); }
.zot-pb-tabpanel[hidden] { display: none !important; }
@media (min-width: 800px) { .zot-pb-tabpanel { grid-template-columns: .9fr 1.1fr; align-items: center; } }
.zot-pb-tabpanel img { width: 100%; border-radius: var(--zot-radius, 4px); max-height: 280px; object-fit: cover; }

/* Pricing */
.zot-pb-pricing-toggle { display: inline-flex; gap: .35rem; padding: .25rem; border: 1px solid var(--zot-border); border-radius: 999px; margin-bottom: 1.25rem; }
.zot-pb-pricing-toggle button { border: 0; background: transparent; color: var(--zot-muted); padding: .45rem .9rem; border-radius: 999px; cursor: pointer; }
.zot-pb-pricing-toggle button[aria-pressed="true"] { background: var(--zot-accent); color: #111; }
.zot-pb-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.zot-pb-plan { padding: 1.35rem 1.2rem; border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); display: flex; flex-direction: column; gap: .65rem; }
.zot-pb-plan.is-featured { border-color: var(--zot-accent); box-shadow: 0 0 0 1px var(--zot-accent); }
.zot-pb-plan h3 { margin: 0; font-family: var(--zot-font-display, Georgia, serif); }
.zot-pb-plan-price { font-size: 2rem; margin: 0; font-family: var(--zot-font-display, Georgia, serif); }
.zot-pb-plan-price small { display: block; font-size: .85rem; color: var(--zot-muted); font-family: var(--zot-font, system-ui); }
.zot-pb-plan ul { margin: 0; padding-left: 1.1rem; color: var(--zot-muted); flex: 1; }

/* Lead form */
.zot-pb-lead { display: grid; grid-template-columns: 1fr auto; gap: .65rem; max-width: 32rem; }
.zot-pb-lead input[type="email"] {
  border: 1px solid var(--zot-border); background: var(--zot-surface); color: var(--zot-text);
  border-radius: 999px; padding: .75rem 1rem; font: inherit;
}
.zot-pb-lead input.is-invalid { border-color: #c0392b; }
.zot-pb-lead-note, .zot-pb-lead-success { grid-column: 1 / -1; margin: 0; color: var(--zot-muted); font-size: .85rem; }
.zot-pb-lead-success { color: var(--zot-accent); }

/* FAQ */
.zot-pb-faq-item { border: 1px solid var(--zot-border); border-radius: var(--zot-radius, 4px); background: var(--zot-surface); padding: 0 1rem; margin: .65rem 0; }
.zot-pb-faq-item summary { cursor: pointer; padding: 1rem 0; font-weight: 600; list-style: none; }
.zot-pb-faq-item summary::-webkit-details-marker { display: none; }
.zot-pb-faq-a { padding: 0 0 1rem; color: var(--zot-muted); }

@media (max-width: 640px) {
  .zot-pb-slider-viewport, .zot-pb-ba { aspect-ratio: 4/5; }
  .zot-pb-lead { grid-template-columns: 1fr; }
}

/* Image marquee — full-bleed, filled tracks, clean head */
.zot-pb.zot-pb-image-marquee {
  --zot-marquee-pad: max(1.25rem, calc((100vw - var(--zot-max, 1080px)) / 2 + 24px));
  position: relative;
  left: auto;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: clamp(3rem, 7vw, 5rem) !important;
  margin-bottom: clamp(3rem, 7vw, 5rem) !important;
  padding-top: clamp(2.75rem, 5vw, 3.75rem) !important;
  padding-bottom: clamp(2.25rem, 4vw, 3rem) !important;
  padding-inline: 0 !important;
  box-sizing: border-box;
  overflow: hidden;
}
.zot-pb-image-marquee.tone-dark { background: #0e0e0e; color: #f5f5f5; }
.zot-pb-image-marquee.tone-light { background: #f3f1ee; color: #1a1a1a; }
.zot-pb-image-marquee.tone-surface { background: var(--zot-surface); color: var(--zot-text); }

.zot-pb-marquee-head {
  padding-inline: var(--zot-marquee-pad);
  margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
}
.zot-pb-image-marquee .zot-pb-marquee-head h2 {
  margin: 0 0 0.5rem;
  font-family: var(--zot-font), system-ui, sans-serif !important;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem) !important;
  font-weight: 650 !important;
  font-style: normal !important;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: inherit;
}
.zot-pb-image-marquee.tone-dark .zot-pb-marquee-head h2 { color: #fff; }
.zot-pb-marquee-head .zot-pb-lead {
  margin: 0;
  max-width: 34rem;
  font-size: 0.98rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.62);
}
.zot-pb-image-marquee.tone-light .zot-pb-marquee-head .zot-pb-lead,
.zot-pb-image-marquee.tone-surface .zot-pb-marquee-head .zot-pb-lead {
  color: var(--zot-muted);
}

.zot-pb-marquee-rows { display: grid; gap: 0.75rem; }
.zot-pb-marquee-row { overflow: hidden; }
.zot-pb-marquee-track {
  display: flex;
  gap: 0.75rem;
  width: max-content;
  padding-inline: 0.75rem;
}
.zot-pb-image-marquee.motion-marquee .zot-pb-marquee-track {
  animation: zot-img-marquee var(--zot-marquee-sec, 48s) linear infinite;
}
.zot-pb-image-marquee.motion-marquee .zot-pb-marquee-row.is-right .zot-pb-marquee-track {
  animation-direction: reverse;
}
.zot-pb-image-marquee.motion-marquee:hover .zot-pb-marquee-track {
  animation-play-state: paused;
}
.zot-pb-image-marquee.motion-static .zot-pb-marquee-track {
  animation: none;
}
@keyframes zot-img-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.zot-pb-marquee-cell {
  flex: 0 0 auto;
  width: min(260px, 38vw);
  aspect-ratio: 16 / 10;
  border-radius: var(--zot-radius, 4px);
  overflow: hidden;
  display: block;
  background: #222;
}
.zot-pb-marquee-cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

html:has(.zot-pb-image-marquee) { overflow-x: clip; }

/* Feature split — 2-col image + copy */
.zot-pb-feature-split.tone-surface { background: var(--zot-surface); padding: 1.5rem; border-radius: var(--zot-radius, 4px); }
.zot-pb-fs-row {
  display: grid; gap: 1.5rem; align-items: center; margin: 1.75rem 0;
  padding-bottom: 1.75rem; border-bottom: 1px solid var(--zot-border);
}
.zot-pb-fs-row:last-child { border-bottom: 0; padding-bottom: 0; }
@media (min-width: 860px) {
  .zot-pb-fs-row { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .zot-pb-fs-row.is-flip .zot-pb-fs-media { order: 2; }
}
.zot-pb-fs-media img {
  width: 100%; display: block; border-radius: 1.5rem; aspect-ratio: 4/3; object-fit: cover;
}
.zot-pb-fs-copy h3 { margin: 0 0 .75rem; font-family: var(--zot-font-display, Georgia, serif); font-size: clamp(1.35rem, 2.5vw, 1.85rem); }
.zot-pb-fs-body { color: var(--zot-muted); }
.zot-pb-fs-copy .zot-pb-button-ghost { border-radius: 999px; border-color: var(--zot-accent); color: var(--zot-accent) !important; }

/* Quote split — visual panel + cream quote */
.zot-pb-qs-grid { display: grid; gap: 1.25rem; }
.zot-pb-qs-card {
  display: grid; border-radius: 1.5rem; overflow: hidden; min-height: 280px;
  border: 1px solid var(--zot-border); background: #f7f3eb;
}
@media (min-width: 800px) { .zot-pb-qs-card { grid-template-columns: 1fr 1.1fr; } }
.zot-pb-qs-visual {
  position: relative; background: var(--zot-qs-panel, var(--zot-accent)); min-height: 220px;
  display: grid; place-items: center;
}
.zot-pb-qs-visual img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 220px; }
.zot-pb-qs-brand {
  position: absolute; left: 1rem; bottom: 1rem; padding: .35rem .7rem;
  background: rgba(0,0,0,.55); color: #fff; font-size: .75rem; border-radius: 999px;
}
.zot-pb-quote-split.tone-dark-split .zot-pb-qs-quote { background: #f7f3eb; color: #1a1a1a; }
.zot-pb-quote-split.tone-light .zot-pb-qs-quote { background: var(--zot-surface); }
.zot-pb-qs-quote { padding: 1.75rem 1.5rem; display: flex; flex-direction: column; justify-content: center; gap: 1rem; }
.zot-pb-qs-quote blockquote { margin: 0; }
.zot-pb-qs-quote p { margin: 0; font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.45; }
.zot-pb-qs-quote cite { font-style: normal; font-weight: 650; display: block; margin-top: 1rem; }
.zot-pb-qs-quote footer span { display: block; color: var(--zot-muted); font-size: .9rem; margin-top: .2rem; }

/* Case results — tabbed 3-card carousel */
.zot-pb-cr-tablist {
  display: flex; flex-wrap: wrap; gap: 1.25rem 1.75rem; margin: 0 0 1.5rem;
  border-bottom: 1px solid var(--zot-border); padding-bottom: 0;
}
.zot-pb-cr-tablist button {
  appearance: none; background: none; border: 0; border-bottom: 3px solid transparent;
  padding: .35rem 0 .85rem; margin-bottom: -1px; cursor: pointer;
  font: inherit; font-weight: 600; color: var(--zot-muted);
}
.zot-pb-cr-tablist button[aria-selected="true"] {
  color: var(--zot-accent); border-bottom-color: var(--zot-accent);
}
.zot-pb-cr-viewport { overflow: hidden; }
.zot-pb-cr-panel[hidden] { display: none !important; }
.zot-pb-cr-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr);
  gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory;
  padding-bottom: .35rem; scrollbar-width: thin;
}
@media (min-width: 960px) {
  .zot-pb-cr-track { grid-template-columns: 1fr 1fr 1fr; grid-auto-flow: unset; grid-auto-columns: unset; overflow: visible; }
}
.zot-pb-cr-card {
  scroll-snap-align: start; border-radius: 1.5rem; min-height: 320px;
  display: flex; flex-direction: column; overflow: hidden;
}
.zot-pb-cr-summary {
  background: color-mix(in srgb, var(--zot-surface) 88%, #fff);
  border: 1px solid var(--zot-border); padding: 1.5rem 1.35rem;
}
.zot-pb-cr-summary h3 { margin: 0 0 1rem; font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.25; }
.zot-pb-cr-summary-body { color: var(--zot-muted); font-size: .95rem; line-height: 1.55; }
.zot-pb-cr-summary-body strong { color: var(--zot-text); }
.zot-pb-cr-media {
  position: relative; background: var(--zot-cr-panel, var(--zot-accent));
  align-items: center; justify-content: center;
}
.zot-pb-cr-media img {
  width: 100%; height: 100%; min-height: 320px; object-fit: cover; display: block;
}
.zot-pb-cr-cta {
  position: absolute; top: 1.25rem; left: 50%; transform: translateX(-50%);
  white-space: nowrap; z-index: 1;
  border-color: var(--zot-accent) !important; color: var(--zot-accent) !important;
  background: rgba(255,255,255,.92) !important;
}
.zot-pb-cr-quote {
  background: var(--zot-cr-quote-bg, #1f3d2c); color: #f7f4ef;
  padding: 1.75rem 1.5rem; justify-content: center;
}
.zot-pb-cr-quote blockquote { margin: 0; }
.zot-pb-cr-quote p {
  margin: 0; font-size: clamp(1.15rem, 2.2vw, 1.45rem); line-height: 1.4;
  font-weight: 500;
}
.zot-pb-cr-quote p::before { content: "“"; }
.zot-pb-cr-quote p::after { content: "”"; }
.zot-pb-cr-quote footer { margin-top: 1.25rem; }
.zot-pb-cr-quote cite { font-style: normal; font-weight: 650; display: block; color: #fff; }
.zot-pb-cr-quote footer span { display: block; opacity: .8; font-size: .9rem; margin-top: .25rem; }
.zot-pb-cr-nav { display: flex; gap: .65rem; margin-top: 1.25rem; }
.zot-pb-cr-prev, .zot-pb-cr-next {
  width: 2.75rem; height: 2.75rem; border-radius: 999px; border: 0; cursor: pointer;
  background: #2c2c2c; color: #fff; font-size: 1.35rem; line-height: 1;
  display: grid; place-items: center;
}
.zot-pb-cr-prev:hover, .zot-pb-cr-next:hover { background: #111; }

/* Parallax (opt-in via section.parallax = subtle|medium|strong) */
[data-zot-parallax] .zot-pb-hero-media,
[data-zot-parallax] .zot-pb-fs-media,
[data-zot-parallax] .zot-pb-cr-media,
[data-zot-parallax] .zot-pb-qs-visual,
[data-zot-parallax] .zot-pb-case-media,
[data-zot-parallax] .zot-pb-slider-viewport,
[data-zot-parallax] .zot-pb-tabpanel,
[data-zot-parallax] .zot-pb-bento-item,
[data-zot-parallax] .zot-pb-ba,
[data-zot-parallax] .zot-pb-marquee-row {
  overflow: hidden;
}
.zot-pb-parallax-target {
  --zot-py: 0px;
  will-change: transform;
  transform: translate3d(0, var(--zot-py), 0) scale(1.14);
  transform-origin: center center;
}
[data-zot-parallax] .zot-pb-marquee-rows.zot-pb-parallax-target {
  transform: translate3d(0, var(--zot-py), 0);
}
@media (prefers-reduced-motion: reduce) {
  .zot-pb-parallax-target {
    transform: none !important;
    will-change: auto;
  }
}


