/* Final consistency pass: accessibility, responsive rhythm and low-cost polish. */
html{scroll-padding-top:calc(var(--nav-h) + 20px)}
body{min-width:320px}
button,a,input,select,textarea,summary{touch-action:manipulation;-webkit-tap-highlight-color:rgba(52,133,183,.14)}
h1,h2,h3,.page-h1,.section-title,.about-h1,.contact-h1,.sec-pg-h1,.prod-pg-h1,.cert-hero-h1{text-wrap:balance}
p,.hero-lead,.sol-subtitle,.main-sc-tagline,.prod-pg-intro-p,.sec-pg-tagline{text-wrap:pretty}
.hero-stats,.world-stats,.prod-pg-specs,.prod-pg-standards{font-variant-numeric:tabular-nums}
section[id],h1[id],h2[id],h3[id],.doc-family{scroll-margin-top:calc(var(--nav-h) + 24px)}

.nav-logo{appearance:none;border:0;background:transparent;padding:0;min-width:60px;min-height:48px;justify-content:center}
.nav-logo:active,.btn:active,.form-submit:active,.footer-legal-btn:active{transform:translateY(1px)}
.nav-links button,.drawer-links button,.footer-col-item{min-height:44px}
.btn,.form-submit,.contact-map-link,.nav-find-ref,.filter-options button,.lang-switcher button,.drawer-lang button,.catalog-search input{min-height:44px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid rgba(52,133,183,.3);outline-offset:3px}
.footer-col-item{width:100%;border:0;background:transparent;color:inherit;text-align:left}
.product-card-button,.sector-card-button,.sector-cell-button{width:100%;border:0;color:inherit;text-align:left;font:inherit}
.sector-cell-button{padding:28px 20px}

