/* ===== hero ===== */
.hero{position:relative;padding:54px 0 70px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(2.7rem,6vw,4.6rem);line-height:.98}
.hero h1 .hl{color:var(--accent);transition:color .6s ease}
.hero-lead{font-size:1.16rem;color:var(--ink-soft);max-width:46ch;margin:22px 0 28px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:30px}
.hero-trust span{display:inline-flex;align-items:center;gap:.5em;font-size:.9rem;font-weight:600;color:var(--ink-soft)}
.hero-trust b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}
.hero-trust b svg{width:14px;height:14px}
/* stage */
.stage{position:relative;aspect-ratio:1/1;display:grid;place-items:center}
.stage-blob{position:absolute;width:84%;height:84%;border-radius:42% 58% 57% 43%/47% 42% 58% 53%;background:var(--accent);opacity:.16;transition:background .6s ease;animation:morph 14s ease-in-out infinite}
.stage-ring{position:absolute;width:70%;height:70%;border-radius:50%;border:2px dashed color-mix(in oklab,var(--accent),#000 8%);opacity:.3;animation:spin 60s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes morph{0%,100%{border-radius:42% 58% 57% 43%/47% 42% 58% 53%}50%{border-radius:56% 44% 40% 60%/55% 56% 44% 45%}}
.stage-pack{position:relative;z-index:2;width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 30px 40px rgba(30,30,20,.3));transition:opacity .4s ease, transform .5s ease}
.stage-dot{position:absolute;border-radius:50%;z-index:1;animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
.stage-chip{position:absolute;bottom:6%;left:50%;transform:translateX(-50%);z-index:3;background:#fff;border:1px solid var(--line);border-radius:100px;padding:.6em 1.1em;display:flex;gap:.6em;align-items:center;box-shadow:var(--shadow);white-space:nowrap}
.stage-chip .sw{width:12px;height:12px;border-radius:50%;background:var(--accent);transition:background .5s}
.stage-chip b{font-family:var(--display)}
.hero-dots{display:flex;gap:8px;justify-content:center;margin-top:18px}
.hero-dots button{width:9px;height:9px;border-radius:50%;border:none;background:var(--line);cursor:pointer;transition:.2s;padding:0}
.hero-dots button.on{background:var(--accent);width:26px;border-radius:100px}

/* ===== marquee ===== */
.marq{background:var(--ink);color:#eaf0e3;padding:16px 0;overflow:hidden;white-space:nowrap}
.marq-track{display:inline-flex;gap:46px;animation:slide 26s linear infinite}
.marq span{font-family:var(--display);font-size:1.15rem;display:inline-flex;gap:.55em;align-items:center;opacity:.92}
.marq span i{color:#8cc463;font-style:normal}
@keyframes slide{to{transform:translateX(-50%)}}

/* ===== categories ===== */
.cats{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}
.cat{position:relative;border-radius:var(--radius);overflow:hidden;min-height:300px;display:flex;align-items:flex-end;padding:30px;color:#fff;isolation:isolate}
.cat::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(15,20,10,.78));z-index:-1}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s ease}
.cat:hover img{transform:scale(1.06)}
.cat h3{font-size:2rem}
.cat p{opacity:.9;margin:4px 0 14px;max-width:34ch}
.cat .btn{background:#fff;color:var(--ink)}

/* ===== promise ===== */
.promise{background:var(--cream-2);border-radius:32px;padding:56px clamp(24px,5vw,64px);margin-top:8px}
.promise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:36px}
.pm{display:flex;flex-direction:column;gap:10px}
.pm-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#fff;color:var(--leaf);box-shadow:var(--shadow-sm)}
.pm-ic svg{width:26px;height:26px}
.pm h4{font-family:var(--body);font-weight:800;font-size:1.05rem}
.pm p{font-size:.93rem;color:var(--ink-soft)}

/* ===== story ===== */
.story{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.story-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow)}
.story-img img{width:100%;height:100%;object-fit:cover}
.story h2{font-size:clamp(2rem,4vw,3rem);margin:14px 0 18px}
.story p{color:var(--ink-soft);margin-bottom:14px;font-size:1.05rem}
.story-stats{display:flex;gap:36px;margin-top:26px}
.story-stats .n{font-family:var(--display);font-size:2.1rem;color:var(--leaf);line-height:1}
.story-stats .l{font-size:.86rem;color:var(--ink-soft)}

/* ===== reviews ===== */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.review{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.stars{color:#e8a72c;letter-spacing:2px;margin-bottom:12px}
.review p{font-size:1.02rem;margin-bottom:18px}
.review .who{display:flex;align-items:center;gap:12px}
.review .av{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:700;color:#fff}
.review .who b{font-family:var(--body);font-weight:700;font-size:.95rem;display:block}
.review .who span{font-size:.82rem;color:var(--ink-soft)}

/* ===== cta band ===== */
.band{background:linear-gradient(120deg,var(--leaf-d),var(--leaf));color:#fff;border-radius:32px;padding:clamp(40px,6vw,72px);text-align:center;overflow:hidden;position:relative}
.band h2{font-size:clamp(2rem,4.5vw,3.2rem);max-width:18ch;margin:0 auto 16px}
.band p{opacity:.92;max-width:48ch;margin:0 auto 28px;font-size:1.08rem}
.band .btn{background:#fff;color:var(--leaf-d)}
.band-blob{position:absolute;border-radius:50%;background:rgba(255,255,255,.1)}

.sec-pad{padding:84px 0}
.sec-pad-sm{padding:54px 0}
@media(max-width:900px){
  .hero-grid,.story{grid-template-columns:1fr}
  .stage{max-width:440px;margin:0 auto;order:-1}
  .promise-grid{grid-template-columns:1fr 1fr}
  .reviews-grid{grid-template-columns:1fr}
  .cats{grid-template-columns:1fr}
}

/* ===== brand film ===== */
.vfeature{position:relative;border-radius:32px;overflow:hidden;aspect-ratio:16/7;display:grid;place-items:center;isolation:isolate;box-shadow:var(--shadow)}
.vfeature .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s ease}
.vfeature:hover .poster{transform:scale(1.04)}
.vfeature::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,22,10,.3),rgba(15,22,10,.62));z-index:-1}
.vfeature-txt{text-align:center;color:#fff;max-width:46ch;padding:20px}
.vfeature-txt .eyebrow{color:#cfe6b8}
.vfeature-txt h2{font-size:clamp(1.8rem,4vw,3rem);margin:8px 0 22px}
.play{width:88px;height:88px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;cursor:pointer;border:none;transition:transform .2s,background .2s;margin:0 auto;box-shadow:0 14px 40px -10px rgba(0,0,0,.5)}
.play:hover{transform:scale(1.08)}
.play svg{width:32px;height:32px;margin-left:5px;color:var(--leaf-d)}
.play.sm{width:60px;height:60px}
.play.sm svg{width:22px;height:22px;margin-left:3px}
.vfeature-foot{position:absolute;bottom:22px;left:0;right:0;display:flex;justify-content:center;gap:24px;color:#fff;font-size:.9rem;font-weight:600;opacity:.92;z-index:2}
.vfeature-foot span{display:inline-flex;gap:.45em;align-items:center}

/* ===== video review reels ===== */
.vreels{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.reel{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:9/16;cursor:pointer;isolation:isolate;border:1px solid var(--line)}
.reel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .55s ease}
.reel:hover img{transform:scale(1.07)}
.reel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,6,.05) 35%,rgba(10,14,6,.82));z-index:-1}
.reel-dur{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.55);color:#fff;font-size:.74rem;font-weight:700;padding:.3em .6em;border-radius:100px;backdrop-filter:blur(3px);z-index:2}
.reel-center{position:absolute;inset:0;display:grid;place-items:center;z-index:2}
.reel-meta{position:absolute;left:0;right:0;bottom:0;padding:16px;color:#fff;z-index:2}
.reel-meta .stars{color:#ffd166;letter-spacing:1px;font-size:.85rem;margin-bottom:6px}
.reel-meta p{font-family:var(--display);font-size:1.05rem;line-height:1.2;margin-bottom:8px}
.reel-meta .who{font-size:.82rem;opacity:.9}
.reel-meta .who b{font-weight:700}

/* ===== video lightbox ===== */
.vmodal{position:fixed;inset:0;z-index:200;background:rgba(8,11,6,.86);backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:26px}
.vmodal.open{display:flex}
.vmodal-inner{position:relative;width:min(880px,94vw)}
.vmodal-inner.reel-shape{width:min(420px,94vw)}
.vmodal video{width:100%;max-height:84vh;border-radius:18px;background:#000;display:block}
.vmodal-close{position:absolute;top:-48px;right:0;background:none;border:none;color:#fff;font-size:1.7rem;cursor:pointer;line-height:1;opacity:.85}
.vmodal-close:hover{opacity:1}
.vfallback{aspect-ratio:16/10;border-radius:18px;background:#11160d;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#cfe6b8;text-align:center;padding:30px}
.vmodal-inner.reel-shape .vfallback{aspect-ratio:9/16}
.vfallback.show{display:flex}
.vfallback .em{font-size:2.4rem}
.vfallback code{background:#1d2614;color:#e9f2dc;padding:.3em .6em;border-radius:8px;font-size:.85rem}
@media(max-width:760px){.vreels{grid-template-columns:1fr 1fr}.vfeature{aspect-ratio:4/3}}
@media(max-width:460px){.vreels{grid-template-columns:1fr}}
