/* Public website refinement — shares the existing brand tokens. */
:root{--brand-symbol-width:72px;--brand-symbol-compact:48px}
.brand-symbol{display:block;width:var(--brand-symbol-width);height:auto;flex:none}
.site-header .brand{gap:var(--s3);min-width:0}
.site-header .brand-name{white-space:nowrap}
.footer-brand{display:inline-flex;align-items:center;gap:var(--s4);width:fit-content;max-width:100%;color:inherit;text-decoration:none}
.brand-symbol-surface{display:flex;align-items:center;flex:none;padding:var(--s2);background:var(--white);border-radius:var(--radius)}
.footer-brand .brand-name{min-width:0}
@media(max-width:1023px){
  .site-header .header-inner{flex-wrap:wrap;gap:0}
  .site-header .brand{min-height:76px}
  .brand-symbol{width:var(--brand-symbol-compact)}
  .site-header .menu-toggle{display:flex;margin-left:auto}
  .site-header .site-nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;padding-bottom:var(--s5)}
  .site-header .site-nav.is-open{display:flex}
  .site-header .site-nav a{padding:var(--s3) var(--s2);border-bottom:1px solid var(--border)}
  .site-header .site-nav .nav-cta{justify-content:space-between;margin-top:var(--s2);padding-inline:var(--s4)}
}
:root{--lead:1.125rem;--h1:clamp(2rem,4.5vw,4rem);--h2:clamp(1.75rem,3vw,2.5rem);--h3:clamp(1.25rem,2vw,1.5rem);--small:1rem}
.eyebrow{letter-spacing:0;font-size:1rem}
.site-header .brand-divider,.site-header .brand-est{display:none}
.site-header .brand-name{font-size:clamp(1.125rem,2vw,1.5rem)}
.site-header .brand-sub{font-size:10px;letter-spacing:.12em}
.site-header .site-nav{gap:var(--s6)}
.site-nav .nav-cta{border-radius:var(--radius)}
.section-head{align-items:center}
.section-head p{margin-top:var(--s4)}
.masthead{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:var(--s9);padding-block:var(--s10)}
.masthead-copy{--od-gap:var(--s5);min-width:0}
.company-kicker{color:var(--accent);font-weight:650}
.masthead h1{line-height:1.4;letter-spacing:-.05em}
.masthead-description{max-width:40ch;color:var(--muted);font-size:var(--lead);line-height:1.75}
.masthead-copy .button{align-self:flex-start;margin-top:var(--s2)}
.masthead-picture{min-width:0}
.masthead-picture img{width:100%;height:auto}
.masthead-picture figcaption{padding-top:var(--s3);font-size:1rem}
.masthead-picture .line-link{display:flex;border:0;white-space:normal;gap:var(--s5);font-weight:500}
.project-grid{align-items:start;gap:var(--s8) var(--s6)}
.project-card{display:grid;grid-template-rows:auto 1fr;color:var(--ink);text-decoration:none}
.project-card .project-media{overflow:visible;background:transparent}
.project-card .project-media img{width:100%;height:auto;aspect-ratio:auto;transform:none;max-width:var(--image-max)}
.project-card-body{padding-top:var(--s4)}
.project-title-row{gap:var(--s5)}
.project-title-row h3{font-family:var(--body);font-size:var(--h3);line-height:1.5;font-weight:700}
.project-title-row>svg{margin-top:var(--s1)}
.project-work{margin-top:var(--s3);font-size:1rem;line-height:1.65}
.project-meta{font-size:1rem;margin-bottom:var(--s2);flex-wrap:wrap;row-gap:var(--s1)}
.project-summary-row{grid-column:1/-1;display:flex;align-items:center;gap:var(--s6);padding-block:var(--s6);border-block:1px solid var(--border);color:var(--ink);text-decoration:none}
.project-summary-row time{flex:none;color:var(--muted);font-size:var(--lead);font-weight:600}
.project-summary-row h3{font-size:var(--h3);line-height:1.5}
.project-summary-row p{color:var(--muted);margin-top:var(--s2)}
.row-action{display:flex;align-items:center;gap:var(--s4);flex:none;min-height:44px}
.project-grid>.empty-state{grid-column:1/-1}
.service-overview{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--s10)}
.service-overview-heading p{margin-top:var(--s5);line-height:1.75}
.service-rows a{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding-block:var(--s6);border-bottom:1px solid var(--on-dark);color:var(--white);text-decoration:none}
.service-rows a:first-child{border-top:1px solid var(--on-dark)}
.service-rows .od-field{--od-gap:var(--s2)}
.service-rows p{color:var(--on-dark);line-height:1.65}
.service-rows h3{font-weight:600}
.company-summary{display:grid;grid-template-columns:1fr 1fr;gap:var(--s10)}
.company-summary .lead{margin-top:var(--s5);color:var(--muted)}
.company-summary .line-link{margin-top:var(--s6)}
.company-summary-links{display:grid;align-content:center;gap:var(--s5)}
.company-summary-links a{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:var(--s2) var(--s5);padding-block:var(--s5);border-bottom:1px solid var(--border);color:var(--ink);text-decoration:none}
.company-summary-links a>span{grid-column:1;color:var(--muted)}
.company-summary-links a>strong{grid-column:1;font-size:var(--lead);font-weight:600}
.company-summary-links a>svg{grid-column:2;grid-row:1/3;align-self:center}
.contact-band{background:var(--ground);border-top:1px solid var(--border);padding-block:var(--s9)}
.contact-band-inner{align-items:center}
.contact-call{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--s5);font-weight:600;font-size:clamp(1.25rem,2.5vw,1.75rem);letter-spacing:0}
.page-heading{padding-top:var(--s9);padding-bottom:var(--s8)}
.page-heading h1{font-size:clamp(2rem,4vw,3.5rem)}
.page-heading p{max-width:65ch;line-height:1.75}
.body-copy{line-height:1.75}
.company-grid .body-copy{max-width:60ch}
.company-grid .body-copy h2{color:var(--ink)}
.company-grid .body-copy .line-link{margin-top:var(--s6)}
.company-picture img{width:100%;height:auto}
.company-profile{grid-template-columns:.75fr 1.25fr;gap:var(--s9)}
.company-profile h2{font-size:var(--h2)}
.company-table .fact:last-child{margin-bottom:0}
.certificate-preview{border:0;border-radius:0;padding:var(--s6);gap:var(--s5)}
.certificate-preview img{width:auto;height:auto;max-width:100%;max-height:320px}
.certificate-copy h3{font-size:var(--h3)}
.certificate-facts .fact{grid-template-columns:72px minmax(0,1fr)}
.certificate-status{color:var(--error)}
.certificate-facts dd{font-weight:400}
.company-era{border-top:2px solid var(--navy)}
.company-era h3{font-size:var(--h3)}
.company-era time{color:var(--muted);font-size:var(--lead);font-weight:500}
.company-timeline .timeline-item{padding-block:var(--s7)}
.company-timeline h2{font-size:var(--h3);line-height:1.5}
.company-timeline time{font-family:var(--body);font-weight:600}
.services-detail{gap:var(--s9)}
.service-detail{border-bottom:1px solid var(--border);padding-bottom:var(--s9)}
.service-detail:last-child{border-bottom:0;padding-bottom:0}
.service-detail:nth-child(even) .service-image{order:0}
.service-hero .body-copy{margin-top:var(--s6)}
.service-image img{width:100%;height:auto}
.scope-list li:before{width:4px;height:4px}
.filters{padding-block:var(--s8)}
.filter-search{flex-direction:column;align-items:stretch;max-width:400px}
.filter-search label{font-size:1rem;font-weight:600}
.search-controls{display:flex;align-items:center;gap:var(--s2)}
.search-controls input{flex:1;min-width:0}
.search-controls button{flex:none}
.filter-bottom{align-items:flex-end}
.select-field{flex-wrap:wrap}
.detail-heading{padding-block:var(--s9) var(--s8)}
.detail-heading h1{max-width:1000px;line-height:1.4}
.detail-heading .breadcrumb{margin-bottom:var(--s5)}
.breadcrumb a{min-height:44px}
.detail-cover{background:transparent}
.detail-figure{max-width:1040px}
.detail-cover img{max-width:var(--image-max);margin-inline:auto}
.detail-summary{grid-template-columns:1.2fr 1fr;gap:var(--s10);padding-block:var(--s9)}
.detail-summary h2{font-size:var(--h3);margin-bottom:var(--s5)}
.detail-summary .lead{font-size:var(--lead);line-height:1.75;font-weight:600}
.scope-heading{margin-top:var(--s7);color:var(--ink);font-size:1rem}
.detail-facts .fact{grid-template-columns:80px minmax(0,1fr);gap:var(--s5)}
.gallery-caption{gap:var(--s3)}
.stage-label{padding-top:0}
.gallery-item button{background:transparent}
.gallery-item img{height:auto}
.detail-actions{margin-top:var(--s8)}
.contact-aside h2{font-family:var(--body);font-size:var(--h3);line-height:1.5}
.contact-layout{grid-template-columns:.8fr 1.2fr;gap:var(--s10)}
.contact-form{border-top:2px solid var(--navy);padding-top:var(--s6)}
.contact-block>a{font-size:clamp(1.25rem,2.3vw,1.75rem)}
.contact-address address{font-style:normal}
.form-note,.field-help,.field-error,.required{font-size:1rem}
.error-summary a{min-height:44px;display:inline-flex;align-items:center}
.receipt-panel{border-top:2px solid var(--navy);text-align:left;gap:var(--s5)}
.receipt-panel .od-cluster{justify-content:flex-start}
.receipt-number{font-size:clamp(1rem,2vw,1.25rem)}
.site-footer .muted{color:var(--on-dark)}
.footer-top{grid-template-columns:1fr 1.2fr}
.footer-contact,.footer-bottom{font-size:1rem;letter-spacing:0}
.footer-contact a,.footer-bottom a{min-height:44px}
.footer-message{max-width:40ch}
.photo-dialog .dialog-head h2,.document-dialog .dialog-head h2{font-size:var(--lead);line-height:1.5}
.lightbox-caption span,.document-notes p{font-size:1rem}
.document-dialog :focus-visible{outline-color:var(--accent)}
.data-notice{padding-inline:var(--gutter)}
@media(hover:hover){
 .project-card:hover .project-media img{transform:none}
 .project-card:hover h3,.project-summary-row:hover h3,.company-summary-links a:hover strong{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
 .service-rows a:hover h3{text-decoration:underline;text-underline-offset:4px}
 .site-footer a:hover,.location-panel a:hover{color:var(--white);text-decoration:underline;text-underline-offset:4px}
 .location-panel .button.light:hover{color:var(--ink)}
 .contact-call:hover{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
 .certificate-preview:hover{background:var(--ground);outline:1px solid var(--ink)}
}
@media(min-width:1440px){.masthead{padding-block:var(--s11)}}
@media(max-width:1023px){
 .header-inner{flex-wrap:wrap;gap:0 var(--s4);min-height:76px}
 .site-header .brand{min-height:76px}
 .site-header .menu-toggle{display:flex;margin-left:auto}
 .site-header .site-nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:var(--s2);padding-bottom:var(--s5)}
 .site-header .site-nav.is-open{display:flex}
 .site-header .site-nav a{padding:var(--s3) var(--s2);border-bottom:1px solid var(--border)}
 .site-header .site-nav .nav-cta{justify-content:space-between;margin-top:var(--s2)}
 .masthead{gap:var(--s6);padding-block:var(--s9);grid-template-columns:1fr 1fr}
 .masthead h1{font-size:clamp(2rem,4.5vw,3rem)}
 .service-overview,.company-summary,.detail-summary,.contact-layout{gap:var(--s8)}
 .site-header .site-nav{gap:var(--s4)}
 .site-header .nav-cta{padding-inline:var(--s4);gap:var(--s2)}
 .company-profile{gap:var(--s6)}
 .document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
 .section{padding-block:var(--s9)}.section-tight{padding-block:var(--s8)}
 .masthead{grid-template-columns:1fr;gap:var(--s7);padding-block:var(--s8)}
 .masthead h1{font-size:clamp(2rem,7vw,3rem)}
 .masthead-description br{display:none}
 .masthead-picture .line-link{font-size:1rem}
 .section-head{align-items:flex-start;flex-direction:column;gap:var(--s4);margin-bottom:var(--s6)}
 .project-grid{grid-template-columns:1fr;gap:var(--s8)}
 .project-title-row h3{font-size:1.25rem}
 .project-summary-row{flex-wrap:wrap;gap:var(--s3) var(--s5);padding-block:var(--s5)}
 .project-summary-row .od-fill{flex-basis:calc(100% - 80px)}
 .project-summary-row .row-action{margin-left:auto}
 .service-overview,.company-summary,.company-profile,.detail-summary,.contact-layout,.footer-top{grid-template-columns:1fr;gap:var(--s7)}
 .service-rows a{padding-block:var(--s5)}
 .company-summary-links{gap:var(--s2)}
 .contact-band-inner{align-items:flex-start;gap:var(--s5)}
 .page-heading{padding-top:var(--s8);padding-bottom:var(--s6)}
 .page-heading h1{font-size:2rem}
 .company-eras{gap:var(--s6)}
 .document-grid{grid-template-columns:1fr}
 .certificate-preview img{max-height:320px}
 .service-detail{padding-bottom:var(--s8)}
 .service-detail:nth-child(even) .service-image{order:0}
 .filter-search{max-width:none;width:100%;flex:auto}
 .filter-top{gap:var(--s5)}
 .filter-options{align-items:flex-start;gap:var(--s4)}
 .select-field{flex-direction:column;align-items:flex-start;gap:var(--s2)}
 .select-field select{max-width:100%}
 .detail-heading{padding-block:var(--s8) var(--s6)}
 .detail-heading h1{font-size:clamp(1.75rem,6vw,2.5rem)}
 .detail-summary{padding-block:var(--s8)}
 .detail-caption{font-size:1rem}
 .detail-actions{align-items:stretch}
 .detail-actions .button{padding-inline:var(--s4);flex:1}
 .contact-faq{margin-top:var(--s6)}
 .site-footer{padding-block:var(--s8) var(--s5)}
 .footer-top{padding-bottom:var(--s6)}
 .footer-bottom{gap:var(--s3)}
 .company-timeline .timeline-item{padding-block:var(--s5)}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
