:root{
  --primary:#123726;
  --secondary:#6F8F2F;
  --lightgreen:#A6C75B;
  --accent:#D7A12E;
  --bgsoft:#F5F7F3;
  --ink:#24332D;
  --inksoft:#5C6A64;
  --borderc:#DCE4DE;
}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif;}
h1,h2,h3,h4,.font-heading{font-family:'Manrope',sans-serif;}

/* ---------- Header states ---------- */
#site-header{ color:#fff; }
#site-header[data-state="transparent"]{ background:transparent; }
#site-header[data-state="solid"]{ background:#fff; color:var(--ink); box-shadow:0 1px 0 var(--borderc), 0 8px 24px -12px rgba(18,55,38,0.15); }
#site-header[data-state="solid"] .nav-link{ color:var(--ink); }
#site-header[data-state="transparent"] .nav-link{ color:#fff; }
#site-header[data-state="solid"] #menu-toggle{ color:var(--ink); }

.nav-link{ position:relative; font-size:13.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:6px 0; opacity:.92; }
.nav-link::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--accent); transition:width .25s ease; }
.nav-link:hover::after, .nav-link.nav-active::after{ width:100%; }

.btn-accent{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--accent); color:#1a1305; font-family:'Manrope',sans-serif; font-weight:600;
  font-size:13.5px; letter-spacing:.02em; padding:12px 22px; border-radius:8px;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  box-shadow:0 6px 18px -6px rgba(215,161,46,.55);
}
.btn-accent:hover{ transform:translateY(-1px) scale(1.02); background:#c69327; }

.btn-outline{
  display:inline-flex; align-items:center; justify-content:center;
  border:1.5px solid rgba(255,255,255,.55); color:#fff; font-family:'Manrope',sans-serif; font-weight:600;
  font-size:13.5px; padding:12px 22px; border-radius:8px; transition:all .25s ease;
}
.btn-outline:hover{ background:rgba(255,255,255,.12); border-color:#fff; transform:translateY(-1px); }

.btn-primary{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--primary); color:#fff; font-family:'Manrope',sans-serif; font-weight:600;
  font-size:13.5px; padding:12px 22px; border-radius:8px; transition:all .25s ease;
}
.btn-primary:hover{ background:#0c281b; transform:translateY(-1px); }

/* ---------- Footer ---------- */
.footer-title{ font-family:'Manrope',sans-serif; font-weight:700; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:#fff; margin-bottom:16px; }
.footer-link{ color:#9FB6A8; transition:color .2s ease; }
.footer-link:hover{ color:#fff; }
.social-ico{ display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:8px; border:1px solid rgba(255,255,255,.18); color:#CFE0D4; transition:all .2s ease; }
.social-ico:hover{ background:var(--secondary); border-color:var(--secondary); color:#fff; }

/* ---------- Cards ---------- */
.card{ border:1px solid var(--borderc); border-radius:12px; background:#fff; transition:box-shadow .3s ease, transform .3s ease, border-color .3s ease; }
.card:hover{ box-shadow:0 20px 40px -20px rgba(18,55,38,.25); transform:translateY(-3px); border-color:transparent; }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}

/* ---------- Industrial texture panels (no stock photography used) ---------- */
.grain{ position:relative; }
.grain::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.06; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.hero-grid{
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 56px 56px;
}
.dot-grid{
  background-image: radial-gradient(rgba(18,55,38,.14) 1.4px, transparent 1.4px);
  background-size: 18px 18px;
}

/* ---------- Timeline ---------- */
.timeline-line{ background:linear-gradient(90deg, var(--secondary), var(--lightgreen)); }

/* ---------- Count up number ---------- */
.stat-num{ font-variant-numeric: tabular-nums; }

/* ---------- Accordion ---------- */
details.faq > summary{ cursor:pointer; list-style:none; }
details.faq > summary::-webkit-details-marker{ display:none; }
details.faq[open] .faq-icon{ transform:rotate(45deg); }
.faq-icon{ transition:transform .25s ease; }

/* Skip link */
.skip-link{ position:absolute; left:-999px; top:0; background:var(--primary); color:#fff; padding:10px 16px; z-index:100; border-radius:0 0 8px 0; }
.skip-link:focus{ left:0; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }

/* ---------- Typographic utilities reused across pages ---------- */
.eyebrow{ font-family:'Manrope',sans-serif; font-weight:700; font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--secondary); }
.h2{ font-family:'Manrope',sans-serif; font-weight:800; font-size:1.9rem; line-height:1.15; color:var(--ink); }
@media(min-width:768px){ .h2{ font-size:2.5rem; } }
.h3{ font-family:'Manrope',sans-serif; font-weight:700; font-size:1.3rem; color:var(--ink); }
.prose-body p{ margin-bottom:1rem; line-height:1.75; color:var(--inksoft); }
.prose-body h2{ font-family:'Manrope',sans-serif; font-weight:800; font-size:1.5rem; color:var(--ink); margin-top:2.5rem; margin-bottom:1rem; }
.prose-body ul{ list-style:none; margin-bottom:1.25rem; }
.prose-body ul li{ position:relative; padding-left:1.6rem; margin-bottom:.6rem; color:var(--inksoft); line-height:1.6; }
.prose-body ul li::before{ content:""; position:absolute; left:0; top:.55rem; width:8px; height:8px; border-radius:2px; background:var(--lightgreen); }
.breadcrumb a{ color:var(--inksoft); }
.breadcrumb a:hover{ color:var(--primary); }
.tag-pill{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; letter-spacing:.03em; background:var(--bgsoft); color:var(--primary); border:1px solid var(--borderc); padding:6px 12px; border-radius:999px; }
