/* ============================================================
   GIMBAL RESEARCH — shared stylesheet
   Edit colours and type in :root. Everything else follows.
   ============================================================ */

:root{
  --ink:#0B1F3A;        /* navy — primary */
  --ink-90:#16304F;
  --gold:#C9A227;       /* accent — the meridian line */
  --paper:#F7F8FA;      /* page background */
  --card:#FFFFFF;
  --rule:#E3E6EB;
  --mute:#66738A;
  --green:#15803D;
  --red:#B91C1C;

  --wrap:1080px;
  --display:'Archivo',system-ui,sans-serif;
  --body:'Inter',system-ui,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{scroll-behavior:smooth}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:15.5px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
a{color:inherit}

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

/* ── Type ───────────────────────────────────────────────── */
h1,h2,h3{font-family:var(--display);letter-spacing:-.025em;line-height:1.12}
h1{font-size:clamp(31px,5.6vw,54px);font-weight:700}
h2{font-size:clamp(23px,3.4vw,33px);font-weight:600}
h3{font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.35}

.eyebrow{
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  font-weight:600;color:var(--gold);
}
.lede{font-size:17px;color:var(--mute);line-height:1.65;max-width:60ch}
.muted{color:var(--mute)}
.small{font-size:13px}

/* The gold rule — recurring structural device */
.meridian{ /* gold rule */ height:2px;width:56px;background:var(--gold);margin:18px 0 26px}
.meridian.center{margin-left:auto;margin-right:auto}

/* ── Buttons ────────────────────────────────────────────── */
.btn{
  display:inline-block;font-family:var(--display);font-size:13.5px;font-weight:600;
  letter-spacing:.02em;padding:13px 24px;border-radius:6px;text-decoration:none;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn-primary{background:var(--ink);color:#fff;border:1px solid var(--ink)}
.btn-primary:hover{background:var(--ink-90)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--rule)}
.btn-ghost:hover{border-color:var(--ink)}
.btn-gold{background:var(--gold);color:#1a1405;border:1px solid var(--gold)}
.btn-gold:hover{background:#b8931f}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}

/* ── Header ─────────────────────────────────────────────── */
.site-head{
  position:sticky;top:0;z-index:50;background:rgba(247,248,250,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);
}
.head-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 24px;max-width:var(--wrap);margin:0 auto}
.brand{display:flex;align-items:center;text-decoration:none;color:var(--ink)}
.brand-full{height:38px;width:auto;display:block}
.brand-mini{height:32px;width:auto;display:none}
.nav{display:flex;gap:26px;align-items:center}
.nav a{
  font-size:13.5px;font-weight:500;text-decoration:none;color:var(--mute);
  padding:4px 0;border-bottom:2px solid transparent;transition:color .16s ease,border-color .16s ease;
}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--gold)}

/* ── Sections ───────────────────────────────────────────── */
.section{padding:76px 0}
.section-tight{padding:52px 0}
.section-dark{background:var(--ink);color:#fff}
.section-dark .lede,.section-dark .muted{color:#9BAAC2}
.section-dark h2{color:#fff}
.divider{height:1px;background:var(--rule)}

/* ── Hero ───────────────────────────────────────────────── */
.hero{padding:74px 0 56px}
.hero h1{max-width:16ch}
.hero .lede{margin-top:20px}

/* ── Signature: the meridian session strip ──────────────── */
.sessions{
  margin-top:52px;border:1px solid var(--rule);border-radius:12px;
  background:var(--card);overflow:hidden;
}
.sessions-head{
  display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  padding:12px 20px;border-bottom:1px solid var(--rule);background:#FBFCFD;
}
.sessions-head span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);font-weight:600}
.sessions-grid{display:grid;grid-template-columns:1fr 1fr}
.session{padding:22px 20px}
.session + .session{border-left:1px solid var(--rule)}
.session-city{font-family:var(--display);font-size:15px;font-weight:600;letter-spacing:-.01em}
.session-index{font-size:11.5px;color:var(--mute);margin-top:2px}
.session-time{
  font-family:var(--display);font-size:29px;font-weight:700;letter-spacing:-.02em;
  margin-top:14px;font-variant-numeric:tabular-nums;
}
.status{display:inline-flex;align-items:center;gap:7px;margin-top:9px;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.status .dot{width:7px;height:7px;border-radius:50%;background:var(--mute)}
.status.open{color:var(--green)}
.status.open .dot{background:var(--green)}
.status.closed{color:var(--mute)}
.session-hours{font-size:11.5px;color:var(--mute);margin-top:12px;padding-top:12px;border-top:1px solid var(--rule)}

/* ── Card grids ─────────────────────────────────────────── */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card{
  background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:26px 24px;
}
.card h3{margin-bottom:9px}
.card p{font-size:14px;color:var(--mute);line-height:1.65}
.card-num{font-family:var(--display);font-size:11px;font-weight:700;color:var(--gold);letter-spacing:.12em;display:block;margin-bottom:12px}

/* ── Steps (a real sequence, so numbering earns its place) ─ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:var(--card)}
.step{padding:28px 24px}
.step + .step{border-left:1px solid var(--rule)}
.step-k{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--gold)}
.step h3{margin:12px 0 8px}
.step p{font-size:14px;color:var(--mute);line-height:1.65}

/* ── Insights list ──────────────────────────────────────── */
.post{
  display:block;text-decoration:none;background:var(--card);border:1px solid var(--rule);
  border-radius:12px;padding:26px 24px;transition:border-color .18s ease,transform .18s ease;
}
.post:hover{border-color:var(--ink)}
.post-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:600}
.tag{color:var(--gold)}
.post h3{margin:12px 0 9px;font-size:20px}
.post p{font-size:14.5px;color:var(--mute);line-height:1.65}
.post-more{display:inline-block;margin-top:14px;font-size:13px;font-weight:600;color:var(--ink)}
.post-list{display:flex;flex-direction:column;gap:16px}

/* ── Forms ──────────────────────────────────────────────── */
.form{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:28px 26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--mute);margin-bottom:7px}
.field input,.field textarea,.field select{
  width:100%;font-family:var(--body);font-size:15px;color:var(--ink);
  background:#FBFCFD;border:1px solid var(--rule);border-radius:6px;padding:11px 13px;
  transition:border-color .16s ease;
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink)}
.field textarea{min-height:130px;resize:vertical}

