:root{
  --green:#2f9e36; --green-d:#23842b; --forest:#0f3a22; --forest-d:#0a2c19;
  --ink:#15181a; --body:#48524c; --muted:#6c766f;
  --paper:#fff; --off:#f6f5f1; --tint:#eaf4e9; --line:#e8e7e1;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter',-apple-system,"Segoe UI",Roboto,sans-serif;
  --shadow:0 18px 50px rgba(15,58,34,.10); --radius:16px;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:var(--sans); color:var(--body); font-size:17px; line-height:1.65; background:var(--paper); -webkit-font-smoothing:antialiased; }
img{ max-width:100%; display:block; }
a{ color:var(--green); text-decoration:none; }
h1,h2,h3{ font-family:var(--serif); color:var(--ink); line-height:1.12; font-weight:600; letter-spacing:-.015em; }
.wrap{ max-width:1160px; margin:0 auto; padding:0 28px; }
.narrow{ max-width:780px; margin:0 auto; padding:0 28px; }
.eyebrow{ font-family:var(--sans); text-transform:uppercase; letter-spacing:.16em; font-size:12px; font-weight:700; color:var(--green-d); }
.btn{ display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-weight:600; font-size:15.5px; border-radius:10px; padding:14px 24px; cursor:pointer; border:none; transition:.16s; }
.btn-green{ background:var(--green); color:#fff; box-shadow:0 8px 22px rgba(47,158,54,.28); }
.btn-green:hover{ background:var(--green-d); transform:translateY(-1px); }
.btn-ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--line); }
.btn-ghost:hover{ border-color:var(--green); color:var(--green-d); }
.btn-light{ background:#fff; color:var(--forest); }
.btn-light:hover{ transform:translateY(-1px); box-shadow:0 10px 24px rgba(0,0,0,.18); }

header.site{ position:sticky; top:0; z-index:60; background:rgba(255,255,255,.94); backdrop-filter:saturate(180%) blur(10px); border-bottom:1px solid transparent; transition:.2s; }
header.site.scrolled{ border-bottom-color:var(--line); box-shadow:0 4px 20px rgba(15,58,34,.05); }
header.site .wrap{ display:flex; align-items:center; justify-content:space-between; height:78px; }
header.site .logo img{ height:38px; width:auto; }
nav.main{ display:flex; align-items:center; gap:34px; }
nav.main a.link{ color:var(--ink); font-weight:500; font-size:15.5px; }
nav.main a.link:hover{ color:var(--green-d); }
.burger{ display:none; background:none; border:none; cursor:pointer; padding:8px; }
.burger span{ display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:.2s; }

.hero{ background:linear-gradient(180deg,#fff, var(--off)); padding:74px 0 86px; overflow:hidden; }
.hero .grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; }
.hero h1{ font-size:clamp(36px,4.6vw,56px); font-weight:600; margin:18px 0 20px; }
.hero h1 em{ font-style:italic; color:var(--green-d); }
.hero p.sub{ font-size:19.5px; color:var(--body); max-width:530px; margin-bottom:30px; }
.hero .cta-row{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.hero .proof{ display:flex; align-items:center; gap:18px; margin-top:30px; color:var(--muted); font-size:14.5px; flex-wrap:wrap; }
.hero .proof .stars{ color:#e7a93b; letter-spacing:2px; font-size:15px; }
.hero .proof .div{ width:1px; height:18px; background:var(--line); }
.hero .visual{ position:relative; }
.hero .visual img{ border-radius:20px; box-shadow:var(--shadow); aspect-ratio:4/4.6; object-fit:cover; width:100%; }
.hero .floatcard{ position:absolute; left:-26px; bottom:34px; background:#fff; border-radius:14px; box-shadow:var(--shadow); padding:18px 22px; display:flex; align-items:center; gap:14px; }
.hero .floatcard .n{ font-family:var(--serif); font-size:34px; font-weight:600; color:var(--green-d); line-height:1; }
.hero .floatcard .t{ font-size:13.5px; color:var(--body); max-width:130px; }

/* compact hero for inner pages */
.subhero{ background:linear-gradient(180deg,#fff,var(--off)); padding:64px 0 56px; }
.subhero h1{ font-size:clamp(32px,4vw,48px); margin:14px 0 16px; max-width:760px; }
.subhero p{ font-size:19px; color:var(--body); max-width:620px; }

.trustbar{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.trustbar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 28px; flex-wrap:wrap; }
.trustbar .lead{ font-size:13px; color:var(--muted); font-weight:600; letter-spacing:.04em; text-transform:uppercase; max-width:190px; }
.trustbar .marks{ display:flex; gap:34px; flex-wrap:wrap; }
.trustbar .mark{ font-family:var(--serif); font-size:21px; color:var(--ink); font-weight:600; }
.trustbar .mark span{ font-family:var(--sans); font-size:13px; color:var(--muted); font-weight:500; display:block; letter-spacing:0; text-transform:none; }

section.sec{ padding:96px 0; }
section.sec.tight{ padding:64px 0; }
section.sec.off{ background:var(--off); }
.sechead{ max-width:680px; margin-bottom:18px; }
.sechead.center{ margin:0 auto 18px; text-align:center; }
.sechead h2{ font-size:clamp(28px,3.4vw,40px); margin:14px 0 14px; }
.sechead p{ font-size:19px; color:var(--body); }

.feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:30px 28px; transition:.18s; display:block; color:inherit; }
.card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); border-color:#dfe6db; }
.card .ico{ width:52px; height:52px; border-radius:13px; background:var(--tint); display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.card .ico svg{ width:26px; height:26px; stroke:var(--green-d); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.card h3{ font-size:20px; margin-bottom:9px; color:var(--ink); }
.card p{ font-size:15px; margin:0; }
.card .more{ display:inline-block; margin-top:14px; color:var(--green-d); font-weight:600; font-size:14.5px; }

.video .frame{ position:relative; border-radius:20px; overflow:hidden; aspect-ratio:16/9; margin-top:42px; box-shadow:var(--shadow); }
.video .frame img{ width:100%; height:100%; object-fit:cover; filter:brightness(.62); }
.video .play{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; color:#fff; }
.video .play .circle{ width:88px; height:88px; border-radius:50%; background:rgba(255,255,255,.95); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 34px rgba(0,0,0,.35); transition:.18s; }
.video .play:hover .circle{ transform:scale(1.07); }
.video .play .circle svg{ width:30px; height:30px; fill:var(--forest); margin-left:5px; }
.video .play .lbl{ font-family:var(--serif); font-size:22px; font-weight:600; text-shadow:0 2px 14px rgba(0,0,0,.45); }

.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.split.start{ align-items:start; }
.split .pic{ border-radius:20px; box-shadow:var(--shadow); aspect-ratio:5/4; object-fit:cover; width:100%; }
.split h2{ font-size:clamp(26px,3vw,36px); margin:14px 0 16px; }
.split ul{ list-style:none; margin-top:20px; }
.split li{ position:relative; padding:11px 0 11px 34px; font-size:16.5px; color:var(--ink); border-bottom:1px solid var(--line); }
.split li svg{ position:absolute; left:0; top:13px; width:20px; height:20px; color:var(--green); }

.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px; }
.step{ text-align:center; padding:0 10px; }
.step .num{ width:48px; height:48px; border-radius:50%; background:var(--forest); color:#fff; font-family:var(--serif); font-size:22px; font-weight:600; display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.step h3{ font-size:20px; margin-bottom:8px; }
.step p{ font-size:15.5px; margin:0; }

.bridge{ background:var(--tint); }
.bridge .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px 36px; flex-wrap:wrap; }
.bridge .t{ font-family:var(--serif); font-size:21px; color:var(--ink); font-weight:600; }
.bridge .t span{ display:block; font-family:var(--sans); font-size:15px; color:var(--body); font-weight:400; margin-top:4px; }

.ctaband{ background:linear-gradient(150deg,var(--forest),var(--forest-d)); color:#fff; text-align:center; }
.ctaband .wrap{ padding:92px 28px; }
.ctaband h2{ color:#fff; font-size:clamp(30px,3.8vw,46px); margin-bottom:18px; }
.ctaband p{ color:#cfe4d3; font-size:19px; max-width:600px; margin:0 auto 30px; }

/* article / guide prose */
.article{ max-width:760px; margin:0 auto; padding:64px 28px 80px; }
.article .eyebrow{ margin-bottom:12px; }
.article h2{ font-size:28px; margin:38px 0 12px; }
.article h3{ font-size:21px; margin:28px 0 8px; color:var(--green-d); }
.article p{ font-size:18px; margin:0 0 18px; }
.article ul,.article ol{ padding-left:22px; margin:0 0 18px; }
.article li{ margin:8px 0; font-size:18px; }
.article table{ width:100%; border-collapse:collapse; margin:22px 0; font-size:15.5px; }
.article th,.article td{ border:1px solid var(--line); padding:11px 14px; text-align:left; }
.article th{ background:var(--off); }
.article blockquote{ border-left:4px solid var(--green); background:var(--off); margin:22px 0; padding:16px 22px; font-style:italic; border-radius:0 8px 8px 0; }
.article .cta-primary{ display:inline-block; background:var(--green); color:#fff; font-weight:600; padding:14px 26px; border-radius:10px; margin:10px 0; box-shadow:0 8px 22px rgba(47,158,54,.28); }

/* checklist form layout */
.formgrid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.formcard{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px; box-shadow:var(--shadow); }
.ticklist{ list-style:none; }
.ticklist li{ position:relative; padding:12px 0 12px 34px; border-bottom:1px solid var(--line); font-size:16.5px; color:var(--ink); }
.ticklist li svg{ position:absolute; left:0; top:15px; width:20px; height:20px; color:var(--green); }

footer.site{ background:var(--forest-d); color:#9db8a3; font-size:14.5px; }
footer.site .wrap{ padding:64px 28px 30px; display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:48px; }
footer.site .flogo{ height:40px; margin-bottom:18px; filter:brightness(0) invert(1); opacity:.92; }
footer.site p{ max-width:300px; }
footer.site h4{ color:#fff; font-family:var(--sans); font-size:12.5px; text-transform:uppercase; letter-spacing:.14em; margin-bottom:16px; }
footer.site a{ color:#9db8a3; display:block; margin-bottom:10px; }
footer.site a:hover{ color:#fff; }
footer.site .legal{ grid-column:1/-1; border-top:1px solid rgba(255,255,255,.12); margin-top:34px; padding-top:24px; font-size:12.5px; color:#6f8a76; }

@media(max-width:900px){
  nav.main{ position:fixed; inset:78px 0 auto 0; background:#fff; flex-direction:column; gap:0; padding:14px 0; border-bottom:1px solid var(--line); box-shadow:var(--shadow); transform:translateY(-130%); transition:.25s; align-items:stretch; }
  nav.main.open{ transform:translateY(0); }
  nav.main a.link{ padding:14px 28px; }
  nav.main .btn{ margin:12px 28px; justify-content:center; }
  .burger{ display:block; }
  .hero .grid,.split,.formgrid{ grid-template-columns:1fr; gap:40px; }
  .hero .visual{ order:-1; }
  .feats,.steps{ grid-template-columns:1fr; }
  .trustbar .wrap,.bridge .wrap{ justify-content:center; text-align:center; }
  footer.site .wrap{ grid-template-columns:1fr 1fr; }
  section.sec{ padding:64px 0; }
}
