/*
 * quality.css — MorinVibes® Quality & Safety Page v1.0
 *
 * Architecture mirrors farm.css v4.9 exactly:
 *  - Same token set (qs- prefix for page-specific vars)
 *  - Same keyframe names reused where identical behaviour needed
 *  - Same .qs-deco system: <img> elements, aria-hidden, parallax via JS
 *  - Hero: v-mark + 4 leaves fill the empty mid-column on desktop
 *    (same fix as farm-deco--vmark-hero in farm.css)
 *  - Same card-stack: .qs-card-section margin-top:-48px, border-radius:var(--r-2xl)
 *  - Same trust/process/cta (teal bgs): white-tinted decos, higher opacity
 *  - Same story/gallery/promise (light bgs): teal-tinted decos, subtle opacity
 *  - initDecoFloat() in quality.js: scroll parallax via CSS custom property
 *
 * Section z-index stack:
 *  #qs-trust      z:2
 *  #qs-certs      z:3
 *  #qs-standards  z:4
 *  #qs-gallery    z:5
 *  #qs-commitment z:6
 *  #qs-cta        z:7
 */


/* ======================================
   TOKENS
====================================== */
:root {
  --r-sm:   14px;
  --r-md:   22px;
  --r-lg:   30px;
  --r-xl:   36px;
  --r-2xl:  48px;
  --r-pill: 100px;

  --teal:        #0094af;
  --teal-vivid:  #00b4d8;
  --teal-light:  #5ec8d8;
  --teal-pale:   #daf0f6;
  --green:       #1a6545;
  --ink:         #0c2630;
  --ink-soft:    #244f5a;
  --ink-muted:   #5d8d97;
  --white:       #ffffff;
  --cream:       #f5f1eb;

  --trust-grad:   linear-gradient(135deg, #0c7e9a 0%, #0a6a82 100%);
  --process-grad: linear-gradient(148deg, #0a7888 0%, #0b6272 100%);
  --cta-grad:     linear-gradient(145deg, #0096b8 0%, #00b8d4 40%, #00c8b0 100%);

  --sh-soft:  0 4px 20px rgba(0,148,175,.09);
  --sh-card:  0 8px 36px rgba(0,148,175,.13);
  --sh-float: 0 16px 52px rgba(0,148,175,.18);
}


/* ======================================
   KEYFRAMES — identical to farm.css
====================================== */
@keyframes heroReveal {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes orbDrift {
  0%,100% { transform: translate(0,0) scale(1); }
  33%     { transform: translate(22px,-18px) scale(1.06); }
  66%     { transform: translate(-14px,12px) scale(.96); }
}
@keyframes orbDriftB {
  0%,100% { transform: translate(0,0) scale(1); }
  33%     { transform: translate(-20px,15px) scale(1.05); }
  66%     { transform: translate(16px,-10px) scale(.97); }
}
@keyframes dotBlink {
  0%,100% { opacity: 1; }
  50%     { opacity: .20; }
}
@keyframes videoGlow {
  0%,100% { box-shadow: 0 0 0 0 rgba(0,180,216,0), var(--sh-float); }
  50%     { box-shadow: 0 0 0 11px rgba(0,180,216,.09), 0 22px 60px rgba(0,148,175,.24); }
}
@keyframes shimmerPass {
  0%   { background-position: -260% center; }
  100% { background-position: 260% center; }
}
@keyframes stepReveal {
  0%   { opacity: 0; transform: translateY(28px) scale(.97); }
  68%  { opacity: 1; transform: translateY(-3px) scale(1.004); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes borderGrow {
  from { transform: scaleY(0); transform-origin: top; }
  to   { transform: scaleY(1); transform-origin: top; }
}
@keyframes parallaxFloat {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-10px); }
}
@keyframes qsRingFloat {
  0%,100% { transform: translate(-50%,-50%) scale(1); opacity: .55; }
  50%     { transform: translate(-50%,-50%) scale(1.04) translate(4px,-6px); opacity: .80; }
}
@keyframes qsChevFade {
  0%,100% { opacity: .25; transform: translateY(0); }
  50%     { opacity: 1;   transform: translateY(5px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* ======================================
   LEAF SYSTEM — 5 CSS pseudo variants
   (same as farm.css section--leaf system)
====================================== */
.section--leaf        { position: relative; overflow: hidden; }
.section--leaf > *    { position: relative; z-index: 1; }
.section--leaf-1::before,
.section--leaf-2::before,
.section--leaf-3::before,
.section--leaf-4::before,
.section--leaf-5::before {
  content: ''; position: absolute; pointer-events: none; z-index: 0;
  background-repeat: no-repeat; background-size: contain;
}
.section--leaf-1::before { top:-60px; right:-80px; width:320px; height:320px; background-image:url('/images/leaf1.svg'); opacity:.035; transform:rotate(25deg); }
.section--leaf-2::before { bottom:-40px; left:-60px; width:300px; height:300px; background-image:url('/images/leaf2.svg'); opacity:.035; transform:rotate(-15deg); }
.section--leaf-3::before { top:-50px; right:-70px; width:280px; height:280px; background-image:url('/images/leaf3.svg'); opacity:.035; transform:rotate(40deg); }
.section--leaf-4::before { bottom:60px; right:-40px; width:260px; height:260px; background-image:url('/images/leaf4.svg'); opacity:.035; transform:rotate(-20deg); }
.section--leaf-5::before { top:-30px; left:-50px; width:280px; height:280px; background-image:url('/images/leaf5.svg'); opacity:.035; transform:rotate(10deg); }


/* ======================================
   QS DECO SYSTEM
   Mirrors farm-deco system exactly.
   All: position:absolute, pointer-events:none,
   will-change:transform for parallax.
   JS: initDecoFloat() applies --deco-y translateY.
====================================== */
.qs-deco {
  position: absolute;
  pointer-events: none;
  user-select: none;
  display: block;
  z-index: 0;
  will-change: transform;
}

/* --- HERO ---
   Same principle as farm.css:
   Large v-mark centred fills the empty mid-column gap.
   Four leaves at different quadrants animate independently.
   Teal-tinted filter on light bg.
*/
.qs-deco--vmark-hero {
  width: 580px; height: 580px;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  opacity: .060;
  filter: brightness(0) saturate(100%) invert(28%) sepia(80%) saturate(400%) hue-rotate(162deg);
  animation: parallaxFloat 18s ease-in-out infinite;
}
/* leaf2: top-left, large */
.qs-deco--h1 {
  width: 255px; height: 255px;
  top: 5%; left: -60px;
  opacity: .044;
  transform: rotate(18deg);
  filter: brightness(0) saturate(100%) invert(30%) sepia(70%) saturate(400%) hue-rotate(130deg);
  animation: parallaxFloat 21s ease-in-out infinite reverse;
}
/* leaf4: lower centre between columns */
.qs-deco--h2 {
  width: 195px; height: 195px;
  bottom: 14%; left: 43%;
  opacity: .038;
  transform: rotate(-42deg);
  filter: brightness(0) saturate(100%) invert(26%) sepia(60%) saturate(500%) hue-rotate(145deg);
  animation: parallaxFloat 25s ease-in-out infinite;
}
/* leaf1: upper-right quadrant */
.qs-deco--h3 {
  width: 175px; height: 175px;
  top: 18%; right: 4%;
  opacity: .038;
  transform: rotate(54deg);
  filter: brightness(0) saturate(100%) invert(30%) sepia(80%) saturate(400%) hue-rotate(125deg);
  animation: parallaxFloat 17s ease-in-out 2s infinite;
}
/* leaf5: mid-left behind copy */
.qs-deco--h4 {
  width: 145px; height: 145px;
  top: 56%; left: 6%;
  opacity: .048;
  transform: rotate(-24deg);
  filter: brightness(0) saturate(100%) invert(28%) sepia(70%) saturate(450%) hue-rotate(135deg);
  animation: parallaxFloat 22s ease-in-out 1s infinite reverse;
}

/* --- TRUST STRIP (teal bg — white tint) --- */
.qs-deco--t1 {
  width: 230px; height: 230px;
  top: -65px; right: -45px;
  opacity: .13;
  transform: rotate(30deg);
  filter: brightness(0) invert(1);
  animation: parallaxFloat 19s ease-in-out infinite;
}
.qs-deco--t2 {
  width: 170px; height: 170px;
  bottom: -45px; left: -35px;
  opacity: .13;
  transform: rotate(-18deg);
  filter: brightness(0) invert(1);
  animation: parallaxFloat 23s ease-in-out 1.5s infinite reverse;
}

/* --- CERTIFICATIONS (pale teal bg — teal tint) --- */
.qs-deco--ce1 {
  width: 290px; height: 290px;
  bottom: -55px; right: -45px;
  opacity: .10;
  transform: rotate(-25deg);
  filter: brightness(0) saturate(100%) invert(25%) sepia(70%) saturate(500%) hue-rotate(152deg);
  animation: parallaxFloat 21s ease-in-out infinite;
}
.qs-deco--ce2 {
  width: 380px; height: 380px;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  opacity: .048;
  filter: brightness(0) saturate(100%) invert(28%) sepia(80%) saturate(400%) hue-rotate(162deg);
}
.qs-deco--ce3 {
  width: 200px; height: 200px;
  top: 4%; left: 4%;
  opacity: .09;
  transform: rotate(14deg);
  filter: brightness(0) saturate(100%) invert(26%) sepia(60%) saturate(400%) hue-rotate(142deg);
  animation: parallaxFloat 18s ease-in-out infinite reverse;
}
.qs-deco--ce4 {
  width: 155px; height: 155px;
  top: 35%; right: 6%;
  opacity: .08;
  transform: rotate(-38deg);
  filter: brightness(0) saturate(100%) invert(24%) sepia(65%) saturate(480%) hue-rotate(148deg);
  animation: parallaxFloat 25s ease-in-out 2s infinite;
}
.qs-deco--ce5 {
  width: 120px; height: 120px;
  bottom: 20%; left: 8%;
  opacity: .085;
  transform: rotate(22deg);
  filter: brightness(0) saturate(100%) invert(27%) sepia(55%) saturate(420%) hue-rotate(145deg);
  animation: parallaxFloat 20s ease-in-out 1s infinite reverse;
}

/* --- STANDARDS (teal bg — white tint) --- */
.qs-deco--st1 {
  width: 270px; height: 270px;
  top: -55px; right: -35px;
  opacity: .13;
  transform: rotate(22deg);
  filter: brightness(0) invert(1);
  animation: parallaxFloat 17s ease-in-out infinite;
}
.qs-deco--st2 {
  width: 190px; height: 190px;
  bottom: 15px; left: -45px;
  opacity: .13;
  transform: rotate(-30deg);
  filter: brightness(0) invert(1);
  animation: parallaxFloat 25s ease-in-out 1s infinite reverse;
}
.qs-deco--st3 {
  width: 380px; height: 380px;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  opacity: .055;
  filter: brightness(0) invert(1);
}

/* --- GALLERY (white bg — teal tint) --- */
.qs-deco--g1 {
  width: 260px; height: 260px;
  top: -15px; right: -30px;
  opacity: .085;
  transform: rotate(42deg);
  filter: brightness(0) saturate(100%) invert(25%) sepia(60%) saturate(400%) hue-rotate(152deg);
  animation: parallaxFloat 22s ease-in-out infinite;
}
.qs-deco--g2 {
  width: 200px; height: 200px;
  bottom: 30px; left: 1%;
  opacity: .085;
  transform: rotate(-14deg);
  filter: brightness(0) saturate(100%) invert(25%) sepia(60%) saturate(400%) hue-rotate(152deg);
  animation: parallaxFloat 16s ease-in-out 3s infinite reverse;
}
.qs-deco--g3 {
  width: 160px; height: 160px;
  top: 30%; left: 4%;
  opacity: .075;
  transform: rotate(28deg);
  filter: brightness(0) saturate(100%) invert(24%) sepia(65%) saturate(460%) hue-rotate(145deg);
  animation: parallaxFloat 20s ease-in-out 1s infinite;
}
.qs-deco--g4 {
  width: 130px; height: 130px;
  bottom: 15%; right: 6%;
  opacity: .07;
  transform: rotate(-32deg);
  filter: brightness(0) saturate(100%) invert(26%) sepia(55%) saturate(400%) hue-rotate(150deg);
  animation: parallaxFloat 18s ease-in-out 4s infinite reverse;
}

/* --- COMMITMENT (fresh teal-green bg — teal tint) --- */
.qs-deco--co1 {
  width: 280px; height: 280px;
  top: -40px; right: -20px;
  opacity: .09;
  transform: rotate(20deg);
  filter: brightness(0) saturate(100%) invert(25%) sepia(70%) saturate(480%) hue-rotate(152deg);
  animation: parallaxFloat 21s ease-in-out infinite;
}
.qs-deco--co2 {
  width: 170px; height: 170px;
  bottom: 60px; left: 2%;
  opacity: .09;
  transform: rotate(-36deg);
  filter: brightness(0) saturate(100%) invert(25%) sepia(70%) saturate(480%) hue-rotate(152deg);
  animation: parallaxFloat 18s ease-in-out 2s infinite reverse;
}
.qs-deco--co3 {
  width: 320px; height: 320px;
  top: 50%; right: 5%;
  transform: translateY(-50%);
  opacity: .048;
  filter: brightness(0) saturate(100%) invert(28%) sepia(60%) saturate(400%) hue-rotate(158deg);
}
.qs-deco--co4 {
  width: 145px; height: 145px;
  top: 15%; left: 5%;
  opacity: .08;
  transform: rotate(35deg);
  filter: brightness(0) saturate(100%) invert(24%) sepia(65%) saturate(460%) hue-rotate(148deg);
  animation: parallaxFloat 23s ease-in-out 3s infinite;
}
.qs-deco--co5 {
  width: 120px; height: 120px;
  bottom: 25%; right: 8%;
  opacity: .075;
  transform: rotate(-20deg);
  filter: brightness(0) saturate(100%) invert(26%) sepia(55%) saturate(420%) hue-rotate(145deg);
  animation: parallaxFloat 17s ease-in-out 1s infinite reverse;
}

/* --- CTA (vivid teal bg — white tint, higher opacity) --- */
.qs-deco--c1 {
  width: 210px; height: 210px;
  bottom: -35px; left: 4%;
  opacity: .12;
  transform: rotate(-22deg);
  filter: brightness(0) invert(1);
  animation: parallaxFloat 19s ease-in-out infinite;
}
.qs-deco--c2 {
  width: 165px; height: 165px;
  top: -25px; right: 7%;
  opacity: .12;
  transform: rotate(32deg);
  filter: brightness(0) invert(1);
  animation: parallaxFloat 15s ease-in-out 1s infinite reverse;
}

/* Mobile: hide largest elements that crowd narrow screens */
@media (max-width: 767px) {
  .qs-deco--vmark-hero { display: none; }
  .qs-deco--h1  { width: 165px; height: 165px; }
  .qs-deco--h2  { display: none; }
  .qs-deco--h3  { display: none; }
  .qs-deco--ce2 { display: none; }
  .qs-deco--ce4 { display: none; }
  .qs-deco--st3 { display: none; }
  .qs-deco--co3 { display: none; }
  .qs-deco--co5 { display: none; }
  .qs-hero__scroll { bottom: 1.25rem; }
}


/* ======================================
   CSS CIRCLE RINGS — hero atmosphere
   Same as farm.css farm-hero__rings
====================================== */
.qs-hero__rings {
  position: absolute; inset: 0;
  pointer-events: none; z-index: 1;
}
.qs-hero__ring {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.qs-hero__ring--1 {
  width: 560px; height: 560px;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  border: 1.5px solid rgba(0,148,175,.10);
  animation: qsRingFloat 11s ease-in-out infinite;
}
.qs-hero__ring--2 {
  width: 380px; height: 380px;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(26,101,69,.08);
  animation: qsRingFloat 15s ease-in-out 3s infinite;
}
.qs-hero__ring--3 {
  width: 220px; height: 220px;
  bottom: 15%; right: 4%;
  border: 1px solid rgba(0,180,216,.10);
  animation: orbDrift 9s ease-in-out infinite;
}
.qs-hero__ring--4 {
  width: 140px; height: 140px;
  top: 20%; left: 3%;
  border: 1px solid rgba(26,101,69,.09);
  animation: orbDriftB 13s ease-in-out 2s infinite;
}
@media (max-width: 767px) {
  .qs-hero__ring--1 { width: 320px; height: 320px; }
  .qs-hero__ring--2 { width: 200px; height: 200px; }
  .qs-hero__ring--3, .qs-hero__ring--4 { display: none; }
}

/* Scroll chevron indicator */
.qs-hero__scroll {
  position: absolute;
  bottom: 2.25rem; left: 50%;
  transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: .18rem;
  z-index: 10; pointer-events: none;
  opacity: 0; animation: heroReveal .55s ease-out 1.4s both;
}
.qs-hero__scroll-label {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .48rem; font-weight: 700;
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--teal); opacity: .85; margin-bottom: .1rem;
}
.qs-hero__scroll-chevrons { display: flex; flex-direction: column; align-items: center; }
.qs-hero__scroll-chev {
  width: 20px; height: 13px; color: var(--teal); display: block;
  animation: qsChevFade 1.5s ease-in-out infinite;
}
.qs-hero__scroll-chev--1 { animation-delay: 0s; }
.qs-hero__scroll-chev--2 { animation-delay: .2s; }
.qs-hero__scroll-chev--3 { animation-delay: .4s; }


/* ======================================
   CARD-STACK SYSTEM
   Mirrors .farm-card-section exactly
====================================== */
.qs-card-section {
  border-radius: var(--r-2xl) var(--r-2xl) 0 0;
  margin-top: -48px;
  position: relative;
  overflow: hidden;
}
#qs-certs      { z-index: 3; }
#qs-standards  { z-index: 4; }
#qs-gallery    { z-index: 5; }
#qs-commitment { z-index: 6; }
#qs-cta        { z-index: 7; }


/* ======================================
   GLOBAL HELPERS
   Mirrors farm.css global helpers exactly
====================================== */
.teal-italic { color: var(--teal-vivid); font-style: italic; }

.eyebrow {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .64rem; font-weight: 700;
  letter-spacing: .24em; text-transform: uppercase;
  display: block; margin-bottom: .8rem; color: var(--teal);
}
.eyebrow--white { color: rgba(255,255,255,.55); }

.lead {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: 1.05rem; font-weight: 300;
  line-height: 1.9; color: var(--ink-soft);
}

.pill-eyebrow {
  display: inline-flex; align-items: center; gap: .42rem;
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .64rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--teal); background: rgba(0,148,175,.08);
  border: 1px solid rgba(0,148,175,.20); border-radius: var(--r-pill);
  padding: .30rem .92rem; margin-bottom: 1rem;
}
.pill-eyebrow__dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--teal-vivid); animation: dotBlink 2s ease-in-out infinite; flex-shrink: 0;
}
.pill-eyebrow--light {
  color: rgba(255,255,255,.92); background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.26);
}
.pill-eyebrow--light .pill-eyebrow__dot { background: rgba(255,255,255,.92); }

.soft-badge {
  display: inline-flex; align-items: center; border-radius: var(--r-pill);
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .66rem; font-weight: 600; letter-spacing: .04em; padding: .30rem .82rem;
}
.soft-badge--teal  { background: rgba(0,148,175,.08); color: var(--teal); border: 1px solid rgba(0,148,175,.20); }
.soft-badge--green { background: rgba(26,101,69,.08); color: var(--green); border: 1px solid rgba(26,101,69,.20); }

.fact-pill {
  display: inline-flex; align-items: center; gap: .45rem;
  background: rgba(0,148,175,.06); border: 1px solid rgba(0,148,175,.14);
  border-radius: var(--r-pill); padding: .40rem .92rem;
  font-family: var(--sans, 'DM Sans', sans-serif); font-size: .77rem;
  color: var(--ink-soft); line-height: 1.4;
}
.fact-pill svg { flex-shrink: 0; color: var(--teal); }

.btn--pill { border-radius: var(--r-pill) !important; }
.btn--white {
  background: #fff; color: var(--teal); border: none; font-weight: 600;
  transition: background .2s, transform .15s, box-shadow .2s;
}
.btn--white:hover { background: rgba(255,255,255,.92); transform: translateY(-2px); box-shadow: 0 10px 32px rgba(0,40,60,.18); }
.btn--ghost-white {
  background: transparent; border: 1.5px solid rgba(255,255,255,.38);
  color: rgba(255,255,255,.88); border-radius: var(--r-pill); font-weight: 500;
  transition: border-color .2s, background .2s, color .2s;
}
.btn--ghost-white:hover { border-color: #fff; background: rgba(255,255,255,.12); color: #fff; }

/* Scroll reveal */
.fade-up {
  opacity: 0; transform: translateY(20px);
  transition: opacity .70s cubic-bezier(.4,0,.2,1), transform .70s cubic-bezier(.4,0,.2,1);
}
.fade-right {
  opacity: 0; transform: translateX(22px);
  transition: opacity .70s cubic-bezier(.4,0,.2,1), transform .70s cubic-bezier(.4,0,.2,1);
}
.fade-up.visible, .fade-right.visible { opacity: 1; transform: translate(0); }
[data-delay="1"] { transition-delay: .10s; }
[data-delay="2"] { transition-delay: .20s; }
[data-delay="3"] { transition-delay: .30s; }
[data-delay="4"] { transition-delay: .40s; }


/* ======================================
   §1 HERO
   Light teal mesh bg — same as farm hero
   CSS Grid 1fr/1fr on desktop
   v-mark + 4 leaves fill the mid-column gap
====================================== */
.qs-hero {
  background:
    radial-gradient(ellipse 54% 54% at 10% 70%, rgba(0,148,175,.24) 0%, transparent 66%),
    radial-gradient(ellipse 50% 58% at 86% 24%, rgba(26,101,69,.15) 0%, transparent 66%),
    radial-gradient(ellipse 64% 64% at 52% 100%, rgba(0,180,216,.09) 0%, transparent 56%),
    linear-gradient(160deg, #ddf4f9 0%, #e7f7f1 50%, #f2fcf6 100%);
  min-height: 100svh;
  padding-top: var(--nav-h, 72px);
  overflow: hidden;
  position: relative;
  padding-bottom: 72px;
}

.qs-hero__orb {
  position: absolute; border-radius: 50%; pointer-events: none; filter: blur(80px); z-index: 0;
}
.qs-hero__orb--1 {
  width: 460px; height: 460px;
  background: radial-gradient(circle, rgba(0,148,175,.18) 0%, transparent 70%);
  top: 4%; left: -110px; animation: orbDrift 22s ease-in-out infinite;
}
.qs-hero__orb--2 {
  width: 360px; height: 360px;
  background: radial-gradient(circle, rgba(26,101,69,.14) 0%, transparent 70%);
  bottom: 8%; right: -80px; animation: orbDriftB 27s ease-in-out infinite;
}
.qs-hero__orb--3 {
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(0,180,216,.11) 0%, transparent 70%);
  top: 50%; left: 44%; animation: orbDrift 31s ease-in-out infinite reverse;
}

.qs-hero__inner {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; align-items: center;
  padding-top: 2rem;
}

.hero-animate {
  opacity: 0; animation: heroReveal .66s cubic-bezier(.4,0,.2,1) forwards;
}
.qs-hero__copy .hero-animate:nth-child(1) { animation-delay: .08s; }
.qs-hero__copy .hero-animate:nth-child(2) { animation-delay: .20s; }
.qs-hero__copy .hero-animate:nth-child(3) { animation-delay: .32s; }
.qs-hero__copy .hero-animate:nth-child(4) { animation-delay: .43s; }
.qs-hero__copy .hero-animate:nth-child(5) { animation-delay: .52s; }
.qs-hero__copy .hero-animate:nth-child(6) { animation-delay: .60s; }

.qs-hero__copy {
  order: 2; text-align: center;
  padding: 1.75rem 0 1rem; width: 100%; max-width: 520px;
}
.qs-hero__copy h1 {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.9rem, 3.8vw, 3rem);
  font-weight: 300;
  line-height: 1.10;
  letter-spacing: -.025em;
  color: var(--ink);
  margin: .35rem 0 1rem;
}
.qs-hero__copy h1 .teal-italic {
  display: block;
  font-size: 1.14em;
  line-height: 1.04;
  color: var(--teal-vivid);
  letter-spacing: -.03em;
  margin-top: .12em;
}
.qs-hero__copy .lead { max-width: 390px; margin: 0 auto 1.5rem; }
.qs-hero__badges {
  display: flex; flex-wrap: wrap; gap: .38rem; justify-content: center; margin-bottom: 1.5rem;
}
.qs-hero__subnote {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .71rem; color: var(--ink-muted); letter-spacing: .02em; margin-top: .75rem;
}

.qs-hero__video-col {
  order: 1; width: 100%; display: flex; flex-direction: column; align-items: center;
}
.qs-hero__video-wrap {
  position: relative; width: 100%;
  aspect-ratio: 9 / 16; overflow: hidden;
  border-radius: var(--r-xl);
  animation: videoGlow 4.5s ease-in-out infinite;
}
@media (hover: none) {
  .qs-hero__video-wrap { animation: none; box-shadow: var(--sh-float); }
}
.qs-hero__video {
  width: 100%; height: 100%; object-fit: cover; object-position: center; display: block;
}

/* Video controls — frosted pill top-right */
.qs-video-controls {
  position: absolute; top: .78rem; right: .78rem; z-index: 10;
  display: flex; align-items: center;
  background: rgba(0,0,0,.36); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-radius: var(--r-pill); padding: 3px;
  border: 1px solid rgba(255,255,255,.13);
}
.qs-video-btn {
  width: 32px; height: 32px; border-radius: 50%;
  background: transparent; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.88);
  transition: background .15s, color .15s, transform .12s;
  flex-shrink: 0; -webkit-tap-highlight-color: transparent;
}
.qs-video-btn:hover  { background: rgba(255,255,255,.16); color: #fff; }
.qs-video-btn:active { transform: scale(.90); }
.qs-video-btn svg { width: 12px; height: 12px; display: block; flex-shrink: 0; }
.qs-video-btn__icon--hidden { display: none; }
.qs-video-controls__divider {
  display: block; width: 1px; height: 14px; background: rgba(255,255,255,.15); flex-shrink: 0;
}
@media (max-width: 767px) {
  .qs-video-btn { width: 40px; height: 40px; }
  .qs-video-btn svg { width: 15px; height: 15px; }
  .qs-video-controls { top: .7rem; right: .7rem; }
}

/* Desktop hero — CSS Grid 1fr/1fr (identical to farm) */
@media (min-width: 768px) {
  .qs-hero { padding-bottom: 88px; }
  .qs-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 3rem;
    padding-top: 3.5rem;
  }
  .qs-hero__copy    { order: 1; text-align: left; padding-bottom: 2.5rem; max-width: none; }
  .qs-hero__copy .lead { margin-left: 0; }
  .qs-hero__badges  { justify-content: flex-start; }
  .qs-hero__video-col {
    order: 2; width: auto;
    display: flex; justify-content: center; align-items: flex-end;
  }
  .qs-hero__video-wrap {
    width: auto; aspect-ratio: unset;
    height: 78vh; max-height: 650px; min-height: 460px;
  }
  .qs-hero__video { width: auto; height: 100%; object-fit: contain; }
}
@media (min-width: 1024px) {
  .qs-hero__video-wrap { max-height: 700px; }
}


/* ======================================
   §2 TRUST STRIP — vivid mid-teal
   Mirrors farm-trust exactly
====================================== */
.qs-trust {
  background: var(--trust-grad);
  border-radius: var(--r-2xl) var(--r-2xl) 0 0;
  margin-top: -48px; position: relative; z-index: 2;
  padding: 2.25rem 0; overflow: hidden;
}
.qs-trust::before {
  content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 500px; height: 180px;
  background: radial-gradient(ellipse, rgba(255,255,255,.06) 0%, transparent 70%);
  pointer-events: none;
}
.qs-trust__row {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(2,1fr);
  gap: 1px; background: rgba(255,255,255,.10);
  border-radius: var(--r-md); overflow: hidden;
}
.qs-trust__item {
  background: transparent; padding: 1.35rem .75rem;
  display: flex; flex-direction: column; align-items: center; gap: .18rem;
  text-align: center; transition: background .2s;
}
.qs-trust__item:hover { background: rgba(255,255,255,.05); }
.qs-trust__num {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.75rem, 3.8vw, 2.5rem); font-weight: 300; line-height: 1; letter-spacing: -.01em;
  background: linear-gradient(90deg, rgba(255,255,255,.72) 0%, #fff 42%, rgba(255,255,255,.82) 56%, rgba(255,255,255,.72) 100%);
  background-size: 260% auto; background-position: -260% center;
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  animation: shimmerPass 2.2s ease-out 1.1s 1 forwards;
}
.qs-trust__label {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .59rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase;
  color: rgba(255,255,255,.50);
}
@media (min-width: 640px) {
  .qs-trust__row { grid-template-columns: repeat(4,1fr); }
}


/* ======================================
   §3 CERTIFICATIONS — pale teal, SQUARE photo
   Mirrors farm-story layout
====================================== */
.qs-certs {
  background: var(--teal-pale); padding: 4.5rem 0 5rem;
  position: relative; overflow: hidden;
}
.qs-certs__orb {
  position: absolute; top: -80px; right: -80px; width: 400px; height: 400px;
  border-radius: 50%; background: radial-gradient(circle, rgba(0,148,175,.11) 0%, transparent 70%);
  filter: blur(60px); pointer-events: none; animation: orbDrift 22s ease-in-out infinite;
}
.qs-certs__grid { display: flex; flex-direction: column; gap: 2.25rem; }
.qs-certs__visual { position: relative; }
.qs-certs__img-wrap {
  border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--sh-float); max-width: 100%;
}
.qs-certs__img-wrap img {
  width: 100%; aspect-ratio: 1 / 1;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .72s cubic-bezier(.4,0,.2,1);
}
.qs-certs__img-wrap:hover img { transform: scale(1.04); }

/* Floating cert badge — bottom-right of photo */
.qs-certs__badge {
  position: absolute; bottom: -.75rem; right: -.75rem;
  display: inline-flex; align-items: center; gap: .42rem;
  background: var(--white); border: 1px solid rgba(0,148,175,.18);
  border-radius: var(--r-pill); padding: .52rem 1rem;
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .72rem; font-weight: 600; color: var(--teal);
  box-shadow: var(--sh-card);
}
.qs-certs__badge svg { color: var(--teal); flex-shrink: 0; }

.qs-certs__copy h2 {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.75rem, 3.2vw, 2.75rem); font-weight: 300;
  color: var(--ink); line-height: 1.12; letter-spacing: -.02em; margin-bottom: 1rem;
}
.qs-certs__body p {
  font-size: .94rem; line-height: 1.88; color: var(--ink-soft); margin-bottom: .78rem;
}
.qs-certs__body p:last-child { margin-bottom: 0; }
.qs-certs__pills { display: flex; flex-direction: column; gap: .42rem; margin-top: 1.5rem; }

