/* Layout: navy masthead band with gold rules; single 1080px column; each page opens with a direct-answer lead for search and AI citation. */
:root{
  --bg:#ffffff; --surface:#f2f4f8; --fg:#14213a; --muted:#56607a; --line:#dde2ea;
  --gold:#b48c32; --gold-text:#7f6119;
  --band:#13233d; --band-fg:#f2f4f8; --band-muted:#b9c3d6; --band-line:rgba(255,255,255,.14);
  --display:"Spectral", Georgia, "Times New Roman", serif;
  --body:"Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0d1626; --surface:#142038; --fg:#e8ecf3; --muted:#9aa5bb; --line:#24324e;
  --gold:#d4b25a; --gold-text:#d9bc6c; --band:#09111f; --band-fg:#eef1f6; --band-muted:#a7b2c7; --band-line:rgba(255,255,255,.12); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0d1626; --surface:#142038; --fg:#e8ecf3; --muted:#9aa5bb; --line:#24324e;
  --gold:#d4b25a; --gold-text:#d9bc6c; --band:#09111f; --band-fg:#eef1f6; --band-muted:#a7b2c7; --band-line:rgba(255,255,255,.12); color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.6}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.2;text-wrap:balance;margin:0}
h1{font-size:clamp(2rem,4.6vw,3.1rem);font-weight:500}
h2{font-size:clamp(1.5rem,3vw,2rem)}
h3{font-size:1.18rem}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.band .eyebrow{color:var(--gold)}
.skip{position:absolute;left:-999px}
.skip:focus{left:16px;top:8px;background:var(--bg);padding:6px 10px;z-index:5}

/* masthead */
.band{background:var(--band);color:var(--band-fg)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:14px 24px;padding-block:18px;flex-wrap:wrap}
.mark{display:flex;align-items:center;gap:12px;text-decoration:none}
.mark b{font-family:var(--display);font-size:1.8rem;line-height:1;border:1.5px solid var(--gold);padding:4px 8px 6px;letter-spacing:.02em}
.mark span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;line-height:1.35;color:var(--band-muted)}
.nav ul{list-style:none;display:flex;gap:6px 20px;margin:0;padding:0;flex-wrap:wrap;font-size:.92rem}
.nav ul a{text-decoration:none;color:var(--band-muted);padding-block:4px;display:inline-block}
.nav ul a:hover,.nav ul a[aria-current="page"]{color:var(--band-fg)}
.nav ul a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--gold)}
.hero{padding-block:52px 60px;display:grid;gap:20px;max-width:780px}
.hero h1 em{font-style:normal;color:var(--gold)}
.lead{font-size:1.12rem;max-width:62ch}
.band .lead{color:var(--band-muted)}
.ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
.btn{display:inline-block;padding:12px 20px;font-weight:600;font-size:.95rem;text-decoration:none;border:1.5px solid var(--gold);border-radius:2px;cursor:pointer;font-family:var(--body);background:transparent;color:inherit}
.btn.primary{background:var(--gold);color:#13233d}
.where{font-size:.85rem;color:var(--band-muted)}
.crumb{font-size:.85rem;color:var(--band-muted)}
.crumb a{color:var(--band-muted)}

.hero-grid{display:grid;grid-template-columns:1fr 260px;gap:40px;align-items:center}
.hero-grid > *{min-width:0}
.hero-photo{margin:0;display:grid;gap:8px;padding-block:40px}
.hero-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border:1.5px solid var(--gold);display:block}
.hero-photo figcaption{font-size:.78rem;color:var(--band-muted);letter-spacing:.04em}
.portrait.photo{padding:0;border:1.5px solid var(--gold)}
.portrait.photo img{width:100%;height:100%;object-fit:cover;display:block}
.contact-id{display:flex;gap:16px;align-items:center}
.contact-id img{width:88px;height:110px;object-fit:cover;border:1.5px solid var(--gold);flex:none}

