/* Design tokens — colours, type, spacing, motion. Cobalt over navy anchor. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root{
  --color-bg:#fff;--color-surface:#f4f4f4;--color-surface-raised:#fff;
  --color-border:#e4e7eb;--color-border-strong:#d0d5db;
  --color-text:#1f2937;--color-text-muted:#6b7280;--color-text-subtle:#959595;
  --color-success:#00ad5e;--color-success-subtle:#e6f7ef;
  --color-warning:#b7791f;--color-warning-subtle:#fbf1dd;
  --color-error:#c0392b;--color-error-subtle:#fbe9e7;
  --color-info:#005dcc;--color-info-subtle:#f3f7ff;

  --color-primary:#005dcc;--color-primary-hover:#0b4ca6;--color-primary-active:#113575;
  --color-primary-subtle:#f3f7ff;--color-on-primary:#fff;
  --color-secondary:#101e33;--color-secondary-hover:#182b47;--color-secondary-active:#0a1524;
  --color-secondary-subtle:#eef2f9;--color-on-secondary:#fff;

  --font-sans:"Inter","Helvetica Neue",Arial,sans-serif;
  --font-display:var(--font-sans);--font-mono:var(--font-sans);--font-script:var(--font-sans);
  --weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;

  --text-display:4.25rem;--lh-display:1.02;--ls-display:-0.05em;
  --text-h1:3.5rem;--lh-h1:1.05;--ls-h1:-0.04em;
  --text-h2:3rem;--lh-h2:1.05;--ls-h2:-0.04em;
  --text-h3:1.5625rem;--lh-h3:1.15;--ls-h3:-0.02em;
  --text-h4:1.375rem;--lh-h4:1.28;--ls-h4:-0.02em;
  --text-lg:1.125rem;--lh-lg:1.5;--text-base:1rem;--lh-base:1.6;
  --text-sm:0.875rem;--lh-sm:1.5;--text-xs:0.75rem;--lh-xs:1.4;--ls-xs:0.02em;
  --text-overline:0.75rem;--lh-overline:1.2;--ls-overline:0.12em;
  --text-display-fluid:clamp(2.5rem,5vw + 1.25rem,4.25rem);

  --space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;
  --space-5:1.5rem;--space-6:2rem;--space-8:3rem;--space-10:4rem;--space-12:6rem;--space-16:8rem;
  --z-base:0;--z-raised:10;--z-dropdown:20;--z-sticky:30;--z-overlay:40;--z-modal:50;--z-toast:60;--z-tooltip:70;

  --radius-none:0;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1.25rem;--radius-full:9999px;

  --shadow-xs:0 1px 2px rgba(16,18,20,.06);--shadow-sm:0 2px 8px rgba(16,18,20,.08);
  --shadow-md:0 8px 24px rgba(16,18,20,.12);--shadow-lg:0 16px 48px rgba(16,18,20,.18);

  --duration-fast:150ms;--duration-base:250ms;--duration-slow:500ms;
  --ease-editorial:cubic-bezier(.44,0,.56,1);--ease-standard:cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font:var(--weight-regular) var(--text-base)/var(--lh-base) var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,picture,svg,video{display:block;max-width:100%}
a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-editorial)}
a:hover{color:var(--color-primary-hover)}
*:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}
*:focus:not(:focus-visible){outline:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--text-base);line-height:1;padding:var(--space-4) var(--space-6);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background-color var(--duration-base) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast)}
.btn:active{transform:translateY(1px)}
.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}
.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-lg)}
.btn-primary{background:var(--color-primary);color:var(--color-on-primary)}
.btn-primary:hover{background:var(--color-primary-hover);color:#fff}
.btn-outline{background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}
.btn-outline:hover{background:var(--color-surface)}
.btn-ghost{background:transparent;color:var(--color-text)}
.btn-ghost:hover{background:var(--color-surface)}
.btn-on-dark{color:#fff;border-color:rgba(255,255,255,.4)}
.btn-on-dark:hover{background:rgba(255,255,255,.12);color:rgba(255,255,255,.9)!important;border-color:rgba(255,255,255,.6)}
.hero .cds-btn:not(.btn-on-dark):hover,.dark .cds-btn:not(.btn-on-dark):hover{background:var(--color-primary-hover)!important}

/* Badge */
.badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--color-surface);color:var(--color-text-muted);border:1px solid var(--color-border)}

/* Fields */
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field label{font-weight:var(--weight-medium);font-size:var(--text-sm);color:var(--color-text)}
.field input,.field select,.field textarea{font:var(--weight-regular) var(--text-base)/1.4 var(--font-sans);color:var(--color-text);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-xs);transition:border-color var(--duration-fast) var(--ease-editorial),box-shadow var(--duration-fast)}
.field textarea{resize:vertical;min-height:150px;line-height:1.5}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-subtle)}

/* layout utilities */
.auto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5)}
.auto-grid.gap-6{gap:var(--space-6)}
.auto-grid.gap-8{gap:var(--space-8)}
.stack-sm{display:flex;flex-direction:column;gap:var(--space-3)}
.measure-c{max-width:60ch;margin-inline:auto}
.measure-c.narrow{max-width:40ch}
.section-pt{padding-top:var(--space-8)}
.lede-left{max-width:900px;margin-left:0}
.mt-4{margin-top:var(--space-4)}
.mt-5{margin-top:var(--space-5)}
.mt-6{margin-top:var(--space-6)}
.marker-sm{font-size:1.1rem}
.marker-lg{font-size:1.5rem}
.body-muted{color:var(--color-text-muted);font-size:var(--text-base);line-height:1.6}
.card-panel{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6)}
.card-text{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.6}
.mb-3{margin-bottom:var(--space-3)}
.mt-8{margin-top:var(--space-8)}
.contact-aside{position:sticky;top:120px;align-self:start}
.contact-card{box-shadow:var(--shadow-md);padding:var(--space-8)}
.direct-block{margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--color-border)}
@media (max-width:880px){.contact-aside{position:static}}
