/* ==========================================================
   DOMINION STRATEGIC HOLDINGS
   White ground, brand navy tones, ruled-ledger structure.
   Tabbed multi-page architecture. Single committed theme.
   ========================================================== */

:root{
  --paper:      #FFFFFF;
  --hover:      #E9F0FA;
  --ink:        #0A1226;
  --ink-2:      #38455E;
  --ink-3:      #56617A;
  --navy:       #001645;
  --accent:     #1E4585;
  --accent-2:   #2C5AA0;
  --rule:       #C2D0E6;
  --rule-soft:  #DEE7F4;
  --shade:      #F4F8FD;
  --shade-2:    #EAF1FB;
  --field:      #FFFFFF;

  --f-display: "Sitka Heading", Cambria, Georgia, "Palatino Linotype", "Times New Roman", serif;
  --f-text:    "Sitka Text", Cambria, Georgia, "Palatino Linotype", serif;
  --f-ui:      "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

  --wrap: 1180px;
  --pad: clamp(20px, 5vw, 64px);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:118px; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
}

body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--f-text); font-size:17px; line-height:1.62;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--accent-2); outline-offset:3px; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }

/* ---------- type ---------- */

.eyebrow{ font-family:var(--f-ui); font-size:11px; font-weight:600; letter-spacing:.20em; text-transform:uppercase; color:var(--ink-3); margin:0; }
.eyebrow--accent{ color:var(--accent); }

h1,h2,h3,h4{ font-family:var(--f-display); font-weight:400; text-wrap:balance; margin:0; }
h1{ font-size:clamp(32px,4.6vw,54px); line-height:1.07; letter-spacing:-.012em; color:var(--navy); }
h2{ font-size:clamp(26px,3.1vw,38px); line-height:1.15; letter-spacing:-.008em; color:var(--navy); }
h3{ font-size:clamp(19px,1.7vw,23px); line-height:1.28; color:var(--navy); }
h4{ font-size:17px; line-height:1.35; }

p{ margin:0; }
.lede{ font-size:clamp(16.5px,1.45vw,19px); line-height:1.66; color:var(--ink-2); max-width:64ch; }
.fine{ font-family:var(--f-ui); font-size:13px; line-height:1.6; color:var(--ink-3); }

.stack{ display:flex; flex-direction:column; }
.g-14{gap:14px}.g-20{gap:20px}.g-24{gap:24px}.g-28{gap:28px}

/* ---------- pages ---------- */

.page[hidden]{ display:none; }

.section{ border-top:1px solid var(--rule); padding-block:clamp(50px,6.4vw,88px); }
.section--first{ border-top:0; }
.section--shade{ background:var(--shade); }

.sec-head{ display:grid; grid-template-columns:minmax(0,1fr); gap:18px; padding-bottom:clamp(26px,3.4vw,42px); }
.sec-num{ font-family:var(--f-ui); font-size:11px; font-weight:600; letter-spacing:.20em; color:var(--accent); display:flex; align-items:center; gap:14px; }
.sec-num::after{ content:""; flex:1; height:1px; background:var(--rule); }

@media (min-width:900px){
  .sec-head{ grid-template-columns:minmax(0,30ch) minmax(0,1fr); gap:20px 56px; align-items:start; }
  .sec-num{ grid-column:1 / -1; }
}

.masthead{ border-bottom:1px solid var(--rule); background:var(--shade); }
.masthead__in{ padding-block:clamp(34px,4.6vw,58px); display:flex; flex-direction:column; gap:14px; }
.masthead h1{ font-size:clamp(30px,3.9vw,46px); }
.masthead .lede{ max-width:70ch; }

.reveal{ opacity:0; transform:translateY(14px); transition:opacity .55s ease, transform .55s ease; }
.reveal.is-in{ opacity:1; transform:none; }

/* ---------- top bar ---------- */

.topbar{
  position:sticky; top:0; z-index:60; background:rgba(255,255,255,.97);
  backdrop-filter:saturate(1.6) blur(9px); border-bottom:1px solid var(--rule);
}

.brandrow{ border-bottom:1px solid var(--rule-soft); }
.brandrow__in{ display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:62px; }

.brandline{ display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--navy); }
.brandline img{ width:28px; height:auto; }
.brandline__tx{ display:block; }
.brandline__tx b{ display:block; font-family:var(--f-display); font-weight:400; font-size:13px; letter-spacing:.15em; text-transform:uppercase; white-space:nowrap; }
.brandline__tx i{ display:block; font-style:normal; font-family:var(--f-ui); font-size:8.5px; letter-spacing:.19em; text-transform:uppercase; color:var(--accent); margin-top:2px; }