@media (min-width: 768px) {
  .qs-certs { padding: 6rem 0 6.5rem; }
  .qs-certs__grid {
    display: grid; grid-template-columns: 1fr 1.28fr;
    align-items: center; gap: 4.5rem;
  }
}


/* ======================================
   §4 STANDARDS — mid-teal, 4 step cards
   Mirrors farm-process exactly
====================================== */
.qs-standards {
  background: var(--process-grad); padding: 4.5rem 0 5.5rem;
}
.qs-standards__header { margin-bottom: 2.5rem; }
.qs-standards__heading {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.75rem, 3.2vw, 2.75rem); font-weight: 300;
  color: #fff; line-height: 1.1; letter-spacing: -.02em; max-width: 460px;
}
.qs-step__grid { display: grid; grid-template-columns: 1fr; gap: .82rem; }
.qs-step__card {
  opacity: 0;
  background: rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--r-lg); padding: 1.625rem;
  display: flex; flex-direction: column; gap: .75rem;
  color: rgba(255,255,255,.90);
  transition: background .24s, border-color .24s, transform .24s;
  position: relative; overflow: hidden;
}
.qs-step__card::after {
  content: ''; position: absolute; inset: 0; border-radius: var(--r-lg);
  background: radial-gradient(ellipse at 20% 0%, rgba(255,255,255,.06) 0%, transparent 60%);
  opacity: 0; transition: opacity .26s; pointer-events: none;
}
.qs-step__card:hover { background: rgba(0,0,0,.26); border-color: rgba(255,255,255,.26); transform: translateY(-3px); }
.qs-step__card:hover::after { opacity: 1; }
.qs-step__card.step-visible {
  animation: stepReveal .60s cubic-bezier(.34,1.35,.64,1) forwards;
}
.qs-step__card[data-step="1"].step-visible { animation-delay: .00s; }
.qs-step__card[data-step="2"].step-visible { animation-delay: .08s; }
.qs-step__card[data-step="3"].step-visible { animation-delay: .16s; }
.qs-step__card[data-step="4"].step-visible { animation-delay: .24s; }
.qs-step__bubble {
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,.10); border: 1.5px solid rgba(255,255,255,.20);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  color: rgba(255,255,255,.85); transition: background .22s, box-shadow .22s;
}
.qs-step__card:hover .qs-step__bubble { background: rgba(255,255,255,.18); box-shadow: 0 0 16px rgba(255,255,255,.10); }
.qs-step__num {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .60rem; font-weight: 700; letter-spacing: .14em; color: rgba(255,255,255,.44);
}
.qs-step__card h3 {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .95rem; font-weight: 600; color: #fff; line-height: 1.28; margin: 0;
}
.qs-step__card p {
  font-size: .83rem; line-height: 1.74; color: rgba(255,255,255,.58); margin: 0;
}
@media (min-width: 640px)  { .qs-step__grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) {
  .qs-standards { padding: 6rem 0 7rem; }
  .qs-step__grid { grid-template-columns: repeat(4,1fr); }
}


