/* ALCAFRANCE: contrastes et animations progressives — 27/10/2026 */
html{scroll-padding-top:110px}
html.dark[data-alca-ui="react"]{color-scheme:dark;--background:216 48% 8%;--foreground:210 40% 96%;--muted-foreground:213 30% 81%;--card:215 43% 13%;--card-foreground:210 40% 96%;--card-border:213 27% 31%;--border:213 27% 30%;--sidebar:215 44% 11%;--sidebar-foreground:210 40% 96%;--sidebar-border:213 27% 30%;--popover:215 43% 13%;--popover-foreground:210 40% 96%;--popover-border:213 27% 31%;--primary:194 92% 73%;--primary-foreground:216 60% 9%;--primary-border:194 70% 60%;--secondary:213 36% 23%;--secondary-foreground:210 40% 96%;--muted:213 34% 20%;--input:213 27% 40%;--accent:190 80% 68%;--accent-foreground:216 60% 9%;--ring:194 92% 73%;--button-outline:rgba(180,214,240,.3);--badge-outline:rgba(180,214,240,.22)}
.dark header:has([data-testid="link-logo"]){background:rgba(10,24,43,.97);border-color:#35506b;--foreground:210 40% 96%;--muted-foreground:213 30% 81%;--primary:194 92% 73%;--primary-foreground:216 60% 9%;--border:213 27% 31%;--button-outline:rgba(180,214,240,.3);--background:216 48% 8%;--secondary:213 36% 23%;--secondary-foreground:210 40% 96%}
.dark header [data-testid="link-logo"] .alca-brand-logo{background:#f5fbff;border-radius:9px;padding:4px 6px;box-sizing:border-box}
.dark .alca-home-hero{background-color:#0a1c31;background-image:linear-gradient(90deg,rgba(6,20,39,.97) 0%,rgba(7,26,47,.94) 43%,rgba(7,29,51,.77) 100%),url('/assets/alcafrance-fond-eau-20261022.webp');color:#f1f7ff;--foreground:210 40% 96%;--muted-foreground:213 30% 84%;--primary:194 92% 73%;--primary-foreground:216 60% 9%;--secondary:211 44% 22%;--secondary-foreground:205 65% 94%;--border:213 27% 33%}
.dark .alca-home-hero h1{color:#f5f9ff}
.dark .alca-home-hero>div:nth-child(2)>div:first-child{text-shadow:none}
.dark .alca-home-hero>div:last-child{background:rgba(10,29,50,.96)}
.dark .alca-home-hero [data-testid="button-hero-quote"]{background:#173650;color:#f5f9ff;border-color:#63849d}
.dark .alca-home-hero img{filter:drop-shadow(0 15px 24px rgba(0,0,0,.3)) drop-shadow(0 0 18px rgba(113,214,244,.16))}
.dark #root input::placeholder,.dark #root textarea::placeholder{color:#b6c8da;opacity:1}
.dark #root input,.dark #root textarea,.dark #root select{color:#f3f7fc}
.dark #cookie-banner{background:#10243a;color:#eef5ff;border:1px solid #57718c;box-shadow:0 16px 44px rgba(0,0,0,.35)}
.dark #cookie-banner a{color:#88ddff}
.dark #cookie-banner button{border-color:#57718c}
.dark #cookie-banner button:first-of-type{background:#203d57;color:#f5f9ff}
.dark #cookie-banner button:last-of-type{background:#82def5;color:#071627;border-color:#82def5}
/* The sectorisation page has its own hex-based style system. */
html.dark[data-alca-ui="standalone"]{color-scheme:dark;--primary:#82def5;--primary-dark:#b0efff;--accent:#73d9ef;--accent-soft:#14334b;--bg:#0b1729;--surface:#11263e;--sidebar:#10223a;--border:#425e78;--text:#f1f6fc;--muted:#c2d0e0;--warn:#ffb18a;--ok:#8de4b2}
.dark[data-alca-ui="standalone"] header.site{background:rgba(10,24,43,.97)}
.dark[data-alca-ui="standalone"] header .alca-brand-logo{background:#f5fbff;border-radius:9px;padding:4px 6px}
.dark[data-alca-ui="standalone"] .btn-outline,.dark[data-alca-ui="standalone"] .badge{background:#173650;color:#f1f6fc}
.dark[data-alca-ui="standalone"] .btn-primary{color:#071627}
.dark[data-alca-ui="standalone"] .btn-primary:hover{color:#071627}
a:focus-visible,button:focus-visible{outline:2px solid #1685bd;outline-offset:4px}
.dark a:focus-visible,.dark button:focus-visible{outline-color:#8be6ff}
@media(max-width:767px){.dark .alca-home-hero>div:nth-child(2)>div:first-child{background:rgba(9,25,45,.85)}}
@media(prefers-reduced-motion:no-preference){
 html{scroll-behavior:smooth}
 header a,main button,main a[class*="inline-flex"],.btn{transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .2s ease,transform .2s ease}
 main .shadcn-card{transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}
 @media(hover:hover){main button:not(:disabled):hover,main a[class*="inline-flex"]:hover,.btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(15,83,124,.14)}main .shadcn-card:hover{transform:translateY(-4px);border-color:#4385ac;box-shadow:0 12px 28px rgba(12,68,105,.12)}.dark main .shadcn-card:hover{border-color:#71bfdc;box-shadow:0 12px 28px rgba(0,0,0,.22)}}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.alca-home-hero img,.alca-home-hero::after{animation:none!important}main .shadcn-card,main button,header a,.btn{transition:none!important}}
/* Explicit legacy-color overrides identified during live verification. */
.dark header:has([data-testid="link-logo"]){color:#f1f5f9}
.dark header [data-testid="link-quote"]{color:#f1f5f9;background:#173650;border-color:#63849d}
.dark header [data-testid="button-theme"],.dark header [data-testid="button-menu"]{color:#f1f5f9}
.dark[data-alca-ui="standalone"] .figures,.dark[data-alca-ui="standalone"] aside.toc,.dark[data-alca-ui="standalone"] .formula,.dark[data-alca-ui="standalone"] table,.dark[data-alca-ui="standalone"] .card,.dark[data-alca-ui="standalone"] details,.dark[data-alca-ui="standalone"] footer.site{background:#11263e;color:#f1f6fc}
.dark[data-alca-ui="standalone"] .note.warn{background:#3b281e;color:#ffe1cf}
.dark[data-alca-ui="standalone"] .octave{background:#123751;color:#f1f6fc}
.dark[data-alca-ui="standalone"] .octave .btn-light{background:#82def5;color:#071627}
.dark[data-alca-ui="standalone"] ol.steps li::before{color:#071627}
/* Keep the fixed-color technical diagrams on a white surface, with dark captions. */
.dark[data-alca-ui="standalone"] figure{background:#fff;color:#13202b;--text:#13202b;--muted:#435363}

/* Footer layout: contact above identity, two navigation columns. */
html[data-alca-ui="react"] footer > div > div.grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"contact" "brand" "nav";gap:1.5rem}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(1){grid-area:brand;grid-column:auto}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2){grid-area:nav;min-width:0}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(3){grid-area:contact}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1.5rem}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li{margin:0;min-width:0;overflow-wrap:break-word}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(1){grid-column:1;grid-row:1}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(2){grid-column:1;grid-row:2}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(3){grid-column:1;grid-row:3}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(4){grid-column:1;grid-row:4}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(5){grid-column:1;grid-row:5}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(6){grid-column:2;grid-row:1}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(7){grid-column:2;grid-row:2}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(8){grid-column:2;grid-row:3}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(9){grid-column:2;grid-row:4}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(10){grid-column:2;grid-row:5}
html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul > li:nth-child(11){grid-column:2;grid-row:6}
@media(min-width:768px){html[data-alca-ui="react"] footer > div > div.grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);grid-template-areas:"contact nav" "brand nav";column-gap:4rem;align-items:start}html[data-alca-ui="react"] footer > div > div.grid > div:nth-child(2) > ul{column-gap:2.5rem}}
/* One entrance animation; hidden states exist only after successful JS setup. */
:root{--alca-reveal-ready:1}
[data-alca-reveal="pending"],[data-alca-reveal="waiting"]{opacity:0;transform:translateY(16px);transition:none!important}
[data-alca-reveal="running"]{transition:none!important}
@media(prefers-reduced-motion:reduce){[data-alca-reveal]{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}}
@media print{[data-alca-reveal]{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}}
