/* ============================================================
   Data & Knowledge Enterprise
   Palette is derived from the supplied logo: navy #272B3A.
   Ember has two values on purpose:
     --ember      solid fills and display type 24px and above
     --ember-ink  any text below 24px (passes WCAG AA on white,
                  on --wash and on --ember-wash)
   ============================================================ */

:root{
  --paper:#FFFFFF;
  --wash:#F4F6F8;
  --rule:#E2E7EC;
  --rule-strong:#CFD7E0;

  --ink:#272B3A;          /* exact logo navy */
  --ink-deep:#1C1F2B;     /* dark bands and footer */
  --ink-soft:#575F6E;
  --ink-faint:#8C95A3;

  --ember:#DC4A21;        /* large type, solid fills */
  --ember-ink:#B23A16;    /* small type, links, 5.9:1 on white */
  --ember-wash:#FDF0EC;

  --steel:#356388;
  --steel-wash:#EDF2F7;

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Menlo,monospace;

  --pad:clamp(20px,5vw,72px);
  --max:1160px;
  --nav-h:74px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.narrow{max-width:820px}

/* ---------- skip link ---------- */
.skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--ink);color:#fff;padding:12px 18px;
  font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;
}
.skip:focus{left:0}

/* ---------- type ---------- */
.eyebrow{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 18px;
}
.d1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.6vw,56px);line-height:1.06;letter-spacing:-.015em;margin:0 0 22px}
.d2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.8vw,42px);line-height:1.12;letter-spacing:-.012em;margin:0 0 20px}
.d3{font-family:var(--serif);font-weight:500;font-size:clamp(21px,2.2vw,27px);line-height:1.22;margin:0 0 12px}
.d4{font-family:var(--sans);font-weight:600;font-size:17px;line-height:1.4;margin:0 0 10px}
.said{color:var(--ember)}
.lede{font-size:clamp(18px,1.9vw,21px);line-height:1.55;color:var(--ink-soft);max-width:56ch;margin:0 0 30px}
p{margin:0 0 18px}
p:last-child{margin-bottom:0}
.muted{color:var(--ink-soft)}
.small{font-size:15.5px}
strong{font-weight:600;color:var(--ink)}

.inline-link{color:var(--ember-ink);text-decoration:none;border-bottom:1px solid rgba(178,58,22,.35)}
.inline-link:hover{border-bottom-color:var(--ember-ink)}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  border-bottom:1px solid var(--rule);
}
@supports (backdrop-filter:blur(10px)){
  .nav{backdrop-filter:blur(10px)}
}
.nav-in{
  max-width:var(--max);margin:0 auto;padding:0 var(--pad);
  min-height:var(--nav-h);display:flex;align-items:center;gap:26px;
}
/* The nav mark is the DKE badge plus the wordmark as live text beside it, so
   the words stay crisp at any size. The badge is 300x234, so a 52px width
   renders about 41px tall inside the 74px bar. */
.mark{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;flex-shrink:0}
.mark img{width:52px;height:auto}
.mark span{
  font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-soft);max-width:98px;line-height:1.35;
}
.nav-links{display:flex;gap:22px;align-items:center;list-style:none;margin:0;padding:0}
.nav-links a{
  display:inline-block;padding:8px 0;color:var(--ink-soft);text-decoration:none;
  font-family:var(--mono);font-size:12px;letter-spacing:.07em;text-transform:uppercase;
  border-bottom:1px solid transparent;
}
.nav-links a:hover{color:var(--ink)}
.nav-links a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ember)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  text-decoration:none;cursor:pointer;
  font-family:var(--mono);font-size:12px;letter-spacing:.07em;text-transform:uppercase;
  padding:13px 20px;border-radius:2px;border:1px solid var(--ink);
  background:var(--ink);color:#fff;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn:hover{background:var(--ember);border-color:var(--ember);color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--rule-strong)}