.hdr-actions{ display:flex; align-items:center; gap:14px; }
.hdr-tel{
  font-family:var(--f-ui); font-size:12px; font-weight:600; letter-spacing:.10em;
  color:var(--ink-2); text-decoration:none; white-space:nowrap; display:none;
  transition:color .18s;
}
.hdr-tel:hover{ color:var(--accent); }
@media (min-width:560px){ .hdr-tel{ display:inline; } }

.hdr-mail{
  font-family:var(--f-ui); font-size:12px; color:var(--ink-2); text-decoration:none;
  white-space:nowrap; display:none; padding-right:14px; border-right:1px solid var(--rule);
  transition:color .18s;
}
.hdr-mail:hover{ color:var(--accent); }
@media (min-width:1260px){ .hdr-mail{ display:inline; } }

.hdr-cta{
  font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; background:var(--navy); color:#FFFFFF;
  padding:11px 17px; text-decoration:none; white-space:nowrap;
  transition:background .18s, box-shadow .18s;
}
.hdr-cta:hover{ background:var(--accent); box-shadow:0 8px 20px -12px rgba(0,22,69,.7); }

/* the tab bar &#8212; always visible, scrolls horizontally when it must */
.tabbar{ background:var(--paper); }
.tabbar__in{
  display:flex; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
}
.tabbar__in::-webkit-scrollbar{ display:none; }

.tabbar a{
  font-family:var(--f-ui); font-size:11px; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ink-2); text-decoration:none;
  padding:15px clamp(14px,1.7vw,26px) 13px; white-space:nowrap;
  border-bottom:2px solid transparent; border-right:1px solid var(--rule-soft);
  transition:color .18s, background .18s, border-color .18s;
}
.tabbar a:first-child{ border-left:1px solid var(--rule-soft); }
.tabbar a:hover{ color:var(--navy); background:var(--shade); }
.tabbar a[aria-current="page"]{ color:var(--navy); background:var(--shade); border-bottom-color:var(--accent); }

/* ---------- buttons ---------- */