/* ── Footer ─────────────────────────────────────────────── */
.site-foot{background:var(--ink);color:#9BAAC2;padding:52px 0 34px;margin-top:0}
.foot-top{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-brand{display:flex;align-items:center;text-decoration:none}
.foot-brand .brand-full{height:40px}
.foot-tag{font-size:12.5px;color:#9BAAC2;margin-top:10px;max-width:34ch;line-height:1.6}
.foot-nav{display:flex;gap:44px;flex-wrap:wrap}
.foot-col h4{font-family:var(--display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:12px}
.foot-col a{display:block;font-size:13.5px;color:#9BAAC2;text-decoration:none;margin-bottom:8px;transition:color .16s ease}
.foot-col a:hover{color:#fff}
.disclaimer{font-size:11px;line-height:1.75;color:#71809B;margin-top:26px;max-width:88ch}
.copyright{font-size:11.5px;color:#71809B;margin-top:20px}

/* ── Motion ─────────────────────────────────────────────── */
.rise{animation:rise .55s cubic-bezier(.2,.7,.3,1) both}
.rise-2{animation-delay:.08s}
.rise-3{animation-delay:.16s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}

/* Visible keyboard focus everywhere */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;border-radius:3px;
}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width:860px){
  .grid-3,.steps{grid-template-columns:1fr}
  .step + .step{border-left:none;border-top:1px solid var(--rule)}
}
@media (max-width:680px){
  .grid-2{grid-template-columns:1fr}
  .sessions-grid{grid-template-columns:1fr}
  .session + .session{border-left:none;border-top:1px solid var(--rule)}
  .head-inner{padding:12px 18px}
  .nav{gap:16px}
  .nav a{font-size:12.5px}
  .brand-full{height:32px}
  .section{padding:56px 0}
  .hero{padding:48px 0 40px}
  .foot-nav{gap:28px}
}
@media (max-width:430px){
  .brand-full{display:none}
  .brand-mini{display:block}
}