.btn-ghost:hover{background:transparent;color:var(--ember-ink);border-color:var(--ember)}
.btn-sm{padding:10px 14px;font-size:11px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.nav .nav-toggle{display:none}

/* ---------- sections ---------- */
section{padding:clamp(54px,6.5vw,100px) 0}
section.flush-top{padding-top:0}
.tint{background:var(--wash)}
.hr{border:0;border-top:1px solid var(--rule);margin:0}
.head{max-width:64ch;margin-bottom:clamp(32px,3.6vw,52px)}
.hero{padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(42px,4.6vw,70px)}
/* Headline column runs wide, tokens centre against it. The tokens were bottom
   aligned when there were three of them; with two that left a large gap at the
   top right, so they sit centred instead. */
.hero-grid{display:grid;grid-template-columns:1.9fr .8fr;gap:clamp(32px,5vw,72px);align-items:center}

/* ---------- number tokens ---------- */
.tokens{display:grid;gap:10px}
.token{display:flex;align-items:baseline;gap:14px;background:var(--wash);padding:16px 18px;border-radius:3px}
.token b{font-family:var(--serif);font-weight:400;font-size:29px;line-height:1;color:var(--steel);white-space:nowrap}
.token span{font-size:14.5px;line-height:1.42;color:var(--ink-soft)}
.token.em b{color:var(--ember)}

/* ---------- before / after pairs (signature device) ---------- */
.shifts{display:grid;grid-template-columns:repeat(2,1fr);gap:0 34px;list-style:none;margin:0;padding:0}
.shift{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:15px 0;border-top:1px solid var(--rule);
}
.chip{font-size:14.5px;padding:6px 12px;border-radius:2px;background:var(--wash);color:var(--ink-soft)}
.chip.to{background:var(--ember-wash);color:var(--ember-ink)}
.arrow{font-family:var(--mono);color:var(--ink-faint);font-size:13px}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px)}
.cards.two{grid-template-columns:repeat(2,1fr)}
.cards.four{grid-template-columns:repeat(4,1fr)}
.card{
  border:1px solid var(--rule);border-radius:3px;padding:clamp(22px,2.4vw,32px);
  background:var(--paper);display:flex;flex-direction:column;
}
.card.on-tint{background:var(--paper)}
.card .num{font-family:var(--mono);font-size:11px;letter-spacing:.13em;color:var(--ember-ink);margin:0 0 16px;text-transform:uppercase}
.card ul{margin:0 0 18px;padding-left:18px}
.card li{margin-bottom:7px;font-size:15.5px;color:var(--ink-soft)}
.card .go{
  margin-top:auto;font-family:var(--mono);font-size:11.5px;letter-spacing:.09em;
  text-transform:uppercase;text-decoration:none;color:var(--ember-ink);
}
.card .go:hover{color:var(--ink);text-decoration:underline}
a.card{text-decoration:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
a.card:hover{border-color:var(--rule-strong);box-shadow:0 6px 22px rgba(39,43,58,.07);transform:translateY(-2px)}

/* ---------- service map: at-a-glance grid, doubles as in-page nav ---------- */
.svc-map{
  list-style:none;margin:clamp(30px,3.6vw,46px) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:3px;overflow:hidden;
}
.svc-map li{background:var(--paper);display:flex}
.svc-tile{
  display:flex;flex-direction:column;gap:8px;flex:1;padding:20px 20px 22px;
  text-decoration:none;transition:background-color .18s ease;
}
.svc-tile:hover,.svc-tile:focus-visible{background:var(--wash)}
.svc-tile-num{font-family:var(--mono);font-size:11px;letter-spacing:.13em;color:var(--ember-ink)}
.svc-tile-title{font-family:var(--sans);font-weight:600;font-size:16.5px;line-height:1.3;color:var(--ink)}
.svc-tile-note{font-size:13.5px;line-height:1.4;color:var(--ink-soft);margin-top:auto}

/* ---------- split rows ---------- */
.split{
  display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,3.6vw,60px);
  padding:clamp(32px,3.6vw,52px) 0;border-top:1px solid var(--rule);
}
.split:last-child{border-bottom:1px solid var(--rule)}
.split h2,.split h3{margin-top:0}
.stack{display:grid;gap:8px 26px;margin:0;padding:0;list-style:none}
.stack.two-col{grid-template-columns:repeat(2,1fr)}
.stack li{font-size:15.5px;color:var(--ink-soft);padding:9px 0 9px 16px;border-left:2px solid var(--rule)}
.stack li strong{display:inline}

