:root{
  --teal-900:#10332F;
  --teal-700:#1B4A46;
  --teal-400:#4E7C76;
  --cream:#FBF5EF;
  --white:#FFFFFF;
  --lavender:#EDEDF9;
  --ink:#14312E;
  --ink-muted:#5A6B68;
  --green:#2E9C46;
  --star:#F2B024;
  --r:16px;
  --shadow:0 18px 44px rgba(16,51,47,.13);
  --shadow-sm:0 8px 22px rgba(16,51,47,.09);
}
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font:400 17px/1.65 Poppins,system-ui,sans-serif;
  overflow-wrap:break-word;
}
img,svg,video,iframe{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-family:"Sorts Mill Goudy",Georgia,serif;font-weight:400;color:var(--teal-700);line-height:1.04}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 22px}
:focus-visible{outline:3px solid var(--teal-700);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:200;background:#fff;padding:10px 16px;border-radius:8px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font:500 15px/1 Poppins,sans-serif;padding:15px 26px;border-radius:999px;
  text-decoration:none;border:1px solid transparent;cursor:pointer;transition:.22s ease;min-height:48px}
.btn-solid{background:var(--teal-700);color:#fff}
.btn-solid:hover{background:var(--teal-900);transform:translateY(-2px)}
.btn-light{background:#fff;color:var(--teal-700)}
.btn-light:hover{background:var(--cream);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--teal-700);border-color:var(--teal-400)}
.btn-ghost:hover{background:rgba(27,74,70,.07)}
.btn-lg{padding:18px 32px;font-size:16px}
.btn-block{display:flex;width:100%}
.link-arrow{font:500 15px/1 Poppins,sans-serif;color:var(--teal-700);text-decoration:none;border-bottom:1px solid rgba(27,74,70,.35);padding-bottom:4px}
.link-arrow:hover{border-color:var(--teal-700)}
.link-arrow span{display:inline-block;transition:transform .2s}
.link-arrow:hover span{transform:translateX(4px)}

/* promo */
.promo{background:var(--green);text-align:center}
.promo a{display:block;padding:11px 16px;color:#fff;font:500 14.5px/1.3 Poppins,sans-serif;text-decoration:none}
.promo a:hover{text-decoration:underline}

/* header */
.hdr{position:sticky;top:0;z-index:60;background:rgba(251,245,239,.9);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:.25s}
.hdr.scrolled{border-bottom-color:rgba(27,74,70,.14);box-shadow:0 6px 20px rgba(16,51,47,.05)}
.hdr-in{display:flex;align-items:center;gap:18px;min-height:72px}
.brand img{width:126px}
.nav{margin-left:auto}
.nav-list{display:flex;gap:26px;align-items:center}
.nav-list a,.sub-btn{font:500 15px/1 Poppins,sans-serif;color:var(--teal-700);text-decoration:none;background:none;border:0;padding:8px 0;cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:5px}
.nav-list a::after,.sub-btn::after{content:"";position:absolute;left:0;bottom:2px;height:2px;width:0;background:var(--teal-700);transition:width .25s}
.nav-list a:hover::after,.sub-btn:hover::after,.has-sub:focus-within .sub-btn::after{width:100%}
.has-sub{position:relative}
.caret{font-size:11px}
.sub{position:absolute;top:100%;left:-14px;min-width:210px;background:#fff;border:1px solid rgba(27,74,70,.12);border-radius:14px;box-shadow:var(--shadow);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}
.has-sub:hover .sub,.has-sub:focus-within .sub,.sub-btn[aria-expanded="true"]+.sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:10px 12px;border-radius:9px}
.sub a::after{display:none}
.sub a:hover{background:var(--cream)}
.hdr-cta{padding:12px 22px;min-height:44px}
.burger{display:none;background:none;border:0;padding:12px;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:var(--teal-700);margin:5px 0;border-radius:2px}

/* drawer */
.drawer{position:fixed;inset:0;z-index:90;background:var(--cream);overflow-y:auto}
.drawer-in{padding:84px 24px 40px;display:flex;flex-direction:column;gap:4px;max-width:520px;margin:0 auto}
.drawer-in>a{font:500 20px/1 Poppins,sans-serif;color:var(--teal-700);text-decoration:none;padding:16px 0;border-bottom:1px solid rgba(27,74,70,.12)}
.drawer-lbl{font:600 12px/1 Poppins,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-top:22px}
.drawer-sub{font-size:17px!important;padding-left:14px!important}
.drawer-cta{margin-top:26px}
.drawer-close{position:absolute;top:20px;right:20px;background:#fff;border:1px solid rgba(27,74,70,.15);border-radius:999px;width:44px;height:44px;font-size:18px;color:var(--teal-700);cursor:pointer}

/* reveal — only hidden when JS is running, so content never disappears */
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* HERO */
.hero{padding:52px 0 80px;position:relative}
.hero-grid{display:grid;grid-template-columns:1fr;gap:52px;align-items:center}
.chip{display:inline-block;background:var(--teal-700);color:#fff;font:500 12.5px/1.35 Poppins,sans-serif;letter-spacing:.02em;padding:10px 18px;border-radius:999px}
.hero h1{font-size:clamp(2.5rem,6.2vw,5.1rem);margin:22px 0 0;letter-spacing:-.01em}
.lede{font:500 19px/1.5 Poppins,sans-serif;color:var(--ink-muted);margin-top:18px;max-width:34ch}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:32px}
.hero-modes{margin-top:40px;border-top:1px solid rgba(27,74,70,.16);max-width:460px}
.hero-modes a{display:flex;align-items:center;gap:12px;padding:16px 2px;text-decoration:none;font:500 15px/1.3 Poppins,sans-serif;color:var(--teal-700);border-bottom:1px solid rgba(27,74,70,.16)}
.hero-modes .dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex:none}
.hero-modes .arw{margin-left:auto;color:var(--teal-400);transition:transform .2s}
.hero-modes a:hover .arw{transform:translateX(5px);color:var(--teal-700)}

.hero-art{position:relative;min-width:0;padding-bottom:56px}
.plate{border-radius:20px;overflow:hidden;box-shadow:var(--shadow);background:#e6e0d6}
.plate-img{width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:45% 55%}
.offset{margin:0;position:absolute;left:-8px;bottom:0;width:58%;max-width:280px;border-radius:14px;overflow:hidden;border:5px solid var(--cream);box-shadow:var(--shadow)}
.offset img{width:100%;aspect-ratio:4/3;object-fit:cover}
.stat-chip{position:absolute;right:-6px;top:24px;background:#fff;border-radius:14px;box-shadow:var(--shadow-sm);padding:12px 16px;display:flex;flex-direction:column;gap:2px}
.stat-chip strong{font:600 19px/1 Poppins,sans-serif;color:var(--teal-700)}
.stat-chip span{font:400 12px/1.2 Poppins,sans-serif;color:var(--ink-muted)}
.leaf-mark{position:absolute;right:-30px;bottom:-14px;width:150px;color:var(--teal-400);opacity:.13;z-index:-1}

/* logos */
.logos{padding:4px 0 88px}
.logos-h{font-size:clamp(1.5rem,3vw,2.1rem);text-align:center;max-width:22ch;margin:0 auto 26px}
.marquee{background:var(--teal-700);border-radius:20px;padding:22px 0;overflow:hidden;position:relative}
.marquee-track{display:flex;width:max-content;animation:slide 34s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.logo-set{display:flex;align-items:center;gap:clamp(30px,5vw,66px);padding:0 clamp(15px,2.5vw,33px)}
.logo-set img{width:clamp(84px,10vw,120px);opacity:.95}
@keyframes slide{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .marquee-track{animation:none;flex-wrap:wrap;width:100%;justify-content:center}
  .marquee-track .logo-set[aria-hidden="true"]{display:none}
}

/* serve */
.serve{padding:0 0 88px}
.serve-grid{display:grid;grid-template-columns:1fr;gap:38px;align-items:center}
.serve h2{font-size:clamp(2rem,4.6vw,3.5rem);max-width:16ch}
.ticks{margin:28px 0 32px;display:grid;gap:14px}
.ticks li{display:flex;gap:14px;align-items:flex-start;font:500 16px/1.45 Poppins,sans-serif}
.tick{flex:none;width:30px;height:30px;border-radius:50%;background:var(--teal-700);color:#fff;display:grid;place-items:center;font-size:13px}
.serve-art img{border-radius:18px;box-shadow:var(--shadow)}

/* diffs */
.diffs{padding:0 0 88px}
.diffs-grid{display:grid;grid-template-columns:1fr;gap:22px}
.diff{background:#fff;border-radius:var(--r);padding:30px 26px 32px;box-shadow:var(--shadow-sm);border-top:3px solid var(--teal-700);transition:.25s}
.diff:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.diff h3{font-size:1.55rem;margin-bottom:12px}
.diff p{color:var(--ink-muted);font-size:16px}

/* ratings */
.ratings{padding:0 0 88px}
.rating-card{background:linear-gradient(105deg,var(--lavender) 0%,#F4F6F1 55%,#E9F2EA 100%);
  border-radius:22px;padding:30px 24px;display:grid;gap:26px;align-items:center;border:1px solid rgba(27,74,70,.08)}
.rating-head h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
.rating-head p{color:var(--ink-muted);font-size:15px;margin-top:6px}
.rating-chips{display:flex;flex-wrap:wrap;gap:12px}
.rating-chips a{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:12px 16px;text-decoration:none;box-shadow:var(--shadow-sm);transition:.22s}
.rating-chips a:hover{transform:translateY(-3px)}
.score{font:600 21px/1 Poppins,sans-serif;color:var(--teal-700);font-variant-numeric:tabular-nums;white-space:nowrap}
.score em{color:var(--star);font-style:normal}
.src{font:400 13px/1 Poppins,sans-serif;color:var(--ink-muted)}
.rating-chips img{width:34px;height:34px}

/* classes band */
.classes{background:var(--teal-700);padding:84px 0 76px;color:#fff;position:relative;overflow:hidden}
.classes-head{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-end;justify-content:space-between}
.classes h2{color:#fff;font-size:clamp(2rem,4.4vw,3.2rem)}
.classes-head p{color:rgba(255,255,255,.78);font-size:16px;margin-top:12px;max-width:44ch}
.rail-ctrls{display:flex;gap:10px}
.rail-btn{width:48px;height:48px;border-radius:50%;background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:22px;line-height:1;cursor:pointer;transition:.2s}
.rail-btn:hover{background:rgba(255,255,255,.14)}
.rail-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.rail-wrap{width:auto;max-width:100%;overflow:hidden;margin-top:30px;
  margin-left:max(22px, calc((100% - 1200px)/2 + 22px))}
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 22px 20px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.cls{flex:0 0 168px;scroll-snap-align:start;min-width:0}
.cls a{text-decoration:none;color:#fff;display:block}
.thumb{display:block;border-radius:14px;overflow:hidden;background:#EFF0F8}
.thumb img{width:100%;aspect-ratio:1;object-fit:cover;transition:transform .4s}
.cls a:hover .thumb img{transform:scale(1.05)}
.cls-name{display:block;margin-top:12px;font:500 15px/1.35 Poppins,sans-serif}
.classes-foot{margin-top:26px}

/* steps */
.steps{padding:48px 0}
.steps-in{border-top:1px solid rgba(27,74,70,.14);border-bottom:1px solid rgba(27,74,70,.14);padding:24px 0;display:flex;flex-wrap:wrap;gap:16px 34px;align-items:center}
.steps-lbl{font:600 11.5px/1 Poppins,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--teal-400)}
.steps-list{display:flex;flex-wrap:wrap;gap:14px 30px}
.steps-list li{display:flex;gap:10px;align-items:center;font:500 15.5px/1.3 Poppins,sans-serif;color:var(--teal-700)}
.steps-list span{font-family:"Sorts Mill Goudy",serif;font-size:20px;color:var(--teal-400)}

/* bento */
.bento-sec{padding:52px 0 92px;background:var(--white);border-top:1px solid rgba(27,74,70,.07);border-bottom:1px solid rgba(27,74,70,.07)}
.sec-head{margin-bottom:34px;max-width:56ch}
.sec-head h2{font-size:clamp(1.95rem,4.4vw,3.2rem)}
.sec-head p{color:var(--ink-muted);margin-top:14px}
.eyebrow-chip{display:inline-block;background:var(--teal-700);color:#fff;font:500 12px/1 Poppins,sans-serif;padding:9px 16px;border-radius:999px;margin-bottom:16px}
.bento{display:grid;grid-template-columns:1fr;gap:16px}
.tile{background:var(--cream);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:.25s;border:1px solid rgba(27,74,70,.07)}
.tile:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.tile-img{background:linear-gradient(160deg,#F3F1FA,#EAF1EC);padding:20px;display:grid;place-items:center}
.tile-img img{max-height:200px;width:auto;object-fit:contain}
.tile-body{padding:22px 22px 26px}
.tile-body h3{font-size:1.4rem;margin-bottom:10px}
.tile-body p{color:var(--ink-muted);font-size:15.5px;line-height:1.6}

/* testimonials */
.tests{background:var(--lavender);padding:84px 0}
.test-grid{display:grid;grid-template-columns:1fr;gap:18px}
.test{background:#fff;border-radius:18px;padding:30px 26px}
.test img{width:66px;height:66px;border-radius:50%;object-fit:cover;margin-bottom:18px}
.test blockquote{margin:0;font-family:"Sorts Mill Goudy",serif;font-size:1.3rem;line-height:1.42;color:var(--teal-700)}
.attr{margin-top:18px;font:500 14px/1.4 Poppins,sans-serif;color:var(--ink-muted)}

/* pricing + quote */
.fit{padding:88px 0}
.fit-grid{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}
.tiers{display:grid;gap:20px;min-width:0}
.tier{background:#fff;border:1px solid var(--teal-400);border-radius:20px;padding:28px 24px 30px;min-width:0}
.tier-hi{background:var(--teal-700);border-color:var(--teal-700);color:#fff;box-shadow:var(--shadow)}
.tier-hi h3,.tier-hi .price strong{color:#fff}
.rec{display:inline-block;background:var(--green);color:#fff;font:500 11.5px/1 Poppins,sans-serif;letter-spacing:.08em;text-transform:uppercase;padding:8px 13px;border-radius:999px;margin-bottom:16px}
.tier h3{font-size:1.7rem}
.tier-sub{font-size:14.5px;margin-top:10px;color:var(--ink-muted)}
.tier-hi .tier-sub{color:rgba(255,255,255,.78)}
.price{margin:22px 0 20px;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}
.alow{font:600 10.5px/1 Poppins,sans-serif;letter-spacing:.14em;color:var(--ink-muted);width:100%}
.tier-hi .alow{color:rgba(255,255,255,.72)}
.price strong{font:600 42px/1 Poppins,sans-serif;color:var(--teal-700);font-variant-numeric:tabular-nums}
.per{font:400 14px/1 Poppins,sans-serif;color:var(--ink-muted)}
.tier-hi .per{color:rgba(255,255,255,.8)}
.feat{margin-top:24px;display:grid;gap:12px}
.feat li{position:relative;padding-left:26px;font-size:15px;line-height:1.5;color:var(--ink-muted)}
.tier-hi .feat li{color:rgba(255,255,255,.9)}
.feat li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:700}
.tier-hi .feat li::before{color:#8fd6a0}

.quote-card{background:#fff;border-radius:20px;padding:28px 24px 32px;box-shadow:var(--shadow);position:relative}
.quote-card h3{font-size:1.75rem}
.quote-body{color:var(--ink-muted);font-size:15.5px;margin-top:12px}
.qform{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:24px}
.f{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.f-full{grid-column:1/-1}
.qform label{font:500 12.5px/1 Poppins,sans-serif;color:var(--teal-700)}
.qform input,.qform select,.qform textarea{
  font:400 15px/1.4 Poppins,sans-serif;color:var(--ink);width:100%;
  padding:13px 14px;border:1px solid rgba(27,74,70,.22);border-radius:10px;background:var(--cream)}
.qform textarea{resize:vertical}
.qform input:focus,.qform select:focus,.qform textarea:focus{outline:2px solid var(--teal-700);outline-offset:1px;border-color:var(--teal-700)}

/* team */
.team{background:linear-gradient(160deg,#F4F5FC 0%,#FBF5EF 60%,#EDF3EE 100%);padding:84px 0}
.team-grid{display:grid;grid-template-columns:1fr;gap:34px;align-items:center}
.team h2{font-size:clamp(2rem,4.4vw,3.2rem);margin-bottom:22px}
.team-art img{border-radius:16px;object-fit:cover;object-position:50% 50%}
.team-copy h3{font-size:1.6rem;margin-bottom:20px}
.team-list{display:grid;gap:14px}
.team-list li{display:flex;gap:12px;align-items:center;font:500 16.5px/1.45 Poppins,sans-serif;color:var(--teal-700)}
.team-list span{color:var(--green)}

/* footer */
.ftr{background:#F5EDE4;padding:60px 0 28px;border-top:1px solid rgba(27,74,70,.14)}
.ftr-grid{display:grid;grid-template-columns:1fr;gap:32px}
.ftr h4{font-family:Poppins,sans-serif;font-weight:600;font-size:14px;letter-spacing:.04em;color:var(--teal-700);margin-bottom:14px}
.ftr ul{display:grid;gap:10px}
.ftr a{font:400 15px/1.4 Poppins,sans-serif;color:var(--ink-muted);text-decoration:none}
.ftr a:hover{color:var(--teal-700);text-decoration:underline}
.ftr .plain{font-size:15px;color:var(--ink-muted)}
.ftr-brand img{width:112px;margin-bottom:14px}
.ftr-brand p{font-size:14.5px;color:var(--ink-muted);max-width:26ch}
.li{display:inline-flex;align-items:center;gap:8px}
.ftr .btn-block{margin-bottom:12px}
.ftr-bot{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:40px;padding-top:20px;border-top:1px solid rgba(27,74,70,.14);font-size:13.5px;color:var(--ink-muted)}

/* mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:70;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(251,245,239,.96);backdrop-filter:blur(10px);border-top:1px solid rgba(27,74,70,.14);display:none}

/* responsive */
@media (max-width:900px){
  .nav,.hdr-cta{display:none}
  .burger{display:block;margin-left:auto}
  .mbar{display:block}
  body{padding-bottom:78px}
}
@media (min-width:560px){
  .cls{flex:0 0 196px}
  .qform{grid-template-columns:1fr 1fr}
}
@media (min-width:640px){
  .diffs-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .test-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ftr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rating-card{grid-template-columns:minmax(0,1fr) auto;padding:36px 40px}
}
@media (min-width:960px){
  .hero{padding:76px 0 96px}
  .hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px}
  .serve-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:64px}
  .bento{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tile-wide{grid-column:span 2;grid-row:span 2}
  .tile-wide .tile-img img{max-height:320px}
  .tile-wide .tile-body h3{font-size:1.7rem}
  .fit-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px}
  .tiers{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quote-card{position:sticky;top:100px}
  .team-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:56px}
  .ftr-grid{grid-template-columns:1.2fr 1fr 1.2fr 1fr 1fr}
  .cls{flex:0 0 216px}
}
@media (max-width:520px){
  .qform{grid-template-columns:1fr}
  .hero-cta{gap:16px}
  .hero-art{padding-bottom:44px}
  .offset{width:62%;left:-4px}
  .stat-chip{right:0;top:12px;padding:10px 13px}
  .rating-chips a{padding:10px 12px}
  .score{font-size:18px}
  .test blockquote{font-size:1.2rem}
  .classes-head{flex-direction:column;align-items:flex-start}
}