/* v5.8.0 — accessibility, device resilience and production-quality hardening */
html{-webkit-text-size-adjust:100%}
body{overflow-wrap:break-word}
main{min-width:0}
summary{cursor:pointer}
summary:focus-visible,.lang-panel a:focus-visible,.cap-panel-link:focus-visible,.footer-legal a:focus-visible,.footer-capabilities a:focus-visible{outline:2px solid var(--gold-300);outline-offset:4px}
.menu-toggle,.lang-menu summary,.cap-menu summary{touch-action:manipulation}
input,select,textarea{max-width:100%}
textarea{resize:vertical}
[aria-disabled="true"]{cursor:not-allowed}

/* Avoid clipped long translations and accidental intrinsic-width overflow. */
.hero-grid-v5>*,.service-hero-grid>*,.about-grid-v5>*,.contact-grid-v5>*,.cap-panel-grid>*,.footer-grid>*{min-width:0}
.hero-sector-copy,.capability-text,.contact-copy-v5,.service-hero-copy{min-width:0}
.hero-sector-copy strong,.capability-text h3,.main-nav a,.footer-capabilities a{overflow-wrap:anywhere}

/* Touch targets: 44px minimum without visually inflating desktop UI. */
@media(pointer:coarse){
  .main-nav>a,.main-nav summary,.lang-panel a,.cap-panel-link,.footer-legal a,.footer-capabilities a,.feedback-reset,.cookie-btn{min-height:44px}
  .section-rail{display:none!important}
}

/* Wide displays remain editorial rather than stretching indefinitely. */
@media(min-width:1800px){
  :root{--shell:min(1380px,calc(100% - 120px))}
  .hero-grid-v5{gap:clamp(72px,6vw,120px)}
}

/* 320–359px resilience. */
@media(max-width:359px){
  :root{--shell:calc(100% - 28px)}
  h1{font-size:clamp(42px,15vw,54px)}
  h2{font-size:clamp(34px,12vw,44px)}
  .hero-actions{display:grid;grid-template-columns:1fr}
  .btn,.nav-cta{width:100%}
  .contact-form-v5{padding-inline:14px}
  .company-facts div{grid-template-columns:1fr;gap:4px}
}

/* Higher-contrast user preference. */
@media(prefers-contrast:more){
  :root{--muted:#d6dee7;--muted-2:#c3ced8;--line:rgba(237,207,149,.52);--line-soft:rgba(243,235,221,.28)}
  .hero-sector-backdrop{opacity:.12!important}
  .btn,.nav-cta,.capability-row>a,.contact-form-v5{border-width:2px}
}

/* Reduced transparency keeps all content readable without glass effects. */
@media(prefers-reduced-transparency:reduce){
  .cap-panel,.lang-panel,.hero-sector-preview,.hero-structure-kicker,.hero-structure-count,.cookie-modal-card,.cookie-banner{backdrop-filter:none!important}
  .cap-panel,.lang-panel,.hero-sector-preview{background:var(--navy-900)!important}
}

/* Windows High Contrast / forced colors. */
@media(forced-colors:active){
  *{forced-color-adjust:auto}
  .lawter-grain,.section-signature-line,.footer-structural{display:none!important}
  .btn,.nav-cta,.menu-toggle,.hero-sector-preview,.contact-form-v5,.capability-row>a{border:1px solid CanvasText}
  :focus-visible{outline:3px solid Highlight!important}
}

/* Print remains legible for legal/corporate pages. */
@media print{
  .site-header,.site-footer,.section-rail,.cookie-layer,.cookie-open,.lawter-grain,.hero-actions{display:none!important}
  html,body{background:#fff!important;color:#111!important}
  body::before{display:none!important}
  main{display:block!important}
  p,h1,h2,h3,li,dt,dd{color:#111!important}
  a{text-decoration:underline}
  .section{padding:24px 0}
}