.btns{ display:flex; flex-wrap:wrap; gap:12px; }
.btn{
  font-family:var(--f-ui); font-size:11.5px; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; padding:16px 27px; text-decoration:none;
  border:1px solid transparent; cursor:pointer; display:inline-flex; align-items:center; gap:10px;
  transition:background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn--solid{ background:var(--navy); color:#FFFFFF; }
.btn--solid:hover{ background:var(--accent); box-shadow:0 10px 24px -13px rgba(0,22,69,.75); }
.btn--outline{ border-color:var(--rule); color:var(--navy); background:transparent; }
.btn--outline:hover{ border-color:var(--accent); color:var(--accent); background:var(--shade); }
.btn--light{ background:#FFFFFF; color:var(--navy); }
.btn--light:hover{ background:var(--shade-2); }
.btn .arw{ transition:transform .2s; }
.btn:hover .arw{ transform:translateX(4px); }

.mobilebar{
  position:fixed; left:0; right:0; bottom:0; z-index:70; display:none; gap:1px;
  background:var(--rule); border-top:1px solid var(--rule);
}
.mobilebar a{ flex:1; text-align:center; text-decoration:none; font-family:var(--f-ui); font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; padding:15px 8px; }
.mobilebar a:first-child{ background:#FFFFFF; color:var(--navy); }
.mobilebar a:last-child{ background:var(--navy); color:#FFFFFF; }
@media (max-width:719px){ .mobilebar{ display:flex; } body{ padding-bottom:52px; } }

/* ---------- hero ---------- */

.hero{ position:relative; overflow:hidden; background:var(--paper); border-bottom:1px solid var(--rule); }
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(115% 90% at 88% 0%, rgba(30,69,133,.13) 0%, rgba(255,255,255,0) 56%),
    radial-gradient(76% 64% at 2% 100%, rgba(0,22,69,.06) 0%, rgba(255,255,255,0) 54%);
}
.hero__in{ position:relative; padding-block:clamp(46px,6.2vw,84px); display:grid; gap:clamp(34px,4vw,56px); align-items:center; }
@media (min-width:960px){ .hero__in{ grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr); } }
.hero__rule{ width:64px; height:1px; background:var(--accent); }

.glance{ border:1px solid var(--rule); background:var(--paper); }
.glance__top{ display:flex; align-items:center; gap:14px; padding:18px 22px; border-bottom:1px solid var(--rule-soft); background:var(--shade); }
.glance__top img{ width:46px; height:auto; flex:none; }
.glance__top b{ font-family:var(--f-display); font-weight:400; font-size:13px; letter-spacing:.11em; text-transform:uppercase; color:var(--navy); line-height:1.45; }
.glance dl{ margin:0; }
.glance dl > div{ display:flex; justify-content:space-between; gap:16px; padding:12px 22px; border-bottom:1px solid var(--rule-soft); }
.glance dl > div:last-child{ border-bottom:0; }
.glance dt{ font-family:var(--f-ui); font-size:10px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-3); white-space:nowrap; }
.glance dd{ margin:0; font-family:var(--f-ui); font-size:12.5px; color:var(--ink); text-align:right; line-height:1.45; }

/* ---------- hero illustration ---------- */

.heroart{ width:100%; }
.heroart svg{ width:100%; height:auto; display:block; }

/* ---------- facts band ---------- */

.factband{ background:var(--shade); border-bottom:1px solid var(--rule); }
.facts{
  margin:0; display:grid; gap:1px; background:var(--rule-soft);
  border-left:1px solid var(--rule-soft); border-right:1px solid var(--rule-soft);
  grid-template-columns:repeat(auto-fit,minmax(168px,1fr));
}
.facts > div{ background:var(--shade); padding:18px 20px; display:flex; flex-direction:column; gap:5px; }
.facts dt{ font-family:var(--f-ui); font-size:9.5px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--accent); }
.facts dd{ margin:0; font-family:var(--f-ui); font-size:13px; line-height:1.45; color:var(--ink); }

/* ---------- navy band ---------- */

.band{ background:var(--navy); color:#FFFFFF; }
.band__in{ padding-block:clamp(34px,4vw,54px); display:grid; gap:26px; align-items:center; }
@media (min-width:880px){ .band__in{ grid-template-columns:minmax(0,1fr) auto; gap:44px; } }
.band h3{ color:#FFFFFF; font-size:clamp(21px,2.2vw,28px); }
.band p{ font-family:var(--f-ui); font-size:14px; line-height:1.62; color:#B9C7E2; max-width:62ch; margin-top:10px; }

/* ---------- grids ---------- */

.caps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); border-left:1px solid var(--rule-soft); }
.cap{ border-right:1px solid var(--rule-soft); border-bottom:1px solid var(--rule-soft); padding:24px clamp(14px,1.6vw,22px) 28px; transition:background .22s; }
.cap:hover{ background:var(--shade); }
.cap__n{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.18em; color:var(--accent); display:block; margin-bottom:12px; }
.cap h3{ font-size:18px; margin-bottom:7px; }
.cap p{ font-family:var(--f-ui); font-size:13px; line-height:1.55; color:var(--ink-2); }

.duo{ display:grid; gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft); }
@media (min-width:820px){ .duo{ grid-template-columns:1fr 1fr; } }
.duo > div{ background:var(--paper); padding:clamp(26px,3vw,38px); display:flex; flex-direction:column; gap:15px; transition:background .22s; }
.duo > div:hover{ background:var(--shade); }
.section--shade .duo > div{ background:var(--shade); }
.section--shade .duo > div:hover{ background:var(--shade-2); }

.probs{ display:grid; gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft); }
@media (min-width:700px){ .probs{ grid-template-columns:1fr 1fr; } }
.prob{ background:var(--paper); padding:clamp(24px,2.8vw,34px); display:flex; flex-direction:column; gap:11px; transition:background .22s; }
.prob:hover{ background:var(--shade); }
.section--shade .prob{ background:var(--shade); }
.section--shade .prob:hover{ background:var(--shade-2); }
.prob__q{ font-family:var(--f-display); font-size:clamp(19px,1.8vw,22px); line-height:1.3; color:var(--navy); }
.prob p{ font-family:var(--f-ui); font-size:14px; line-height:1.6; color:var(--ink-2); }
.prob__tag{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--accent); margin-top:auto; padding-top:8px; }

.gets{ display:grid; gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft); grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.get{ background:var(--paper); padding:26px 24px 30px; display:flex; flex-direction:column; gap:9px; }
.section--shade .get{ background:var(--shade); }
.get b{ font-family:var(--f-display); font-weight:400; font-size:19px; color:var(--navy); }
.get span{ font-family:var(--f-ui); font-size:13.5px; line-height:1.58; color:var(--ink-2); }
.get .mk{ width:22px; height:1px; background:var(--accent); }