/* ======================================
   §5 GALLERY — white, SQUARE photos
   Mirrors farm-gallery exactly
====================================== */
.qs-gallery { background: var(--white); padding: 4.5rem 0 0; }
.qs-gallery__heading {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.75rem, 3.2vw, 2.75rem); font-weight: 300;
  color: var(--ink); margin-bottom: 2rem; line-height: 1.1; letter-spacing: -.02em;
}
.qs-gallery__track {
  display: flex; gap: .875rem; overflow-x: auto;
  scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 max(1.25rem, calc((100vw - var(--max-w, 1140px)) / 2 + 1.25rem)) 1.5rem;
  cursor: grab;
}
.qs-gallery__track::-webkit-scrollbar { display: none; }
.qs-gallery__track:active { cursor: grabbing; }
.qs-gallery__card { flex: 0 0 70vw; scroll-snap-align: start; margin: 0; }
.qs-gallery__img-wrap {
  border-radius: var(--r-xl); overflow: hidden;
  aspect-ratio: 1 / 1;
  box-shadow: var(--sh-card); background: rgba(0,148,175,.06);
}
.qs-gallery__img-wrap img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .60s cubic-bezier(.4,0,.2,1);
}
.qs-gallery__card:hover .qs-gallery__img-wrap img { transform: translate(-3px,-3px) scale(1.05); }
.qs-gallery__card figcaption {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-style: italic; font-size: .79rem; color: var(--ink-muted);
  margin-top: .75rem; padding: 0 .3rem; line-height: 1.5;
}
@media (min-width: 768px) {
  .qs-gallery { padding: 6rem 0 0; }
  .qs-gallery__track {
    display: grid; grid-template-columns: repeat(3,1fr);
    overflow: visible; gap: 1.25rem; cursor: default;
    padding: 0 max(1.25rem, calc((100vw - var(--max-w, 1140px)) / 2 + 1.25rem)) 5rem;
  }
  .qs-gallery__card { flex: none; }
  .qs-gallery__img-wrap { aspect-ratio: 1 / 1; }
}


