:root {
  --paper:#f7f6f3; --ink:#191b1e; --muted:#53565b; --red:#ba1626; --red-dark:#9f1021;
  --line:#dedbd5; --white:#fff; --dark:#1b1d21;
}
*,*::before,*::after { box-sizing:border-box }
html { scroll-behavior:smooth }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Inter","Helvetica Neue",Arial,sans-serif; line-height:1.6 }
[hidden] { display:none !important }
a { color:inherit; text-decoration:none }
img { display:block; max-width:100%; height:auto }
ul,dl,dd { margin:0 }
button,input { font:inherit }
:focus-visible { outline:3px solid #0076b7; outline-offset:4px }
.skip { position:absolute; left:1rem; top:1rem; z-index:5; transform:translateY(-200%); background:white; padding:.6rem 1rem }
.skip:focus { transform:none }
.shell { width:min(1200px,calc(100% - 104px)); margin-inline:auto }
.site-header { background:var(--white); border-bottom:1px solid var(--line) }
.nav-wrap,.footer-inner { display:flex; justify-content:space-between; align-items:center; gap:20px }
.nav-wrap { min-height:76px }
.brand { display:flex; align-items:center; gap:12px; font-weight:800; letter-spacing:-.025em; white-space:nowrap; font-size:1.13rem }
.brand img { mix-blend-mode:multiply }
nav { display:flex; align-items:center; gap:clamp(16px,2.25vw,34px); font-size:.88rem; font-weight:600 }
nav a:not(.nav-contact):hover { color:var(--red) }
.nav-contact,.button { display:inline-flex; justify-content:center; align-items:center; gap:13px; padding:10px 17px; font-weight:700; min-height:44px }
.nav-contact { color:var(--red); border:1px solid #efc9ce }
.nav-contact:hover { background:#fbf0f1 }
.menu { display:none; border:1px solid var(--line); background:white; color:var(--ink); padding:7px 14px; min-height:44px }
.hero { position:relative; isolation:isolate; overflow:hidden; background:#f7f6f3 }
.hero-inner { min-height:570px; display:flex; align-items:center; padding-block:72px }
.hero-copy { width:56%; max-width:630px; position:relative; z-index:1 }
.eyebrow { display:flex; align-items:center; gap:11px; margin:0 0 17px; font-size:.72rem; font-weight:800; letter-spacing:.14em; color:var(--red) }
.eyebrow span { display:inline-block; flex:0 0 22px; height:2px; background:currentColor }
h1,h2,h3,p { margin-top:0 }
h1,h2 { font-family:"Inter","Helvetica Neue",Arial,sans-serif; letter-spacing:-.062em; line-height:1.03 }
h1 { font-size:clamp(3.2rem,5.65vw,5.6rem); margin-bottom:24px; font-weight:800 }
h1 em { color:var(--red); font-style:normal }
h2 { font-size:clamp(2.2rem,4vw,3.7rem); margin-bottom:22px }
h3 { letter-spacing:-.025em; line-height:1.25; margin-bottom:10px }
.hero-text { font-size:1.08rem; color:var(--muted); max-width:455px; margin-bottom:29px }
.actions { display:flex; flex-wrap:wrap; gap:11px }
.button { padding:12px 18px; font-size:.88rem }
.primary { background:var(--red); color:white; border:1px solid var(--red) }
.primary:hover { background:var(--red-dark); border-color:var(--red-dark) }
.hero-art { position:absolute; inset:0 0 0 auto; width:49%; background:var(--red); clip-path:polygon(23% 0,100% 0,100% 100%,0 100%,0 45%); overflow:hidden }
.hero-art::before { content:""; position:absolute; inset:0; background:#252a31; clip-path:polygon(42% 0,100% 0,100% 100%,26% 100%,0 50%) }
.hero-art img { position:absolute; right:0; top:0; width:100%; height:100%; object-fit:fill; filter:saturate(.85) }
.stats { background:var(--dark); color:white }
.stat-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding-block:24px }
.stat-grid div { padding:7px 22px 9px; border-left:1px solid #45474b }
.stat-grid div:first-child { padding-left:0; border:0 }
.stat-grid strong,.stat-grid span { display:block }
.stat-grid strong { font-size:clamp(1.55rem,3vw,2.45rem); letter-spacing:-.05em; line-height:1.15; margin-bottom:6px }
.stat-grid span { font-size:.84rem; color:#e1e2e5 }
.section { padding-block:85px; scroll-margin-top:20px }
.about { display:grid; grid-template-columns:1fr 1fr; gap:28px 64px; align-items:center }
.about p:not(.eyebrow) { color:var(--muted); max-width:67ch }
.about-image { width:100%; aspect-ratio:1.66; object-fit:cover; box-shadow:9px 9px 0 #c52a34 }
.values,.client-grid,.partner-list { list-style:none; padding:0 }
.values,.partner-list { display:flex; flex-wrap:wrap; gap:8px }
.values li,.partner-list li { background:white; border:1px solid var(--line); padding:6px 12px; font-size:.86rem; font-weight:600 }
.purpose { grid-column:1/-1; border-top:1px solid var(--line) }
details { border-bottom:1px solid var(--line) }
summary { display:flex; justify-content:space-between; gap:14px; align-items:center; cursor:pointer; padding:15px 0; font-weight:800; list-style:none }
summary::-webkit-details-marker { display:none }
summary::after { content:"+"; color:var(--red); font-size:1.35rem; line-height:1 }
details[open]>summary::after { content:"−" }
.purpose ul { padding-bottom:16px }
.services { color:white; background:var(--dark) }
.services .eyebrow,.contact .eyebrow { color:#ff929a }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#494b4f; border:1px solid #494b4f; margin-top:34px }
.services-grid article { background:#212329; padding:26px 23px; min-height:158px }
.services-grid article::before { content:""; display:block; background:#fa5261; width:21px; height:2px; margin-bottom:18px }
.services-grid p { font-size:.93rem; margin:0 }
.services-grid p { color:#e2e2e6 }
.clients { background:#eeeae5 }
.subhead { margin:29px 0 13px; font-size:1.05rem }
.client-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:10px }
.client-grid li { background:white; display:grid; grid-template-rows:78px auto; gap:12px; justify-items:center; text-align:center; align-items:center; padding:17px 9px; font-size:.81rem; line-height:1.4; font-weight:650 }
.client-grid img { width:105px; height:76px; object-fit:contain }
.contact { background:#24262b; color:white }
.contact-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:55px; align-items:start }
.contact h2 { max-width:560px }
.contact address { font-style:normal }
.contact dl>div { border-top:1px solid #55565b; padding:12px 0 }
.contact dt { font-size:.78rem; font-weight:700; color:#e1d5d5 }
.contact dd a:hover { text-decoration:underline }
.contact dd+dd { margin-top:3px; font-size:.88rem }
footer { background:#1b1d21; color:#eee; border-top:1px solid #4a4b50; font-size:.83rem }
.footer-inner { min-height:68px }
@media (max-width:1000px) {
  .shell { width:calc(100% - 64px) }
  .hero-inner { min-height:490px }
  .about { gap:24px 42px }
}
@media (max-width:760px) {
  .shell { width:calc(100% - 36px) }
  .nav-wrap { min-height:62px; flex-wrap:wrap; gap:0 }
  .menu { display:block }
  nav { width:100%; flex-wrap:wrap; gap:4px; padding-bottom:12px }
  nav a { padding:8px 11px }
  .menu:not([hidden]) + nav:not(.is-open) { display:none }
  .hero-inner { min-height:0; padding-block:50px 36px }
  .hero-copy { width:100% }
  .hero-art { position:relative; inset:auto; width:100%; height:clamp(218px,52vw,380px); clip-path:none; background:#26282d }
  .hero-art::before { background:var(--red); clip-path:polygon(27% 0,47% 0,19% 100%,0 100%) }
  .hero-art img { width:min(82%,530px); right:0; object-fit:cover; object-position:center 45% }
  .hero { display:flex; flex-direction:column-reverse }
  h1 { font-size:clamp(2.75rem,9.5vw,4.5rem) }
  .section { padding-block:56px }
  .about,.contact-grid { grid-template-columns:1fr; gap:24px }
  .about-image { width:calc(100% - 9px) }
  .stat-grid { padding-block:15px }
  .stat-grid div { padding:9px 10px }
  .services-grid,.client-grid { grid-template-columns:repeat(2,1fr) }
}
@media (max-width:420px) {
  .services-grid { grid-template-columns:1fr }
  .services-grid article { min-height:0 }
  .actions .button { padding-inline:11px; gap:8px }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
}
.arrow { position:relative; display:inline-block; flex:0 0 11px; height:11px }
.arrow::before { content:""; position:absolute; top:0; right:0; width:7px; height:7px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor }
.arrow::after { content:""; position:absolute; top:5px; right:0; width:12px; height:1.5px; background:currentColor; transform:rotate(-45deg) }
