:root{
  --blue:#1e40af; --blue-600:#2563eb; --blue-50:#eff6ff; --ink:#0f172a; --slate:#475569;
  --muted:#64748b; --line:#e2e8f0; --bg:#ffffff; --green:#059669; --radius:14px;
  --max:1120px; --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--blue-600);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}
.btn{display:inline-block;padding:12px 22px;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;border:1px solid transparent;transition:.15s}
.btn-primary{background:var(--blue-600);color:#fff}
.btn-primary:hover{background:var(--blue);text-decoration:none}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{background:#f8fafc;text-decoration:none}
header.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{font-weight:800;color:var(--blue);font-size:18px;letter-spacing:-.02em;margin-right:22px;white-space:nowrap}
/* Focus indicator. The stylesheet previously defined no :focus rules at all, so
   keyboard users got the browser default — a 1px near-black ring, which is hard
   to see on the dark navy CTAs. :focus-visible keeps mouse clicks clean. */
:focus-visible{outline:3px solid #2563eb;outline-offset:2px;border-radius:4px}
.btn-primary:focus-visible,#cbam-sticky:focus-visible,#cbam-chat-btn:focus-visible{outline-color:#fbbf24}

.nav-links{display:flex;gap:20px;align-items:center;flex-wrap:nowrap}
/* Keep every nav item on ONE line. Without this, flex-shrink squeezes the wider
   items ("Sector tours", "CBAM by country", the CTA) until their text wraps to a
   second line, which makes them taller than the 64px bar and the CTA visibly
   overhangs the header edge. */
.nav-links>*{flex:0 0 auto;white-space:nowrap}
.nav-links a{color:var(--slate);font-weight:500;font-size:15px}
.nav-links a.btn-primary{color:#fff}
.nav-links a.btn-primary:hover{color:#fff}
.nav-links a.btn{margin-left:8px}
.hero{background:linear-gradient(180deg,var(--blue-50),#fff);padding:88px 0 64px;text-align:center}
.eyebrow{color:var(--blue);font-weight:700;letter-spacing:.03em;text-transform:uppercase;font-size:13px}
h1{font-size:clamp(32px,5vw,52px);line-height:1.1;letter-spacing:-.03em;margin:14px 0 0}
.lede{font-size:19px;color:var(--slate);max-width:720px;margin:20px auto 0}
.cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.trust{color:var(--muted);font-size:13px;margin-top:16px}
section{padding:64px 0}
h2{font-size:clamp(26px,3.5vw,34px);letter-spacing:-.02em;text-align:center;margin:0 0 8px}
.sub{color:var(--slate);text-align:center;max-width:660px;margin:0 auto 40px}
.grid{display:grid;gap:20px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:#fff}
.card h3{margin:0 0 8px;font-size:17px}
.card p{margin:0;color:var(--slate);font-size:15px}
.badge{display:inline-block;background:var(--blue-50);color:var(--blue);font-weight:600;font-size:12px;padding:4px 10px;border-radius:999px}
.section-alt{background:#f8fafc}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.price{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:#fff;display:flex;flex-direction:column}
.price.featured{border-color:var(--blue-600);box-shadow:0 10px 30px rgba(37,99,235,.12)}
.price .amt{font-size:30px;font-weight:800;margin:10px 0}
.price ul{list-style:none;padding:0;margin:14px 0 22px;color:var(--slate);font-size:15px}
.price li{padding:6px 0;border-bottom:1px dashed var(--line)}
.price .btn{margin-top:auto}
details{border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:12px;background:#fff}
details summary{font-weight:600;cursor:pointer;list-style:none}
details summary::-webkit-details-marker{display:none}
details[open]{box-shadow:0 4px 14px rgba(2,6,23,.05)}
.faq-a{color:var(--slate);margin-top:10px}
form.lead{max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}
form.lead .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
input,textarea,select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;margin-top:10px}
.msg{margin-top:12px;font-size:14px}
.ok{color:var(--green)} .err{color:#dc2626}
footer{border-top:1px solid var(--line);padding:40px 0;color:var(--muted);font-size:14px}
.foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}
@media(max-width:820px){.grid-3,.grid-2,.price-grid{grid-template-columns:1fr}form.lead .row{grid-template-columns:1fr}}
.prose{max-width:760px;margin:0 auto;font-size:17px;color:#1f2937}
.prose h1{text-align:left;font-size:clamp(28px,4vw,40px);margin:0 0 8px}
.prose .meta{color:var(--muted);font-size:14px;margin-bottom:26px}
.prose h2{text-align:left;font-size:24px;margin:32px 0 10px}
.prose p{margin:0 0 16px}
.prose ul{margin:0 0 16px 22px;color:#374151}
.prose li{margin:6px 0}
.prose .cta{background:var(--blue-50);border:1px solid #bfdbfe;border-radius:12px;padding:18px 20px;margin:26px 0}
.bloglist{max-width:820px;margin:0 auto}
.blogcard{border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:16px;background:#fff}
.blogcard h3{margin:0 0 6px;font-size:20px}
.blogcard p{margin:0;color:var(--slate)}

.langsel{display:inline-flex;gap:9px;font-size:13px;align-items:center;padding-left:14px;margin-left:2px;border-left:1px solid var(--line)}
.langsel a{color:var(--muted)}

/* --- Mobile navigation (hamburger) --- */
.nav-inner{position:relative}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
.nav-inner.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-inner.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-inner.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* Collapse to the hamburger at 1180px.
   The shared 9-item nav (Features…Free estimate, see api/scripts/_site_chrome.py)
   measures 1102px of content; plus the 48px container padding that needs a
   1150px viewport. 1180 leaves headroom so a label edit or a font fallback
   cannot push it back into wrapping. Measure again if you add a nav item. */
@media(max-width:1180px){
  .nav-toggle{display:inline-flex}
  .nav-links{display:none}
  .nav-inner.nav-open .nav-links{display:flex;flex-direction:column;align-items:flex-start;position:absolute;top:100%;left:0;right:0;background:#fff;padding:16px 20px;gap:16px;border-bottom:1px solid var(--line);box-shadow:0 14px 30px rgba(2,6,23,.12)}
  .nav-inner.nav-open .nav-links a{font-size:16px}
  .nav-inner.nav-open .nav-links .langsel{border-left:0;padding-left:0;margin-left:0;margin-top:4px}
  .nav-inner.nav-open .nav-links a.btn{margin-left:0;width:100%;text-align:center}
}