/* ======================================
   §6 COMMITMENT — fresh teal-green, blockquote + SQUARE photo
   Mirrors farm-promise exactly
====================================== */
.qs-commitment {
  background: linear-gradient(158deg, #e0f6ef 0%, #eaf8f3 50%, #ddf3ec 100%);
  padding: 4.5rem 0 0; position: relative; overflow: hidden;
}
.qs-commitment__orb {
  position: absolute; bottom: 60px; left: -80px; width: 380px; height: 380px;
  border-radius: 50%; background: radial-gradient(circle, rgba(0,148,175,.08) 0%, transparent 70%);
  filter: blur(60px); pointer-events: none; animation: orbDriftB 26s ease-in-out infinite;
}
.qs-commitment__grid { display: flex; flex-direction: column; gap: 2.5rem; }
.qs-commitment__quote {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.45rem, 2.6vw, 2.1rem); font-weight: 300; font-style: italic;
  color: var(--ink); line-height: 1.30; margin: 0 0 1.4rem;
  padding: 1.1rem 1.3rem 1.1rem 1.7rem;
  background: rgba(0,148,175,.04); position: relative;
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.qs-commitment__quote::before {
  content: ''; position: absolute; left: 0; top: 0; width: 3px; height: 100%;
  background: linear-gradient(to bottom, var(--teal-vivid), var(--teal));
  border-radius: 3px 0 0 3px;
  transform: scaleY(0); transform-origin: top;
}
.qs-commitment__quote.border-grown::before {
  animation: borderGrow .55s cubic-bezier(.4,0,.2,1) forwards;
}
.qs-commitment__body p { font-size: .94rem; line-height: 1.88; color: var(--ink-soft); margin-bottom: .78rem; }
.qs-commitment__body p:last-child { margin-bottom: 0; }
.qs-commitment__pills { display: flex; flex-direction: column; gap: .42rem; margin-top: 1.5rem; }
.qs-commitment__img-wrap {
  border-radius: var(--r-xl); overflow: hidden;
  box-shadow: var(--sh-float); max-width: 100%;
}
.qs-commitment__img-wrap img {
  width: 100%; aspect-ratio: 1 / 1;
  object-fit: cover; object-position: center;
  display: block;
  transition: transform .72s cubic-bezier(.4,0,.2,1);
}
.qs-commitment__img-wrap:hover img { transform: scale(1.03); }
.qs-d2 { margin-top: 3rem; padding: 1.4rem 0 4rem; border-top: 1px solid rgba(0,148,175,.12); }
.qs-d2 p { font-size: .67rem; line-height: 1.7; color: var(--ink-muted); max-width: 680px; font-family: var(--sans, 'DM Sans', sans-serif); }
@media (min-width: 768px) {
  .qs-commitment { padding: 6.5rem 0 0; }
  .qs-commitment__grid {
    display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: 5rem;
  }
  .qs-commitment__img-wrap { transform: rotate(-1.5deg); transition: transform .4s ease; }
  .qs-commitment__img-wrap:hover { transform: rotate(0deg) scale(1.02); }
}
@media (hover: none) { .qs-commitment__img-wrap { transform: none !important; } }


/* ======================================
   §7 CTA — VIBRANT teal-cyan-mint gradient
   Mirrors farm-cta exactly
====================================== */
.qs-cta {
  background: var(--cta-grad);
  padding: 5.5rem 0 6.5rem;
  text-align: center; position: relative; overflow: hidden;
}
.qs-cta__orb {
  position: absolute; border-radius: 50%; filter: blur(90px); pointer-events: none;
}
.qs-cta__orb--1 {
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(255,255,255,.18) 0%, transparent 70%);
  top: -100px; left: -100px; animation: orbDrift 20s ease-in-out infinite;
}
.qs-cta__orb--2 {
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(255,255,255,.12) 0%, transparent 70%);
  bottom: -70px; right: -70px; animation: orbDriftB 27s ease-in-out infinite;
}
.qs-cta__vmark {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  opacity: .05; pointer-events: none;
}
.qs-cta__vmark img { width: 340px; height: 340px; filter: brightness(0) invert(1); }
.qs-cta__content { position: relative; z-index: 1; max-width: 580px; margin: 0 auto; }
.qs-cta__heading {
  font-family: var(--serif, 'Cormorant Garamond', Georgia, serif);
  font-size: clamp(1.9rem, 4vw, 3.1rem); font-weight: 300;
  color: #fff; line-height: 1.1; letter-spacing: -.02em;
  margin: .5rem 0 .65rem;
  text-shadow: 0 2px 20px rgba(0,40,60,.14);
}
.qs-cta__em {
  display: block; font-style: italic;
  font-size: 1.12em; line-height: 1.02;
  color: rgba(255,255,255,.97); margin-top: .08em;
}
.qs-cta__sub {
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: .97rem; font-weight: 300; color: rgba(255,255,255,.80); margin: 0;
}
.qs-cta__btns {
  display: flex; flex-direction: column; align-items: center; gap: .75rem; margin-top: 1.875rem;
}
.qs-cta__btns .btn { width: 100%; max-width: 285px; justify-content: center; }
.qs-cta__note {
  margin-top: 1.5rem; font-size: .61rem; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,255,255,.38); font-family: var(--sans, 'DM Sans', sans-serif);
}
@media (min-width: 768px) {
  .qs-cta { padding: 7.5rem 0 8.5rem; }
  .qs-cta__btns { flex-direction: row; justify-content: center; }
  .qs-cta__btns .btn { width: auto; min-width: 190px; }
}


/* ======================================
   SOCIAL TAB — icon size fix (same as farm)
====================================== */
.social-tab__icon {
  width: 18px !important; height: 18px !important;
  min-width: 18px; max-width: 18px; min-height: 18px; max-height: 18px;
  flex-shrink: 0; display: block;
}
.social-tab__link {
  display: flex; align-items: center; gap: .72rem; padding: .62rem .72rem;
  border-radius: var(--r-sm); text-decoration: none; color: var(--ink);
  font-family: var(--sans, 'DM Sans', sans-serif); font-size: .84rem; font-weight: 500;
  transition: background .16s;
}
.social-tab__link:hover { background: rgba(0,148,175,.07); }
.social-tab__link span { flex: 1; }
.social-tab__arrow { width: 7px; height: 12px; opacity: .28; flex-shrink: 0; }
