/* V24: same visual identity and image treatments; responsive and access refinements. */
:root { --display: "Barlow Condensed", "Arial Narrow", Impact, "Roboto Condensed", sans-serif; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: var(--chrome-height); }
main, section, article, .form-grid, .footer-columns > div, .contact-layout > div, .hero-content { min-width: 0; }
[id] { scroll-margin-top: var(--chrome-height); }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 5px; }
main:focus:not(:focus-visible), section:focus:not(:focus-visible), article:focus:not(:focus-visible) { outline: none; }
.form-grid input:focus-visible, .form-grid select:focus-visible, .form-grid textarea:focus-visible { outline: 2px solid #075d77; outline-offset: 5px; }
.form-grid select { color-scheme: light; }
.form-grid select option { color: #111114; background: #ecebe6; }
.field-error { color: #a80835; font-size: .8rem; line-height: 1.5; }
.field-error:empty { display: none; }
.contact-info dd, .footer-columns a, .menu-primary-footer a { overflow-wrap: anywhere; }
.motion-toggle { cursor: pointer; flex-shrink: 0; }
.motion-toggle svg { width: 18px; height: 18px; pointer-events: none; }
.motion-text-toggle { margin-top: 14px; padding: 8px 16px; min-height: 44px; color: #fff; font-family: var(--display); font-size: .8rem; letter-spacing: .12em; text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }
.hero-progress i { transform-origin: left center; transition: none !important; }
.precision-loading i { animation: none !important; transform-origin: left center; }
.review-track { overflow: visible; }
.review-card[aria-hidden="true"] { visibility: hidden; }
.menu-layout, .search-panel, .a11y-content { overscroll-behavior: contain; }
.search-panel { max-height: calc(100dvh - var(--chrome-height)); overflow-y: auto; }
.a11y-content { max-height: calc(100dvh - 32px); overflow-y: auto; }
.sticky-valuation.is-hidden { visibility: hidden; }
.cookie-banner { max-height: calc(100dvh - 24px); overflow-y: auto; }
.cookie-actions > *, .menu-mobile-close, .header-icon-button, .header-location, .search-close, .a11y-header button { min-width: 44px; min-height: 44px; }
/* Small text remains in the same magenta/neutral palette with readable contrast. */
.process-header > .section-kicker, .story-copy > .section-kicker, .gallery-intro > .section-kicker, .contact-heading > .section-kicker, .capability-index { color: #ac1455; }
.footer-columns h3, .footer-bottom { color: #98989c; }
.form-grid label > span:first-child { color: #505157; }
.hero-ui { align-items: center; }
.hero-dot { height: 44px; }
/* No hover-only content, no hidden primary copy if scripting is unavailable. */
html:not(.js) [data-reveal] { opacity: 1; transform: none; }
html:not(.js) .hero-slide:first-child .hero-content > * { opacity: 1; transform: none; }
html:not(.js) .hero-controls, html:not(.js) .hero-dots, html:not(.js) .motion-toggle, html:not(.js) .motion-text-toggle, html:not(.js) .menu-trigger, html:not(.js) [data-search-open] { display: none; }
.noscript-nav { position: fixed; z-index: 9999; left: 0; right: 0; bottom: 0; padding: 10px 16px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; background: #050507; color: #fff; }
.noscript-nav a { padding: 8px; text-decoration: underline; }
html:not(.js) .comparison-range, html:not(.js) .comparison-handle, html:not(.js) .comparison-divider, html:not(.js) .comparison-toolbar { display: none; }
html:not(.js) .comparison-stage { aspect-ratio: auto; display: grid; grid-template-columns: 1fr 1fr; cursor: default; }
html:not(.js) .comparison-layer { position: relative; clip-path: none; -webkit-clip-path: none; aspect-ratio: 4/3; }
html:not(.js) .comparison-layer img { object-fit: contain; }
/* Layout only at narrow widths; retain cover photos, overlays, sequence and type. */
@media (max-width: 1180px) and (min-width: 901px) {
 .footer-columns { grid-template-columns: minmax(230px,1.2fr) repeat(3,minmax(0,.6fr)); gap: clamp(18px,2vw,28px); }
}
@media (max-width: 900px) {
 :root { --header-height: 72px; }
 .header-shell { padding-inline: max(16px,env(safe-area-inset-left)); }
 .header-logo { width: clamp(145px,36vw,230px); }
 .menu-primary { padding: max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom)); }
 .menu-nav { margin: 34px 0; }
 .menu-nav a { min-height: 62px; }
 .menu-nav a strong { font-size: clamp(2.1rem,8vw,3.5rem); }
 .menu-primary-footer { gap: 18px; }
 .hero-progress { display: block; width: clamp(52px,12vw,115px); }
 .hero-controls { gap: 8px; }
 .hero-ui { right: max(16px,env(safe-area-inset-right)); left: max(16px,env(safe-area-inset-left)); bottom: max(20px,env(safe-area-inset-bottom)); }
 .hero-content { width: calc(100% - 36px); }
 .hero-content h2 { overflow-wrap: anywhere; line-height: .95; font-size: clamp(3.2rem,12.9vw,7rem); }
 .hero-content--rating h2 { font-size: clamp(5rem,20vw,10rem); }
 .hero-content p { max-width: 580px; font-size: clamp(1rem,2.5vw,1.45rem); line-height: 1.35; }
 .hero-wordmark { width: min(88vw,900px); }
 .footer-columns { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px 16px; align-items: start; }
 .footer-columns > div:last-child { grid-column: auto; }
 .footer-brand-copy { grid-column: 1 / -1; }
 .footer-columns a, .footer-link-button { min-height: 32px; display: inline-flex; align-items: center; }
 .capability-copy h2 { max-width: calc(100vw - 40px); }
 .capability-actions { display: flex; gap: 8px; }
 .capability-copy p { max-width: calc(100% - 164px); }
 .story-media { min-height: 0; height: clamp(480px,120vw,780px); }
 .story-media img { height: 100%; width: 100%; object-fit: cover; }
}
@media (max-width: 680px) {
 .hero-carousel { min-height: max(620px,100svh); }
 .hero-content { top: calc(50% + 24px); }
 .hero-content h2 { font-size: clamp(2.9rem,13vw,5.2rem); letter-spacing: -.045em; }
 .hero-content--rating h2 { font-size: clamp(5rem,22vw,7.8rem); }
 .hero-content p { max-width: 95%; font-size: clamp(1.05rem,4.6vw,1.3rem); }
 .hero-ui { flex-wrap: wrap; gap: 8px; align-items: center; }
 .hero-dots { gap: 2px; }
 .hero-dot { width: 24px; }
 .hero-controls .circle-control { width: 40px; height: 44px; }
 .hero-progress { width: clamp(42px,12vw,65px); margin-left: 3px; }
 .service-program { min-height: max(600px,80svh); }
 .service-program-overlay { inset-inline: 20px; bottom: 30px; }
 .service-program h3 { font-size: clamp(3.4rem,17vw,6rem); line-height: .95; overflow-wrap: anywhere; }
 .service-program p { line-height: 1.6; }
 .section-floating-heading { font-size: 1.6rem; }
 .process-header h2, .story-copy h2, .discover-header h2, .gallery-intro h2, .contact-heading h2 { font-size: clamp(2.45rem,11vw,4.7rem); line-height: 1; overflow-wrap: anywhere; }
 .process-card { min-height: 0; height: clamp(540px,150vw,680px); }
 .process-card > img { position: absolute; inset: 0; height: 100%; width: 100%; object-fit: cover; }
 .process-card > div { left: 22px; right: 22px; bottom: 28px; }
 .process-card h3 { font-size: clamp(2.1rem,9.7vw,3.4rem); overflow-wrap: normal; line-height: 1; }
 .process-card p { font-size: .93rem; }
 .capability-carousel { min-height: max(550px,76svh); }
 .capability-copy h2 { font-size: clamp(3rem,16vw,5.5rem); line-height: .95; overflow-wrap: anywhere; }
 .capability-overlay { bottom: 26px; left: 20px; right: 20px; }
 .capability-actions { position: static; margin-top: 20px; justify-content: flex-end; }
 .capability-copy p { max-width: 100%; }
 .story-copy { padding: 66px 20px; }
 .story-media { height: clamp(450px,130vw,650px); }
 .discover-card, .discover-card--wide { min-height: 560px; }
 .discover-card h3 { font-size: clamp(2.25rem,10.5vw,4rem); line-height: .98; overflow-wrap: anywhere; }
 .reputation-copy h2 { font-size: clamp(2.6rem,12.5vw,5rem); line-height: 1; }
 .review-track { min-height: 290px; }
 .review-card blockquote { font-size: clamp(2rem,8.5vw,3.5rem); line-height: 1.15; }
 .reputation-workshop-photo img { transform: none; }
 .reputation-workshop-photo figcaption { bottom: 10px; left: 12px; font-size: .5rem; }
 .precision-video-section { min-height: max(570px,80svh); }
 .precision-video-content { width: calc(100% - 40px); padding-inline: 0; }
 .precision-video-content h2 { font-size: clamp(2.7rem,13vw,5rem); line-height: 1; }
 .precision-video-content p { font-size: 1rem; }
 .contact-heading h2 { max-width: 100%; }
 .form-grid input, .form-grid select, .form-grid textarea { font-size: 16px; }
 .file-field input[type=file] { font-size: .84rem; overflow: hidden; }
 .consent-field { align-items: start; }
 .consent-field input { flex: 0 0 22px; width: 22px; height: 22px; }
 .contact-logo-wrap { max-width: 300px; }
 .footer-social-row { display: flex; flex-wrap: wrap; justify-content: space-between; padding-top: 45px; }
 .site-footer { padding-inline: 16px; }
 .footer-columns { gap: 30px 14px; padding-block: 40px; }
 .footer-brand-copy h2 { font-size: clamp(2.8rem,12vw,4.4rem); line-height: .93; }
 .footer-brand-copy p { margin-top: 16px; font-size: .88rem; }
 .footer-columns h3 { font-size: .61rem; letter-spacing: .065em; }
 .footer-columns a, .footer-link-button { font-size: .74rem; line-height: 1.6; text-align: left; }
 .footer-columns > div:not(.footer-brand-copy) { gap: 5px; }
 .footer-bottom { gap: 12px; font-size: .7rem; }
 .legal-header { gap: 18px; padding: 18px; }
 .legal-header img { max-width: 150px; }
 .legal-header a:last-child { font-size: .76rem; }
 .legal-main { width: calc(100% - 36px); padding-block: 44px 60px; }
 .legal-main h1 { font-size: clamp(2.6rem,12vw,4.5rem); overflow-wrap: anywhere; }
 .legal-content h2 { overflow-wrap: anywhere; }
}
@media (max-width: 374px) {
 .header-logo { width: 132px; }
 .header-shell { padding-inline: 10px; }
 .header-right-actions { gap: 0; }
 .hero-dots { gap: 0; }
 .hero-dot { width: 22px; }
 .hero-controls { gap: 4px; }
 .hero-progress { width: 38px; }
 .footer-columns { column-gap: 9px; }
}
@media (max-height: 520px) and (orientation: landscape) {
 .hero-carousel { min-height: 600px; }
 .service-program, .capability-carousel, .precision-video-section { min-height: 600px; }
 .menu-nav { margin: 20px 0; }
 .a11y-content { max-height: calc(100dvh - 24px); }
}
@media (prefers-reduced-motion: reduce) { [data-reveal] { opacity: 1; transform: none; } }
body.reduced-motion [data-reveal] { opacity: 1; transform: none; }
body.high-contrast .hero-shade { background: rgba(0,0,0,.72); }
body.high-contrast .service-program-shade { background: rgba(0,0,0,.76); }
body.high-contrast .process-card::after, body.high-contrast .discover-card::after { background: rgba(0,0,0,.8); }
body.high-contrast .capability-stage::after { background: rgba(255,255,255,.9); }
body.high-contrast .section-kicker, body.high-contrast .capability-index { color: inherit; }
@media print {
 .site-header, .hero-ui, .menu-overlay, .sticky-valuation, .cookie-banner, .motion-toggle, .motion-text-toggle, .comparison-toolbar, .a11y-panel { display: none !important; }
 [data-reveal] { opacity: 1 !important; transform: none !important; }
 .comparison { break-inside: avoid; }
}