.field input,.field textarea,.field select,.doc-search,.doc-filter select{font-size:max(16px,1rem)}
.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible,.doc-search:focus-visible,.doc-filter select:focus-visible{outline:3px solid rgba(52,133,183,.28);outline-offset:2px;border-color:var(--blue-primary)}
.doc-search:focus:not(:focus-visible){outline:0}
.request-mode-option:focus-within{border-color:var(--blue-primary);box-shadow:0 0 0 3px rgba(52,133,183,.12)}
.form-status:empty{display:none}
.field-error{display:block;margin-top:7px;color:#9f2f2f;font:600 12px/1.35 var(--font-sans);letter-spacing:0}
.field [aria-invalid="true"],.form-consent [aria-invalid="true"]{border-color:#b42318!important;box-shadow:0 0 0 3px rgba(180,35,24,.1)}

/* Contrast and readable technical microcopy. */
#cta-home .cta-box{background:var(--blue-primary-dark)}
#cta-home .cta-box-p{opacity:1}
#cta-home .cta-box-btn{color:var(--blue-primary-dark)}
.form-submit,.cookie-accept{background:var(--blue-primary-dark)}
.form-submit:hover,.cookie-accept:hover{background:#235f87}
.contact-info-box-addr{opacity:1}
.footer-tagline,.footer-head-sub,.footer-addr,.footer-email,.footer-col-item,.footer-bottom{color:rgba(255,255,255,.9);opacity:1}
.footer-col-h{font-size:11px}
.cert-norm-chip{font-size:11px}
.doc-hub-stat span,.doc-filter label,.doc-family-kicker,.doc-family-count,.doc-card-tag,.doc-preview-copy span{font-size:11px}
.doc-card-tag{line-height:1.25}

/* Keep the product destination and the video control as separate controls. */
.hero-product-link{position:absolute;z-index:2;inset:0;width:100%;height:100%;border:0;background:transparent;border-radius:inherit;cursor:pointer}
.hero-video-control{z-index:3}

.page.active{min-height:55dvh}
.products-grid,.sectors-list,.brands-grid,.cap-grid,.cert-grid{min-width:0}
.product-card,.main-sector-card,.brand-card,.cap-card,.cert-card{min-width:0;overflow-wrap:anywhere}
.product-name,.main-sc-name,.brand-desc,.footer-col-item{overflow-wrap:anywhere}

/* Corrections de finition — accueil, sections 03, 05 et 06. */
#references .ref-hero-img,
#references .ref-card,
#world .world-card{
  border-radius:12px!important;
  overflow:hidden;
  isolation:isolate;
}
#references .ref-hero-img::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(8,33,58,.16) 8%,rgba(8,33,58,.34) 48%,rgba(8,33,58,.9) 100%);
  pointer-events:none;
}
#references .ref-hero-overlay{border-radius:0 0 12px 12px;overflow:hidden}
#references .ref-hero-overlay::before{display:none}
#references .ref-card::before,
#world .world-card::before{border-radius:inherit}
#references .ref-card::before{background:linear-gradient(145deg,rgba(8,33,58,.86),rgba(24,64,96,.74))}
#references .ref-card:hover::before{background:linear-gradient(145deg,rgba(8,33,58,.8),rgba(24,64,96,.68))}
#world .world-card.hq::before{background:linear-gradient(145deg,rgba(43,105,177,.88),rgba(30,73,128,.82))}
#world .world-card.sub::before{background:linear-gradient(145deg,rgba(8,33,58,.86),rgba(24,64,96,.74))}
#cta-home .cta-box::after{z-index:0}
#cta-home .cta-box-btn{position:relative;z-index:2;background:#fff;box-shadow:0 10px 28px rgba(35,72,93,.14)}

@media(max-width:1024px){
  :root{--pad-x:28px}
  .hero-inner{gap:34px}
  .footer-cols{grid-template-columns:1.35fr 1fr 1fr}
  .footer-cols>div:last-child{grid-column:2/4}
}
@media(max-width:768px){
  :root{--pad-x:20px}
  #navbar{padding-left:max(var(--pad-x),env(safe-area-inset-left));padding-right:max(var(--pad-x),env(safe-area-inset-right))}
  #nav-drawer{padding-left:max(var(--pad-x),env(safe-area-inset-left));padding-right:max(var(--pad-x),env(safe-area-inset-right));padding-bottom:max(40px,env(safe-area-inset-bottom))}
  .section{padding-top:64px;padding-bottom:72px}
  .section-sm{padding-top:52px;padding-bottom:60px}
  .page-h1,.about-h1,.contact-h1{line-height:1.02}
  .cta-box{padding:32px 24px}
  #cookie-banner{bottom:max(14px,env(safe-area-inset-bottom));width:calc(100% - 24px);padding:16px;gap:12px}
  .cookie-text{flex-basis:100%}
  .cookie-accept,.cookie-decline{min-height:44px}
}
@media(max-width:560px){
  :root{--pad-x:16px}
  html,body{max-width:100%;overflow-x:hidden}
  img,video,canvas,svg{max-width:100%}
  .hero-copy,.hero-visual{min-width:0;max-width:100%}
  .hero-h1{max-width:100%;font-size:clamp(34px,10.5vw,40px);overflow-wrap:normal}
  .hero-lead{max-width:100%}
  .hero-ctas,.prod-pg-hero-actions,.sec-pg-cta-btns{display:grid;grid-template-columns:1fr;width:100%}
  .hero-ctas .btn,.prod-pg-hero-actions .btn,.sec-pg-cta-btns .btn,.form-submit{width:100%;justify-content:center}
  .footer-cols{grid-template-columns:1fr}
  .footer-cols>div:last-child{grid-column:auto}
  .footer-head{display:grid;gap:12px}
  .footer-legal-sep{display:none}
  .footer-bottom>div:last-child{display:flex;flex-wrap:wrap;gap:10px 14px}
  .footer-legal-btn{min-height:36px;text-align:left}
  .product-img .prod-photo{padding:14px 16px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .page.active,.reveal,.echo-page-lead,.echo-page-item,.echo-page-hero-part{opacity:1!important;transform:none!important;clip-path:none!important}
}


/* Accessibility contrast refinements — measured in preproduction. */
:root{--muted:#5f7176}
.product-group-lbl,.prod-pg-mono{color:var(--blue-primary-dark)}
.filter-btn.active .filter-count{background:rgba(0,0,0,.18);color:#fff}
.prod-pg-cta-sub{color:rgba(255,255,255,.9)}
.prod-pg-cta-section .prod-pg-mono,.custom-engineering .mono,.contact-info-box .mono{color:var(--blue-pale)!important}
.contact-info-box-details span:nth-child(odd){opacity:1;color:var(--blue-pale)}
.case-proof span{color:rgba(255,255,255,.82)}

/* Homepage content hierarchy and conversion details. */
.hero-kpi-unit{font:600 11px/1 var(--font-mono);letter-spacing:.04em;color:currentColor}
.hero-corner{color:rgba(255,255,255,.74)}
.home-docs{background:var(--paper-b);border-top:1px solid rgba(42,115,161,.14);border-bottom:1px solid rgba(42,115,161,.14)}
.home-docs-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end}
.home-docs .section-title{margin:14px 0 12px;max-width:760px}
.home-docs-lead{max-width:680px;margin:0;color:var(--muted);font:15px/1.65 var(--font-sans)}
.home-docs-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-bottom:2px}
.ref-link{display:block;color:inherit;text-decoration:none}
.ref-card{color:#fff;text-decoration:none}
.ref-card-link{display:inline-flex;align-items:center;gap:6px;position:relative;z-index:1;margin-top:14px;color:var(--blue-light);font:600 12px/1.2 var(--font-sans)}
.ref-hero-link{color:inherit;text-decoration:none}
.ref-hero-link:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.ref-card:focus-visible{outline:3px solid var(--blue-light);outline-offset:3px}
.cookie-banner-visible{scroll-padding-bottom:150px}
body.cookie-banner-visible{padding-bottom:112px}

/* Mobile contents guide: the desktop rail becomes a compact, keyboard-friendly summary. */
#section-rail .section-rail-desktop{display:flex;flex-direction:column;gap:8px}
#section-rail .section-rail-mobile{display:none}
.section-rail-mobile summary{cursor:pointer;list-style:none;color:var(--blue-primary-dark);font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}
.section-rail-mobile summary::-webkit-details-marker{display:none}
.section-rail-mobile summary::after{content:'+';margin-left:8px;font:700 14px/1 var(--font-sans)}
.section-rail-mobile[open] summary::after{content:'−'}
.section-rail-mobile-list{display:grid;gap:4px;margin-top:10px}
.section-rail-mobile-list .section-rail-btn{width:auto;height:auto;padding:8px 10px;border:1px solid rgba(42,115,161,.16);border-radius:8px;background:#fff;color:var(--blue-primary-dark);font:600 11px/1.2 var(--font-sans);text-align:left}
.section-rail-mobile-list .section-rail-btn.active{height:auto;border-radius:8px;background:var(--blue-primary-dark);color:#fff}

@media(max-width:900px){
  .home-docs-grid{grid-template-columns:1fr;gap:22px}
  .home-docs-actions{justify-content:flex-start}
}
@media(max-width:1100px){
  #section-rail{position:fixed;top:calc(var(--nav-h) + 12px);right:12px;left:12px;z-index:90;display:block;transform:none;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 8px 26px rgba(0,24,40,.12);opacity:0;pointer-events:none}
  #section-rail.visible{transform:none}
  #section-rail .section-rail-desktop{display:none}
  #section-rail .section-rail-mobile{display:block}
}
@media(max-width:550px){
  body.cookie-banner-visible{padding-bottom:136px}
  #cookie-banner{bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 16px);max-height:calc(100svh - var(--nav-h) - 24px);overflow:auto;align-items:flex-start;padding:14px;gap:10px}
  #cookie-banner .cookie-text{min-width:0;flex-basis:100%}
  #cookie-banner .cookie-accept{align-self:flex-end;min-height:42px}
}


/* Browser-audit contrast corrections. */
.nav-links :is(button,a):hover,
.nav-links :is(button,a).active{color:var(--blue-primary-dark)}
.product-tags{color:var(--muted);opacity:1}
.sec-pg-hero .cred-chip.cert{background:var(--blue-primary-dark);border-color:var(--blue-primary-dark)}


/* Remaining contrast corrections measured by the preproduction browser audit. */
.sec-pg-cta-p{color:rgba(255,255,255,.94)}

/* Readable labels: preserve the compact visual language while keeping
   user-facing metadata legible on small screens. */
.hero-assembly-badge,.hero-sc-brand,.hero-sc-spec,.hero-sc-cert,
.product-group-lbl,.product-norms,.sec-app-tag,.brand-since,.sec-pg-fact-l,
.prod-pg-spec strong,.prod-pg-variants thead th,.prod-pg-dl-sub,
.cert-norm-chip,.footer-head-sub,.footer-col-h,.footer-bottom,
.cat-dl-label,.cat-dl-info,.prod-3d-kicker,.prod-3d-parts,.prod-3d-note,
.prod-3d-guided-label,.prod-3d-guided-buttons button,.prod-3d-guided-caption,
.filter-count,.product-spec-item small,.product-card-sequence,
.product-credibility-label,.prod-pg-path-kicker{font-size:11px}
.hero-sc-count,.hero-corner,.lang-switcher button,.section-rail-btn span,
.section-rail.contextual::before{font-size:11px}
.product-credibility .cred-chip{font-size:10px}
.prod-3d-parts{font-size:11px}
@media(max-width:680px){
  .prod-3d-guided-buttons button,.prod-3d-guided-caption{font-size:10px}
}