.reassure{font-size:.85rem;color:var(--band-muted)}
main .reassure{color:var(--muted)}
.nav ul a.navcall{color:var(--gold);font-weight:600;font-variant-numeric:tabular-nums}
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 20px;margin:8px 0 0;border-top:1px solid var(--band-line);padding-top:16px}
.quick div{min-width:0}
.quick dt{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:4px}
.quick dd{margin:0;font-size:.88rem;color:var(--band-muted);line-height:1.45}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.checks li{position:relative;padding:12px 14px 12px 40px;background:var(--surface);border:1px solid var(--line);border-radius:2px}
.checks li::before{content:"";position:absolute;left:14px;top:17px;width:12px;height:7px;border-left:2px solid var(--gold-text);border-bottom:2px solid var(--gold-text);transform:rotate(-45deg)}
.closer-text{display:grid;gap:6px;max-width:620px}
.closer-text p{color:var(--muted)}
.btn.dark{border-color:var(--fg);color:var(--fg)}
.mobilebar{display:none}

.minis{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mini{display:grid;gap:6px;align-content:start;padding:18px;border:1px solid var(--line);background:var(--bg);text-decoration:none;color:var(--fg);border-radius:2px;min-width:0;transition:border-color .15s}
.mini:hover{border-color:var(--gold)}
.mini.here{background:var(--surface);border-color:var(--gold);border-width:1.5px}
.mini.here .num i{font-family:var(--body);font-style:normal;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg);background:var(--bg);border:1px solid var(--gold);padding:2px 6px;margin-left:8px;vertical-align:middle;border-radius:2px}
.mini .num{font-family:var(--display);color:var(--gold-text);font-size:1.1rem;font-variant-numeric:tabular-nums}
.mini b{font-family:var(--display);font-size:1.08rem;font-weight:600;line-height:1.25}
.mini span:not(.num){font-size:.88rem;color:var(--muted)}
.mini em{font-style:normal;font-size:.85rem;font-weight:600;color:var(--gold-text)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px;border-top:2px solid var(--fg);padding-top:16px}
.pager a{display:grid;gap:2px;text-decoration:none;font-family:var(--display);font-weight:600;font-size:1.05rem;color:var(--fg);min-width:0}
.pager a.next{text-align:right}
.pager small{font-family:var(--body);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-text);font-weight:600}
.pager a:hover{text-decoration:underline;text-decoration-color:var(--gold)}

.has-drop{position:relative}
.navdrop summary{list-style:none;cursor:pointer;color:var(--band-muted);padding-block:4px;display:inline-flex;align-items:center;gap:6px}
.navdrop summary::-webkit-details-marker{display:none}
.navdrop summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.navdrop[open] summary::after{transform:rotate(-135deg) translateY(-1px)}
.navdrop summary:hover,.navdrop[open] summary,.navdrop summary[aria-current="page"]{color:var(--band-fg)}
.navdrop summary[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--gold)}
.nav ul.drop{position:absolute;top:calc(100% + 10px);left:-12px;z-index:30;display:grid;gap:0;min-width:320px;max-width:calc(100vw - 32px);background:var(--band);border:1px solid var(--gold);padding:8px 0;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.nav ul.drop a{display:flex;gap:10px;padding:9px 16px;color:var(--band-fg);font-size:.92rem;line-height:1.35}
.nav ul.drop a span{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:600}
.nav ul.drop a:hover{background:rgba(255,255,255,.06)}
.nav ul.drop a.all{color:var(--gold);font-weight:600;border-bottom:1px solid var(--band-line);margin-bottom:4px}

/* proof strip */
.proof{border-top:1px solid var(--band-line)}
.proof .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-block:24px}
.proof div{display:grid;gap:4px;min-width:0}
.proof strong{font-family:var(--display);font-size:1.5rem;font-weight:500;color:var(--band-fg);font-variant-numeric:tabular-nums}
.proof small{font-size:.82rem;color:var(--band-muted);line-height:1.45}

main section{padding-block:60px;border-bottom:1px solid var(--line)}
main section:last-child{border-bottom:0}
.head{display:grid;gap:10px;margin-bottom:30px;max-width:660px}
.head p{color:var(--muted)}
.prose{display:grid;gap:16px;max-width:68ch}
.prose p,.prose li{color:var(--fg)}
.prose ul{margin:0;padding-left:1.2em;display:grid;gap:8px}
.muted{color:var(--muted)}

