/* ===== Stable Brand Tokens ===== */
:root{
  /* Brand colours (from Stable palette) */
  --canvas:#FFFCF7;      /* cream background */
  --ink:#041B2B;         /* primary navy for headings */
  --ink-2:#113C58;       /* secondary navy */
  --text:#282828;        /* body text on cream */
  --accent:#31AFCE;      /* CTA / links / icons */
  --line:#E7EBEE;        /* borders/dividers */

  /* Radii, shadows, spacing */
  --radius:14px;
  --shadow:0 10px 28px rgba(2,6,23,.06);
  --space:72px;
}

/* ===== Fonts (Gotham primary; fallbacks safe) ===== */
/* If Gotham webfonts are available, uncomment and point to your .woff2 files
@font-face{
  font-family:"Gotham";
  src:url("/assets/Gotham-Book.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Gotham";
  src:url("/assets/Gotham-Bold.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}
*/
html{ scroll-behavior:smooth; }
body{
  background:var(--canvas);
  color:var(--text);
  font:400 18px/1.7 "Gotham","Calibri Light",Calibri,"Segoe UI",Inter,system-ui,Arial,sans-serif;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}

/* Page frame (desktop only) */
@media (min-width:901px){
  body{ box-shadow: inset 0 0 80px rgba(0,0,0,.035), inset 0 0 220px rgba(0,0,0,.03); }
}

/* Headings */
h1,h2,h3,h4{ color:var(--ink); letter-spacing:.1px; margin:0 0 .5rem; }
h1{ font-weight:800; font-size:clamp(34px,5vw,48px); }
h2{ font-weight:700; font-size:clamp(28px,3.5vw,36px); }
h3{ font-weight:700; font-size:22px; }

/* Links & emphasis */
a{ color:var(--accent); text-decoration:none; }
a:hover, a:focus{ text-decoration:underline; }

/* Header / nav */
.header{ background:#041B2B; position:sticky; top:0; z-index:20; }
.header .container{ max-width:1120px; margin:0 auto; padding:.75rem 1rem; display:flex; align-items:center; justify-content:space-between; }
.nav a{ color:#fff; padding:.75rem .75rem; display:inline-block; border-bottom:0; }
.nav a:hover,.nav a:focus,.nav a.is-active{ border-bottom:2px solid var(--accent); }

/* Footer */
.footer{ background:var(--canvas); }
.footer .inner{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); max-width:1120px; margin:var(--space) auto; padding:1.25rem; }

/* Layout helpers */
.container{ max-width:1120px; margin:0 auto; padding:0 1rem; }
.section{ padding:var(--space) 0; }
.card{
  background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:var(--shadow); padding:28px;
}
.grid{ display:grid; gap:24px; }
@media (min-width:900px){ .grid-2{ grid-template-columns:1fr 1fr; } .grid-3{ grid-template-columns:repeat(3,1fr);} }

/* Buttons */
.btn{ display:inline-block; border-radius:12px; padding:.9rem 1.1rem; transition:.2s ease; border:1px solid transparent; }
.btn-primary{ background:var(--accent); color:#fff; border-color:var(--accent); }
.btn-primary:hover{ filter:brightness(1.04); box-shadow:0 6px 20px rgba(49,175,206,.28); transform:translateY(-1px); }
.btn-secondary{ background:#fff; color:var(--ink); border:1px solid var(--line); }
.btn-secondary:hover{ box-shadow:var(--shadow); transform:translateY(-1px); }

/* Chips / tags */
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ background:#fff; border:1px solid var(--line); color:var(--ink); padding:6px 12px; border-radius:8px; font-size:14px; line-height:1.4; white-space:nowrap; }
.chip--accent{ background:var(--accent); color:#fff; border:none; }

/* Forms (PAYE calculator) */
label{ color:var(--ink); font-weight:600; display:block; margin-bottom:.25rem; }
.input, select, textarea{
  background:#fff; color:var(--text); width:100%;
  border:1px solid var(--line); border-radius:10px; padding:.75rem .9rem;
}
.input:focus, select:focus, textarea:focus{ outline:2px solid var(--accent); outline-offset:1px; }

/* Tables (results) */
.table{ width:100%; border-collapse:separate; border-spacing:0; }
.table th, .table td{ padding:.75rem 1rem; border-bottom:1px solid var(--line); text-align:left; }
.table th{ color:var(--ink); font-weight:700; }
.table .num{ text-align:right; }

/* Accessibility essentials */
button,.btn{ min-height:44px; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
