:root { --canvas:#fcfcfb; --paper:#efefeb; --ink:#14181d; --body:#565f6b; --hair:#e5e5e1; --blue:#1b63b6; --night:#112943; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:"Instrument Sans",system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
a:focus-visible, summary:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.wrap { width:min(1160px,calc(100% - 48px)); margin-inline:auto; }
.eyebrow { margin:0; color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.display { margin:0; max-width:11ch; font-size:clamp(50px,6.6vw,86px); font-weight:600; letter-spacing:-.052em; line-height:.94; }
.section-title { margin:0; max-width:14ch; font-size:clamp(36px,4.5vw,58px); font-weight:600; letter-spacing:-.04em; line-height:1; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 26px; border-radius:999px; background:var(--ink); color:#fff; font-size:13px; font-weight:600; transition:background .2s ease,transform .2s ease; }
.button:hover { background:var(--blue); transform:translateY(-1px); }
.button-blue { background:var(--blue); }

.site-nav { position:sticky; top:0; z-index:20; border-bottom:1px solid var(--hair); background:rgba(252,252,251,.94); backdrop-filter:blur(10px); }
.nav-inner { height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand img { width:210px; height:auto; }
.nav-links { display:flex; align-items:center; gap:23px; color:var(--body); font-size:13px; font-weight:500; }
.nav-links a:hover,.phone:hover { color:var(--blue); }
.nav-actions { display:flex; align-items:center; gap:16px; }
.phone { font-size:13px; font-weight:600; white-space:nowrap; }

.hero { padding:64px 0 76px; background:var(--paper); border-bottom:1px solid var(--hair); }
.hero-grid { display:grid; grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr); gap:64px; align-items:center; }
.hero .eyebrow { margin-bottom:23px; }
body.hidden-editorial .hero-copy .hero-service-label { margin:0 0 20px!important; color:var(--blue)!important; font-size:18px!important; font-weight:650!important; line-height:1.35!important; }
.hero-sub { max-width:56ch; margin:28px 0 0; color:var(--body); font-size:18px; line-height:1.72; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:19px; margin-top:31px; }
.hero-phone { color:var(--body); font-size:14px; font-weight:600; }
.hero-photo { position:relative; min-height:608px; overflow:hidden; background:#d2d3d0; }
.hero-photo > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.collage-note { position:absolute; right:0; bottom:0; width:min(310px,74%); padding:23px 24px; background:var(--night); color:#fff; }
.collage-note span { display:block; color:#75b8f4; font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.collage-note strong { display:block; margin-top:8px; font-size:14px; font-weight:600; line-height:1.45; }

.intro { padding:100px 0; }
.intro-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:92px; align-items:start; }
.intro h2 { max-width:14ch; margin:0; font-size:clamp(38px,4.5vw,58px); font-weight:600; letter-spacing:-.04em; line-height:1.02; }
.intro-copy p { margin:0 0 21px; color:var(--body); font-size:17px; line-height:1.8; }
.intro-copy p:first-child { color:var(--ink); font-size:21px; letter-spacing:-.02em; line-height:1.58; }

.patterns { padding:110px 0 118px; background:var(--paper); }
.patterns-head { display:grid; grid-template-columns:.78fr 1.22fr; gap:82px; align-items:end; }
.patterns-head > p { max-width:56ch; margin:0; color:var(--body); font-size:17px; line-height:1.75; }
.pattern-grid { display:grid; margin-top:66px; border-top:1px solid #d6d6d0; }
.pattern-card { display:grid; grid-template-columns:.92fr 1.08fr; min-height:370px; border-bottom:1px solid #d6d6d0; }
.pattern-card:nth-child(even) .pattern-photo { order:2; }
.pattern-photo { width:100%; height:100%; min-height:370px; object-fit:cover; }
.pattern-copy { display:flex; flex-direction:column; justify-content:center; padding:48px 54px; }
.pattern-label { margin:0 0 16px; color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.pattern-card h3 { margin:0 0 17px; font-size:28px; font-weight:600; letter-spacing:-.035em; line-height:1.08; }
.pattern-card p:last-child { margin:0; color:var(--body); font-size:15px; line-height:1.72; }
.criteria { padding:106px 0; background:var(--night); color:#fff; }
.criteria-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:92px; }
.criteria .eyebrow { color:#75b8f4; }
.criteria-title .section-title { max-width:12ch; }
.criteria-list { border-top:1px solid rgba(255,255,255,.2); }
.criteria-list article { display:grid; grid-template-columns:150px 1fr; gap:30px; padding:26px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.criteria-list span { color:#75b8f4; font-size:13px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.criteria-list p { margin:0; color:rgba(255,255,255,.72); font-size:15px; line-height:1.68; }

.outcome { padding:112px 0; }
.outcome-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:92px; align-items:start; }
.outcome-copy > p:not(.eyebrow) { max-width:62ch; margin:25px 0 0; color:var(--body); font-size:17px; line-height:1.8; }
.outcome-copy a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.monitor-card { padding:42px; background:var(--paper); border-top:4px solid var(--blue); }
.monitor-card h3 { margin:21px 0; font-size:34px; font-weight:600; letter-spacing:-.04em; line-height:1.04; }
.monitor-card > p:not(.eyebrow) { margin:0 0 17px; color:var(--body); font-size:15px; line-height:1.72; }

.foundation-proof { padding:98px 0 104px; background:var(--night); color:#fff; }
.foundation-proof-grid { display:block; }
.foundation-proof .eyebrow { color:#75b8f4; }
.foundation-proof h2 { max-width:13ch; margin:18px 0 0; font-size:clamp(34px,4vw,54px); font-weight:600; letter-spacing:-.04em; line-height:1.02; }
.foundation-proof figure { max-width:920px; margin:0 auto; padding-left:40px; border-left:3px solid #75b8f4; }
.foundation-proof blockquote { max-width:27ch; margin:0; font-size:clamp(25px,3vw,38px); font-weight:500; letter-spacing:-.035em; line-height:1.28; }
.foundation-proof figcaption { margin-top:24px; color:rgba(255,255,255,.76); font-size:14px; }
.foundation-proof a { display:inline-block; margin-top:28px; color:#75b8f4; font-size:14px; font-weight:600; }

.faq { padding:112px 0 124px; border-top:1px solid var(--hair); }
.faq-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:82px; }
.faq-list { border-top:1px solid var(--hair); }
details { border-bottom:1px solid var(--hair); }
summary { position:relative; cursor:pointer; list-style:none; padding:27px 52px 27px 0; font-size:19px; font-weight:600; letter-spacing:-.018em; line-height:1.4; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; position:absolute; right:2px; top:23px; color:var(--blue); font-size:28px; font-weight:400; }
details[open] summary::after { content:"–"; }
details p { margin:0; padding:0 48px 28px 0; color:var(--body); font-size:15px; line-height:1.72; }

.cta { padding:96px 0; background:var(--paper); border-top:1px solid var(--hair); }
.cta-grid { display:grid; grid-template-columns:1fr auto; gap:58px; align-items:end; }
.cta h2 { max-width:15ch; margin:0; font-size:clamp(38px,5vw,62px); font-weight:600; letter-spacing:-.04em; line-height:1; }
.cta p:last-child { max-width:60ch; margin:22px 0 0; color:var(--body); font-size:16px; line-height:1.7; }

.site-footer { padding:64px 0 34px; background:var(--ink); color:#fff; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:60px; }
.footer-brand { width:240px; filter:brightness(0) invert(1); }
.footer-copy { max-width:36ch; margin:24px 0 0; color:rgba(255,255,255,.58); font-size:13px; line-height:1.7; }
.footer-title { margin:0 0 18px; color:rgba(255,255,255,.46); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.footer-links { display:grid; gap:12px; font-size:14px; }
.footer-links a:hover { color:#75b8f4; }
.legal { margin-top:54px; padding-top:26px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.44); font-size:11px; line-height:1.7; }

@media (max-width:960px) {
  .nav-links { display:none; }
  .hero-grid,.intro-grid,.patterns-head,.criteria-grid,.outcome-grid,.foundation-proof-grid,.faq-grid { grid-template-columns:1fr; gap:44px; }
  .hero-grid { align-items:start; }
  .hero-photo { max-width:720px; }
  .pattern-copy { padding:42px; }
}
@media (max-width:700px) {
  .wrap { width:min(100% - 32px,1160px); }
  .site-nav .phone { display:none; }
  .brand img { width:180px; }
  .nav-inner { height:72px; }
  .nav-actions .button { min-height:42px; padding:0 16px; }
  .hero { padding:48px 0 58px; }
  .display { font-size:clamp(46px,14vw,68px); }
  .hero-photo { min-height:510px; }
  .collage-note { width:min(290px,82%); padding:18px; }
  .intro,.patterns,.criteria,.outcome,.foundation-proof,.faq,.cta { padding:78px 0; }
  .pattern-card { grid-template-columns:1fr; }
  .pattern-card:nth-child(even) .pattern-photo { order:0; }
  .pattern-photo { min-height:320px; height:320px; }
  .pattern-copy { padding:32px 8px 40px; }
  .criteria-list article { grid-template-columns:1fr; gap:8px; }
  .monitor-card { padding:30px 25px; }
  .foundation-proof figure { padding-left:24px; }
  .cta-grid,.footer-grid { grid-template-columns:1fr; }
  .footer-grid { gap:40px; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{transition:none!important} }