/* ---------- dark band ---------- */
.band{background:var(--ink-deep);color:#fff}
.band .eyebrow,.band .muted{color:#A6B2C0}
.band .d2,.band .d3,.band strong{color:#fff}
.band .btn{background:var(--ember);border-color:var(--ember);color:#fff}
.band .btn:hover{background:#fff;color:var(--ink);border-color:#fff}
.band .btn-ghost{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.band .btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.band-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,5vw,72px);align-items:center}
.split-bar{
  display:flex;height:54px;border-radius:2px;overflow:hidden;margin:0 0 14px;
  font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
}
.split-bar span{display:flex;align-items:center;justify-content:center}
.split-bar .a{flex:0 0 80%;background:var(--ember);color:#fff}
.split-bar .b{flex:1;background:#333B4B;color:#C3CDD8}
.split-bar.light .a{background:var(--ember)}
.split-bar.light .b{background:var(--rule);color:var(--ink-soft)}

/* ---------- case studies ---------- */
.case-meta{
  display:flex;flex-wrap:wrap;gap:8px 10px;list-style:none;margin:0 0 18px;padding:0;
}
.card .tag{align-self:flex-start}
.case-meta .tag{align-self:auto}
.tag{
  display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.09em;
  padding:5px 11px;border-radius:2px;background:var(--steel-wash);color:var(--steel);
}
.case-top{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(26px,4vw,56px);align-items:start}
.outcomes{display:grid;grid-template-columns:repeat(2,1fr);gap:9px 22px;list-style:none;margin:0;padding:0}
.outcomes li{font-size:15.5px;color:var(--ink-soft);background:var(--wash);padding:12px 14px;border-radius:2px}
.pull{
  margin:0;padding:22px 26px;background:var(--wash);border-left:3px solid var(--steel);
  border-radius:0 2px 2px 0;
}
.pull p{font-size:16.5px;color:var(--ink-soft)}
.pull .label{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--steel);margin:0 0 10px;
}
blockquote{
  margin:0;padding-left:22px;border-left:3px solid var(--ember);
  font-family:var(--serif);font-size:20px;line-height:1.5;color:var(--ink);
}
blockquote p{margin:0 0 14px}
blockquote cite{
  display:block;font-family:var(--sans);font-style:normal;font-size:14.5px;
  color:var(--ink-soft);line-height:1.45;
}

/* ---------- breadcrumb ---------- */
.crumb{
  font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-soft);padding-top:26px;
}
.crumb a{color:var(--ink-soft);text-decoration:none}
.crumb a:hover{color:var(--ember-ink)}

/* ---------- partners ---------- */
.partners{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:center;list-style:none;margin:0 0 32px;padding:0}
.partners li{font-family:var(--mono);font-size:13px;letter-spacing:.05em;color:var(--ink-soft)}

/* ---------- trust logos: one line, scrolling continuously right to left ---------- */
.trust-marquee{overflow:hidden;margin:clamp(22px,2.8vw,34px) 0 0}
.trust-track{
  display:flex;align-items:center;gap:clamp(26px,4vw,52px);width:max-content;
  list-style:none;margin:0;padding:0;
  animation:trust-scroll 34s linear infinite;
}
.trust-marquee:hover .trust-track{animation-play-state:paused}
.trust-track li{height:52px;display:flex;align-items:center;flex-shrink:0}
.trust-track img{
  max-height:100%;max-width:170px;width:auto;height:auto;
  filter:grayscale(1) contrast(1.15);transition:filter .18s ease;
}
.trust-track img:hover{filter:none}
@keyframes trust-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.trust-track img{transition:none}}

/* ---------- people ---------- */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(20px,2.4vw,30px)}
.person{display:grid;grid-template-columns:96px 1fr;gap:20px;align-items:start}
.person .portrait{
  width:96px;height:96px;border-radius:2px;background:var(--wash);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  font-family:var(--serif);font-size:26px;color:var(--ink-faint);
}
.person .role{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 10px;
}

/* roster: the wider team, name and role only, no portraits */
.roster{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1px;
  background:var(--rule);border:1px solid var(--rule);border-radius:3px;overflow:hidden;
  list-style:none;margin:0;padding:0;
}
.roster li{background:var(--paper);padding:15px 17px}
.roster .nm{display:block;font-size:15.5px;font-weight:500;line-height:1.3;color:var(--ink)}
.roster .rl{
  display:block;margin-top:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;line-height:1.45;color:var(--ink-soft);
}

/* ---------- FAQ ---------- */
.faq details{border-top:1px solid var(--rule);padding:0}
.faq details:last-of-type{border-bottom:1px solid var(--rule)}
.faq summary{
  cursor:pointer;font-weight:500;list-style:none;padding:18px 34px 18px 0;position:relative;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:4px;top:16px;
  font-family:var(--mono);color:var(--ember-ink);font-size:18px;line-height:1;
}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:0 0 18px;color:var(--ink-soft);max-width:70ch}

/* ---------- forms ---------- */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field.wide{grid-column:1 / -1}
.field label{
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);
}
.field .hint{font-size:14px;color:var(--ink-soft);font-family:var(--sans);letter-spacing:0;text-transform:none}
.field input,.field select,.field textarea{
  font-family:var(--sans);font-size:16.5px;color:var(--ink);background:var(--paper);
  border:1px solid var(--rule-strong);border-radius:2px;padding:12px 14px;width:100%;
}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--ink);outline:2px solid var(--ember);outline-offset:1px;
}
.req{color:var(--ember-ink)}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:22px}
.form-foot .small{color:var(--ink-soft);max-width:44ch;margin:0}


