/* Base: design tokens, light/dark themes, reset, typography */

:root{
  --bg:#F6F3EC;
  --surface:#FFFFFF;
  --surface-2:#EFEAE0;
  --ink:#1B2027;
  --ink-soft:#4A4F58;
  --navy:#16233B;
  --navy-ink:#0F1626;
  --accent:#C6811E;
  --accent-ink:#8F5C10;
  --line:rgba(27,32,39,0.14);
  --line-soft:rgba(27,32,39,0.08);
  --radius:14px;
  --shadow:0 12px 30px -18px rgba(15,22,38,0.35);
  --maxw:1120px;
  /* Dark navy panels (service/approach cards, banners, tickets) stay dark
     in both themes; --navy above is for navy text and outlines only. */
  --panel:#16233B;
  --panel-2:#243149;
  --panel-ink:#F6F3EC;
  --panel-ink-soft:rgba(246,243,236,0.85);
  --panel-border:transparent;
  /* Primary (non-accent) buttons */
  --btn-bg:#16233B;
  --btn-ink:#F6F3EC;
  --btn-hover-ink:#16233B;
  --error:#9A3B22;
  --error-bg:rgba(198,60,30,0.1);
  --error-line:rgba(198,60,30,0.3);
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#12151B;
    --surface:#1A1F28;
    --surface-2:#20262F;
    --ink:#EDEAE2;
    --ink-soft:#B7BAC2;
    --navy:#9FB6D9;
    --navy-ink:#DCE6F2;
    --accent:#E3A855;
    --accent-ink:#F2C583;
    --line:rgba(237,234,226,0.16);
    --line-soft:rgba(237,234,226,0.08);
    --shadow:0 12px 30px -18px rgba(0,0,0,0.6);
    --panel:#1C2B47;
    --panel-2:#26375A;
    --panel-ink:#F1EEE6;
    --panel-ink-soft:rgba(241,238,230,0.82);
    --panel-border:rgba(159,182,217,0.16);
    --btn-bg:#EDEAE2;
    --btn-ink:#12151B;
    --btn-hover-ink:#EDEAE2;
    --error:#F0A58F;
    --error-bg:rgba(240,165,143,0.1);
    --error-line:rgba(240,165,143,0.35);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#12151B;
  --surface:#1A1F28;
  --surface-2:#20262F;
  --ink:#EDEAE2;
  --ink-soft:#B7BAC2;
  --navy:#9FB6D9;
  --navy-ink:#DCE6F2;
  --accent:#E3A855;
  --accent-ink:#F2C583;
  --line:rgba(237,234,226,0.16);
  --line-soft:rgba(237,234,226,0.08);
  --shadow:0 12px 30px -18px rgba(0,0,0,0.6);
  --panel:#1C2B47;
  --panel-2:#26375A;
  --panel-ink:#F1EEE6;
  --panel-ink-soft:rgba(241,238,230,0.82);
  --panel-border:rgba(159,182,217,0.16);
  --btn-bg:#EDEAE2;
  --btn-ink:#12151B;
  --btn-hover-ink:#EDEAE2;
  --error:#F0A58F;
  --error-bg:rgba(240,165,143,0.1);
  --error-line:rgba(240,165,143,0.35);
  color-scheme: dark;
}
/* the logo is a navy mark on transparent; turn it off-white in dark mode */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .brand-logo,
  :root:not([data-theme="light"]) .footer-logo{ filter:brightness(0) invert(0.93); }
}
:root[data-theme="dark"] .brand-logo,
:root[data-theme="dark"] .footer-logo{ filter:brightness(0) invert(0.93); }

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Work Sans', ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
h1,h2,h3,.display{
  font-family:'Bricolage Grotesque', 'Work Sans', system-ui, sans-serif;
  font-weight:700;
  line-height:1.08;
  text-wrap:balance;
  color:var(--ink);
  margin:0;
}
p{margin:0;}
a{color:inherit;}
img,svg{max-width:100%;display:block;}
img{height:auto;}
.container{
  width:100%;
  max-width:var(--maxw);
  margin:0 auto;
  padding-inline:clamp(16px, 4vw, 24px);
}
.eyebrow{
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--accent);
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