.tick{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; font-family:var(--f-ui); font-size:13.5px; color:var(--ink-2); }
.tick li{ padding-left:19px; position:relative; line-height:1.5; }
.tick li::before{ content:""; position:absolute; left:0; top:9px; width:8px; height:1px; background:var(--accent); }

/* ---------- services sub-tabs ---------- */

.tabs{ display:flex; border-bottom:1px solid var(--rule); flex-wrap:wrap; }
.tab{
  font-family:var(--f-ui); font-size:11.5px; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; background:none; border:0; border-bottom:2px solid transparent;
  color:var(--ink-3); padding:15px 22px 13px; cursor:pointer; margin-bottom:-1px;
  transition:color .18s, border-color .18s, background .18s;
}
.tab:hover{ color:var(--navy); background:var(--shade); }
.tab[aria-selected="true"]{ color:var(--navy); border-bottom-color:var(--accent); }

.panel[hidden]{ display:none; }
.panel__intro{ display:flex; flex-wrap:wrap; gap:16px 32px; align-items:center; justify-content:space-between; padding:22px 0 4px; }
.accs-tools{ display:flex; gap:8px; }
.linkbtn{
  font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; background:none; border:1px solid var(--rule);
  color:var(--ink-2); padding:9px 14px; cursor:pointer;
  transition:border-color .18s, color .18s, background .18s;
}
.linkbtn:hover{ border-color:var(--accent); color:var(--accent); background:var(--shade); }

/* ---------- accordions ---------- */

.acc{ border-top:1px solid var(--rule); }
.acc:last-of-type{ border-bottom:1px solid var(--rule); }
.acc > summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:16px; padding:22px 4px; transition:background .2s; }
.acc > summary::-webkit-details-marker{ display:none; }
.acc > summary:hover{ background:var(--shade); }
.acc__n{ font-family:var(--f-ui); font-size:11px; font-weight:600; letter-spacing:.18em; color:var(--accent); font-variant-numeric:tabular-nums; }
.acc__t{ font-family:var(--f-display); font-size:clamp(19px,1.9vw,24px); color:var(--navy); line-height:1.25; flex:1; }
.acc__c{ font-family:var(--f-ui); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); white-space:nowrap; display:none; }
@media (min-width:640px){ .acc__c{ display:block; } }
.acc__i{ position:relative; width:15px; height:15px; flex:none; }
.acc__i::before, .acc__i::after{ content:""; position:absolute; background:var(--accent); left:0; top:7px; width:15px; height:1.5px; transition:transform .25s ease; }
.acc__i::after{ transform:rotate(90deg); }
.acc[open] .acc__i::after{ transform:rotate(0deg); }
.acc__body{ padding:0 0 30px; }

/* ---------- tables ---------- */

.scroller{ overflow-x:auto; border-top:1px solid var(--rule-soft); -webkit-overflow-scrolling:touch; }
table{ border-collapse:collapse; width:100%; min-width:640px; font-family:var(--f-ui); }
thead th{
  font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); text-align:left; padding:13px 16px 11px;
  border-bottom:1px solid var(--rule); white-space:nowrap; background:var(--shade);
}
tbody td{ padding:15px 16px; border-bottom:1px solid var(--rule-soft); vertical-align:top; font-size:14px; line-height:1.5; color:var(--ink-2); }
tbody tr{ transition:background .16s; }
tbody tr:hover td{ background:var(--hover); }
td.svc{ color:var(--navy); font-family:var(--f-display); font-size:16.5px; line-height:1.32; min-width:200px; }
td.desc{ min-width:300px; font-size:13.5px; color:var(--ink-2); }
td.turn{ white-space:nowrap; font-size:12.5px; color:var(--ink-3); letter-spacing:.02em; font-variant-numeric:tabular-nums; }

.tiers{ display:grid; gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft); grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.tier{ background:var(--paper); padding:28px 24px 32px; display:flex; flex-direction:column; gap:14px; transition:background .22s; }
.tier:hover{ background:var(--shade); }
.tier__n{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.tier h4{ font-family:var(--f-display); font-size:23px; color:var(--navy); font-weight:400; }

.addons{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); border-top:1px solid var(--rule); border-left:1px solid var(--rule-soft); }
.addon{ border-right:1px solid var(--rule-soft); border-bottom:1px solid var(--rule-soft); padding:19px 20px; transition:background .2s; }
.addon:hover{ background:var(--shade); }
.addon b{ display:block; font-family:var(--f-display); font-weight:400; font-size:16.5px; color:var(--navy); margin-bottom:5px; }
.addon span{ font-family:var(--f-ui); font-size:12.5px; line-height:1.55; color:var(--ink-2); }

