/* LUXFA shared shell — loaded after luxfa.css to isolate modern header/footer from legacy selectors. */
.luxfa-site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  border-bottom:1px solid var(--luxfa-line,#D9E0E5);
  box-shadow:none;
}
.luxfa-site-header a{ text-decoration:none; }
.luxfa-site-header .nav-link{ color:#334155; }
.luxfa-site-header .nav-link:hover,
.luxfa-site-header .nav-link[aria-current="page"]{ color:#0071AB; } /* bleu texte AA (lien actif et survol) */
.luxfa-site-header .editorial-btn--red{ color:#fff; background:var(--luxfa-red,#E41E26); }

.luxfa-footer{
  margin-top:0!important;
  background:var(--luxfa-dark,#003A59)!important;
  border-top:3px solid var(--luxfa-blue,#0085CA)!important;
  color:#fff;
}
.luxfa-footer h1,
.luxfa-footer h2,
.luxfa-footer h3,
.luxfa-footer h4{ color:#fff!important; }
.luxfa-footer p{ color:rgba(255,255,255,.72); }
.luxfa-footer a{
  color:inherit;
  text-decoration:none;
}
.luxfa-footer a:hover{ color:#fff; }
/* Libellés, copyright et liens légaux : white/45 ≈ 3,7:1 sur #003A59 → .72 ≥ 6:1 (AA petit texte) */
.luxfa-footer :is(.text-white\/45,.\!text-white\/45){ color:rgba(255,255,255,.72)!important; }
.luxfa-footer .editorial-btn--red{ color:#fff; background:var(--luxfa-red,#E41E26); }

.page-home main{ overflow:hidden; }
.page-home .home-mockup{ background:#fff; }
.page-home .home-hero{ width:100%; }
.page-home .home-statband{ background:transparent; }
.page-home .home-event{ background:var(--luxfa-dark,#003A59); }
.page-home .editorial-cta{ background:var(--luxfa-dark,#003A59); }

.editorial-cta .editorial-kicker{ color:rgba(255,255,255,.75); }

/* Legacy page heroes (wave-bottom) inherit the home language: white surface, dark title, no pattern, no entrance motion. */
main section:has(> .wave-bottom) h1{ text-wrap:balance; }
main section:has(> .wave-bottom) .h-1.bg-luxfa-red{ display:none; }
main :is(h2,h3).text-luxfa-blue{ color:var(--luxfa-dark); }
/* Legacy page bodies: flat surfaces from the home palette, no decorative layers. */
main :is(section,div).bg-luxfa-blue{ background:var(--luxfa-dark)!important; }
main [class*="bg-luxfa-blue/"]:not(i):not(.absolute){ background:var(--luxfa-fog)!important; }
main .absolute.inset-0.opacity-5,
main .absolute.rounded-full{ display:none!important; }
main :not(a,button)[class*="rounded-"][class*="bg-luxfa-"]:has(> i.fa-solid:only-child){ display:none!important; } /* jamais les liens/boutons : texte + icône flèche */
main .anim-fadeup{ animation:none!important; opacity:1!important; transform:none!important; }

/* Focus clavier : contraste >= 3:1 sur fond clair, blanc sur surfaces sombres. */
:focus-visible{ outline:3px solid var(--luxfa-blue,#0085CA)!important; outline-offset:3px; }
.luxfa-footer :focus-visible,
.home-statband :focus-visible,
.home-event :focus-visible,
.editorial-cta :focus-visible{ outline-color:#fff!important; }

@media(max-width:1023px){
  .luxfa-site-header{ min-height:82px; }
}

@media(prefers-reduced-motion:reduce){
  .luxfa-site-header *,
  .luxfa-footer *{ transition:none!important; animation:none!important; }
}

/* Tableau cookies : défilement horizontal interne plutôt que débordement de page. */
.cookie-table{ display:block; max-width:100%; overflow-x:auto; }

main .text-slate-400{ color:#56636d; }

/* ── Composants éditoriaux des pages longues (franchising, support) ── */
.ed-prose{ max-width:44rem; font-size:1.0625rem; line-height:1.8; color:#3d4a52; }
.ed-prose p{ font-size:inherit; line-height:inherit; color:inherit; }
.ed-callout{ max-width:44rem; border-left:3px solid var(--luxfa-red,#E41E26); padding:.25rem 0 .25rem 1.5rem; }
.ed-callout p{ font:700 clamp(1.1rem,1.7vw,1.35rem)/1.45 "Montserrat",sans-serif; color:var(--luxfa-dark,#003A59); }
.ed-note{ max-width:44rem; border-left:2px solid var(--luxfa-line,#D9E0E5); padding-left:1.25rem; }
.ed-note p{ font-size:.95rem; line-height:1.7; font-style:italic; color:#53616a; }
.ed-block{ border-top:2px solid var(--luxfa-dark,#003A59); padding-top:1.5rem; }
.ed-li{ display:flex; gap:.75rem; padding:.8rem 0; border-bottom:1px solid var(--luxfa-line,#D9E0E5); font-size:.95rem; line-height:1.5; color:#2F373C; }
.ed-li::before{ content:""; flex:none; width:.5rem; height:2px; margin-top:.7em; background:var(--luxfa-red,#E41E26); }
.ed-stats{ display:grid; grid-template-columns:repeat(3,1fr); background:var(--luxfa-dark,#003A59); }
.ed-stats>div{ padding:1.5rem 1.75rem; border-left:1px solid rgba(255,255,255,.28); }
.ed-stats>div:first-child{ border-left:0; }
.ed-stats strong{ display:block; font:900 clamp(1.5rem,2.6vw,2.25rem)/1 "Montserrat",sans-serif; color:#fff; }
.ed-stats span{ display:block; margin-top:.5rem; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.8); }
.ed-panel{ background:var(--luxfa-dark,#003A59); padding:clamp(1.75rem,4vw,3rem); }
main section .ed-panel.ed-panel p{ color:rgba(255,255,255,.85)!important; }
main section .ed-panel.ed-panel :is(h2,h3){ color:#fff!important; }
.ed-panel .ed-li{ color:rgba(255,255,255,.92); border-bottom-color:rgba(255,255,255,.25); }
.ed-panel .ed-note{ border-left-color:rgba(255,255,255,.4); }
.ed-panel .ed-note p{ color:rgba(255,255,255,.82); }
.ed-row{ margin-top:0!important; padding:2rem 0; border-top:1px solid var(--luxfa-line,#D9E0E5); }
.ed-row:last-child{ border-bottom:1px solid var(--luxfa-line,#D9E0E5); }
.ed-row p{ max-width:44rem; font-size:1rem; line-height:1.7; color:#3d4a52; }
.ed-index{ list-style:none; margin:0; padding:0; border-top:2px solid var(--luxfa-dark,#003A59); }
.ed-index a{ display:grid; grid-template-columns:3rem minmax(0,1fr); gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--luxfa-line,#D9E0E5); font:700 1.15rem/1.3 "Montserrat",sans-serif; color:var(--luxfa-dark,#003A59); }
.ed-index a:hover{ color:var(--luxfa-blue,#0085CA); }
.ed-index span{ font-size:.75rem; letter-spacing:.16em; color:var(--luxfa-red,#E41E26); padding-top:.3rem; }
@media(min-width:768px){
  .ed-row>.flex>div{ display:grid; grid-template-columns:minmax(0,13rem) minmax(0,1fr); column-gap:3rem; }
  .ed-row h3{ grid-column:1; grid-row:1 / span 8; margin:0; }
  .ed-row>.flex>div>:not(h3){ grid-column:2; }
}
@media(max-width:767px){
  .ed-stats{ grid-template-columns:1fr; }
  .ed-stats>div{ border-left:0; border-top:1px solid rgba(255,255,255,.28); padding:1.1rem 1.25rem; }
  .ed-stats>div:first-child{ border-top:0; }
}

/* ── Surfaces : A blanc · B neutre bleuté · C institutionnel (#003A59) · D accent léger ── */
:root{ --luxff-mist:#EDF2F6; --luxff-tint:#E6F2F9; }
.editorial-section--fog{ background:var(--luxff-mist); }
.editorial-section--tint{ background:var(--luxff-tint); }

/* CTA final : bande sombre pleine largeur */
section:has(> .editorial-cta){ width:100%!important; max-width:none!important; margin:0!important; background:var(--luxfa-dark,#003A59); }
section:has(> .editorial-cta) > .editorial-cta{ width:min(var(--luxfa-max,1240px),calc(100% - 3rem)); margin-inline:auto; padding:clamp(4rem,7vw,6.5rem) 0; }

/* En-têtes de page : bande institutionnelle sombre (hero secondaire) */
.page-hero{ background:var(--luxfa-dark); color:#fff; padding-block:clamp(3.5rem,6vw,5.5rem)!important; }
.page-hero :is(h1,h2){ color:#fff; }
.page-hero .editorial-kicker{ color:rgba(255,255,255,.78); }
.page-hero .editorial-kicker::before{ background:var(--luxfa-red); }
.page-hero :is(.editorial-lead,p){ color:rgba(255,255,255,.84); }
.page-hero a:not(.editorial-btn){ color:#fff; }
.page-hero .editorial-btn--ghost{ border-color:rgba(255,255,255,.7); color:#fff; background:transparent; }
.page-hero .editorial-btn--ghost:hover{ background:#fff; color:var(--luxfa-dark); }
.page-hero aside{ background:transparent!important; border-left:2px solid rgba(255,255,255,.4)!important; }
.page-hero aside :is(p,a,span){ color:rgba(255,255,255,.9)!important; }
main section .page-hero.page-hero :is(p,span,li){ color:rgba(255,255,255,.86)!important; }
main section .page-hero.page-hero :is(h1,h2){ color:#fff!important; }
main section .page-hero.page-hero a:not(.editorial-btn){ color:#fff!important; }
div.page-hero{ padding:clamp(2rem,4vw,3.5rem) 0; border:0!important; }

/* Hero des pages à l'ancien balisage (wave-bottom) : même bande sombre */
main section:has(> .wave-bottom):has(> .wave-bottom){ background:var(--luxfa-dark)!important; border-bottom:0!important; }
main section:has(> .wave-bottom):has(> .wave-bottom) h1{ color:#fff!important; }
main section:has(> .wave-bottom):has(> .wave-bottom) p{ color:rgba(255,255,255,.86)!important; max-width:44rem; }
main section:has(> .wave-bottom):has(> .wave-bottom) span.text-luxfa-red{ color:rgba(255,255,255,.78)!important; }

/* Pages longues : sections en bandes pleine largeur alternées (blanc / neutre bleuté) */
.ed-sec{ margin-top:0!important; padding-block:clamp(3.5rem,6vw,5.5rem); background:var(--band,#fff); box-shadow:0 0 0 100vmax var(--band,#fff); clip-path:inset(0 -100vmax); }
.ed-sec:nth-of-type(odd){ --band:#fff; }
.ed-sec:nth-of-type(even){ --band:var(--luxff-mist); --luxfa-line:#C9D3DB; }
.ed-index-wrap{ padding-top:clamp(3rem,5vw,4.5rem); }
.surface-mist{ background:var(--luxff-mist); }

/* CTA final des pages à l'ancien balisage : bande sombre pleine largeur */
main > section:has(> .max-w-4xl > .bg-luxfa-blue){ background:var(--luxfa-dark)!important; padding-block:clamp(3.5rem,6vw,5.5rem)!important; }
main > section > .max-w-4xl > .bg-luxfa-blue{ background:transparent!important; padding-inline:0!important; }

/* Navigation latérale des pages longues : au-dessus des bandes pleine largeur */
main aside.sticky{ z-index:2; }
/* Pages à navigation latérale : la colonne de contenu ne dépasse jamais l'écran (mots longs, allemand) */
main section > .grid[class*="lg:grid-cols-[220px_1fr]"]{ grid-template-columns:minmax(0,1fr); }
@media(min-width:1024px){ main section > .grid[class*="lg:grid-cols-[220px_1fr]"]{ grid-template-columns:220px minmax(0,1fr); } }
main .ed-sec{ overflow-wrap:break-word; }
@media(max-width:767px){ main .ed-sec{ hyphens:auto; } }
/* Ancres : en mobile, en-tête (82px) + barre de pastilles collante → décalage 10rem */
@media(max-width:1023px){ main .scroll-mt-32{ scroll-margin-top:10rem; } }

/* Texte secondaire lisible sur le neutre bleuté */
:is(.ed-sec:nth-of-type(even),.surface-mist,.editorial-section--fog,.bg-slate-50) :is(.text-slate-400,.text-slate-500){ color:#4f5c66; }
/* Hero des anciennes pages : hauteur resserrée */
main section:has(> .wave-bottom):has(> .wave-bottom){ padding-block:clamp(3.5rem,6vw,5.5rem)!important; }
main section:has(> .wave-bottom) > .max-w-7xl{ padding-block:0!important; }

/* Fond neutre des fiches (le bloc hérité forçait le blanc sur la première section) */
main section.surface-mist.surface-mist{ background:var(--luxff-mist)!important; padding-top:0!important; border-bottom:0!important; }

/* Rouge accent : teinte plus profonde pour le petit texte sur fonds clairs (contraste AA) */
.editorial-kicker,.editorial-number{ color:#C41017; }
main .text-luxfa-red{ color:#C41017; }
.luxfa-footer .text-luxfa-red{ color:rgba(255,255,255,.75); }

/* Bleu accent : teinte texte (AA) pour les liens et petits libellés ; #0085CA reste l'accent graphique */
main :is(a,span,p,li,div,i,button).text-luxfa-blue:not(.bg-luxfa-blue){ color:#0071AB; }
main > section:has(> .max-w-4xl > .bg-luxfa-blue) .text-luxfa-red{ color:rgba(255,255,255,.78); }

/* Rouge accent sur surfaces sombres : texte clair */
main :is(.bg-luxfa-blue,.bg-luxfa-dark,.ed-panel,.page-hero,.home-opening,.editorial-cta) :is(span,p).text-luxfa-red{ color:rgba(255,255,255,.78); }
main .text-slate-300{ color:#66737d; }
/* Pages juridiques : mêmes couleurs de texte accessibles (contenu inchangé) */
main .legal-content :is(h2,a){ color:#0071AB; }

/* Pastille logo/initiales de la fiche : reste claire pour accueillir un vrai logo */
main section .page-hero.page-hero .bg-slate-100 span{ color:var(--luxfa-dark)!important; }