/* ---------- figures: information diagrams, built from real text so they
   reflow on small screens and stay selectable and searchable ---------- */
.split > div{container-type:inline-size}
.split-figure{padding:0 0 clamp(32px,3.6vw,52px);container-type:inline-size}
.split-figure figure.fig{margin-top:0}
figure.fig{margin:30px 0 0;padding:0}
figure.fig figcaption{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:16px;
}

/* flow: scattered systems -> lakehouse -> what it enables */
.flow{
  display:grid;grid-template-columns:1fr auto 1fr auto 1fr;
  gap:18px;align-items:stretch;
}
.flow-step{
  border:1px solid var(--rule);border-radius:3px;padding:18px;background:var(--paper);
  display:flex;flex-direction:column;
}
.flow-step.now{background:var(--wash);border-style:dashed}
.flow-step.core{border-color:var(--ink);border-width:1px}
.flow-head{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 14px;
}
.flow-step.core .flow-head{color:var(--ember-ink)}
.flow-bits{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.flow-bits li{
  font-size:13px;line-height:1.3;padding:5px 9px;border-radius:2px;
  background:var(--paper);border:1px solid var(--rule);color:var(--ink-soft);
}
.flow-step.now .flow-bits li{background:var(--paper)}
.flow-layers{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.flow-layers li{
  font-size:13.5px;padding:10px 12px;border-radius:2px;
  background:var(--wash);color:var(--ink);border-left:2px solid var(--steel);
}
.flow-out{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.flow-out li{
  font-size:13.5px;padding:10px 12px;border-radius:2px;
  background:var(--ember-wash);color:var(--ember-ink);
}
.flow-arrow{
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);color:var(--ink-faint);font-size:16px;
}
.flow-note{font-size:13px;color:var(--ink-soft);margin:12px 0 0}

/* timeline: the two to eight week delivery shape */
.tl{display:grid;gap:2px}
.tl-scale{
  display:grid;grid-template-columns:repeat(8,1fr);gap:2px;
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--ink-faint);
  margin-bottom:6px;
}
.tl-scale span{padding:0 0 4px 6px;border-bottom:1px solid var(--rule)}
.tl-row{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;align-items:stretch}
.tl-bar{
  border-radius:2px;padding:12px 14px;display:flex;flex-direction:column;justify-content:center;
  min-height:64px;
}
.tl-bar b{font-size:14px;font-weight:600;line-height:1.25;display:block}
.tl-bar span{font-size:12.5px;line-height:1.35;margin-top:3px}
.tl-bar.a{grid-column:span 2;background:var(--ember);color:#fff}
.tl-bar.a span{color:rgba(255,255,255,.86)}
.tl-bar.b{grid-column:span 4;background:var(--steel);color:#fff}
.tl-bar.b span{color:rgba(255,255,255,.86)}
.tl-bar.c{grid-column:span 2;background:var(--ink);color:#fff}
.tl-bar.c span{color:rgba(255,255,255,.8)}
.tl-short{
  margin-top:10px;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;
}
.tl-short .marker{
  grid-column:span 3;border:1px dashed var(--rule-strong);border-radius:2px;
  padding:10px 14px;font-size:13px;color:var(--ink-soft);
}

@container (max-width:720px){
  .flow{grid-template-columns:1fr}
  .flow-arrow{transform:rotate(90deg);padding:2px 0}
}
@container (max-width:560px){
  .tl-scale{display:none}
  .tl-row{grid-template-columns:1fr;gap:6px}
  .tl-bar.a,.tl-bar.b,.tl-bar.c{grid-column:span 1;min-height:0}
  .tl-short{grid-template-columns:1fr}
  .tl-short .marker{grid-column:span 1}
}
@media (max-width:860px){
  .flow{grid-template-columns:1fr}
  .flow-arrow{transform:rotate(90deg);padding:2px 0}
  .tl-scale{display:none}
  .tl-row{grid-template-columns:1fr;gap:6px}
  .tl-bar.a,.tl-bar.b,.tl-bar.c{grid-column:span 1;min-height:0}
  .tl-short{grid-template-columns:1fr}
  .tl-short .marker{grid-column:span 1}
}

/* ---------- numbered steps ---------- */
.steps{list-style:none;counter-reset:step;margin:0;padding:0;max-width:70ch}
.steps li{
  counter-increment:step;position:relative;padding:14px 0 14px 46px;
  border-top:1px solid var(--rule);color:var(--ink-soft);font-size:16px;
}
.steps li:last-child{border-bottom:1px solid var(--rule)}
.steps li::before{
  content:counter(step);position:absolute;left:0;top:15px;
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--ember-ink);
  width:26px;text-align:left;
}

/* ---------- contact layout ---------- */
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,4vw,64px)}

/* ---------- definition list ---------- */
dl.details-list{margin:0}
dl.details-list dt{
  font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-soft);margin-top:22px;
}
dl.details-list dt:first-child{margin-top:0}
dl.details-list dd{margin:5px 0 0}
dl.details-list a{color:var(--ember-ink);text-decoration:none;border-bottom:1px solid rgba(178,58,22,.3)}

