:root{
  --white:#ffffff;
  --sage-50:#f2f8f3;
  --sage-100:#e2f0e4;
  --forest-900:#0f3d27;
  --forest-700:#1c6b41;
  --mint-500:#3fae6f;
  --mint-300:#8fd6ab;
  --teal-600:#0e7490;
  --teal-400:#22a6c9;
  --navy-900:#111827;
  --gold-500:#c9a24a;
  --ink-900:#132019;
  --ink-600:#3f524a;
  --ink-400:#6d8177;
  --line:#d3e6d8;
  --radius-lg:28px;
  --radius-md:18px;
  --radius-sm:10px;
  --shadow-1: 0 1px 2px rgba(15,61,39,.06);
  --shadow-2: 0 12px 30px -8px rgba(15,61,39,.18);
  --shadow-3: 0 30px 60px -20px rgba(15,61,39,.35);
  --font-display: "Fraunces", serif;
  --font-body: "Manrope", sans-serif;
  --font-mono: "JetBrains Mono", monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; font-family:var(--font-body); color:var(--ink-900); background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--forest-700); display:inline-flex; align-items:center; gap:8px; font-weight:500;
}
.eyebrow::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--teal-400); display:inline-block; }
h1,h2,h3{ font-family:var(--font-display); color:var(--forest-900); line-height:1.1; margin:0; font-weight:600; }
p{ color:var(--ink-600); line-height:1.68; margin:0; }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:15px 28px;
  border-radius:999px; font-weight:700; font-size:15px; text-decoration:none; cursor:pointer;
  border:1px solid transparent; transition:transform .18s ease, box-shadow .18s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:linear-gradient(180deg,var(--teal-400),var(--forest-700)); color:#fff; box-shadow:0 14px 28px -10px rgba(14,116,144,.5); }
.btn-primary:hover{ box-shadow:0 18px 34px -8px rgba(14,116,144,.55); }
.btn-ghost{ background:#fff; color:var(--forest-900); border:1px solid var(--line); }

/* ---------------- Header ---------------- */
header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.88); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto; }
.logo{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--forest-900); text-decoration:none; letter-spacing:-.01em; }
.logo svg{ width:32px; height:32px; }
.nav-links{ display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0; font-weight:600; font-size:14px; }
.nav-links a{ text-decoration:none; color:var(--ink-600); }
.nav-links a:hover{ color:var(--forest-900); }
@media (max-width:900px){ .nav-links{ display:none; } }

/* ---------------- Hero ---------------- */
.hero{ padding:70px 0 56px; background:radial-gradient(1100px 500px at 78% -10%, var(--sage-100), transparent 60%), var(--white); overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; }
.hero h1{ font-size:clamp(32px,4.2vw,50px); margin:16px 0 18px; letter-spacing:-.01em; }
.hero .lede{ font-size:17px; max-width:540px; margin-bottom:26px; }
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:26px; }
.trust-row{ display:flex; gap:20px; flex-wrap:wrap; padding-top:20px; border-top:1px solid var(--line); }
.trust-item{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:var(--ink-600); }
.trust-item svg{ width:17px; height:17px; color:var(--teal-600); flex-shrink:0; }

.hero-art{ position:relative; }
.hero-art-card{
  background:var(--navy-900); border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow-3);
  position:relative; overflow:hidden;
}
.hero-art-card::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(500px 260px at 30% 0%, rgba(34,166,201,.25), transparent 60%);
}
.hero-art-card picture, .hero-art-card img{ display:block; width:100%; height:auto; border-radius:14px; position:relative; z-index:1; }
.hero-badge-float{
  position:absolute; bottom:-18px; left:-18px; background:#fff; border-radius:16px; padding:8px 14px;
  box-shadow:var(--shadow-2); display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:var(--forest-900); z-index:2;
}
.hero-badge-float svg{ width:16px; height:16px; color:var(--teal-600); }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } .hero-art{ order:-1; } }

/* ---------------- Section shell ---------------- */
section{ padding:74px 0; }
.section-head{ max-width:660px; margin-bottom:42px; }
.section-head h2{ font-size:clamp(27px,3.1vw,36px); margin-top:14px; }
.section-head p{ margin-top:14px; font-size:16px; }
.alt{ background:var(--sage-50); }

