/* Shared Hergert design contract. All active pages consume these roles. */
:root{
 --font-family:Archivo,Arial,sans-serif;
 --font-display:clamp(54px,6.05vw,92px);--font-page:clamp(44px,4.6vw,68px);
 --font-section:clamp(34px,3.45vw,54px);--font-heading:27px;
 --font-lead:18px;--font-body:16px;--font-label:15px;--font-caption:14px;
 --weight-display:650;--weight-heading:550;--weight-benefit:600;--weight-body:400;
 --leading-heading:1.12;--leading-body:1.55;--tracking-heading:-.035em;
 --space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;
 --section-space:var(--space-9);--column-gap:var(--space-7);--radius-control:0;--radius-image:0;
 --error:#972f26;--field-border:#85897e;--focus:#235ec3;
 --paper:#fff;--ink:#20221e;--muted:#555950;--line:#dedfd9;--panel:#f0f1ed;--muted-inverse:#cdd0c7;
 --gutter:clamp(20px,3.6vw,64px);--shadow-photo:0 24px 42px -28px rgb(32 34 30 / .45);
 --ease:cubic-bezier(.16,1,.3,1);--control-height:56px;--target-min:44px;
}
body{font-family:var(--font-family);font-size:var(--font-body);font-weight:var(--weight-body);line-height:var(--leading-body)}
:is(.primary,.request,.image-open,.view-photo,.gallery,.gallery-controls button){border-radius:var(--radius-control)}
:is(.service-visual,.project-image,.company-photo button,.photo){border-radius:var(--radius-image)}
.primary{font-size:var(--font-body);min-height:var(--control-height);font-weight:var(--weight-heading)}
.content-section{padding-top:var(--section-space);padding-bottom:var(--section-space)}
:is(.content-section h2,.company-story h2,.contact-close h2){font-size:var(--font-section);font-weight:var(--weight-heading);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}
:is(.service-row h3,.project-copy h3,.process-list h3){font-size:var(--font-heading);font-weight:var(--weight-heading);line-height:1.2;letter-spacing:-.025em}
:is(.service-row .service-benefit,.benefit-title){font-size:var(--font-body);font-weight:var(--weight-benefit);line-height:1.4;margin:0 0 var(--space-2);color:var(--ink)}
:is(.service-row .service-description,.project-copy p,.process-list p,.benefit-copy){font-size:var(--font-body);font-weight:var(--weight-body);line-height:var(--leading-body);color:var(--muted);margin-top:0}
:is(.service-list,.project-grid,.process-list){gap:var(--column-gap)}
.project-copy{padding-top:var(--space-5)}.project-copy h3{margin-bottom:var(--space-3)}
.projects .project-copy p{color:var(--muted-inverse);opacity:1}
.company{padding:0}.company-story{padding:var(--space-8) var(--column-gap)}
.company-story .company-lead{font-size:var(--font-lead);font-weight:var(--weight-benefit);line-height:var(--leading-body);color:var(--ink);margin-bottom:var(--space-3)}
.company-story>p:not(.company-lead):not(.company-location){font-size:var(--font-body);line-height:var(--leading-body);color:var(--muted)}
.section-heading{margin-bottom:var(--space-7)}.contact-close-bottom>p{font-size:var(--font-lead);line-height:var(--leading-body);color:var(--muted)}
.services-intro{margin-bottom:var(--space-7)}.service-row .text-link{margin-top:auto}
@media(max-width:1000px){:root{--font-heading:23px;--section-space:var(--space-8);--column-gap:var(--space-5)}}
@media(max-width:760px){
 :root{--font-page:clamp(37px,7.2vw,54px);--font-section:36px;--font-heading:27px;--font-lead:17px;--section-space:56px;--column-gap:var(--space-6);--gutter:20px}
 .company-story{padding:var(--space-6) var(--gutter) var(--section-space)}
 .section-heading,.services-intro{margin-bottom:var(--space-6)}
 .project-copy h3,.process-list h3{font-size:24px}
}
@media(max-width:380px){:root{--font-section:32px;--font-heading:25px;--gutter:16px}}

/* Legacy comparison-page disclosure styles; current prototype provenance is internal. */
.demo-disclosure,.demo-inline{font-size:var(--font-caption);font-weight:var(--weight-body);line-height:1.5}
.demo-disclosure{margin:var(--space-4) 0 var(--space-6);padding:var(--space-3) 0;border-top:1px solid currentColor;color:var(--muted)}
.demo-inline{display:block;margin-bottom:var(--space-2);text-decoration:underline;text-underline-offset:3px}
/* The same text roles switch to the inverse palette on dark surfaces. */
.contact-close .contact-close-bottom>p{color:var(--muted-inverse)}
.contact-close .contact-person{color:var(--muted-inverse)}
.contact-close .contact-person strong{color:var(--paper)}

.customer-voice,.employer-preview{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8)}
.customer-voice figure{margin:0}.customer-voice blockquote{font-size:var(--font-heading);font-weight:var(--weight-heading);line-height:1.4;margin:0 0 var(--space-5);letter-spacing:-.015em;text-wrap:pretty}
.customer-voice figcaption{font-size:var(--font-caption);color:var(--muted)}
.customer-voice .demo-disclosure{max-width:40ch;margin-bottom:0}
.employer-preview{background:var(--panel)}.employer-preview h2{margin-bottom:var(--space-5)}
.employer-preview .benefit-copy{max-width:44ch}.employer-preview .demo-disclosure{max-width:42ch}
.employer-preview .primary{background:var(--ink);color:var(--paper)}.employer-preview .primary:hover{background:#41463b}
@media(max-width:760px){.customer-voice,.employer-preview{grid-template-columns:1fr;gap:var(--space-6)}.customer-voice blockquote{font-size:24px}}

.contact-options{display:flex;flex-wrap:wrap;gap:var(--space-5);margin-top:var(--space-5)!important}.contact-options a{text-decoration:underline;text-underline-offset:4px;min-height:var(--target-min);display:inline-flex;align-items:center}

/* Shared location cue, contact role and contextual footer surface. */
:is(.desktop-nav,#mobile-menu) a[aria-current]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.header .request[aria-current="page"]{background:var(--ink);color:var(--paper)}
.contact-person{margin-top:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-body)}
.contact-person strong{font-weight:var(--weight-benefit)}
.contact-person a{display:flex;align-items:center;min-height:var(--target-min);text-decoration:underline;text-underline-offset:4px}
.footer-inverse{background:var(--ink);color:var(--paper)}
.footer-inverse .footer-main address,.footer-inverse .footer-meta{color:var(--muted-inverse)}
.footer-inverse .footer-meta{border-color:var(--muted)}
.footer-inverse :focus-visible{outline-color:var(--paper)}
.contact-close-bottom{align-items:flex-start}
