:root { --ink:#171513; --paper:#F2F1ED; --accent:#8C8175; --line:rgba(23,21,19,.2); --soft-line:rgba(242,241,237,.22); --container:1320px; --font-display:"Libre Baskerville", Georgia, serif; --font-body:"DM Sans", Arial, sans-serif; --space-unit:8px; --space-section-desktop:calc(var(--space-unit) * 14); --space-section-mobile:calc(var(--space-unit) * 9); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); font-size:16px; line-height:1.55; }
a { color:inherit; }
button, a, summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.skip-link { position:fixed; top:12px; left:16px; z-index:20; padding:10px 14px; background:var(--accent); color:var(--paper); transform:translateY(-140%); transition:transform .2s ease; }
.skip-link:focus { transform:translateY(0); }
.site-header { min-height:84px; padding:22px max(28px,calc((100vw - var(--container)) / 2)); display:flex; align-items:center; gap:32px; border-bottom:1px solid var(--line); background:var(--paper); }
.lockup { display:flex; flex-direction:column; text-decoration:none; line-height:1.1; margin-right:auto; }
.lockup-name { font-size:17px; font-weight:700; letter-spacing:-.03em; }
.lockup-role { margin-top:5px; color:#5e5750; font-size:10px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }
.site-nav { display:flex; gap:26px; color:#504a44; font-size:13px; }
.site-nav a, .text-link, .site-footer a { text-decoration:none; }
.site-nav a:hover, .text-link:hover, .site-footer a:hover { color:var(--accent); }
.header-cta { padding:10px 17px; border:1px solid var(--ink); border-radius:999px; font-size:12px; font-weight:700; text-decoration:none; }
.header-cta:hover { background:var(--ink); color:var(--paper); }
.hero { min-height:68svh; height:clamp(560px,72svh,780px); position:relative; overflow:hidden; background:var(--paper); }
.hero-grid { width:min(var(--container),calc(100% - 56px)); height:100%; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.55fr) minmax(220px,.7fr); align-content:center; gap:9%; padding:50px 8% 50px 11%; }
.hero-kicker { grid-column:1 / -1; align-self:end; margin-bottom:14px; color:#6b635b; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.hero-copy h1 { max-width:11ch; margin:0; font:400 clamp(46px,5.6vw,82px)/1.07 "Libre Baskerville", Georgia, serif; letter-spacing:-.065em; }
.hero-support { max-width:48ch; margin:28px 0 0; color:#504a44; font-size:18px; line-height:1.55; }
.hero-actions { display:flex; align-items:center; gap:24px; margin-top:38px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:48px; padding:13px 21px; border-radius:999px; font-size:13px; font-weight:700; text-decoration:none; transition:background .2s ease,color .2s ease,transform .2s ease; }
.button:hover { transform:translateY(-2px); }
.button--dark { background:var(--ink); color:var(--paper); }
.button--dark:hover { background:var(--accent); }
.button--accent { background:var(--accent); color:var(--ink); }
.button--accent:hover { background:var(--paper); }
.text-link { color:#5e5750; font-size:13px; font-weight:600; }
.hero-aside { align-self:end; padding-bottom:30px; color:#625b54; font-size:14px; }
.hero-aside p { max-width:18ch; margin:0 0 20px; font:400 18px/1.35 "Libre Baskerville", Georgia, serif; color:var(--ink); }
.aside-rule { display:block; width:46px; height:1px; margin-bottom:14px; background:var(--accent); }
.hero-label { position:absolute; color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.18em; writing-mode:vertical-rl; }
.hero-label--top { top:25%; left:34px; }
.hero-label--bottom { right:34px; bottom:23%; transform:rotate(180deg); }
.hero-index { position:absolute; bottom:34px; left:calc((100% - var(--container)) / 2); color:#756d65; font-size:11px; letter-spacing:.12em; }
.dark-section { position:relative; color:var(--paper); background:var(--ink); }
.section-frame, .listening-grid, .documents-grid, .process-inner, .local-presence, .contact-grid { width:min(var(--container),calc(100% - 56px)); margin:0 auto; }
.section-frame { min-height:720px; padding:112px 8% 105px 11%; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:10%; align-items:center; }
.eyebrow { display:block; margin-bottom:26px; color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.17em; }
.section-intro h2, .documents-heading h2, .local-intro h2, .contact-message h2, .process-title h2 { max-width:13ch; margin:0; font:400 clamp(33px,4vw,57px)/1.13 "Libre Baskerville", Georgia, serif; letter-spacing:-.055em; }
.section-intro > p, .section-intro > .demo-content > p, .documents-heading > p, .documents-heading > .demo-content > p, .local-intro > p, .contact-message > p, .process-title > p, .process-title > .demo-content > p { max-width:44ch; margin:27px 0 0; color:#b9b2aa; font-size:16px; }
.situation-list { border-top:1px solid var(--soft-line); }
.situation-row { display:grid; grid-template-columns:42px minmax(0,1fr) 24px; gap:18px; align-items:start; padding:26px 0 29px; border-bottom:1px solid var(--soft-line); }
.row-number, .row-label { color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.row-number { padding-top:5px; }
.row-label { margin:0 0 8px; }
.situation-row h3 { margin:0; font:400 clamp(25px,3vw,40px)/1.1 "Libre Baskerville", Georgia, serif; letter-spacing:-.04em; }
.situation-row p:not(.row-label) { max-width:45ch; margin:12px 0 0; color:#b9b2aa; font-size:15px; }
.row-arrow { color:var(--accent); font-size:22px; }
.side-tag { position:absolute; bottom:33px; color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.18em; writing-mode:vertical-rl; }
.side-tag--right { right:34px; transform:rotate(180deg); }
.light-section { background:var(--paper); }
.listening-grid { min-height:640px; padding:112px 8% 112px 11%; display:grid; grid-template-columns:minmax(250px,.56fr) minmax(0,1fr); gap:12%; align-items:center; }
.context-figure, .local-image { margin:0; }
.context-figure { width:min(100%,340px); }
.context-figure img { display:block; width:100%; aspect-ratio:3 / 4; object-fit:cover; object-position:center 30%; }
figcaption { margin-top:11px; color:#6b635b; font-size:11px; line-height:1.4; }
.listening-copy { padding-top:12px; }
.listening-copy h2 { max-width:11ch; margin:0; font:400 clamp(36px,4.3vw,61px)/1.12 "Libre Baskerville", Georgia, serif; letter-spacing:-.06em; }
.listening-copy p { max-width:44ch; margin:28px 0 0; color:#504a44; font-size:17px; }
.copy-mark { display:block; margin-top:52px; color:var(--accent); font-size:28px; }
.documents { padding:112px 0; border-top:1px solid var(--line); }
.documents-grid { padding:0 8% 0 11%; display:grid; grid-template-columns:minmax(230px,.65fr) minmax(0,1.35fr); gap:12%; }
.documents-heading h2 { max-width:11ch; }
.documents-heading > p, .documents-heading > .demo-content > p { color:#6b635b; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); }
summary { display:grid; grid-template-columns:40px minmax(0,1fr) 25px; gap:15px; align-items:center; padding:25px 0; cursor:pointer; list-style:none; font-size:16px; font-weight:600; }
summary::-webkit-details-marker { display:none; }
summary span { color:var(--accent); font-size:11px; }
summary b { color:var(--accent); font-size:23px; font-weight:400; transition:transform .2s ease; }
details[open] summary b { transform:rotate(45deg); }
details p { max-width:62ch; margin:-6px 40px 25px 55px; color:#645d55; font-size:15px; }
.process-strip { background:#d8d3ca; padding:78px 0 88px; }
.process-inner { padding:0 8% 0 11%; display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:12%; }
.process-title h2 { font-size:38px; }
.process-title > p, .process-title > .demo-content > p { color:#5e5750; }
.process-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; margin:0; padding:0; list-style:none; border-top:1px solid rgba(23,21,19,.3); }
.process-steps li { padding-top:17px; }
.process-steps span { color:var(--accent); font-size:11px; font-weight:700; letter-spacing:.12em; }
.process-steps strong { display:block; margin-top:23px; font:400 24px/1.15 "Libre Baskerville", Georgia, serif; }
.process-steps p { margin:13px 0 0; color:#5e5750; font-size:14px; }
.local-presence { padding:112px 8% 126px 11%; display:grid; grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr); gap:13%; align-items:start; }
.local-intro h2 { max-width:10ch; }
.local-intro p { max-width:40ch; color:#5e5750; }
.local-media { position:relative; min-height:585px; }
.local-image img { display:block; width:100%; object-fit:cover; }
.local-image--large { width:67%; }
.local-image--large img { aspect-ratio:4 / 3; }
.local-image--small { width:54%; margin:42px 0 0 auto; }
.local-image--small img { aspect-ratio:1 / 1; }
.contact-closing { padding:105px 0 30px; }
.contact-grid { padding:0 8% 100px 11%; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(290px,.85fr); gap:12%; }
.contact-message h2 { max-width:9ch; }
.contact-message > p { max-width:39ch; }
.contact-tag { display:block; margin-top:120px; color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.18em; writing-mode:vertical-rl; }
.contact-details .button { margin:9px 0 50px; }
.contact-details dl { margin:0; }
.contact-details dl > div { padding:18px 0; border-top:1px solid var(--soft-line); }
.contact-details dt { color:var(--accent); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.contact-details dd { margin:8px 0 0; color:var(--paper); font-size:15px; line-height:1.55; }
.contact-details dd a { text-decoration:none; }
.site-footer { width:min(var(--container),calc(100% - 56px)); margin:0 auto; padding:22px max(8%,0px) 0; display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--soft-line); color:#9b948c; font-size:11px; }
.site-footer a { color:var(--paper); }
.demo-content { position:relative; }
@media (max-width:900px) { .hero-grid,.section-frame,.listening-grid,.documents-grid,.process-inner,.local-presence,.contact-grid { padding-left:5%; padding-right:5%; } .hero-grid { gap:5%; } .section-frame,.listening-grid,.documents-grid,.process-inner,.local-presence,.contact-grid { grid-template-columns:minmax(0,1fr); } .section-frame { min-height:0; gap:65px; } .listening-grid { gap:50px; } .context-figure { width:min(100%,390px); } .documents-grid,.process-inner,.local-presence,.contact-grid { gap:55px; } .local-media { min-height:0; } .contact-tag { margin-top:60px; } }
@media (max-width:640px) { .site-header { min-height:76px; padding:18px 20px; gap:14px; flex-wrap:wrap; } .site-nav { order:3; width:100%; justify-content:space-between; gap:10px; font-size:12px; } .header-cta { padding:9px 13px; font-size:11px; } .lockup-name { font-size:15px; } .hero { height:640px; min-height:0; } .hero-grid { width:100%; padding:38px 42px 68px; display:flex; flex-direction:column; justify-content:center; gap:0; } .hero-kicker { margin:0 0 20px; font-size:9px; line-height:1.5; } .hero-copy h1 { max-width:9ch; font-size:43px; line-height:1.08; } .hero-support { margin-top:21px; font-size:16px; } .hero-actions { align-items:flex-start; flex-direction:column; gap:19px; margin-top:30px; } .hero-aside { align-self:flex-start; padding:31px 0 0; font-size:12px; } .hero-aside p { font-size:15px; } .hero-label { position:static; width:max-content; padding:7px 10px; writing-mode:horizontal-tb; font-size:9px; letter-spacing:.13em; border:1px solid var(--accent); } .hero-label--top { margin:20px 0 0 42px; } .hero-label--bottom { margin:0 42px 22px auto; transform:none; } .hero-index { left:42px; bottom:28px; } .section-frame,.listening-grid,.documents,.process-strip,.local-presence,.contact-closing { padding-top:72px; padding-bottom:72px; } .section-frame { width:100%; padding-left:42px; padding-right:42px; gap:46px; } .side-tag { position:static; display:block; width:max-content; margin:0 42px 28px auto; padding:7px 10px; writing-mode:horizontal-tb; transform:none; border:1px solid var(--accent); font-size:9px; } .section-intro h2,.documents-heading h2,.local-intro h2,.contact-message h2 { max-width:12ch; font-size:37px; } .situation-row { grid-template-columns:29px minmax(0,1fr) 20px; gap:11px; padding:22px 0; } .situation-row h3 { font-size:28px; } .situation-row p:not(.row-label) { font-size:15px; } .listening-grid,.documents-grid,.process-inner,.local-presence,.contact-grid { width:100%; padding-left:42px; padding-right:42px; } .listening-grid { gap:42px; } .context-figure { width:100%; } .context-figure img { aspect-ratio:4 / 3; } .listening-copy h2 { max-width:11ch; font-size:38px; } .listening-copy p { font-size:16px; } .documents-grid,.process-inner,.local-presence,.contact-grid { gap:42px; } .process-inner { padding-left:42px; padding-right:42px; } .process-title h2 { font-size:34px; } .process-steps { grid-template-columns:1fr; gap:0; } .process-steps li { display:grid; grid-template-columns:35px minmax(0,1fr); column-gap:12px; padding:17px 0; } .process-steps li span { grid-row:span 2; } .process-steps strong { margin-top:0; } .process-steps p { grid-column:2; margin-top:7px; } .local-presence { padding-left:42px; padding-right:42px; } .local-media { display:flex; flex-direction:column; gap:30px; } .local-image--large,.local-image--small { width:100%; margin:0; } .local-image--small { width:76%; align-self:flex-end; } .contact-closing { padding-left:0; padding-right:0; } .contact-grid { padding-bottom:65px; } .contact-details .button { width:100%; margin:0 0 35px; } .contact-tag { margin-top:52px; } .site-footer { width:calc(100% - 84px); padding-left:0; padding-right:0; flex-direction:column; gap:8px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }

/* visual repair pass */
.site-header, .hero-grid, .section-frame, .listening-grid, .documents-grid, .process-inner, .local-presence, .contact-grid, .site-footer { max-width:1320px; }
.hero-label, .side-tag, .contact-tag { display:block; width:max-content; max-width:none; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.contact-tag { text-orientation:mixed; }
.copy-mark { display:none; }
.hero-grid { grid-template-columns:minmax(0,1.28fr) minmax(260px,.72fr); gap:4%; padding-left:10%; padding-right:7%; }
.hero-copy h1, .hero-aside p, .section-intro h2, .documents-heading h2, .local-intro h2, .contact-message h2, .process-title h2, .situation-row h3, .listening-copy h2, .process-steps strong { font-family:var(--font-display); }
.section-frame { padding-left:10%; padding-right:7%; gap:8%; }
.section-intro > p, .documents-heading > p, .local-intro > p, .contact-message > p, .process-title > p, .situation-row p:not(.row-label) { font-size:17px; line-height:1.6; }
.eyebrow, .row-label { white-space:nowrap; overflow-wrap:normal; word-break:normal; letter-spacing:.09em; }
.eyebrow { width:max-content; max-width:100%; font-size:11px; }
.row-label { font-size:11px; }
figcaption { font-size:12px; line-height:1.5; }
.listening-copy p { font-size:18px; line-height:1.6; }
.process-strip { background:#deddd8; }
.process-steps p { font-size:15px; line-height:1.55; }
.local-image--large { width:78%; }
.local-image--small { width:62%; margin-top:34px; }
.contact-details dt { font-size:11px; letter-spacing:.1em; }
.contact-details dd { font-size:17px; line-height:1.65; }
[data-visual-role="hero"] .hero-label { white-space:nowrap; overflow-wrap:normal; word-break:normal; }

@media (max-width:640px) {
  .hero-kicker { white-space:normal; }
  .hero-label, .side-tag { white-space:nowrap; overflow-wrap:normal; word-break:normal; letter-spacing:.09em; }
  .contact-tag { writing-mode:horizontal-tb; width:max-content; max-width:100%; white-space:nowrap; }
  .section-frame, .listening-grid, .documents-grid, .process-inner, .local-presence, .contact-grid { padding-left:42px; padding-right:42px; }
  .situation-row p:not(.row-label), .process-steps p { font-size:16px; line-height:1.55; }
  .listening-copy p { font-size:17px; }
  .local-image--large, .local-image--small { width:100%; margin-top:0; }
  .local-image--small { width:86%; align-self:flex-end; }
  .contact-details dt { font-size:10px; }
  .contact-details dd { font-size:16px; line-height:1.6; }
}

/* prospect-design-safety-kernel */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; }
body { margin: 0; min-width: 320px; }
img, svg, video { max-width: 100%; }
img { height: auto; }
figure { margin: 0; }
:where([data-layout-cell], [data-visual-role="hero"] > *, section > *, main > *) { min-width: 0; }
:where(p, li, blockquote, figcaption) { overflow-wrap: anywhere; }
[data-visual-role="hero"] [data-media-slot]:not([data-logo-slot="true"]) {
  max-height: min(68svh, 760px);
  object-fit: cover;
}
@media (max-width: 720px) {
  [data-visual-role="hero"] [data-media-slot]:not([data-logo-slot="true"]) {
    width: 100%;
    max-height: min(58svh, 560px);
  }
}