.rate{ font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--navy); font-weight:600; font-size:14px; }
.rate-pr{ font-variant-numeric:tabular-nums; white-space:nowrap; font-size:14px; color:var(--ink-2); }
.per{ color:var(--ink-3); font-weight:400; font-size:12px; }

.ratenote{
  font-family:var(--f-ui); font-size:12.5px; line-height:1.62; color:var(--ink-2);
  border-left:2px solid var(--accent); padding:4px 0 4px 16px; margin:22px 0 0; max-width:92ch;
}
.ratenote strong{ color:var(--navy); }

.tier__p{ font-family:var(--f-ui); font-size:19px; font-weight:600; color:var(--navy); line-height:1.45; font-variant-numeric:tabular-nums; }
.tier__pr{ font-size:14px; font-weight:600; color:var(--ink-2); }

/* ---------- packages ---------- */

.packs{ display:grid; gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft); grid-template-columns:repeat(auto-fit,minmax(266px,1fr)); }
.pack{ background:var(--paper); padding:30px 26px 34px; display:flex; flex-direction:column; gap:14px; transition:background .22s; }
.pack:hover{ background:var(--shade); }
.pack--feature{ background:var(--shade); box-shadow:inset 0 3px 0 var(--accent); }
.pack--feature:hover{ background:var(--shade-2); }
.pack__n{ font-family:var(--f-ui); font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.pack h4{ font-family:var(--f-display); font-weight:400; font-size:24px; color:var(--navy); }
.pack__price{ font-family:var(--f-ui); font-variant-numeric:tabular-nums; font-size:23px; font-weight:600; color:var(--navy); line-height:1.35; }
.pack__price--ask{ font-size:17px; color:var(--accent); }
.pack__price small{ display:block; font-size:13px; font-weight:600; color:var(--ink-2); margin-top:3px; }
.pack__hr{ height:1px; background:var(--rule); }
.pack__best{ font-family:var(--f-ui); font-size:12px; line-height:1.5; color:var(--ink-3); margin-top:auto; padding-top:10px; }

/* ---------- callouts ---------- */

.callout{ border:1px solid var(--rule); border-left:2px solid var(--accent); padding:20px 24px; font-family:var(--f-ui); font-size:13px; line-height:1.62; color:var(--ink-2); background:var(--paper); }
.quotebox{ border:1px solid var(--rule); border-left:3px solid var(--accent); background:var(--paper); padding:clamp(24px,3vw,34px); display:flex; flex-direction:column; gap:16px; }
.quotebox p{ font-family:var(--f-ui); font-size:14.5px; line-height:1.62; color:var(--ink-2); max-width:72ch; }

/* ---------- process ---------- */

.steps{ display:grid; gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft); grid-template-columns:repeat(auto-fit,minmax(205px,1fr)); }
.step-card{ background:var(--paper); padding:26px 22px 32px; display:flex; flex-direction:column; gap:10px; transition:background .22s; }
.step-card:hover{ background:var(--shade); }
.section--shade .step-card{ background:var(--shade); }
.section--shade .step-card:hover{ background:var(--shade-2); }
.step-card .n{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.18em; color:var(--accent); font-variant-numeric:tabular-nums; }
.step-card h4{ font-size:18.5px; font-family:var(--f-display); font-weight:400; color:var(--navy); }
.step-card p{ font-family:var(--f-ui); font-size:13px; line-height:1.55; color:var(--ink-2); }

.terms{ border-top:1px solid var(--rule); }
.term{ display:grid; gap:4px 40px; padding:17px 0; border-bottom:1px solid var(--rule-soft); }
@media (min-width:760px){ .term{ grid-template-columns:minmax(0,22ch) minmax(0,1fr); } }
.term dt{ font-family:var(--f-ui); font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--navy); margin:0; }
.term dd{ margin:0; font-family:var(--f-ui); font-size:13.5px; line-height:1.6; color:var(--ink-2); }

/* ---------- booking ---------- */

