/* V9: the original dark design is the default. Visual reading aids are
   opt-in; semantic markup, keyboard focus and native system preferences stay. */
:root { --site-header-height: 84px; --focus-ring: #ffd2b9; }
html { scroll-padding-block: calc(var(--actual-header-height,var(--site-header-height)) + 20px) 110px; }
body { overflow-wrap: break-word; }
main,section,article,fieldset,figure,form { min-inline-size: 0; }
main [id],main :is(a,button,input,select,textarea,summary,[tabindex]) {
  scroll-margin-block: calc(var(--actual-header-height,var(--site-header-height)) + 20px) 110px;
}
body :focus-visible { outline: 3px solid var(--focus-ring) !important; outline-offset: 4px !important; box-shadow: 0 0 0 1px #0c0d0f; }
body canvas:focus-visible { outline-offset: -5px !important; }
.skip-link { position: fixed; z-index: 300; }
.skip-link:focus { top: 12px; max-width: calc(100% - 40px); }
a,button,input,select,textarea,summary { touch-action: manipulation; }
:is(.button,.btn,.text-link) { max-width: 100%; }
[aria-invalid=true] { border-color: #ffb0a1 !important; border-width: 2px !important; }
.form-field-error,.field-error { color: #ffb0a1; font-size: .875rem; margin-block: 8px 0; line-height: 1.6; }
.world-text-selection { margin-block: 18px; border-block: 1px solid var(--light-rule); }
.world-text-selection summary { padding: 12px 0; font-size: .8125rem; cursor: pointer; }
.world-text-selection p { color: var(--muted); font-size: .8125rem; line-height: 1.65; }
.world-text-selection pre { white-space: pre-wrap; overflow-wrap: anywhere; font: .8125rem/1.75 var(--body,Arial,sans-serif); color: var(--paper); }

/* New controls blend into the existing V7 glass header. No replacement skin. */
.site-header .brand { min-width: 0; }
.site-header .header-actions { flex-shrink: 0; gap: 8px; }
.language-switch { display: flex; align-items: center; gap: 3px; flex: none; padding: 3px; border: 1px solid #f2b2a837; border-radius: 10px; background: #ffffff05; }
.language-switch button { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; min-height: 38px; padding: 6px; border: 1px solid transparent; border-radius: 7px; color: var(--paper); background: transparent; font: 600 .75rem/1.4 var(--body,Arial,sans-serif); cursor: pointer; }
.language-switch button[aria-pressed=true],.language-switch button[aria-current=true] { background: #ee817815; color: #fff; border-color: #f2b2a837; text-decoration: underline; text-underline-offset: 4px; }
.language-switch button:hover { border-color: var(--red-ink); }
.world-walk-controls { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; width: 100%; }
.world-walk-controls[hidden] { display: none; }
.world-walk-controls>span { grid-column: 1 / -1; font-size: .75rem; color: var(--paper); }
.world-camera-toolbar .world-walk-controls button { display: inline-flex; align-items: center; justify-content: center; gap: .4em; width: auto; height: auto; min-height: 40px; padding: 8px; font-size: .75rem; }
.back-to-top { position: fixed; z-index: 34; right: max(22px,env(safe-area-inset-right)); bottom: 22px; width: 48px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 8px; border: 1px solid #f2b2a85c; border-radius: 14px; background: #331c22; color: #fff; box-shadow: 0 6px 22px #0006; text-decoration: none; font-size: 26px; line-height: 1; }
.back-to-top:hover { background: #663029; }
.back-to-top[hidden] { display: none !important; }
.back-to-top svg { width: 23px; height: 23px; }
body:has(dialog[open]) .back-to-top { display: none; }
.sr-only,.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.component-figure [data-component-hotspot]:focus-visible .component-house-marker { stroke: var(--focus-ring); stroke-width: 4; }

/* 1. Higher contrast: activated only by the visitor. */
html[data-a11y-contrast=true] {
  --paper: #f7f3eb; --white: #ffffff; --muted: #d0d2cf; --light-muted: #d5dadd;
  --dim: #c3cbd1; --red: #b93828; --red-hover: #972c22; --red-ink: #ffa999;
  --rot: #b93828; --rot-2: #972c22; --rot-h: #972c22; --on-rot: #ffffff;
  --control-border: #7e8992;
}
html[data-a11y-contrast=true] :is(input,select,textarea) { accent-color: var(--red-ink); }
html[data-a11y-contrast=true] :is(input,textarea)::placeholder { color: var(--light-muted) !important; opacity: 1 !important; }
html[data-a11y-contrast=true] :is(.contact-form input,.contact-form select,.contact-form textarea,.world-detail-settings select,.world-window-settings select,.world-facade-options select,.world-slate-detail select,.button-ghost,.gallery-close,.gallery-control,.menu-button,.world-choice,.world-camera-toolbar button,.world-actions button,.world-actions a,.world-tour-launch>button,.world-tour-actions button,.component-choices button,.world-window-settings .world-info-button,.world-material-dialog-top>button,.language-switch,.world-text-selection) { border-color: var(--control-border); }
html[data-a11y-contrast=true] :is(.button-red,.btn-rot,.world-actions .world-request) { background: var(--red); color: #fff; border-color: #ffd2b9; }
html[data-a11y-contrast=true] :is(.button-red,.btn-rot,.world-actions .world-request):hover { background: var(--red-hover); }
html[data-a11y-contrast=true] .button-whatsapp { color: #fff; border-color: #85b69d; }
html[data-a11y-contrast=true] :is(.site-header,.knowledge-page header.site-header) { background: linear-gradient(115deg,#3b181e,#19171d 72%); border-bottom-color: #9c7169; }
html[data-a11y-contrast=true] .site-header .site-nav a { color: #f7f3eb; }
html[data-a11y-contrast=true] .site-header .header-cta { background: linear-gradient(130deg,#b84436,#8e2927); color: #fff; border-color: #ffd2b9; }
html[data-a11y-contrast=true] .site-header .header-cta:hover { background: linear-gradient(130deg,#c84c3c,#973128); }
html[data-a11y-contrast=true] .language-switch button[aria-pressed=true] { background: #b93828; border-color: #ffa999; }
html[data-a11y-contrast=true] :is(.world-choice,.world-view-toolbar button,.world-navigation-modes button,.component-choices button)[aria-pressed=true] { border-color: #ffa999; box-shadow: inset 0 -3px 0 #ffa999; }
html[data-a11y-contrast=true] .world-swatch { border-color: #bfc7cc; }
html[data-a11y-contrast=true] .knowledge-page .subnav a.on { border-color: #ffa999; }
html[data-a11y-contrast=true] .mobile-contact { border-color: #7e8992; }
html[data-a11y-contrast=true] .mobile-contact .mobile-call { border-color: #ffa999; }
html[data-a11y-contrast=true] .mobile-contact .mobile-whatsapp { border-color: #85b69d; }
html[data-a11y-contrast=true] :where(main p,main li,main dd,figcaption) a:not(.button):not(.btn) { text-decoration: underline; text-underline-offset: .2em; }

/* 2. Larger reading text. The large display headlines keep their scale. */
html[data-a11y-text=true] :is(main p,main li,main dd,main dt,main td,main th,main label,main input,main select,main textarea,main summary,main button:not(.photo-button),main .button,main .btn) { font-size: 1.0625rem; line-height: 1.7; }
html[data-a11y-text=true] :is(.eyebrow,.number,.hero-topline,.image-note,.caption,.hero-bottom,.project-specs,.process-track p,.about-facts small,.about-proof,.service-button small,.service-media figcaption,.project-card p,.contact-address,.contact-list small,.form-label,.demo-note,.form-feedback,.site-footer,.roof-figure-top,.roof-sticky figcaption,.roof-sources,.material-art-top,.material-art figcaption,.material-option small,.material-note,.material-kicker,.story-note,.service-value-number,.component-figure-head,.component-figure figcaption,.component-kicker,.component-selection-number) { font-size: .9375rem; line-height: 1.7; }
html[data-a11y-text=true] :is(.text-link,.about-proof button,.motion-toggle,.material-copy .text-link,.component-detail-link,.service-values-grid a) { font-size: 1rem; }
html[data-a11y-text=true] :is(.world-eyebrow,.world-intro-copy>span,.world-stage-label,.world-status,.world-stage-badge,.world-view-info,.world-canvas-help,.world-panel-number,.world-fieldset>legend,.world-material-detail,.world-check,.world-compatibility,.world-summary>small,.world-feedback,.world-note,.world-slate-detail p,.world-material-note,.world-facade-options p,.world-facade-options label,.world-slate-detail label,.world-material-kicker,.world-detail-settings label,.world-window-settings label,.world-detail-settings p,.world-window-settings p,.world-window-settings output,.world-color-note,.world-tour-progress,.world-material-dialog-top>span,.world-material-dialog .world-material-sources,.world-color-choice small,.world-stage-notes p,.world-walk-controls>span,.world-text-selection summary,.world-text-selection pre) { font-size: .9375rem; line-height: 1.7; }
html[data-a11y-text=true] :is(.world-fieldset>legend span,.world-view-toolbar button,.world-navigation-modes button,.world-actions a,.world-actions button,.world-tour-launch>button,.world-tour-actions button,.world-camera-toolbar .world-walk-controls button) { font-size: 1rem; line-height: 1.6; }
html[data-a11y-text=true] .world-camera-toolbar .world-camera-buttons button { font-size: 1.5rem; }
html[data-a11y-text=true] .world-summary>span { font-size: 1.0625rem; line-height: 1.7; }
html[data-a11y-text=true] :is(.knowledge-page .subnav a,.knowledge-page .badge,.knowledge-page .tag,.knowledge-page .tbl-wrap,.knowledge-page .kicker) { font-size: 1rem; }
html[data-a11y-text=true] .service-information { height: auto; min-height: 515px; }
html[data-a11y-text=true] .service-information p { max-width: 100%; }
html[data-a11y-text=true] :is(.world-roof-choice,.world-color-choice,.world-choice) { height: auto; padding: 10px 6px; hyphens: auto; }
html[data-a11y-text=true] .world-fieldset>legend { float: none; white-space: normal; }
html[data-a11y-text=true] .world-color-choice small { display: block; }
html[data-a11y-text=true] :is(.world-stage-heading,.world-stage-footer,.world-stage-notes) { flex-wrap: wrap; }
html[data-a11y-text=true] .world-stage-label { white-space: normal; }
html[data-a11y-text=true] .world-status { max-width: 100%; flex: 1 1 220px; text-align: left; }
html[data-a11y-text=true] .world-stage-badge { max-width: none; }
html[data-a11y-text=true] .world-stage { height: auto; min-height: 640px; }
html[data-a11y-text=true] .world-canvas { flex: none; height: 380px; min-height: 250px; }
html[data-a11y-text=true] .world-stage-column { position: static; }
html[data-a11y-text=true] .world-view-toolbar { flex-wrap: wrap; }
html[data-a11y-text=true] .world-view-toolbar button { white-space: normal; }
html[data-a11y-text=true] :is(.world-view-toolbar button,.world-navigation-modes button,.world-camera-toolbar .world-walk-controls button) { height: auto; min-height: 44px; }
html[data-a11y-text=true] .world-walk-controls { grid-template-columns: repeat(2,minmax(0,1fr)); }
html[data-a11y-text=true] .knowledge-page .subnav .wrap { flex-wrap: wrap; overflow: visible; gap: 4px 8px; }
html[data-a11y-text=true] .knowledge-page nav.subnav { position: static; }
html[data-a11y-text=true] .knowledge-page .bd h3 { flex-wrap: wrap; }
html[data-a11y-text=true] :is(.knowledge-page .bd,.knowledge-page .card,.component-panel) { min-width: 0; }
html[data-a11y-text=true] :is(.button,.btn,button,summary) { white-space: normal; overflow-wrap: anywhere; }

/* 3. Larger controls, independently of reading text and colours. */
html[data-a11y-targets=true] :is(.button,.btn,button:not(.photo-button),summary,input:not([type=checkbox]):not([type=radio]),select,textarea,.text-link) { min-height: 48px; }
html[data-a11y-targets=true] :is(.language-switch button,.menu-button,.gallery-close,.gallery-control) { min-width: 48px; }
html[data-a11y-targets=true] .site-nav a { min-height: 48px; }
html[data-a11y-targets=true] .world-check { min-height: 48px; align-items: center; }
html[data-a11y-targets=true] .world-check input { width: 20px; height: 20px; }
html[data-a11y-targets=true] .world-roof-choice { min-height: 80px; }
html[data-a11y-targets=true] .world-camera-toolbar button { min-width: 48px; width: 48px; height: auto; }
html[data-a11y-targets=true] .world-navigation-modes button { width: auto; }
html[data-a11y-targets=true] .world-camera-toolbar .world-walk-controls button { width: auto; }
html[data-a11y-targets=true] .world-camera-buttons { gap: 6px; }
html[data-a11y-targets=true] .world-view-toolbar { flex-wrap: wrap; }
html[data-a11y-targets=true] .world-view-toolbar button { white-space: normal; }
html[data-a11y-targets=true] .world-stage-footer { flex-wrap: wrap; }
html[data-a11y-targets=true] .site-footer a { display: inline-flex; align-items: center; min-height: 48px; padding-block: 10px; }
html[data-a11y-targets=true] :is(.about-proof button,.motion-toggle) { padding-block: 10px; }

/* 4. Brighter documentary photos. Material colours/canvas remain authentic. */
html[data-a11y-images=true] :is(.hero-image img,.feature-photo img,.about-photo img,.service-media>img,.project-card .photo-button img,.project-detail img) { filter: brightness(1.07) contrast(1.04) saturate(.95); }
html[data-a11y-images=true] :is(.photo-button:hover,.photo-button:focus-visible) img { filter: brightness(1.09) contrast(1.04) saturate(.95); }
html[data-a11y-images=true] .knowledge-page .pic:not(.component-detail-figure) img { filter: brightness(1.035) contrast(1.035); }

/* Necessary header fit for the added language selector, using V7 surfaces. */
@media (max-width: 1200px) {
  .site-header .header-call { display: none; }
  .site-header .header-inner { gap: 14px; }
  .site-header .header-actions { margin-left: auto; }
  .site-header .site-nav,.knowledge-page .site-header .site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 18px 28px; background: linear-gradient(125deg,#351c22,#18191e); border-bottom: 1px solid #e6948038; box-shadow: 0 12px 20px #0004; max-height: calc(100svh - var(--site-header-height) - 12px); overflow-y: auto; }
  .site-header .site-nav.open,.knowledge-page .site-header .site-nav.open { display: block; }
  .site-header .site-nav ul { display: grid; gap: 4px; }
  .site-header .site-nav a,.knowledge-page .site-header .site-nav a { display: flex; font-size: 1rem; min-height: 44px; padding: 12px 14px; }
  .site-header .menu-button { display: block; width: 44px; min-height: 44px; }
  .site-header:not(.nav-ready) .header-inner { flex-wrap: wrap; }
  .site-header:not(.nav-ready) .site-nav,.knowledge-page .site-header:not(.nav-ready) .site-nav { display: block; position: static; order: 3; width: 100%; padding: 4px 0 12px; max-height: none; }
  .site-header:not(.nav-ready) .site-nav ul { display: flex; flex-wrap: wrap; gap: 4px; }
  .site-header:not(.nav-ready) .menu-button { display: none; }
}
@media (min-width: 1201px) {
  .site-header .header-call { display: none; }
  .site-header .header-inner { gap: 18px; }
  .site-header .site-nav { margin-left: auto; }
  .site-header .site-nav a { padding-inline: 8px; }
  .site-header .header-cta { padding-inline: 13px; }
  .site-header .brand small { letter-spacing: .06em; }
  .site-header .brand img { width: 54px; height: 54px; }
}
@media (max-width: 760px) {
  :root { --site-header-height: 80px; }
  .site-header .header-cta { display: none; }
  .site-header .container { padding-inline: 16px; }
  .site-header .header-inner { gap: 10px; }
  .site-header .brand { gap: 8px; flex: 1 1 auto; }
  .site-header .brand>span { min-width: 0; }
  .site-header .brand img { width: 44px; height: 44px; flex: none; }
  .site-header .brand strong { font-size: .875rem; }
  .site-header .brand small { font-size: .625rem; letter-spacing: .02em; white-space: normal; overflow-wrap: normal; }
  .language-switch { padding: 2px; gap: 0; border-radius: 8px; }
  .language-switch button { padding: 6px 5px; }
  .site-header .header-actions { gap: 6px; }
  .back-to-top { bottom: calc(90px + env(safe-area-inset-bottom)); right: 18px; }
  html[data-a11y-text=true] .world-stage { min-height: 0; }
  html[data-a11y-text=true] .world-canvas { height: 340px; min-height: 0; }
  html[data-a11y-text=true] .world-stage-notes { display: block; }
  html[data-a11y-text=true] .world-stage-heading { display: block; }
  html[data-a11y-text=true] .world-status { margin-top: 8px; }
  html[data-a11y-text=true] :is(.world-roof-choices,.world-color-choices,.world-checks) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html[data-a11y-text=true] .world-controls { grid-template-columns: minmax(0,1fr); }
  html[data-a11y-text=true] .service-information { min-height: 330px; }
  html[data-a11y-text=true] .knowledge-page .trio { grid-template-columns: minmax(0,1fr); }
  html[data-a11y-text=true] .knowledge-page .trio p { padding-left: 0; }
  html[data-a11y-targets=true] .world-camera-buttons { grid-template-columns: repeat(4,48px); }
  html[data-a11y-targets=true] .world-camera-buttons .world-reset { width: auto; }
  html[data-a11y-targets=true] .world-navigation-modes button { flex: 1; }
  html[data-a11y-targets=true] .site-footer { padding-bottom: 165px; }
}
@media (max-width: 400px) {
  .site-header .container { padding-inline: 10px; }
  .site-header .header-inner { gap: 6px; }
  .site-header .brand img { width: 34px; height: 34px; }
  .site-header .brand { gap: 6px; }
  .site-header .brand strong { font-size: .8125rem; }
  .site-header .brand small { max-width: 115px; font-size: .5625rem; }
  .site-header .header-actions { gap: 4px; }
  .world-walk-controls { grid-template-columns: repeat(2,minmax(0,1fr)); }
  html[data-a11y-text=true] :is(.container,.world-container,.knowledge-page .wrap) { padding-inline: 18px; }
  html[data-a11y-text=true] .image-note { font-size: .9375rem !important; }
  html[data-a11y-text=true] .hero-topline { flex-wrap: wrap; }
  html[data-a11y-text=true] .hero-topline span:last-child { text-align: left; max-width: none; }
  html[data-a11y-text=true] .hero-bottom { grid-template-columns: minmax(0,1fr); }
  html[data-a11y-text=true] .hero-bottom span { flex-wrap: wrap; }
  html[data-a11y-text=true] :is(.contact-form,.contact-prepared,.contact-prepared pre) { padding: 12px; }
  html[data-a11y-text=true] .world-panel { padding: 20px 14px; }
  html[data-a11y-text=true] :is(.world-actions,.world-checks,.component-choices,.material-controls) { grid-template-columns: minmax(0,1fr); }
  html[data-a11y-text=true] .world-view-toolbar button { flex: 1 1 40%; }
  html[data-a11y-text=true] .material-option { padding: 14px 0; border-right: 0; }
  html[data-a11y-text=true] .material-option>span:nth-child(2) { flex: 1; order: 0; }
  html[data-a11y-text=true] :is(.roof-figure-top,.material-art-top,.gallery-bottom) { flex-wrap: wrap; }
  html[data-a11y-text=true] :is(.gallery-dialog,.world-material-dialog) { padding: 16px; max-width: calc(100% - 24px); }
  html[data-a11y-text=true] :is(.gallery-top,.world-material-dialog-top) { align-items: flex-start; }
  html[data-a11y-targets=true] .language-switch button { min-width: 44px; }
  html[data-a11y-targets=true] .site-header .menu-button { min-width: 44px; }
}
/* Reflow is also retained at strong browser zoom, regardless of panel options. */
@media (max-height: 500px) {
  :root { --site-header-height: 0px; }
  .site-header,.knowledge-page header.site-header { position: relative; }
  .site-header .header-inner { min-height: 76px; }
  .site-header .site-nav,.knowledge-page .site-header .site-nav { max-height: 65svh; }
  .world-stage-column,.service-media,.roof-sticky { position: static !important; }
  .back-to-top { width: 44px; min-height: 44px; right: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *,*::before,*::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .hero-image-window img,.material-art-canvas,.roof-layer { transform: none !important; }
}
html[data-motion=off] { scroll-behavior: auto !important; }
@media (forced-colors: active) {
  :root { --focus-ring: Highlight; --control-border: ButtonText; }
  .site-header,.knowledge-page header.site-header,.language-switch,.back-to-top { background: Canvas; color: CanvasText; border-color: CanvasText; }
  .language-switch button,.back-to-top,.button,.btn,.world-choice,.world-view-toolbar button,.world-camera-toolbar button { border: 1px solid ButtonText; }
  [aria-pressed=true] { outline: 2px solid Highlight; outline-offset: -3px; text-decoration: underline; }
  .hero-glass-sheen { display: none; }
  .world-swatch { forced-color-adjust: none; }
  .component-house-marker { stroke: CanvasText; }
}
@media print {
  .site-header,.mobile-contact,.back-to-top,.skip-link { display: none !important; }
  body { color: #111; background: #fff; }
}
