/* Passeport Rouge — Design System v3 (identité éditoriale)
   Palette : encre (ink) + papier (paper) + un seul accent rouge.
   Typo : serif éditorial pour les titres, sans-serif pour le texte courant.
   Pas de dégradés, pas de pastilles, pas d'icônes/émojis décoratifs. */
:root {
  /* ── Couleurs de marque (alignées sur config/app.php['brand']['colors']) ── */
  --ink:        #1e3a5f;   /* encre — titres, fond des blocs sombres, footer */
  --ink-dark:   #142642;
  --ink-soft:   #46628a;
  --accent:     #B0122A;   /* rouge Passeport Rouge — seul accent du site */
  --accent-dark:#8c0e21;
  --accent-soft:#e7c3ca;
  --paper:      #FAFAF7;   /* papier — fond général */
  --paper-alt:  #F2EFE7;   /* papier légèrement plus soutenu, sections alternées */
  --white:      #ffffff;
  --line:       #E3DFD3;   /* filet / bordure, ton chaud (pas de gris froid) */
  --muted:      #6b6459;   /* texte secondaire, ton chaud */
  /* Statuts fonctionnels uniquement (alertes, badges d'état) */
  --green:      #2f6b3a;
  --green-bg:   #eef5ec;
  --red:        #b0122a;
  --red-bg:     #fbecee;
  --orange:     #9a6a1f;
  --orange-bg:  #faf3e6;
  /* Alias historiques conservés pour compat. gabarits existants */
  --navy:        var(--ink);
  --navy-dark:   var(--ink-dark);
  --navy-light:  #dfe6ee;
  --peach:       var(--accent);
  --peach2:      var(--accent-dark);
  --peach-light: var(--accent-soft);
  --bg:          var(--paper);
  --bg2:         var(--paper-alt);
  --border:      var(--line);
  --text:        var(--ink);
  --text-muted:  var(--muted);
  --success:     var(--green);
  --error:       var(--red);
  --warning:     var(--orange);
  --primary:     var(--ink);
  --gray:        var(--muted);
  --dark:        var(--ink);
  --shadow:       0 1px 2px rgba(30,20,10,.05);
  --shadow-md:    0 2px 8px rgba(30,20,10,.08);
  --radius:       3px;
  --radius-lg:    4px;
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:  'Inter', system-ui, sans-serif;
}

*,*::before,*::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sans);
  background: var(--paper);
  color: var(--ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
input,select,textarea,button { font-family: inherit; }
a { color: inherit; text-decoration: none; }
h1,h2,h3 { font-family: var(--serif); font-weight: 600; letter-spacing: -.01em; }

/* ── Scrollbar ──────────────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--paper-alt); }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }

/* ── Animations ─────────────────────────────────────────────────────────────── */
@keyframes fadeUp  { from { opacity:0; transform:translateY(14px) } to { opacity:1; transform:none } }
@keyframes fadeIn  { from { opacity:0 } to { opacity:1 } }
@keyframes spin    { to { transform:rotate(360deg) } }
@keyframes countUp { from { opacity:0; transform:translateY(8px) } to { opacity:1; transform:none } }
.fade-up    { animation: fadeUp .5s cubic-bezier(.16,1,.3,1) both; }
.fade-up-d1 { animation-delay:.08s; }
.fade-up-d2 { animation-delay:.16s; }
.fade-up-d3 { animation-delay:.24s; }
.fade-up-d4 { animation-delay:.32s; }

/* ── Layout ─────────────────────────────────────────────────────────────────── */
.container  { max-width: 1200px; margin: 0 auto; padding: 0 3rem; }
.section    { padding: 5rem 0; }
.section-sm { padding: 2.5rem 0; }

/* ── Kicker / eyebrow (petit repère éditorial en majuscules) ─────────────────── */
.eyebrow {
  font-size: .6875rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--accent); margin-bottom: .625rem;
  display: inline-flex; align-items: center; gap: .5rem;
}
.eyebrow::before { content: ''; width: 18px; height: 1px; background: var(--accent); display: inline-block; }