/* ---------------- Two-column media sections ---------------- */
.media-layout{ display:grid; grid-template-columns:.95fr 1.05fr; gap:48px; align-items:center; }
.media-layout.reverse{ grid-template-columns:1.05fr .95fr; }
.media-layout.reverse .media-col{ order:2; }
.media-col picture, .media-col img{ display:block; width:100%; height:auto; border-radius:var(--radius-lg); box-shadow:var(--shadow-2); }
@media (max-width:900px){
  .media-layout, .media-layout.reverse{ grid-template-columns:1fr; }
  .media-layout .media-col, .media-layout.reverse .media-col{ order:-1; }
}

/* ---------------- Icon grid ---------------- */
.icon-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.icon-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:26px 22px; box-shadow:var(--shadow-1); transition:transform .2s ease, box-shadow .2s ease; }
.icon-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-2); }
.icon-tile{ width:46px; height:46px; border-radius:13px; background:linear-gradient(160deg,var(--teal-400),var(--forest-700)); display:flex; align-items:center; justify-content:center; margin-bottom:16px; box-shadow:var(--shadow-1); }
.icon-tile svg{ width:23px; height:23px; color:#fff; }
.icon-card h3{ font-size:17px; margin-bottom:8px; }
.icon-card p{ font-size:14px; }
@media (max-width:900px){ .icon-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .icon-grid{ grid-template-columns:1fr; } }

/* ---------------- Steps ---------------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.step .num{ font-family:var(--font-display); font-size:38px; font-weight:600; color:var(--mint-300); line-height:1; margin-bottom:12px; display:block; }
.step h3{ font-size:16.5px; margin-bottom:8px; }
.step p{ font-size:13.5px; }
@media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }

/* ---------------- Data table ---------------- */
.data-table-wrap{ overflow-x:auto; margin-top:10px; border:1px solid var(--line); border-radius:var(--radius-md); }
table.data-table{ width:100%; border-collapse:collapse; font-size:14px; min-width:560px; }
table.data-table th{ text-align:left; background:var(--forest-900); color:#fff; font-weight:600; padding:13px 18px; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
table.data-table td{ padding:13px 18px; border-top:1px solid var(--line); color:var(--ink-600); }
table.data-table tr:nth-child(even){ background:var(--sage-50); }
table.data-table td strong{ color:var(--forest-900); }

/* ---------------- Comparison ---------------- */
.compare-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.compare-col{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:26px 24px; }
.compare-col h3{ font-size:17px; margin-bottom:14px; color:var(--ink-600); }
.compare-col.highlight{ border-color:var(--teal-600); box-shadow:var(--shadow-2); background:linear-gradient(180deg,#fff,var(--sage-50)); }
.compare-col.highlight h3{ color:var(--forest-900); }
.compare-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.compare-list li{ font-size:14px; color:var(--ink-600); line-height:1.5; padding-left:20px; position:relative; }
.compare-list li::before{ content:"–"; position:absolute; left:0; color:var(--ink-400); }
.compare-col.highlight .compare-list li::before{ content:"✓"; color:var(--teal-600); font-weight:700; }
@media (max-width:760px){ .compare-grid{ grid-template-columns:1fr; } }

/* ---------------- Safety callout ---------------- */
.safety-box{ display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-left:4px solid var(--teal-600); border-radius:var(--radius-md); padding:24px 26px; margin-top:8px; }
.safety-box svg{ width:26px; height:26px; color:var(--teal-600); flex-shrink:0; margin-top:2px; }
.safety-box h4{ font-family:var(--font-display); font-size:16.5px; color:var(--forest-900); margin:0 0 8px; }
.safety-box p{ font-size:14px; }

/* ---------------- Pricing ---------------- */
.pricing-card{
  max-width:520px; margin:0 auto; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:36px 34px; box-shadow:var(--shadow-3); text-align:center;
}
.pricing-card .price-tag{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-600); font-weight:700; background:var(--sage-100); display:inline-block; padding:5px 12px; border-radius:999px; margin-bottom:18px; }
.pricing-card .price-amount{ font-family:var(--font-display); font-size:52px; color:var(--forest-900); margin:6px 0 4px; }
.pricing-card .price-note{ font-size:13px; color:var(--ink-400); margin-bottom:22px; }
.pricing-card .price-list{ list-style:none; margin:0 0 26px; padding:0; display:flex; flex-direction:column; gap:11px; text-align:left; }
.pricing-card .price-list li{ display:flex; gap:9px; align-items:flex-start; font-size:14px; color:var(--ink-600); }
.pricing-card .price-list svg{ width:17px; height:17px; color:var(--teal-600); flex-shrink:0; margin-top:2px; }
.pricing-card .btn-primary{ width:100%; padding:16px; font-size:15.5px; }
.pricing-badge-row{ display:flex; justify-content:center; margin-top:26px; }
.pricing-badge-row img{ width:120px; height:auto; }
.pricing-fine{ font-size:12px; color:var(--ink-400); margin-top:16px; }

/* ---------------- FAQ ---------------- */
.faq-list{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; }
.faq-q{ width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:18px 20px; display:flex; justify-content:space-between; align-items:center; font-family:var(--font-body); font-weight:700; font-size:15px; color:var(--forest-900); }
.faq-q svg{ width:18px; height:18px; flex-shrink:0; transition:transform .2s ease; color:var(--teal-600); }
.faq-item.open .faq-q svg{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; }
.faq-a p{ padding:0 20px 20px; font-size:14px; }
.faq-item.open .faq-a{ max-height:320px; }

/* ---------------- Final CTA ---------------- */
.final-cta{ background:linear-gradient(165deg,var(--navy-900),#0a2417); color:#fff; border-radius:var(--radius-lg); padding:54px 40px; text-align:center; margin:0 28px; max-width:1124px; margin-inline:auto; }
.final-cta h2{ color:#fff; font-size:clamp(25px,3.2vw,34px); }
.final-cta p{ color:#c9ddd0; max-width:520px; margin:14px auto 24px; }

/* ---------------- Footer ---------------- */
footer{ padding:54px 0 30px; border-top:1px solid var(--line); }
.foot-grid{ display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; margin-bottom:32px; }
.foot-brand p{ max-width:290px; font-size:13.5px; margin-top:12px; }
.foot-cols{ display:flex; gap:56px; flex-wrap:wrap; }
.foot-col h4{ font-size:12.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--forest-900); margin-bottom:12px; }
.foot-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; }
.foot-col a{ font-size:13.5px; color:var(--ink-600); text-decoration:none; }
.foot-col a:hover{ color:var(--forest-900); }
.disclaimer{ font-size:12px; line-height:1.7; color:var(--ink-400); border-top:1px solid var(--line); padding-top:22px; }
.disclaimer p{ font-size:12px; color:var(--ink-400); margin-bottom:8px; }

/* ---------------- Legal / prose pages ---------------- */
.page-hero{ padding:56px 0 40px; background: radial-gradient(900px 400px at 85% -20%, var(--cream-100), transparent 60%), var(--white); border-bottom:1px solid var(--line); }
.page-hero .crumbs{ font-size:13px; color:var(--ink-400); margin-bottom:14px; }
.page-hero .crumbs a{ color:var(--ink-400); text-decoration:none; }
.page-hero .crumbs a:hover{ color:var(--espresso-700); }
.page-hero h1{ font-size:clamp(30px,4vw,44px); }
.page-hero .updated{ margin-top:14px; font-size:13.5px; color:var(--ink-400); }

.prose{ max-width:760px; margin:0 auto; padding:56px 0 20px; }
.prose h2{ font-size:22px; margin:36px 0 12px; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:17px; margin:22px 0 8px; color:var(--espresso-900); }
.prose p{ font-size:15px; margin-bottom:14px; }
.prose ul{ margin:0 0 14px; padding-left:20px; }
.prose li{ font-size:15px; color:var(--ink-600); margin-bottom:8px; line-height:1.6; }
.prose a{ color:var(--espresso-700); font-weight:600; }
.prose .callout{ background:var(--cream-50); border-left:3px solid var(--amber-500); border-radius:var(--radius-sm); padding:16px 18px; font-size:14px; color:var(--ink-600); margin:20px 0; }
.prose .contact-box{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-md); padding:22px; margin-top:30px; font-size:14.5px; }