.book{ display:grid; gap:clamp(30px,4vw,52px); align-items:start; }
@media (min-width:940px){ .book{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.bcards{ display:grid; gap:1px; background:var(--rule-soft); border:1px solid var(--rule-soft); }
.bcard{
  background:var(--paper); border:0; text-align:left; width:100%; cursor:pointer;
  padding:22px 24px 24px; display:flex; flex-direction:column; gap:8px;
  font-family:inherit; transition:background .2s, box-shadow .2s;
}
.bcard:hover{ background:var(--shade); }
.bcard[aria-pressed="true"]{ background:var(--shade-2); box-shadow:inset 3px 0 0 var(--accent); }
.bcard__top{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.bcard b{ font-family:var(--f-display); font-weight:400; font-size:19px; color:var(--navy); }
.bcard .dur{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); white-space:nowrap; }
.bcard span.d{ font-family:var(--f-ui); font-size:13.5px; line-height:1.55; color:var(--ink-2); }

/* ---------- founder ---------- */

.founder{ display:grid; gap:clamp(30px,4.4vw,58px); align-items:start; }
@media (min-width:880px){ .founder{ grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr); } }
.portrait{ border:1px solid var(--rule); padding:9px; background:var(--paper); margin:0; position:sticky; top:126px; }
@media (max-width:879px){ .portrait{ position:static; max-width:380px; } }
.portrait img{ width:100%; height:auto; }
.portrait figcaption{ font-family:var(--f-ui); font-size:10.5px; letter-spacing:.17em; text-transform:uppercase; color:var(--ink-3); padding:13px 4px 3px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.portrait figcaption b{ color:var(--navy); font-weight:600; }

.career{ border-top:1px solid var(--rule); }
.career ol{ margin:0; padding:0; }
.career li{ list-style:none; display:grid; gap:6px 24px; padding:22px 0; border-bottom:1px solid var(--rule-soft); align-items:start; }
@media (min-width:620px){ .career li{ grid-template-columns:auto minmax(0,1fr); } }
.career .step{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.18em; color:var(--accent); font-variant-numeric:tabular-nums; padding-top:5px; }
.career b{ font-family:var(--f-display); font-weight:400; font-size:19.5px; color:var(--navy); display:block; }
.career .role{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--ink-3); display:block; margin:3px 0 8px; }
.career .body{ font-family:var(--f-ui); font-size:13.5px; line-height:1.62; color:var(--ink-2); display:block; }

.teaser{ display:grid; gap:clamp(24px,3vw,40px); align-items:center; }
@media (min-width:760px){ .teaser{ grid-template-columns:auto minmax(0,1fr); } }
.teaser img{ width:clamp(150px,16vw,190px); height:auto; border:1px solid var(--rule); padding:8px; background:var(--paper); }

/* ---------- contact ---------- */

.contact{ display:grid; gap:clamp(32px,4.4vw,60px); align-items:start; }
@media (min-width:900px){ .contact{ grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); } }