/* services grid */
.services{display:grid;grid-template-columns:repeat(2,1fr);border-top:2px solid var(--fg)}
.svc{padding:24px 24px 26px 0;border-bottom:1px solid var(--line);display:grid;gap:10px;align-content:start;min-width:0}
.svc:nth-child(even){padding-left:24px;border-left:1px solid var(--line)}
.svc h3 a{text-decoration:none}
.svc h3 a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.svc p{color:var(--muted)}
.svc .for{font-size:.82rem;color:var(--fg)}
.svc .for b,.tagline b{color:var(--gold-text);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;margin-right:6px}
.svc.lead-svc{background:var(--surface);padding-left:20px;padding-right:20px;border-left:3px solid var(--gold)}
.more{font-size:.9rem;font-weight:600;color:var(--gold-text);text-decoration:none}
.more:hover{text-decoration:underline}

/* two-column detail */
.cols{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;align-items:start}
.cols > *{min-width:0}
.aside{background:var(--surface);border:1px solid var(--line);padding:22px;display:grid;gap:14px}
.aside h3{font-size:1.05rem}
.aside ul{margin:0;padding-left:1.1em;display:grid;gap:6px;font-size:.95rem}

/* case cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{border-top:2px solid var(--fg);padding-top:16px;display:grid;gap:10px;align-content:start;min-width:0}
.card .meta{font-size:.8rem;color:var(--muted)}
.card p{color:var(--muted);font-size:.95rem}

/* case study full */
.case{display:grid;grid-template-columns:200px 1fr;gap:32px;padding-block:44px;border-bottom:1px solid var(--line)}
.case:first-child{padding-top:0}
.case:last-child{border-bottom:0}
.case > *{min-width:0}
.case .num{font-family:var(--display);font-size:2.4rem;color:var(--gold-text);line-height:1;font-variant-numeric:tabular-nums}
.case .side{display:grid;gap:8px;align-content:start;font-size:.88rem;color:var(--muted)}
.case .body{display:grid;gap:14px;max-width:70ch}
.case h4{font-family:var(--body);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin:8px 0 0}
.case ul{margin:0;padding-left:1.1em;display:grid;gap:8px}
.case .why{border-left:2px solid var(--gold);padding-left:14px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips a{font-size:.78rem;border:1px solid var(--line);background:var(--surface);padding:3px 8px;border-radius:2px;text-decoration:none;color:var(--fg)}

/* engagements */
.tablewrap{overflow-x:auto}
.models{width:100%;border-collapse:collapse;font-size:.95rem}
.models th{text-align:left;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 16px 10px 0;border-bottom:2px solid var(--fg)}
.models td{padding:16px 16px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.models td:first-child{font-family:var(--display);font-size:1.05rem;font-weight:600;white-space:nowrap}
.models td.time{white-space:nowrap;color:var(--gold-text);font-weight:600;font-variant-numeric:tabular-nums}
.note{margin-top:16px;font-size:.88rem;color:var(--muted)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:s}
.steps li{display:grid;gap:8px;align-content:start;counter-increment:s;min-width:0}
.steps li::before{content:counter(s);font-family:var(--display);font-size:1.6rem;color:var(--gold-text);border-bottom:1px solid var(--gold);padding-bottom:6px}
.steps p{color:var(--muted);font-size:.95rem}

/* about */
.about{display:grid;grid-template-columns:220px 1fr;gap:40px;align-items:start}
.portrait{aspect-ratio:4/5;max-width:100%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;text-align:center;color:var(--muted);font-size:.8rem;padding:12px}
.portrait b{display:block;font-family:var(--display);font-size:3rem;color:var(--gold-text);font-weight:500}
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:.95rem}
.timeline li{display:grid;grid-template-columns:110px 1fr;gap:14px}
.timeline span{color:var(--gold-text);font-weight:600;font-variant-numeric:tabular-nums}
.facts{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:.95rem;margin:0}
.facts dt{font-weight:600}
.facts dd{margin:0;color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{border:1px solid var(--line);background:var(--surface);padding:6px 12px;font-size:.88rem;border-radius:2px}

/* faq */
.faq{display:grid;gap:0;border-top:2px solid var(--fg);max-width:820px}
.faq details{border-bottom:1px solid var(--line);padding-block:16px}
.faq summary{font-family:var(--display);font-size:1.12rem;font-weight:600;cursor:pointer;list-style-position:outside}
.faq details > div{padding-top:10px;color:var(--muted);display:grid;gap:10px;max-width:68ch}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.3fr;gap:48px}
.contact > *{min-width:0}
.direct{display:grid;gap:14px;margin-top:6px}
.direct div{display:grid;gap:2px}
.direct small{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.copyrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.copyrow code{font-family:var(--body);font-size:1rem;user-select:all;word-break:break-all}
.copy{font:inherit;font-size:.78rem;padding:3px 10px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;border-radius:2px}
form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:6px;font-size:.82rem;font-weight:600}
label.full{grid-column:1/-1}
input,select,textarea{font:inherit;font-size:.95rem;font-weight:400;padding:10px 12px;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:2px;width:100%}
textarea{min-height:120px;resize:vertical}
.hp{position:absolute;left:-9999px}
.turnstile{grid-column:1/-1}
form .btn{justify-self:start;background:var(--fg);color:var(--bg);border-color:var(--fg)}
.formnote{grid-column:1/-1;font-size:.9rem;color:var(--gold-text)}

/* closing call to action */
.closer{background:var(--surface)}
.closer .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.closer h2{font-size:clamp(1.3rem,2.6vw,1.7rem)}

footer{background:var(--band);color:var(--band-muted);font-size:.88rem}
footer .wrap{display:grid;grid-template-columns:1.1fr 1.25fr .7fr 1.1fr;gap:28px;padding-block:40px}
footer .wrap > div{min-width:0}
.fcontact{gap:10px!important}
.fcontact a{display:grid;gap:1px;color:var(--band-fg)!important;word-break:break-word}
.fcontact small{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}
.fbtn{margin-top:16px;font-size:.88rem;padding:10px 16px}
footer h3{font-family:var(--body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
footer a{color:var(--band-muted);text-decoration:none}
footer a:hover{color:var(--band-fg)}
footer .legal{grid-column:1/-1;border-top:1px solid var(--band-line);padding-top:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.8rem}

@media (max-width:860px){
  .quick{grid-template-columns:1fr 1fr}
  .minis{grid-template-columns:1fr 1fr}
  .mobilebar{display:grid;grid-template-columns:1fr 1.4fr;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--band);border-top:1px solid var(--gold);padding:8px max(12px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:8px}
  .mobilebar a{text-align:center;padding:11px 8px;font-weight:600;font-size:.92rem;text-decoration:none;border:1.5px solid var(--gold);color:var(--band-fg);border-radius:2px}
  .mobilebar a.go{background:var(--gold);color:#13233d}
  body{padding-bottom:72px}

  .hero-grid{grid-template-columns:1fr;gap:0}
  .hero-photo{max-width:180px;padding-block:0 32px}

  .proof .wrap{grid-template-columns:repeat(2,1fr)}
  .services{grid-template-columns:1fr}
  .svc,.svc:nth-child(even){padding:22px 0;border-left:0}
  .svc.lead-svc{padding:22px 18px;border-left:3px solid var(--gold)}
  .cards{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .cols,.contact,.about{grid-template-columns:1fr;gap:32px}
  .case{grid-template-columns:1fr;gap:16px}
  .portrait{max-width:200px}
  footer .wrap{grid-template-columns:1fr 1fr}
}
@media (max-width:480px){
  .nav ul.drop{position:fixed;left:16px;right:16px;top:auto;min-width:0;max-width:none}

  .quick{grid-template-columns:1fr}
  .minis{grid-template-columns:1fr}
  .pager{grid-template-columns:1fr}
  .pager a.next{text-align:left}

  form{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .timeline li{grid-template-columns:1fr;gap:0}
  main section{padding-block:44px}
  footer .wrap{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
