/* INNOVA ALPHA | echelle unique des titres (2026-09-14)
   Les tailles des titres sont ecrites dans les balises : ces regles les
   remplacent (!important). Exceptions marquees data-title-keep. */

h1:not([data-title-keep]){
  font-size:clamp(1.75rem, 4vw, 2.9rem) !important;
  font-weight:900 !important;
  line-height:1.08 !important;
  letter-spacing:0.01em !important;
  text-transform:uppercase !important;
}

h2:not([data-title-keep]):not([data-title-cta]){
  font-size:clamp(1.4rem, 2.8vw, 2rem) !important;
  font-weight:900 !important;
  line-height:1.12 !important;
  letter-spacing:0.01em !important;
  text-transform:uppercase !important;
}

/* appel final en bas de page : garde son style, taille reduite */
h2[data-title-cta]{
  font-size:clamp(1.6rem, 4vw, 2.6rem) !important;
  line-height:1.08 !important;
}

h3:not([data-title-keep]){
  font-size:1rem !important;
  font-weight:800 !important;
  line-height:1.3 !important;
  letter-spacing:0.02em !important;
  text-transform:uppercase !important;
}

/* petits titres en colonnes etroites (phases de la Methode Alpha) */
h3[data-title-small]{
  font-size:0.9rem !important;
  letter-spacing:0 !important;
}

/* ---- Titres centres sur tout le site (2026-09-14), comme la page Realisations ----
   data-hc        : conteneur direct d'un titre de page ou de section
   data-hc-actions: rangee de boutons d'un hero
   data-hc-stack  : section a deux colonnes (titre + liste), empilee
   data-hc-row    : en-tete titre + onglets (Tarifs), empile sur ordinateur */
[data-hc]{ margin-left:auto !important; margin-right:auto !important; }
[data-hc] > :is(p, h1, h2){ text-align:center; margin-left:auto !important; margin-right:auto !important; }
[data-hc] > p[style*="display:flex"]{ justify-content:center; }
[data-hc] > a{ display:table !important; margin-left:auto !important; margin-right:auto !important; }
[data-hc] > span{ display:flex !important; width:fit-content; margin-left:auto !important; margin-right:auto !important; }
[data-hc] > [data-hc-actions]{ justify-content:center !important; }
[data-hc-stack]{ flex-direction:column !important; grid-template-columns:1fr !important; align-items:stretch !important; gap:clamp(24px, 3vw, 40px) !important; }
[data-hc-stack] > *{ flex:0 0 auto !important; width:100%; max-width:760px; margin-left:auto !important; margin-right:auto !important; }
@media (min-width:761px){
  [data-hc-row]{ flex-direction:column !important; align-items:center !important; justify-content:center !important; }
}

/* ---- Sous-titres proportionnels aux titres (2026-09-14) ----
   data-sub="eyebrow" : surtitre au-dessus d'un titre
   data-sub="lead1"   : chapeau sous un titre de page (h1)
   data-sub="lead2"   : chapeau sous un titre de section (h2)
   data-sub="leadcta" : chapeau sous l'appel final de bas de page */
p[data-sub="eyebrow"]{
  font-size:0.75rem !important;
  font-weight:700 !important;
  letter-spacing:0.22em !important;
  line-height:1.5 !important;
  text-transform:uppercase !important;
}
p[data-sub="lead1"]{
  font-size:clamp(0.95rem, 1.3vw, 1.08rem) !important;
  line-height:1.65 !important;
  max-width:58ch !important;
}
p[data-sub="lead2"]{
  font-size:1rem !important;
  line-height:1.65 !important;
  max-width:56ch !important;
}
p[data-sub="leadcta"]{
  font-size:1rem !important;
  line-height:1.65 !important;
  max-width:52ch !important;
}

/* ---- Bande « Ils nous font confiance » a l'epaisseur des logos (2026-09-14) ----
   Marges haut/bas reduites, mention placee a gauche des logos sur ordinateur. */
section[data-trust]{ padding-block:clamp(8px, 1vw, 12px) !important; }
section[data-trust] > div[style*="flex-direction:column"]{
  flex-direction:row !important;
  align-items:center !important;
  gap:clamp(18px, 3vw, 36px) !important;
  max-width:1240px !important;
}
section[data-trust] > div[style*="flex-direction:column"] > p{ flex:none; white-space:nowrap; text-align:left !important; }
section[data-trust] [data-trust-track]{ flex:1 1 auto; min-width:0; }
body[data-night] [data-trust-logo]{ padding:6px 14px !important; border-radius:10px !important; }
@media (max-width:700px){
  section[data-trust] > div[style*="flex-direction:column"]{ flex-direction:column !important; gap:10px !important; }
  section[data-trust] > div[style*="flex-direction:column"] > p{ text-align:center !important; }
}

/* ---- Bande de services du pole, a la place du fil d'Ariane (2026-09-15) ---- */
[data-svc-band]{ position:relative; overflow:hidden; background:var(--sA); border-bottom:1px solid var(--lineA); padding-block:14px;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
[data-svc-band] .svc-track{ display:flex; width:max-content; animation:svcBand 48s linear infinite; }
[data-svc-band]:hover .svc-track{ animation-play-state:paused; }
[data-svc-band] .svc-list{ display:flex; align-items:center; gap:34px; margin:0; padding:0 17px; list-style:none; white-space:nowrap;
  font-size:0.75rem; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--accent); }