/* ── Navbar ─────────────────────────────────────────────────────────────────── */
.navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: 68px;
  background: rgba(250,250,247,.97);
  border-bottom: 1px solid transparent;
  transition: border-color .2s;
}
.navbar.scrolled { border-color: var(--line); }
.navbar-inner {
  display: flex; align-items: center; justify-content: space-between;
  height: 68px;
}
.navbar-brand {
  display: flex; align-items: baseline; gap: 2px;
  font-family: var(--serif); font-weight: 600; font-size: 1.25rem; letter-spacing: -.01em;
  color: var(--ink); text-decoration: none;
}
.navbar-brand span { color: var(--accent); }
.navbar-nav {
  display: flex; align-items: center; gap: 2rem;
  list-style: none;
}
.navbar-nav a {
  font-size: .875rem; font-weight: 500; color: var(--muted);
  transition: color .15s;
}
.navbar-nav a:hover { color: var(--ink); text-decoration: none; }
.navbar-nav a.active { color: var(--ink); }

/* ── Logo SVG ───────────────────────────────────────────────────────────────── */
.nh-logo { flex-shrink: 0; }

/* ── Buttons ────────────────────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .375rem;
  padding: .625rem 1.375rem;
  font-size: .8125rem; font-weight: 600; letter-spacing: .02em;
  border-radius: var(--radius); border: 1.5px solid transparent;
  cursor: pointer; transition: all .15s ease;
  text-decoration: none; white-space: nowrap;
}
.btn:hover { text-decoration: none; }
.btn-primary {
  background: var(--accent); color: #fff;
}
.btn-primary:hover { background: var(--accent-dark); }

.btn-navy {
  background: var(--ink); color: #fff;
}
.btn-navy:hover { background: var(--ink-dark); }

.btn-outline {
  background: transparent; color: var(--ink); border-color: var(--ink);
}
.btn-outline:hover { background: var(--ink); color: #fff; }

.btn-ghost {
  background: transparent; color: var(--muted); border-color: transparent;
}
.btn-ghost:hover { background: var(--paper-alt); }

.btn-danger {
  background: var(--red); color: #fff;
}
.btn-danger:hover { background: var(--accent-dark); }

.btn-soft {
  background: rgba(255,255,255,.15); color: #fff; border-color: rgba(255,255,255,.3);
}
.btn-soft:hover { background: rgba(255,255,255,.25); }

.btn-sm  { padding: .4375rem 1rem; font-size: .75rem; }
.btn-lg  { padding: .875rem 1.875rem; font-size: .9375rem; }
.btn-block { width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* ── Cards ──────────────────────────────────────────────────────────────────── */
.card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.card-body { padding: 1.5rem; }
.card-header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between;
}

/* ── Badges / tags (rectangulaires, jamais en pastille) ───────────────────────── */
.badge {
  display: inline-flex; align-items: center; gap: .3rem;
  padding: .1875rem .5625rem; border-radius: 2px;
  font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  border: 1px solid transparent;
}
.badge-blue,
.badge-primary { background: transparent; color: var(--ink); border-color: var(--ink); }
.badge-green   { background: var(--green-bg); color: var(--green); }
.badge-red     { background: var(--red-bg); color: var(--red); }
.badge-orange  { background: var(--orange-bg); color: var(--orange); }
.badge-gray    { background: var(--paper-alt); color: var(--muted); }
/* legacy */
.badge-warning { background: var(--orange-bg); color: var(--orange); }
.badge-success { background: var(--green-bg); color: var(--green); }
.badge-danger  { background: var(--red-bg); color: var(--red); }