/* ---------- prose (legal pages) ---------- */
.prose{max-width:74ch}
.prose h2{font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.25;margin:44px 0 14px}
.prose h3{font-family:var(--sans);font-weight:600;font-size:17px;margin:28px 0 8px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 18px}
.prose li{margin-bottom:8px;color:var(--ink-soft)}
.prose p{color:var(--ink-soft)}
.prose a{color:var(--ember-ink)}
.prose .updated{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);
}

/* ---------- footer ---------- */
footer{background:var(--ink-deep);color:#A6B2C0;padding:60px 0 40px;font-size:14.5px}
footer a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.28)}
footer a:hover{border-bottom-color:#fff}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px;margin-bottom:44px}
footer .foot-mark img{width:52px;margin-bottom:16px}
footer h2{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;margin:0 0 14px;font-weight:400;
}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:9px}
footer li a{border-bottom:0}
footer li a:hover{border-bottom:1px solid #fff}
.legal{
  border-top:1px solid #333B4B;padding-top:22px;
  font-family:var(--mono);font-size:11px;letter-spacing:.05em;
  display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:space-between;
}
.legal a{border-bottom:0}
.legal a:hover{border-bottom:1px solid #fff}

/* ---------- focus ---------- */
:focus-visible{outline:2px solid var(--ember);outline-offset:3px}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .nav-links{gap:16px}
  .nav-links a{font-size:11px}
  .mark span{display:none}
}
@media (max-width:940px){
  .hero-grid,.band-grid,.case-top,.split{grid-template-columns:1fr}
  .cards,.cards.four{grid-template-columns:repeat(2,1fr)}
  .svc-map{grid-template-columns:repeat(2,1fr)}
  .people{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:30px}
  .nav-links{
    position:absolute;top:var(--nav-h);left:0;right:0;background:#fff;
    border-bottom:1px solid var(--rule);flex-direction:column;align-items:stretch;
    gap:0;padding:6px var(--pad) 20px;display:none;
    box-shadow:0 12px 24px rgba(39,43,58,.08);
  }
  .nav-links.open{display:flex}
  .nav-links li{border-bottom:1px solid var(--rule)}
  .nav-links li:last-child{border-bottom:0}
  .nav-links a{padding:14px 0;font-size:13px;display:block}
  .mark span{display:block}
  .nav .nav-toggle{display:inline-flex}
  .nav .btn-book{padding:11px 14px;font-size:11px}
}
@media (max-width:660px){
  .cards,.cards.two,.cards.four{grid-template-columns:1fr}
  .svc-map{grid-template-columns:1fr}
  .shifts,.outcomes,.stack.two-col,.form-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .person{grid-template-columns:1fr}
  .split-bar{height:46px;font-size:10px}
  .nav .btn-book{padding:10px 12px;font-size:10px}
}
@media (max-width:460px){
  .mark span{display:none}
  .nav-in{gap:14px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
}
@media print{
  .nav,footer,.cta-row{display:none}
  body{font-size:12pt;color:#000}
}