[data-svc-band] .svc-sep{ opacity:.5; letter-spacing:0; }
@keyframes svcBand{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){
  [data-svc-band] .svc-track{ animation:none; width:auto; }
  [data-svc-band] .svc-list{ flex-wrap:wrap; justify-content:center; row-gap:8px; white-space:normal; }
  [data-svc-band] .svc-list[aria-hidden="true"]{ display:none; }
}

/* Bascule FR / EN : meme style que le bouton jour / nuit (rond de 36 px) */
a[data-lang-switch]{ display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; flex:none; width:36px; height:36px; padding:0; margin-left:8px; font-family:inherit; font-size:11px; font-weight:800; letter-spacing:.02em; line-height:1; color:var(--txA); background:transparent; border:1px solid var(--lineA); border-radius:999px; text-decoration:none; transition:background .3s ease; }
a[data-lang-switch]:hover{ color:var(--txA); background:var(--hov); }
a[data-lang-switch]:focus-visible{ outline:2px solid #8A4DFF; outline-offset:2px; }
@media (max-width:1120px){
  nav[data-glass] > a[data-lang-switch], [data-nav-row] > a[data-lang-switch]{ display:inline-flex !important; margin-left:6px !important; padding:0; }
}
/* Bouton de langue : le drapeau de la langue affichee remplace le libelle au survol */
a[data-lang-switch]{ position:relative; overflow:hidden; }
a[data-lang-switch] .ls-txt, a[data-lang-switch] .ls-flag{ transition:opacity .35s ease, transform .35s cubic-bezier(.22,1,.36,1); }
a[data-lang-switch] .ls-flag{ position:absolute; inset:0; border-radius:50%; overflow:hidden; opacity:0; transform:scale(.6); pointer-events:none; }
a[data-lang-switch] .ls-flag svg{ display:block; width:100%; height:100%; }
@media (hover:hover){
  a[data-lang-switch]:hover .ls-flag{ opacity:1; transform:scale(1); }
  a[data-lang-switch]:hover .ls-txt{ opacity:0; transform:scale(.6); }
}
a[data-lang-switch]:focus-visible .ls-flag{ opacity:1; transform:scale(1); }
a[data-lang-switch]:focus-visible .ls-txt{ opacity:0; }
@media (prefers-reduced-motion: reduce){
  a[data-lang-switch] .ls-txt, a[data-lang-switch] .ls-flag{ transition:none; }
}

/* Bouton jour / nuit : animation du symbole au survol (lune qui bascule, soleil qui tourne) */
button[onclick="INNOVA_toggleTheme()"] [data-theme-glyph]{ display:inline-block; line-height:1; transform-origin:50% 50%; transition:transform .45s cubic-bezier(.22,1,.36,1); }
@media (hover:hover){
  button[onclick="INNOVA_toggleTheme()"]:hover [data-theme-glyph]{ transform:rotate(-20deg) scale(1.18); }
  body[data-night] button[onclick="INNOVA_toggleTheme()"]:hover [data-theme-glyph]{ transform:rotate(90deg) scale(1.18); }
}
button[onclick="INNOVA_toggleTheme()"]:focus-visible [data-theme-glyph]{ transform:rotate(-20deg) scale(1.18); }
body[data-night] button[onclick="INNOVA_toggleTheme()"]:focus-visible [data-theme-glyph]{ transform:rotate(90deg) scale(1.18); }
@media (prefers-reduced-motion: reduce){
  button[onclick="INNOVA_toggleTheme()"] [data-theme-glyph]{ transition:none; }
}

/* Credits du pied de page centres ; le bouton "retour en haut" reste a droite */
footer > div:has(> div > [data-slogan]){ justify-content:center !important; box-sizing:border-box; min-height:76px; padding-inline:calc(48px + 16px + clamp(20px, 4vw, 44px)) !important; }
footer > div:has(> div > [data-slogan]) > div:has(> [data-slogan]){ justify-content:center; text-align:center; }
footer > div:has(> div > [data-slogan]) > button{ position:absolute; right:clamp(20px, 4vw, 44px); top:0; bottom:0; margin:auto 0; }

/* Cartes du cycle operationnel (Methode Alpha) : la couleur suit le theme.
   Jetons dedies : ne pas reutiliser --cardBg, deja defini par plusieurs pages. */
:root{ --cycleBg:#FFFFFF; --cycleLine:#E4DFF0; }
body[data-night]{ --cycleBg:#141019; --cycleLine:rgba(255,255,255,0.14); }

/* Reseaux sociaux du pied de page (visibles aussi sur mobile) */
[data-social-row] a:hover{ border-color:var(--accent) !important; color:var(--accent) !important; }
[data-social-row] a:focus-visible{ outline:2px solid #8A4DFF; outline-offset:3px; }

/* Decor anime de la section « Ce que nous faisons » : fige sur mobile.
   72 traces animes sur stroke-dashoffset, non accelerables par le GPU :
   le defilement tremblait sur telephone. Anime sur ordinateur, fige en dessous. */
@media (max-width: 900px){
  #expertises svg path{ animation:none !important; }
}
@media (prefers-reduced-motion: reduce){
  #expertises svg path{ animation:none !important; }
}