/* ── Forms ──────────────────────────────────────────────────────────────────── */
.form-group { margin-bottom: 1rem; }
.form-label {
  display: block; font-size: .8125rem; font-weight: 600;
  margin-bottom: .3125rem; color: var(--ink);
}
.form-control {
  display: block; width: 100%;
  padding: .5625rem .8125rem;
  font-size: .875rem; font-family: inherit;
  border: 1.5px solid var(--line); border-radius: var(--radius);
  background: var(--white); color: var(--ink);
  outline: none; transition: border-color .15s;
}
.form-control:focus { border-color: var(--ink); }
.form-control:disabled { background: var(--paper-alt); opacity: .6; }
.form-control.is-invalid { border-color: var(--red); }
.form-text { font-size: .75rem; color: var(--muted); margin-top: .25rem; }
.form-check { display: flex; gap: .625rem; align-items: flex-start; margin-bottom: .75rem; }
.form-check input { margin-top: .1875rem; flex-shrink: 0; accent-color: var(--ink); }
.form-check-label { font-size: .8125rem; color: var(--muted); line-height: 1.5; }

/* ── Alert / Flash ──────────────────────────────────────────────────────────── */
.alert {
  display: flex; align-items: flex-start; gap: .75rem;
  padding: .875rem 1rem; border-radius: var(--radius);
  font-size: .875rem; margin-bottom: 1rem;
}
.alert-success { background: var(--green-bg); color: var(--green); border: 1px solid #bcdcc0; }
.alert-error   { background: var(--red-bg);   color: var(--red);   border: 1px solid #eab8bf; }
.alert-warning { background: var(--orange-bg); color: var(--orange); border: 1px solid #e6cc9e; }
.alert-info    { background: var(--paper-alt); color: var(--ink); border: 1px solid var(--line); }

/* ── Steps indicator ────────────────────────────────────────────────────────── */
.steps { display: flex; align-items: center; margin-bottom: 1.75rem; }
.step  { display: flex; flex-direction: column; align-items: center; gap: .25rem; }
.step-circle {
  width: 30px; height: 30px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .75rem; flex-shrink: 0;
  border: 1.5px solid var(--line); background: #fff; color: var(--muted);
  transition: all .3s;
}
.step-circle.done   { background: var(--ink); border-color: var(--ink); color: #fff; }
.step-circle.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.step-label { font-size: .6875rem; font-weight: 600; color: var(--muted); white-space: nowrap; }
.step-label.active { color: var(--ink); }
.step-line {
  flex: 1; height: 1px; background: var(--line);
  margin: 0 .5rem; margin-bottom: 1.25rem; transition: background .3s;
}
.step-line.done { background: var(--ink); }

/* ── Table ──────────────────────────────────────────────────────────────────── */
.table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.table thead tr { background: var(--paper-alt); }
.table th {
  padding: .75rem 1rem; text-align: left;
  font-size: .6875rem; font-weight: 700; color: var(--muted);
  text-transform: uppercase; letter-spacing: .06em;
  border-bottom: 1px solid var(--line);
}
.table td { padding: .875rem 1rem; border-bottom: 1px solid var(--line); }
.table tbody tr { transition: background .15s; cursor: default; }
.table tbody tr:hover { background: var(--paper-alt); }

/* ── Upload zone ────────────────────────────────────────────────────────────── */
.upload-zone {
  border: 1.5px dashed var(--line); border-radius: var(--radius-lg);
  padding: 2rem; text-align: center;
  background: var(--paper); transition: all .2s; cursor: pointer;
}
.upload-zone:hover, .upload-zone.dragover {
  border-color: var(--ink); background: var(--paper-alt);
}

/* ── Pricing cards ──────────────────────────────────────────────────────────── */
.pricing-card {
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 1.75rem;
  transition: border-color .2s;
}
.pricing-card:hover { border-color: var(--ink); }
.pricing-card.featured { border: 1.5px solid var(--accent); background: var(--white); position: relative; }
.pricing-price { font-family: var(--serif); font-size: 2.5rem; font-weight: 600; color: var(--ink); line-height: 1; }
.pricing-price span { font-family: var(--sans); font-size: 1rem; font-weight: 600; color: var(--muted); }
.pricing-badge {
  display: inline-block; background: var(--accent); color: #fff;
  padding: .25rem .625rem; border-radius: 2px;
  font-size: .6875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin-bottom: .75rem;
}

/* ── Page header (bandeau éditorial plat, sans dégradé) ───────────────────────── */
.page-header {
  padding-top: 68px;
  background: var(--ink); color: #fff;
  border-bottom: 3px solid var(--accent);
}
.page-header-inner { padding: 3rem 0 2.5rem; }
.page-header h1 { color: #fff; font-size: clamp(1.75rem, 3.5vw, 2.5rem); margin-bottom: 0; }
.page-header .eyebrow { color: var(--accent-soft); }
.page-header .eyebrow::before { background: var(--accent-soft); }

.page-header-light {
  padding-top: 68px;
  background: var(--paper); border-bottom: 1px solid var(--line);
}
.page-header-light-inner { padding: 3rem 0 2.5rem; }
.page-header-light h1 { color: var(--ink); font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: .75rem; }

/* ── Hero (legacy, non utilisé — conservé plat par sécurité) ──────────────────── */
.hero {
  padding-top: 68px;
  background: var(--ink);
  color: #fff;
  padding-bottom: 0;
}
.hero h1 { font-size: clamp(2rem, 4.5vw, 3.5rem); font-weight: 600; line-height: 1.06; letter-spacing: -.02em; margin-bottom: 1.25rem; }
.hero p   { font-size: 1.0625rem; opacity: .85; line-height: 1.7; margin-bottom: 2rem; max-width: 440px; }

/* ── Hero éditorial asymétrique ────────────────────────────────────────────── */
.hero-v2 {
  padding-top: 68px;
  background: var(--paper);
  border-bottom: 1px solid var(--line);
}
.hero-v2-inner {
  max-width: 1200px; margin: 0 auto; padding: 4.5rem 3rem 4rem;
  display: grid; grid-template-columns: 1.15fr .85fr; gap: 4.5rem; align-items: start;
}
.hero-v2 h1 {
  font-size: clamp(2.25rem, 4.5vw, 3.5rem); font-weight: 600;
  line-height: 1.08; letter-spacing: -.01em; margin-bottom: 1.25rem; color: var(--ink);
}
.hero-v2 h1 em { font-style: italic; color: var(--accent); }
.hero-v2 p { font-size: 1.0625rem; color: var(--muted); line-height: 1.7; margin-bottom: 2rem; max-width: 460px; }

/* ── Stats bar ──────────────────────────────────────────────────────────────── */
.stats-bar { background: var(--ink); border-top: 1px solid rgba(255,255,255,.08); }
.stats-grid {
  max-width: 1200px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4,1fr);
}
.stat-item { padding: 2.75rem 2.25rem; border-right: 1px solid rgba(255,255,255,.12); }
.stat-item:last-child { border-right: none; }
.stat-value { font-family: var(--serif); font-size: 2.75rem; font-weight: 600; color: #fff; letter-spacing: -.01em; line-height: 1; }
.stat-label { font-size: .8125rem; color: rgba(255,255,255,.55); margin-top: .5rem; line-height: 1.4; }

/* ── Process grid ───────────────────────────────────────────────────────────── */
.process-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden;
}
.process-step { padding: 2.5rem 2.25rem; border-right: 1px solid var(--line); transition: background .2s; }
.process-step:last-child { border-right: none; }
.process-step:hover { background: var(--paper-alt); }
.process-num { font-family: var(--serif); font-size: 3.5rem; font-weight: 600; color: var(--line); line-height: 1; margin-bottom: 1.5rem; }

/* ── FAQ accordion ──────────────────────────────────────────────────────────── */
.faq-item { border-bottom: 1px solid var(--line); }
.faq-btn {
  width: 100%; display: flex; justify-content: space-between; align-items: center;
  padding: 1.125rem 0; font-size: .9375rem; font-weight: 600; color: var(--ink);
  background: none; border: none; cursor: pointer; text-align: left; gap: 1rem;
}
.faq-btn .toggle { font-size: 1.25rem; color: var(--muted); flex-shrink: 0; transition: transform .3s; }
.faq-btn.open .toggle { transform: rotate(45deg); }
.faq-answer { font-size: .875rem; color: var(--muted); line-height: 1.7; padding-bottom: 1.125rem; }

/* ── Eligibility widget ─────────────────────────────────────────────────────── */
.elig-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.elig-header { padding: 1.125rem 1.5rem; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
.elig-progress { height: 3px; background: var(--paper-alt); }
.elig-progress-bar { height: 100%; background: var(--accent); transition: width .4s cubic-bezier(.16,1,.3,1); }
.elig-body { padding: 1.5rem; }
.elig-option {
  display: flex; align-items: center; gap: .75rem; padding: .6875rem .875rem;
  border-radius: 2px; border: 1.5px solid var(--line); background: var(--white);
  color: var(--ink); font-size: .875rem; font-weight: 500; cursor: pointer; text-align: left;
  transition: all .15s; width: 100%; margin-bottom: .5rem;
}
.elig-option:hover, .elig-option.selected { border-color: var(--ink); background: var(--paper-alt); }
.elig-radio {
  width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all .15s;
}
.elig-option.selected .elig-radio { border-color: var(--ink); }
.elig-radio-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink); }

/* ── Document item ──────────────────────────────────────────────────────────── */
.doc-item {
  display: flex; align-items: center; gap: .75rem; padding: .8125rem 1rem;
  border-radius: 2px; border: 1.5px solid var(--line); background: var(--white);
  transition: all .2s;
}
.doc-item.ok    { border-color: var(--green); background: var(--green-bg); }
.doc-item.warn  { border-color: var(--orange); background: var(--orange-bg); }
.doc-item.error { border-color: var(--red); background: var(--red-bg); }
.doc-check {
  width: 22px; height: 22px; border-radius: 2px; border: 2px solid var(--line);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all .2s;
}
.doc-item.ok .doc-check { border-color: var(--green); background: var(--green); color: #fff; }

/* ── Checklist typographique (remplace les puces émoji) ───────────────────────── */
.check-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .45rem; }
.check-list li { position: relative; padding-left: 1.375rem; }
.check-list li::before {
  content: '✓'; position: absolute; left: 0; top: 0;
  color: var(--accent); font-weight: 700; font-size: .8125rem;
}

/* ── Footer ─────────────────────────────────────────────────────────────────── */
footer {
  background: var(--ink); color: rgba(255,255,255,.6);
  padding: 2.5rem 3rem;
}
.footer-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 1rem; font-size: .8125rem;
}
.footer-brand { font-family: var(--serif); font-weight: 600; font-size: 1.0625rem; color: #fff; }
.footer-brand span { color: var(--accent-soft); }
.footer-links { display: flex; gap: 1.25rem; }
.footer-links a { color: rgba(255,255,255,.55); transition: color .15s; }
.footer-links a:hover { color: #fff; text-decoration: none; }
.footer-copy { color: rgba(255,255,255,.45); font-size: .75rem; }

/* ── Utilities ──────────────────────────────────────────────────────────────── */
.d-flex          { display: flex; }
.align-center    { align-items: center; }
.justify-between { justify-content: space-between; }
.justify-center  { justify-content: center; }
.text-center     { text-align: center; }
.text-muted      { color: var(--muted); }
.text-navy       { color: var(--ink); }
.text-peach      { color: var(--accent); }
.text-green      { color: var(--green); }
.text-red        { color: var(--red); }
.gap-1  { gap: .5rem; }
.gap-2  { gap: 1rem; }
.gap-3  { gap: 1.5rem; }
.mt-1   { margin-top: .5rem; }
.mt-2   { margin-top: 1rem; }
.mt-3   { margin-top: 1.5rem; }
.mb-1   { margin-bottom: .5rem; }
.mb-2   { margin-bottom: 1rem; }
.mb-3   { margin-bottom: 1.5rem; }
.mb-0   { margin-bottom: 0; }
.p-0    { padding: 0; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 700; }
.fs-sm  { font-size: .8125rem; }
.fs-xs  { font-size: .75rem; }
.w-100  { width: 100%; }

/* ── Grid helpers ───────────────────────────────────────────────────────────── */
.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }

/* ── Admin sidebar layout ───────────────────────────────────────────────────── */
.admin-layout { display: flex; min-height: 100vh; padding-top: 0; }
.admin-sidebar {
  width: 220px; flex-shrink: 0; background: var(--ink); color: rgba(255,255,255,.8);
  display: flex; flex-direction: column; position: fixed; top: 0; left: 0; bottom: 0;
  z-index: 50;
}
.admin-sidebar-brand {
  padding: 1.25rem 1.25rem; border-bottom: 1px solid rgba(255,255,255,.1);
  font-family: var(--serif); font-weight: 600; font-size: 1.0625rem; color: #fff;
}
.admin-sidebar-brand span { color: var(--accent-soft); }
.admin-nav { flex: 1; padding: 1rem .75rem; display: flex; flex-direction: column; gap: .25rem; }
.admin-nav a {
  display: flex; align-items: center; gap: .625rem; padding: .5rem .75rem;
  border-radius: var(--radius); font-size: .875rem; font-weight: 500;
  color: rgba(255,255,255,.7); transition: all .15s;
}
.admin-nav a:hover, .admin-nav a.active {
  background: rgba(255,255,255,.12); color: #fff; text-decoration: none;
}
.admin-content { margin-left: 220px; flex: 1; min-height: 100vh; background: var(--paper); }
.admin-topbar {
  background: var(--white); border-bottom: 1px solid var(--line);
  padding: 0 1.5rem; height: 56px; display: flex; align-items: center; justify-content: space-between;
}
.admin-main { padding: 1.5rem; }

/* ── Dashboard progress bar ─────────────────────────────────────────────────── */
.progress-bar { height: 4px; background: var(--line); border-radius: 2px; overflow: hidden; }
.progress-bar-fill { height: 100%; background: var(--accent); border-radius: 2px; transition: width .8s cubic-bezier(.16,1,.3,1); }

/* ── Spinner ────────────────────────────────────────────────────────────────── */
.spinner {
  width: 14px; height: 14px; border: 2px solid rgba(255,255,255,.3);
  border-top-color: #fff; border-radius: 50%; animation: spin .7s linear infinite; display: inline-block;
}

/* ── Auth page ──────────────────────────────────────────────────────────────── */
.auth-page {
  min-height: 100vh; padding-top: 68px; background: var(--paper);
  display: flex; align-items: center; justify-content: center; padding: 5rem 1.25rem;
}
.auth-box { width: 100%; max-width: 420px; }
.auth-title {
  text-align: center; margin-bottom: 1.75rem;
}
.auth-title h1 { font-size: 1.75rem; font-weight: 600; color: var(--ink); letter-spacing: -.01em; margin-bottom: .375rem; }
.auth-title h1 span { color: var(--accent); }
.auth-title p { color: var(--muted); font-size: .875rem; }

/* ── Divider ────────────────────────────────────────────────────────────────── */
.divider { height: 1px; background: var(--line); margin: 1.25rem 0; }

/* ── Page content padding (below fixed navbar) ──────────────────────────────── */
main { padding-top: 68px; }
main:has(.hero-v2) { padding-top: 0; }
main:has(.page-header) { padding-top: 0; }
main:has(.page-header-light) { padding-top: 0; }

/* ── Responsive ─────────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .container { padding: 0 1.25rem; }
  .hero-v2-inner { grid-template-columns: 1fr; gap: 2rem; padding: 3rem 1.25rem; }
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .process-grid { grid-template-columns: 1fr; }
  .process-step { border-right: none; border-bottom: 1px solid var(--line); }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .navbar-nav { display: none; }
  .navbar-nav.open { display: flex; flex-direction: column; position: fixed; top: 68px; left: 0; right: 0; background: rgba(250,250,247,.98); padding: 1rem; border-bottom: 1px solid var(--line); gap: .5rem; }
  #nav-toggle { display: block !important; }
  .footer-inner { flex-direction: column; text-align: center; }
  .footer-links { flex-wrap: wrap; justify-content: center; }
}
