/* First Line Group: Direction A, editorial typography with a richer red-orange system */
@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-roman.woff2) format("woff2");font-weight:300 400;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url(/fonts/fraunces-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(/fonts/instrument-sans.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
:root{
  --red:#F22B0C;        /* brand red-orange: panels, rules, icons, large type only (white on it = 4.1:1) */
  --red-deep:#C81E06;   /* bands/buttons carrying small white text (5.8:1) */
  --red-text:#C4210A;   /* small red text on paper (5.6:1) */
  --tint:#FDECE8;       /* pale red wash */
  --gray:#AAA8A6;       /* brand warm gray, decorative */
  --ink:#3A3836;        /* body text: dark warm gray, 10.9:1 on paper (was near-black #1d1b1a) */
  --charcoal:#3A3836;   /* warm charcoal for dark bands + footer, replaces near-black (Walter: no red with black) */
  --red-on-dark:#FF7A61; /* red-family text on charcoal: 4.56:1 (brand red is only 2.85:1 there) */
  --muted:#5f5c59;--label:#6b6866;
  --paper:#FBFAF8;--paper-2:#F3F1ED;--rule:#e4e1dd;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --pad:56px;
}
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--red-text);outline-offset:3px;border-radius:2px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-60px;background:var(--charcoal);color:#fff;padding:10px 16px;z-index:10;text-decoration:none;font-size:14px}
.skip:focus{top:12px}
.wrap{max-width:1200px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.eyebrow,.label,.kicker{font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-weight:500}

/* ---------- header ---------- */
.site-header{background:var(--paper);border-top:5px solid var(--red);border-bottom:1px solid var(--rule);position:relative;z-index:2}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{display:flex;align-items:center;text-decoration:none;flex:none}
.logo picture{display:block}
.logo img{display:block;height:64px;width:auto} /* red badge, gray letters: Walter's original lockup */
.site-nav ul{display:flex;gap:40px;list-style:none;font-size:14px;letter-spacing:.04em}
.site-nav a{text-decoration:none;color:var(--muted);padding:6px 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
.site-nav a:hover{color:var(--red-text);border-bottom-color:var(--red)}
.site-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--red)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:64px;align-items:stretch}
.hero-copy{position:relative;padding:112px 0 136px}
.eyebrow{color:var(--red-text);margin-bottom:28px;display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:28px;height:3px;background:var(--red)}
h1{font:300 88px/1.02 var(--serif);letter-spacing:-.025em}
h1 em,h2 em{font-style:italic;font-weight:300;color:var(--red)}
.lede{margin-top:32px;font-size:19px;line-height:1.6;color:var(--muted);max-width:600px}
.actions{display:flex;flex-wrap:wrap;gap:28px;margin-top:40px;align-items:center}
.btn{display:inline-block;background:var(--red-deep);color:#fff;text-decoration:none;font-size:15px;font-weight:500;padding:15px 28px;letter-spacing:.02em;transition:background .15s}
.btn:hover{background:var(--charcoal)}
.link{font-size:15px;text-decoration:none;border-bottom:2px solid var(--red);padding-bottom:3px;transition:color .15s}
.link:hover{color:var(--red-text)}
/* signature "direct line": node, red line, ring that lands on the red panel */
.hero-line{position:absolute;left:0;bottom:64px;width:calc(100% + 64px);height:3px;background:var(--red)}
.hero-line::before{content:"";position:absolute;left:0;top:-4.5px;width:12px;height:12px;border-radius:50%;background:var(--red)}
.hero-line::after{content:"";position:absolute;right:-11px;top:-9.5px;width:22px;height:22px;border-radius:50%;background:var(--paper);border:4px solid var(--red)}
.hero-visual{position:relative;isolation:isolate;padding:64px 0 64px 64px;display:flex;flex-direction:column;justify-content:center}
.hero-visual::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:0;right:-100vw;background:var(--red)}
.hero-visual::after{content:"";position:absolute;z-index:-1;right:-40px;top:40px;width:220px;height:220px;border-radius:50%;border:1px solid rgba(255,255,255,.35)}
.frame{position:relative}
.frame::before{content:"";position:absolute;inset:-16px 16px 16px -16px;border:1.5px solid rgba(255,255,255,.85);z-index:-1}
.hero-img img{width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:0 30px 60px -30px rgba(60,10,0,.55)}
.tagline{position:relative;margin:-56px 0 0 -40px;align-self:flex-start;background:var(--red-deep);color:#fff;padding:22px 26px;max-width:320px;font:italic 300 24px/1.35 var(--serif);box-shadow:0 20px 40px -20px rgba(60,10,0,.6)}
.tagline small{display:block;margin-top:10px;font:500 11px/1.4 var(--sans);letter-spacing:.26em;text-transform:uppercase;font-style:normal;color:#fff}
.hero--page .hero-copy{padding:96px 0 120px}
.hero--page h1{font-size:72px}
.hero--page .hero-img img{aspect-ratio:4/3.4}

/* ---------- sections ---------- */
.sec{padding-top:96px;padding-bottom:104px;position:relative}
.sec.tint{background:var(--paper-2)}
.divider{position:relative;height:22px;margin-bottom:56px}
.divider::before{content:"";position:absolute;left:0;right:0;top:10px;height:1px;background:var(--rule)}
.divider span{position:absolute;left:0;top:9px;height:3px;width:var(--p);background:var(--red)}
.divider span::before{content:"";position:absolute;left:0;top:-4.5px;width:12px;height:12px;border-radius:50%;background:var(--red)}
.divider span::after{content:"";position:absolute;right:-10px;top:-8.5px;width:20px;height:20px;border-radius:50%;background:var(--paper);border:4px solid var(--red)}
.label{color:var(--label);margin-bottom:40px;display:flex;gap:16px;align-items:baseline}
.label .num{font:italic 300 34px/1 var(--serif);letter-spacing:0;color:var(--red);text-transform:none}
.label--light{color:#fff}
.label--light .num{color:#fff}
h2{font:300 52px/1.08 var(--serif);letter-spacing:-.02em}
h3{font:400 28px/1.15 var(--serif);letter-spacing:-.01em}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:end;margin-bottom:56px}
.sec-head p{color:var(--muted);font-size:18px;max-width:520px}

/* icons */
.ico{width:28px;height:28px;fill:none;stroke:var(--red);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s}
.ico .f{fill:var(--red);stroke:none;transition:fill .2s}
.ico-wrap{display:inline-grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--tint);transition:background .2s,transform .2s;flex:none}
.ico-wrap--sm{width:52px;height:52px}

/* service cards */
.svc{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;list-style:none}
.svc .card{padding:32px 26px 28px}.svc .card h3{font-size:25px}
.card{display:flex;flex-direction:column;height:100%;background:#fff;border:1px solid var(--rule);border-top:4px solid var(--red);padding:36px 32px 32px;text-decoration:none;position:relative;transition:transform .2s,box-shadow .2s}
.card h3{margin:28px 0 14px}
.card p{color:var(--muted);font-size:16px;flex:1}
.card .more{margin-top:24px;color:var(--red-text);font-size:20px;transition:transform .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px rgba(120,20,0,.35)}
.card:hover .ico-wrap{background:var(--red)}
.card:hover .ico{stroke:#fff}.card:hover .ico .f{fill:#fff}
.card:hover .more{transform:translateX(6px)}
.also{margin-top:24px;padding:32px;background:var(--tint);display:grid;grid-template-columns:52px 260px 1fr 300px;gap:32px;align-items:start}
.also h3{font-size:22px;line-height:1.3}
.also .ico-wrap{background:#fff}
.also .kicker{display:block;font-family:var(--sans);font-size:11px;color:var(--red-text);margin-bottom:8px}
.also p{color:var(--muted);font-size:16px}
.also-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.ext{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--red-deep);padding:11px 18px;font-size:14.5px;font-weight:500;text-decoration:none;color:var(--red-deep);background:#fff;transition:background .15s,color .15s}
.ext:hover{background:var(--red-deep);color:#fff}
.ext-ico{width:11px;height:11px}
.ext-note,.detail .ext-note{font-size:13px;color:var(--label);margin:0;max-width:300px}
.ext-wrap{margin-top:28px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}

/* feature: image with red offset block */
.feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:96px;align-items:center}
.offset-img{position:relative;isolation:isolate}
.offset-img::before{content:"";position:absolute;z-index:-1;left:-28px;bottom:-28px;width:72%;height:78%;background:var(--red)}
.offset-img img{width:100%;aspect-ratio:4/3.3;object-fit:cover}
.steps{list-style:none;counter-reset:s;display:grid;gap:0}
.steps li{counter-increment:s;display:grid;grid-template-columns:64px 1fr;column-gap:8px;padding:24px 0;border-top:1px solid #d9d5cf}
.steps li:last-child{border-bottom:1px solid #d9d5cf}
.steps li::before{content:counter(s,decimal-leading-zero);grid-row:span 2;font:italic 300 36px/1 var(--serif);color:var(--red)}
.steps h3{font-size:26px;margin-bottom:6px}
.steps p{color:var(--muted);font-size:16px}

/* about split + headshot frame */
.split{display:grid;grid-template-columns:380px 1fr;gap:104px;align-items:center}
.ph-frame{position:relative;isolation:isolate;padding:0 28px 28px 0}
.ph-frame::before{content:"";position:absolute;z-index:-1;right:0;bottom:0;width:calc(100% - 28px);height:calc(100% - 28px);background:var(--red)}
.ph-frame::after{content:"";position:absolute;z-index:-1;left:-18px;top:-18px;width:64px;height:64px;border-left:3px solid var(--red);border-top:3px solid var(--red)}
.ph{aspect-ratio:4/5;background:#fff;border:1px solid var(--gray);display:flex;align-items:center;justify-content:center;background-image:repeating-linear-gradient(135deg,transparent 0 14px,rgba(242,43,12,.07) 14px 15px)}
.ph span{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--label);background:#fff;padding:8px 14px;border:1px solid var(--rule)}
.headshot{display:block}
.headshot img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:#eceae8;border:1px solid var(--gray)}
.split h2{margin-bottom:24px}
.split p{color:var(--muted);max-width:640px;font-size:18px}
.split p+p{margin-top:18px}
.split .link{display:inline-block;margin-top:32px}

/* services detail */
.detail{display:grid;grid-template-columns:400px 1fr;gap:88px;border-top:1px solid var(--rule);padding:64px 0}
.detail:first-of-type{border-top:0;padding-top:8px}
.d-head{position:relative}
.d-num{position:absolute;right:0;top:-6px;font:italic 300 64px/1 var(--serif);color:var(--red);opacity:.9}
.detail .kicker{color:var(--red-text);display:block;margin:24px 0 10px}
.detail h2{font-size:42px}
.d-body p{color:var(--muted);font-size:18px;max-width:640px}
.d-body p+p{margin-top:16px}
.d-body ul{margin-top:26px;list-style:none;display:grid;gap:12px;max-width:640px}
.d-body li{padding-left:30px;position:relative}
.d-body li::before{content:"";position:absolute;left:0;top:.72em;width:16px;height:3px;background:var(--red)}
.detail.secondary{background:var(--tint);padding:56px;margin-top:24px;border-top:4px solid var(--red)}
.detail.secondary h2{font-size:36px}
.detail.secondary .ico-wrap{background:#fff}
.d-body .sub{margin-top:28px;padding-left:22px;border-left:3px solid var(--red)}
.d-body .sub h3{font-size:24px;margin-bottom:8px}
.d-body .sub+p{margin-top:28px}
.aside-link{margin-top:8px;padding:22px 0 0;border-top:1px solid var(--rule);font-size:15px;color:var(--label)}
.aside-link a{color:var(--red-text);text-underline-offset:3px}
.aside-link .nw{white-space:nowrap}
.aside-link .ext-ico{display:inline-block;margin-left:5px;vertical-align:baseline}
.sub .aside-link{margin-top:12px;padding-top:0;border-top:0}
.d-body .sub ul{margin-top:14px;gap:10px}
.d-body .sub li{font-size:17px;color:var(--muted)}
.note{font-size:14px !important;color:var(--label) !important;margin-top:24px !important}

/* dark + deep-red bands */
.sec.dark{background:var(--charcoal);color:#fff}
.sec.dark .questions li::before{color:var(--red-on-dark)}
.sec.deep{background:var(--red-deep);color:#fff}
.sec.dark .label{color:#d9d5d0}
.sec.dark .label .num{color:var(--red-on-dark)}
.sec.dark .sec-head p{color:#d9d5d0}
.sec.deep .sec-head p{color:#fff}
.questions{list-style:none;counter-reset:q;display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px}
.questions li{counter-increment:q;display:flex;gap:22px;align-items:baseline;font:300 28px/1.3 var(--serif);padding:26px 0;border-top:1px solid rgba(255,255,255,.18)}
.questions li::before{content:counter(q,decimal-leading-zero);font-style:italic;font-size:30px;color:var(--red);flex:none}
.sec.deep .questions li{border-top-color:rgba(255,255,255,.35)}
.sec.deep .questions li::before{color:#fff;opacity:.85}

/* quote band */
.quote-band{background:var(--charcoal);color:#fff;padding:104px 0;position:relative;overflow:hidden}
.quote-band::after{content:"";position:absolute;left:0;bottom:56px;width:42%;height:3px;background:var(--red)}
.quote-band .label--light .num{color:var(--red-on-dark)}
.quote-band blockquote em{color:var(--red-on-dark)}
.quote-band .label{color:#d9d5d0}
blockquote{font:300 50px/1.18 var(--serif);letter-spacing:-.015em;max-width:1000px}
blockquote em{color:var(--red);font-style:italic}

.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;list-style:none}
.principles li{border-top:4px solid var(--red);padding-top:28px}
.principles h3{font-size:26px;margin:24px 0 12px}
.principles p{color:var(--muted);font-size:16px}

/* contact band */
.cta-band{background:var(--red);color:#fff;padding:104px 0;position:relative;overflow:hidden}
.cta-line{position:absolute;left:0;top:56px;width:34%;height:3px;background:#fff}
.cta-line::after{content:"";position:absolute;right:-10px;top:-8.5px;width:20px;height:20px;border-radius:50%;background:var(--red);border:4px solid #fff}
.cta-band::after{content:"";position:absolute;right:-120px;bottom:-160px;width:460px;height:460px;border-radius:50%;border:1px solid rgba(255,255,255,.35)}
.cta-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center;position:relative;z-index:1}
.cta-band h2{font-size:64px;color:#fff}
.cta-band h2 em{color:#fff}
.cta-intro{margin-top:24px;font:300 24px/1.45 var(--serif);max-width:480px;color:#fff}
.cta-card{background:var(--red-deep);padding:40px 44px;display:grid;gap:0;box-shadow:0 30px 60px -30px rgba(60,10,0,.6)}
.cta-card div{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.28)}
.cta-card div:last-child{border-bottom:0}
.cta-card dt{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#fff;padding-top:4px;opacity:1}
.cta-card dd{font-size:18px;overflow-wrap:anywhere}
.cta-card a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.6)}
.cta-card a:hover{border-bottom-color:#fff}
.cta-band :focus-visible{outline-color:#fff}

/* contact page cards */
.c-cards{list-style:none;display:grid;grid-template-columns:1fr 1.45fr 1fr 1fr;gap:20px}
.c-card{display:flex;flex-direction:column;gap:6px;height:100%;background:#fff;border:1px solid var(--rule);border-top:4px solid var(--red);padding:32px 28px;text-decoration:none;transition:transform .2s,box-shadow .2s}
.c-card .ico-wrap{margin-bottom:18px}
.c-label{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--label)}
.c-value{font:400 21px/1.3 var(--serif);overflow-wrap:break-word}
a.c-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px -28px rgba(120,20,0,.35)}
a.c-card:hover .ico-wrap{background:var(--red)}
a.c-card:hover .ico{stroke:#fff}

/* footer */
.site-footer{background:var(--charcoal);color:#d9d5d0;padding:64px 0 40px;font-size:14px;border-top:5px solid var(--red)}
.site-footer .top{display:grid;grid-template-columns:1.2fr 1fr auto;gap:48px;align-items:start}
.logo--foot img{height:58px}
.f-tag{margin-top:16px;font:italic 300 19px var(--serif);color:#fff}
.site-footer ul{display:flex;gap:28px;list-style:none}
.site-footer a{text-decoration:none;color:#fff}
.site-footer a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px}
.site-footer .bottom{margin-top:48px;padding-top:22px;border-top:1px solid #5a5652;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;color:#bdb8b2;font-size:13px}
.site-footer .foot-ext{text-decoration:underline;text-underline-offset:2px;color:#fff}
.site-footer :focus-visible{outline-color:#fff}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .svc{grid-template-columns:repeat(2,1fr)}
  .also{grid-template-columns:52px 1fr;}
  .also p,.also-links{grid-column:2}
  .c-cards{grid-template-columns:repeat(2,1fr)}
  .c-cards li:nth-child(2){order:0}
}
@media (max-width:1000px){
  h1{font-size:64px}
  .hero-grid{grid-template-columns:1fr;gap:0}
  .hero-copy,.hero--page .hero-copy{padding:72px 0 96px}
  .hero-line{width:100%;bottom:44px}
  .hero-line::after{right:0}
  .hero-visual{padding:48px 0 56px 32px}
  .hero-visual::before{left:calc(-1 * var(--pad))}
  .hero-img img,.hero--page .hero-img img{aspect-ratio:4/3}
  .tagline{margin:-40px 0 0 -16px}
  .split,.sec-head,.detail,.feature,.cta-grid{grid-template-columns:1fr;gap:40px}
  .detail{gap:24px}
  .d-num{font-size:48px}
  .svc{grid-template-columns:1fr}
  .site-footer .top{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  :root{--pad:22px}
  body{font-size:16.5px}
  .site-header .wrap{height:68px}
  .logo img{height:42px}
  .logo--foot img{height:52px}
  .site-nav ul{gap:16px;font-size:13.5px}
  h1,.hero--page h1{font-size:46px}
  .lede{font-size:17px;margin-top:22px}
  .eyebrow{letter-spacing:.16em;font-size:11.5px}
  .hero-copy,.hero--page .hero-copy{padding:56px 0 84px}
  .hero-visual{padding:36px 0 44px 22px}
  .frame::before{inset:-10px 10px 10px -10px}
  .tagline{font-size:21px;padding:18px 20px;margin:-32px 0 0 -10px}
  .sec{padding-top:64px;padding-bottom:72px}
  .divider{margin-bottom:40px}
  .label{margin-bottom:28px}
  .label .num{font-size:28px}
  h2{font-size:36px}
  .detail h2{font-size:32px}
  .also{grid-template-columns:1fr;padding:24px 22px;margin-left:-22px;margin-right:-22px;gap:16px}
  .also p,.also-links{grid-column:auto}
  .feature{gap:56px}
  .offset-img{margin-left:6px}
  .offset-img::before{left:-12px;bottom:-14px}
  .split{gap:48px}
  .ph-frame{max-width:300px;padding:0 18px 18px 0}
  .ph-frame::before{width:calc(100% - 18px);height:calc(100% - 18px)}
  .detail{padding:52px 0}
  .detail.secondary{padding:36px 22px;margin-left:-22px;margin-right:-22px}
  .questions{grid-template-columns:1fr}
  .questions li{font-size:23px}
  .quote-band{padding:72px 0 96px}
  blockquote{font-size:32px}
  .principles{grid-template-columns:1fr;gap:40px}
  .cta-band{padding:88px 0 72px}
  .cta-line{top:40px;width:55%}
  .cta-band h2{font-size:42px}
  .cta-intro{font-size:24px}
  .cta-card{padding:24px 22px}
  .cta-card div{grid-template-columns:1fr;gap:2px}
  .c-cards{grid-template-columns:1fr}
  .site-footer .top{grid-template-columns:1fr;gap:28px}
  .site-footer .bottom{flex-direction:column;gap:12px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