.dl{ border-top:1px solid var(--rule); }
.dl > div{ padding:16px 0; border-bottom:1px solid var(--rule-soft); display:flex; flex-direction:column; gap:4px; }
.dl dt{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); }
.dl dd{ margin:0; font-family:var(--f-ui); font-size:15px; color:var(--ink); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.dl dd a{ text-decoration:none; border-bottom:1px solid var(--rule); transition:color .18s, border-color .18s; word-break:break-word; }
.dl dd a:hover{ border-bottom-color:var(--accent); color:var(--accent); }

.copy{
  font-family:var(--f-ui); font-size:9.5px; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase; background:none; border:1px solid var(--rule);
  color:var(--ink-3); padding:5px 9px; cursor:pointer; white-space:nowrap;
  transition:border-color .18s, color .18s, background .18s;
}
.copy:hover{ border-color:var(--accent); color:var(--accent); background:var(--shade); }
.copy.is-done{ border-color:var(--accent); color:var(--accent); background:var(--shade-2); }

form{ display:flex; flex-direction:column; gap:17px; }
.row2{ display:grid; gap:17px; }
@media (min-width:620px){ .row2{ grid-template-columns:1fr 1fr; } }
.f{ display:flex; flex-direction:column; gap:7px; }
.f label{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.f .opt{ text-transform:none; letter-spacing:0; font-weight:400; }
.f input, .f select, .f textarea{
  font-family:var(--f-ui); font-size:14.5px; color:var(--ink); background:var(--field);
  border:1px solid var(--rule); border-radius:0; padding:13px 14px; width:100%;
  transition:border-color .18s, box-shadow .18s;
}
.f textarea{ min-height:130px; resize:vertical; line-height:1.55; }
.f input:focus, .f select:focus, .f textarea:focus{ outline:none; border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); }
.formnote{ font-family:var(--f-ui); font-size:12.5px; color:var(--ink-3); line-height:1.55; }

/* ---------- assistant ---------- */

.dsh-launch{
  position:fixed; right:22px; bottom:24px; z-index:90;
  display:flex; align-items:center; gap:11px;
  background:var(--navy); color:#FFFFFF; border:0; cursor:pointer;
  padding:14px 20px 14px 16px; font-family:var(--f-ui);
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  box-shadow:0 14px 34px -14px rgba(0,22,69,.85);
  transition:background .2s, transform .2s, box-shadow .2s;
}
.dsh-launch:hover{ background:var(--accent); transform:translateY(-2px); box-shadow:0 18px 40px -14px rgba(0,22,69,.9); }
.dsh-launch svg{ width:19px; height:19px; flex:none; }
.dsh-launch[hidden]{ display:none; }
@media (max-width:719px){ .dsh-launch{ right:14px; bottom:66px; padding:13px 17px 13px 14px; } }

.dsh-panel{
  position:fixed; right:22px; bottom:24px; z-index:95;
  width:min(388px, calc(100vw - 32px)); height:min(568px, calc(100vh - 48px));
  background:var(--paper); border:1px solid var(--rule);
  box-shadow:0 26px 60px -22px rgba(0,22,69,.55);
  display:flex; flex-direction:column; overflow:hidden;
}
.dsh-panel[hidden]{ display:none; }
@media (max-width:719px){
  .dsh-panel{ right:0; left:0; bottom:0; top:0; width:100%; height:100%; border:0; }
}

.dsh-head{ background:var(--navy); color:#FFFFFF; display:flex; align-items:center; gap:12px; padding:15px 16px; }
.dsh-head img{ width:30px; height:auto; flex:none; }
.dsh-head b{ display:block; font-family:var(--f-display); font-weight:400; font-size:14px; letter-spacing:.12em; text-transform:uppercase; }
.dsh-head span{ display:block; font-family:var(--f-ui); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:#9FB4DA; margin-top:3px; }
.dsh-head .sp{ flex:1; }
.dsh-lang{ display:flex; border:1px solid rgba(255,255,255,.34); flex:none; }
.dsh-lang button{
  background:none; border:0; color:#9FB4DA; cursor:pointer;
  font-family:var(--f-ui); font-size:9.5px; font-weight:600; letter-spacing:.12em;
  padding:7px 9px; transition:background .18s, color .18s;
}
.dsh-lang button + button{ border-left:1px solid rgba(255,255,255,.24); }
.dsh-lang button[aria-pressed="true"]{ background:#FFFFFF; color:var(--navy); }
.dsh-lang button:hover{ color:#FFFFFF; }
.dsh-lang button[aria-pressed="true"]:hover{ color:var(--navy); }

.dsh-x{
  background:none; border:1px solid rgba(255,255,255,.34); color:#FFFFFF;
  width:30px; height:30px; cursor:pointer; font-size:15px; line-height:1;
  font-family:var(--f-ui); flex:none; transition:background .18s, border-color .18s;
}
.dsh-x:hover{ background:rgba(255,255,255,.14); border-color:#FFFFFF; }

.dsh-log{ flex:1; overflow-y:auto; padding:18px 16px; display:flex; flex-direction:column; gap:14px; background:var(--paper); }

.dsh-msg{ display:flex; flex-direction:column; gap:6px; max-width:88%; }
.dsh-msg .bub{
  font-family:var(--f-ui); font-size:13.5px; line-height:1.58; padding:12px 14px;
  border:1px solid var(--rule-soft); background:var(--shade); color:var(--ink);
}
.dsh-msg.me{ align-self:flex-end; align-items:flex-end; }
.dsh-msg.me .bub{ background:var(--navy); color:#FFFFFF; border-color:var(--navy); }
.dsh-msg .who{ font-family:var(--f-ui); font-size:9px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--ink-3); }
.dsh-msg .bub a{ color:var(--accent); }
.dsh-msg .bub strong{ color:var(--navy); }
.dsh-msg.me .bub strong{ color:#FFFFFF; }

.dsh-acts{ display:flex; flex-wrap:wrap; gap:7px; margin-top:2px; }
.dsh-act{
  font-family:var(--f-ui); font-size:10px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; background:var(--paper); border:1px solid var(--rule);
  color:var(--navy); padding:8px 12px; cursor:pointer; text-decoration:none;
  transition:border-color .18s, background .18s, color .18s;
}
.dsh-act:hover{ border-color:var(--accent); background:var(--shade); color:var(--accent); }

.dsh-dots{ display:flex; gap:5px; padding:14px; }
.dsh-dots i{ width:6px; height:6px; background:var(--accent); opacity:.35; animation:dshBlink 1.1s infinite; }
.dsh-dots i:nth-child(2){ animation-delay:.18s; }
.dsh-dots i:nth-child(3){ animation-delay:.36s; }
@keyframes dshBlink{ 0%,100%{opacity:.25} 50%{opacity:.9} }

.dsh-foot{ border-top:1px solid var(--rule); background:var(--paper); }
.dsh-form{ display:flex; gap:0; padding:0; }
.dsh-form input{
  flex:1; font-family:var(--f-ui); font-size:13.5px; color:var(--ink);
  background:var(--field); border:0; padding:15px 14px; min-width:0;
}
.dsh-form input:focus{ outline:none; background:var(--shade); }
.dsh-form button{
  background:var(--navy); color:#FFFFFF; border:0; cursor:pointer;
  font-family:var(--f-ui); font-size:10.5px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; padding:0 20px;
  transition:background .18s;
}
.dsh-form button:hover{ background:var(--accent); }
.dsh-note{
  font-family:var(--f-ui); font-size:10px; line-height:1.5; color:var(--ink-3);
  padding:9px 14px 11px; border-top:1px solid var(--rule-soft); background:var(--shade);
}

/* ---------- footer ---------- */

.foot{ background:var(--shade); color:var(--ink-2); border-top:1px solid var(--rule); }
.foot__in{ padding-block:clamp(42px,5vw,64px); display:grid; gap:clamp(30px,4vw,54px); }
@media (min-width:840px){ .foot__in{ grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); } }
.foot img{ width:132px; height:auto; margin-bottom:18px; }
.foot h4{ font-family:var(--f-ui); font-size:10.5px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin:0 0 12px; }
.foot p, .foot li{ font-family:var(--f-ui); font-size:12.5px; line-height:1.7; }
.foot ul{ list-style:none; margin:0; padding:0; }
.foot a{ color:var(--ink-2); text-decoration:none; transition:color .18s; }
.foot a:hover{ color:var(--accent); }
.footcols{ display:grid; gap:28px 40px; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); }

.legal{ border-top:1px solid var(--rule); padding-block:26px 34px; font-family:var(--f-ui); font-size:11.5px; line-height:1.72; color:var(--ink-3); }
.legal p + p{ margin-top:10px; }
.legal strong{ color:var(--ink); font-weight:600; }
.legal__bar{ display:flex; flex-wrap:wrap; gap:8px 22px; justify-content:space-between; padding-top:18px; margin-top:18px; border-top:1px solid var(--rule-soft); letter-spacing:.05em; }


/* ==========================================================
   Safari support + phone header. Added 2026-09-04.
   ========================================================== */

/* Safari needs the prefix or the sticky header renders unblurred */
.topbar{ -webkit-backdrop-filter:saturate(1.6) blur(9px); }

/* iOS Safari's collapsing toolbar makes 100vh taller than the visible
   area, which pushed the assistant's input off screen. dvh tracks it. */
@supports (height: 100dvh){
  .dsh-panel{ height:min(568px, calc(100dvh - 48px)); }
  @media (max-width:719px){ .dsh-panel{ height:100dvh; } }
}

/* Phones: the header CTA was 37% of the screen width and collided with
   the wordmark. The fixed bottom bar already carries Call + Book, and the
   assistant launcher sits above it, so the duplicate is what goes. */
@media (max-width:719px){
  .hdr-cta{ display:none; }
  .brandrow__in{ min-height:54px; gap:12px; }
  .brandline img{ width:23px; }
  .brandline__tx b{ font-size:11px; letter-spacing:.10em; }
  .brandline__tx i{ font-size:7.5px; letter-spacing:.15em; margin-top:1px; }
  .tabbar a{ padding:12px 14px 10px; font-size:10.5px; letter-spacing:.11em; }
  html{ scroll-padding-top:100px; }
  .portrait{ top:104px; }
}

/* Very narrow phones: drop the descriptor line so the name always fits */
@media (max-width:379px){
  .brandline__tx i{ display:none; }
  .brandline__tx b{ font-size:10.5px; }
  .tabbar a{ padding:12px 12px 10px; }
}
