/* ============================================================
   Neomind — shared design system (Rich Professional)
   Tinted hero bands · alternating washed sections · accent cards
   Display: Archivo · Body: IBM Plex Sans · Labels: IBM Plex Mono
   ============================================================ */

:root{
  --ink:#1a1d21;
  --ink-soft:#4b525a;
  --hairline:#e3e5e8;
  --paper:#ffffff;

  /* Neomind blue (default; overridden per page) */
  --accent:#1b4fa0;
  --accent-deep:#123a78;
  --accent-soft:#eaf1fb;
  --accent-wash:#f4f8fd;
  --accent-border:#c9d9f0;

  --max:1060px;
  --radius:8px;
}
.brand-aerc{
  --accent:#0e6b5c; --accent-deep:#0a5246;
  --accent-soft:#e4f2ef; --accent-wash:#f2f9f7; --accent-border:#bfdfd8;
}
.brand-ganitya{
  --accent:#c2660a; --accent-deep:#9c5108;
  --accent-soft:#faeedd; --accent-wash:#fdf7ee; --accent-border:#ecd3b2;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation:none !important; transition:none !important; }
}

body{
  font-family:'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{ font-family:'Archivo', system-ui, sans-serif; line-height:1.15; letter-spacing:-0.015em; }
h1{ font-size:clamp(2rem, 4.6vw, 3.1rem); font-weight:800; }
h2{ font-size:clamp(1.45rem, 3vw, 2rem); font-weight:750; }
h3{ font-size:1.12rem; font-weight:700; }

a{ color:var(--accent); text-decoration:none; }
a:hover{ text-decoration:underline; }
a:focus-visible, button:focus-visible{
  outline:2px solid var(--accent); outline-offset:3px; border-radius:2px;
}

.wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }

/* ---------- top nav ---------- */
.nav{
  border-bottom:1px solid var(--accent-border);
  background:var(--paper);
  position:sticky; top:0; z-index:50;
}
.nav-inner{
  max-width:var(--max); margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.nav-mark{
  font-family:'Archivo', sans-serif; font-weight:800; font-size:1.05rem;
  color:var(--ink); letter-spacing:-0.01em;
}
.nav-mark:hover{ text-decoration:none; }
.nav-mark .dot{ color:var(--accent); }
.nav-links{ display:flex; gap:26px; align-items:center; }
.nav-links a{ color:var(--ink-soft); font-size:0.92rem; font-weight:500; }
.nav-links a.active{
  color:var(--accent-deep); font-weight:600;
  border-bottom:2px solid var(--accent); padding-bottom:2px;
}
.nav-links a:hover{ color:var(--accent-deep); text-decoration:none; }
@media (max-width:640px){
  .nav-links{ gap:16px; }
  .nav-links a{ font-size:0.85rem; }
}

/* ---------- hero band ---------- */
.hero{
  background:linear-gradient(180deg, var(--accent-soft) 0%, var(--accent-wash) 70%, var(--paper) 100%);
  border-bottom:1px solid var(--accent-border);
}
.hero .eyebrow{ color:var(--accent-deep); }
.hero h1{ color:var(--ink); }
.hero h1 .hl{ color:var(--accent-deep); }

/* ---------- shared building blocks ---------- */
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.74rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--accent); font-weight:600; display:inline-block; margin-bottom:14px;
  background:var(--accent-soft); border:1px solid var(--accent-border);
  padding:5px 12px; border-radius:100px;
}
.hero .eyebrow{ background:var(--paper); }
.section{ padding:76px 0; }
.section-dim{
  background:var(--accent-wash);
  border-top:1px solid var(--accent-border);
  border-bottom:1px solid var(--accent-border);
}
.lede{ font-size:1.14rem; color:var(--ink-soft); max-width:62ch; }
.measure{ max-width:66ch; }

.btn{
  display:inline-block; font-family:'IBM Plex Sans', sans-serif;
  font-weight:600; font-size:0.95rem;
  padding:13px 26px; border-radius:var(--radius);
  border:1.5px solid var(--accent);
  transition:background .15s ease, color .15s ease, transform .1s ease;
}
.btn-solid{
  background:var(--accent); color:#fff;
  box-shadow:0 2px 10px color-mix(in srgb, var(--accent) 25%, transparent);
}
.btn-solid:hover{ background:var(--accent-deep); border-color:var(--accent-deep); text-decoration:none; }
.btn-ghost{ background:var(--paper); color:var(--accent-deep); }
.btn-ghost:hover{ background:var(--accent-soft); text-decoration:none; }

.card{
  border:1px solid var(--accent-border); border-top:3px solid var(--accent);
  border-radius:var(--radius);
  padding:30px 28px; background:var(--paper);
  box-shadow:0 1px 6px rgba(26,29,33,0.05);
}

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:820px){ .grid-2, .grid-3{ grid-template-columns:1fr; } }

/* ---------- solid accent panel (single loud moment) ---------- */
.panel-solid{
  background:linear-gradient(135deg, var(--accent) 0%, var(--accent-deep) 100%);
  color:#fff; border-radius:12px; padding:44px 40px;
}
.panel-solid h2, .panel-solid h3{ color:#fff; }
.panel-solid p{ color:rgba(255,255,255,0.88); }
.panel-solid .eyebrow{
  background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.3); color:#fff;
}
.panel-solid .btn-solid{
  background:#fff; color:var(--accent-deep); border-color:#fff; box-shadow:none;
}
.panel-solid .btn-solid:hover{ background:var(--accent-soft); border-color:var(--accent-soft); }
.panel-solid .btn-ghost{
  background:transparent; color:#fff; border-color:rgba(255,255,255,0.6);
}
.panel-solid .btn-ghost:hover{ background:rgba(255,255,255,0.12); }
.panel-solid a{ color:#fff; }
@media (max-width:640px){ .panel-solid{ padding:34px 24px; } }

/* ---------- footer ---------- */
.footer{
  border-top:3px solid var(--accent);
  padding:52px 0 40px; font-size:0.9rem;
  background:var(--ink); color:#b9bec5;
}
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px; }
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr; } }
.footer h4{
  font-family:'IBM Plex Mono', monospace; font-size:0.72rem;
  letter-spacing:0.12em; text-transform:uppercase; color:#fff;
  margin-bottom:12px; font-weight:600;
}
.footer a{ color:#d6dade; }
.footer a:hover{ color:#fff; }
.footer-legal{
  margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,0.15);
  font-size:0.82rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
}
