/* telpro.fr — feuille de style unique (aucune ressource externe).
   Thème clair par défaut ; thème sombre quand <html data-theme="sombre"> (bouton de l'en-tête). */

@font-face{font-family:'Sora';font-style:normal;font-weight:300 800;font-display:swap;src:url('../fonts/sora-latin-300-800.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-latin-500.woff2') format('woff2')}

/* Thème clair (par défaut) : accents foncés pour rester lisibles sur fond blanc */
:root{
  color-scheme:light;
  --fond:#F6F8FC;
  --surface:#FFFFFF;
  --surface-2:#EEF2F9;
  --fond-pied:#EDF1F8;
  --ligne:#DCE3EF;
  --ligne-2:#CDD7E7;
  --ligne-3:#E1E7F1;
  --ligne-4:#AEBBD2;
  --bord-champ:#7D8DAA;
  --texte:#16233D;
  --texte-fort:#0A1325;
  --texte-doux:#4A5872;
  --texte-clair:#26324A;
  --texte-nav:#26324A;
  --separateur:#A9B4C8;
  --or:#FFBA3D;
  --accent-texte:#1F63AD;
  --lien:#1F63AD;
  --lien-survol:#174A86;
  --focus:#1F63AD;
  --entete-fond:rgba(255,255,255,.92);
  --cadre-fond:rgba(255,255,255,.92);
  --formulaire-fond:#FFFFFF;
  --grille:rgba(32,104,176,.07);
  --grille-2:rgba(32,104,176,.05);
  --halo-bleu:rgba(32,104,176,.16);
  --halo-bleu-2:rgba(32,104,176,.12);
  --halo-or:rgba(255,186,61,.22);
  --halo-or-2:rgba(255,186,61,.22);
  --ombre-carte:0 1px 2px rgba(10,19,37,.04),0 10px 28px -18px rgba(10,19,37,.22);
  --erreur:#B23A1E;
  --ok-fond:#E6F6FA;
  --ok-bord:#7FC4D3;
  --ok-texte:#0B4F5C;
  --erreur-fond:#FDEDEA;
  --erreur-bord:#E8A193;
  --erreur-texte:#7A1F0E;
  --police:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  --gouttiere:clamp(16px,4vw,40px);
}

/* Thème sombre : au choix du visiteur (bouton de l'en-tête) */
[data-theme="sombre"]{
  color-scheme:dark;
  --fond:#0A1325;
  --surface:#0F1B33;
  --surface-2:#14223E;
  --fond-pied:#070E1C;
  --ligne:#22314F;
  --ligne-2:#2A3A5C;
  --ligne-3:#1C2A47;
  --ligne-4:#34466B;
  --bord-champ:#5A6F9E;
  --texte:#EDF1F9;
  --texte-fort:#FFFFFF;
  --texte-doux:#A6B3CC;
  --texte-clair:#DCE3F1;
  --texte-nav:#C4CEE2;
  --separateur:#4C5D80;
  --or:#FFC56B;
  --accent-texte:#FFC56B;
  --lien:#FFC56B;
  --lien-survol:#FFE0A8;
  --focus:#FFC56B;
  --encre:#0A1325;
  --entete-fond:rgba(10,19,37,.94);
  --cadre-fond:rgba(15,27,51,.86);
  --formulaire-fond:rgba(10,19,37,.78);
  --grille:rgba(157,180,255,.055);
  --grille-2:rgba(157,180,255,.05);
  --halo-bleu:rgba(32,104,176,.55);
  --halo-bleu-2:rgba(32,104,176,.5);
  --halo-or:rgba(255,197,107,.13);
  --halo-or-2:rgba(255,197,107,.16);
  --ombre-carte:none;
  --erreur:#FF9E8A;
  --ok-fond:rgba(127,211,230,.12);
  --ok-bord:rgba(127,211,230,.45);
  --ok-texte:#DFF6FB;
  --erreur-fond:rgba(255,158,138,.12);
  --erreur-bord:rgba(255,158,138,.5);
  --erreur-texte:#FFE3DC;
}

/* Couleurs par thème : métiers, canaux, flux, chiffres */
.c-pervenche{--c:#9DB4FF;--c-texte:#3550B5;--c-doux:rgba(157,180,255,.28);--c-halo:rgba(157,180,255,.28);--c-trait:rgba(53,80,181,.4)}
.c-or{--c:#FFBA3D;--c-texte:#8A5300;--c-doux:rgba(255,186,61,.24);--c-halo:rgba(255,186,61,.24);--c-trait:rgba(138,83,0,.4)}
.c-cyan{--c:#7FD3E6;--c-texte:#0B6E80;--c-doux:rgba(127,211,230,.3);--c-halo:rgba(127,211,230,.28);--c-trait:rgba(11,110,128,.4)}
.c-corail{--c:#FF9E8A;--c-texte:#B23A1E;--c-doux:rgba(255,158,138,.28);--c-halo:rgba(255,158,138,.26);--c-trait:rgba(178,58,30,.4)}
[data-theme="sombre"] .c-pervenche{--c-texte:#9DB4FF;--c-doux:rgba(157,180,255,.14);--c-halo:rgba(157,180,255,.14);--c-trait:rgba(157,180,255,.35)}
[data-theme="sombre"] .c-or{--c:#FFC56B;--c-texte:#FFC56B;--c-doux:rgba(255,197,107,.14);--c-halo:rgba(255,197,107,.13);--c-trait:rgba(255,197,107,.35)}
[data-theme="sombre"] .c-cyan{--c-texte:#7FD3E6;--c-doux:rgba(127,211,230,.14);--c-halo:rgba(127,211,230,.13);--c-trait:rgba(127,211,230,.35)}
[data-theme="sombre"] .c-corail{--c-texte:#FF9E8A;--c-doux:rgba(255,158,138,.14);--c-halo:rgba(255,158,138,.13);--c-trait:rgba(255,158,138,.35)}

/* Base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--fond-pied);color:var(--texte);font-family:var(--police);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
ul,ol{margin:0;padding:0;list-style:none}
a{color:var(--lien)}
a:hover{color:var(--lien-survol)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}
.conteneur{max-width:1240px;margin:0 auto;padding-left:var(--gouttiere);padding-right:var(--gouttiere)}
.visuellement-cache{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lien-evitement{position:absolute;left:12px;top:-80px;z-index:100;padding:10px 16px;border-radius:10px;background:var(--or);color:var(--encre);font-weight:600;text-decoration:none}
.lien-evitement:focus{top:12px;color:var(--encre)}
.surtitre{font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-texte)}
.surtitre-couleur{color:var(--c-texte)}
.titre-section{font-weight:600;font-size:clamp(2rem,3.6vw,3rem);line-height:1.08;letter-spacing:-.03em;color:var(--texte-fort)}
.titre-moyen{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:32px}
.icone{flex:0 0 auto}

/* Logo : version couleur en clair, version blanche en sombre */
.logo-sombre{display:none}
[data-theme="sombre"] .logo-clair{display:none}
[data-theme="sombre"] .logo-sombre{display:block}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border:0;border-radius:10px;font-family:var(--police);font-size:16px;font-weight:600;line-height:1.2;text-decoration:none;text-align:center;cursor:pointer;transition:filter .15s ease,box-shadow .15s ease}
.btn-or{background:var(--or);color:var(--encre)}
.btn-or:hover{color:var(--encre);filter:brightness(1.08)}
.btn-contour{background:transparent;color:var(--texte);box-shadow:inset 0 0 0 1px var(--ligne-4)}
.btn-contour:hover{color:var(--texte-fort);box-shadow:inset 0 0 0 1px var(--texte)}
.btn-contour .icone{color:var(--accent-texte)}
.btn-petit{min-height:44px;padding:0 20px;font-size:14.5px;white-space:nowrap}
.btn-mono{font-family:var(--mono);font-weight:500;font-size:15.5px}
.boutons{display:flex;flex-wrap:wrap;gap:12px}

/* En-tête */
.entete{position:sticky;top:0;z-index:30;background:var(--entete-fond);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--ligne-3)}
.entete-barre{height:80px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.entete-logo{flex:0 0 auto;display:flex}
.entete-logo img{width:auto;height:42px}
.nav-liens{display:flex;align-items:center;gap:22px;font-size:14.5px;font-weight:500;white-space:nowrap}
.nav-liens a{color:var(--texte-nav);text-decoration:none}
.nav-liens a:hover{color:var(--texte-fort)}
.entete-actions{display:flex;align-items:center;gap:12px}
.langues{display:flex;align-items:center;gap:2px;font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:.06em}
.langues a{padding:8px 4px;color:var(--texte-doux);text-decoration:none}
.langues a[aria-current]{color:var(--texte-fort)}
.langues a:hover{color:var(--texte-fort)}
.langues span{color:var(--separateur)}
.entete-tel{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:14px;color:var(--texte-nav);text-decoration:none;white-space:nowrap}
.entete-tel:hover{color:var(--texte-fort)}
.entete-tel .icone{color:var(--accent-texte)}
.nav-menu{display:none;align-items:center;justify-content:center;width:46px;height:46px;padding:0;border:1px solid var(--ligne-2);border-radius:10px;background:transparent;color:var(--texte);cursor:pointer}
.nav-mobile{display:flex;flex-direction:column;padding:4px var(--gouttiere) 20px;border-top:1px solid var(--ligne-3);background:var(--fond)}
.nav-mobile[hidden]{display:none}
.nav-mobile a{padding:14px 0;border-bottom:1px solid var(--ligne-3);color:var(--texte-nav);font-size:18px;font-weight:600;text-decoration:none}
.nav-mobile a:hover{color:var(--texte-fort)}
.nav-mobile .nav-mobile-tel{font-family:var(--mono);font-weight:500;font-size:17px;border-bottom:0}
.nav-mobile .btn-or{margin-top:8px;padding:0 24px;border-bottom:0;color:var(--encre)}

/* Accueil : bandeau principal */
.hero{position:relative;overflow:hidden;background-color:var(--fond);background-image:linear-gradient(var(--grille) 1px,transparent 1px),linear-gradient(90deg,var(--grille) 1px,transparent 1px);background-size:64px 64px;background-position:center top}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.hero::before{width:1000px;height:1000px;right:-360px;top:-520px;background:radial-gradient(closest-side,var(--halo-bleu),transparent)}
.hero::after{width:720px;height:720px;left:-360px;top:380px;background:radial-gradient(closest-side,var(--halo-or),transparent)}
.hero-contenu{position:relative;z-index:1;display:flex;flex-direction:column;gap:32px;padding-top:clamp(56px,8vw,104px);padding-bottom:clamp(56px,7vw,88px)}
.hero h1{max-width:12em;font-size:clamp(2.5rem,6vw,5.2rem);font-weight:600;line-height:1.02;letter-spacing:-.035em;color:var(--texte-fort)}
.hero h1 em{font-style:normal;color:var(--accent-texte)}
.hero-ligne{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 48px}
.hero-chapo{flex:1 1 440px;max-width:36em;font-size:clamp(1.02rem,1.3vw,1.15rem);line-height:1.65;color:var(--texte-doux)}

/* Schéma animé des flux */
.flux-cadre{margin:16px 0 0;display:flex;flex-direction:column;gap:26px;padding:clamp(20px,3vw,32px);border:1px solid var(--ligne);border-radius:20px;background:var(--cadre-fond);box-shadow:var(--ombre-carte)}
.flux-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.flux-titre{font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-doux)}
.legende{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13px;color:var(--texte-clair)}
.legende li{display:inline-flex;align-items:center;gap:8px}
.legende li::before{content:"";width:20px;height:3px;border-radius:2px;background:var(--c)}
.flux{display:flex;align-items:center}
.flux-noeud{flex:0 0 216px;min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 18px;border:1px solid var(--ligne-2);border-radius:18px;background:var(--surface-2);text-align:center}
.flux-noeud .pastille{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--c);color:var(--encre)}
.flux-noeud-titre{font-size:17px;font-weight:600;color:var(--texte-fort)}
.flux-noeud-texte{font-size:13.5px;line-height:1.5;color:var(--texte-doux)}
.flux-centre{position:relative;flex:0 0 264px;gap:12px;border-color:var(--or);border-radius:20px;background:var(--surface);box-shadow:0 24px 60px -24px rgba(255,197,107,.4)}
.flux-centre img{width:auto;height:36px}
.flux-anneau{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;pointer-events:none;animation:flux-pouls 3.2s ease-out infinite}
.canaux-puces{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.canaux-puces li{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--ligne-2);border-radius:999px;background:var(--surface-2);font-family:var(--mono);font-size:11.5px;color:var(--texte-clair)}
.canaux-puces li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
.flux-voie{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:30px;padding:0 18px}
.flux-piste{display:flex;flex-direction:column;gap:10px;text-align:center;color:var(--c)}
.flux-retour{flex-direction:column-reverse}
.flux-etiquette{font-family:var(--mono);font-size:12.5px;line-height:1.45;color:var(--c-texte)}
.flux-trait{position:relative;height:2px;border-radius:2px;background:var(--c-trait)}
.flux-point{position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;background:var(--c);box-shadow:0 0 12px var(--c);animation:flux-droite 3.2s linear infinite}
.flux-point+.flux-point{animation-delay:-1.6s}
.flux-retour .flux-point{animation-name:flux-gauche}
.flux-fleche{position:absolute;top:-7px;right:-7px;color:var(--c-texte)}
.flux-retour .flux-fleche{right:auto;left:-7px}
.flux-conclusion{display:flex;align-items:center;justify-content:center;gap:10px;font-size:14.5px;line-height:1.5;text-align:center;color:var(--texte-doux)}
.flux-conclusion .icone{color:var(--accent-texte)}
@keyframes flux-droite{0%{left:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{left:calc(100% - 10px);opacity:0}}
@keyframes flux-gauche{0%{left:calc(100% - 10px);opacity:0}12%{opacity:1}88%{opacity:1}100%{left:0;opacity:0}}
@keyframes flux-bas{0%{top:0;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:calc(100% - 10px);opacity:0}}
@keyframes flux-haut{0%{top:calc(100% - 10px);opacity:0}12%{opacity:1}88%{opacity:1}100%{top:0;opacity:0}}
@keyframes flux-pouls{0%{box-shadow:0 0 0 0 rgba(255,197,107,.45)}70%{box-shadow:0 0 0 16px rgba(255,197,107,0)}100%{box-shadow:0 0 0 0 rgba(255,197,107,0)}}

/* Références */
.references{background:var(--fond);border-top:1px solid var(--ligne-3);border-bottom:1px solid var(--ligne-3)}
.references-contenu{display:flex;flex-wrap:wrap;align-items:center;gap:22px 56px;padding-top:30px;padding-bottom:30px}
.references h2{flex:0 0 auto;font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-doux)}
.logos{flex:1 1 560px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px 40px}
.logos img{width:auto;filter:invert(1);opacity:.62}
[data-theme="sombre"] .logos img{filter:none;opacity:.9}
.logo-rubix{height:28px}
.logo-schindler{height:32px}
.logo-wurth{height:28px}
.logo-philips{height:24px}
.logo-msd{height:34px}

/* Sections */
.section{padding-top:clamp(72px,9vw,112px);padding-bottom:clamp(72px,9vw,112px)}
.fond-1{background:var(--fond)}
.fond-2{background:var(--surface);border-top:1px solid var(--ligne-3);border-bottom:1px solid var(--ligne-3)}
.filet-haut{border-top:1px solid var(--ligne-3);padding-top:clamp(64px,8vw,96px);padding-bottom:clamp(64px,8vw,96px)}
.section-tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 64px;margin-bottom:48px}
.section-tete>div{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:16px}
.section-tete>p{flex:1 1 360px;max-width:30em;font-size:16.5px;line-height:1.65;color:var(--texte-doux)}

/* Métiers */
.metiers-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(480px,100%),1fr));gap:16px}
.metier-carte{display:flex;flex-wrap:wrap;gap:28px 32px;padding:32px;border:1px solid var(--ligne);border-radius:18px;background-color:var(--surface);background-image:radial-gradient(460px 240px at 100% 0%,var(--c-halo),transparent);box-shadow:var(--ombre-carte)}
.metier-principal{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:14px}
.metier-repere{display:flex;align-items:center;gap:14px}
.pastille-carree{flex:0 0 auto;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--c);color:var(--encre)}
.metier-carte h3{font-size:23px;font-weight:600;letter-spacing:-.01em;color:var(--texte-fort)}
.metier-carte h3 a{color:inherit;text-decoration:none}
.metier-carte h3 a:hover{color:var(--c-texte)}
.metier-resume{font-size:15px;line-height:1.6;color:var(--texte-doux)}
.lien-fleche{margin-top:auto;display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-size:14.5px;font-weight:600;color:var(--c-texte);text-decoration:none}
.lien-fleche:hover{color:var(--c-texte);text-decoration:underline;text-underline-offset:4px}
.liste-fleches{flex:1 1 200px;min-width:0;display:flex;flex-direction:column;font-family:var(--mono);font-size:13.5px;line-height:1.5;color:var(--texte-clair)}
.liste-fleches li{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--ligne-3)}
.liste-fleches li:last-child{border-bottom:0}
.liste-fleches li::before,.prestation::before{content:"→";content:"→"/"";flex:0 0 auto;font-family:var(--mono);color:var(--c-texte)}

/* Canaux et services */
.canaux-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px}
.canal{display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--ligne);border-radius:16px;background:var(--surface);box-shadow:var(--ombre-carte)}
.pastille-douce{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--c-doux);color:var(--c-texte)}
.canal h3{font-size:18px;font-weight:600;color:var(--texte-fort)}
.canal p{font-size:14.5px;line-height:1.6;color:var(--texte-doux)}

/* Pourquoi Telpro */
.pourquoi-ligne{display:flex;flex-wrap:wrap;align-items:flex-start;gap:56px 80px}
.pourquoi-texte{flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:22px}
.pourquoi-texte>p:not(.surtitre){font-size:16.5px;line-height:1.65;color:var(--texte-doux)}
.iso{display:flex;align-items:center;gap:18px;margin-top:6px;padding:16px;border:1px solid var(--ligne-2);border-radius:16px;background:var(--surface-2);box-shadow:var(--ombre-carte)}
.iso img{flex:0 0 auto;width:66px;height:84px;border-radius:8px}
.iso div{display:flex;flex-direction:column;gap:4px}
.iso-titre{font-size:16px;font-weight:600;color:var(--texte-fort)}
.iso p:not(.iso-titre){font-size:14px;line-height:1.55;color:var(--texte-doux)}
.faits{display:flex;flex-wrap:wrap;gap:12px 40px;margin:4px 0 0}
.fait{display:flex;flex-direction:column-reverse;gap:2px}
.fait dt{font-size:14px;line-height:1.5;color:var(--texte-doux)}
.fait dd{margin:0;font-size:30px;font-weight:600;line-height:1.1;letter-spacing:-.02em;color:var(--c-texte)}
.engagements{flex:1.5 1 540px;min-width:0;display:flex;flex-direction:column}
.engagements li{display:flex;flex-wrap:wrap;gap:8px 24px;padding:26px 0;border-top:1px solid var(--ligne)}
.engagements li:last-child{border-bottom:1px solid var(--ligne)}
.engagements .etiquette{flex:0 0 132px;padding-top:5px;font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--c-texte)}
.engagements div{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:8px}
.engagements h3{font-size:20px;font-weight:600;color:var(--texte-fort)}
.engagements p{font-size:15.5px;line-height:1.6;color:var(--texte-doux)}

/* Contact */
.contact-cadre{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:flex-start;gap:40px 56px;padding:clamp(24px,5vw,64px);border:1px solid var(--ligne-2);border-radius:20px;background-color:var(--surface);background-image:linear-gradient(var(--grille-2) 1px,transparent 1px),linear-gradient(90deg,var(--grille-2) 1px,transparent 1px);background-size:48px 48px;box-shadow:var(--ombre-carte)}
.contact-cadre::before,.contact-cadre::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.contact-cadre::before{width:760px;height:760px;left:-280px;bottom:-480px;background:radial-gradient(closest-side,var(--halo-bleu-2),transparent)}
.contact-cadre::after{width:520px;height:520px;right:-200px;top:-300px;background:radial-gradient(closest-side,var(--halo-or-2),transparent)}
.contact-texte{position:relative;z-index:1;flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:18px}
.contact-texte h2{font-size:clamp(2.2rem,4.2vw,3.4rem);font-weight:600;line-height:1.05;letter-spacing:-.035em;color:var(--texte-fort)}
.contact-texte>p:not(.surtitre){max-width:34em;font-size:17px;line-height:1.6;color:var(--texte-doux)}
.contact-directs{display:flex;flex-direction:column;gap:12px;max-width:340px;margin-top:8px}
.contact-note{font-size:14.5px;line-height:1.6;color:var(--texte-doux)}
.contact-note a{color:var(--texte-fort);font-weight:600}
.formulaire{position:relative;z-index:1;flex:1.25 1 440px;min-width:0;display:flex;flex-direction:column;gap:16px;padding:clamp(20px,3vw,28px);border:1px solid var(--ligne-2);border-radius:16px;background:var(--formulaire-fond);box-shadow:var(--ombre-carte)}
.formulaire-titre{font-size:20px;font-weight:600;color:var(--texte-fort)}
.formulaire-aide{font-size:13px;color:var(--texte-doux)}
.formulaire-aide span{color:var(--accent-texte)}
.formulaire-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:16px}
.champ{display:flex;flex-direction:column;gap:7px;min-width:0}
.champ-large{grid-column:1/-1}
.champ label{font-size:14px;font-weight:500;color:var(--texte-clair)}
.champ .requis{color:var(--accent-texte)}
.champ input,.champ textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--bord-champ);border-radius:10px;background:var(--fond);color:var(--texte);font-family:var(--police);font-size:16px;line-height:1.4}
.champ textarea{min-height:140px;resize:vertical}
.champ input:focus,.champ textarea:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:transparent}
.champ [aria-invalid="true"]{border-color:var(--erreur)}
.champ-erreur{font-size:13.5px;color:var(--erreur)}
.champ-piege{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.formulaire-mention{font-size:13px;line-height:1.55;color:var(--texte-doux)}
.formulaire-mention a{color:var(--texte-clair)}
.formulaire .btn{align-self:flex-start}
.message-retour{padding:14px 16px;border-radius:12px;font-size:15px;line-height:1.5}
.message-retour ul{margin-top:6px;padding-left:18px;list-style:disc}
.message-retour a{color:inherit}
.message-ok{border:1px solid var(--ok-bord);background:var(--ok-fond);color:var(--ok-texte)}
.message-erreur{border:1px solid var(--erreur-bord);background:var(--erreur-fond);color:var(--erreur-texte)}

/* Bouton flottant de thème clair / sombre (en bas à gauche) */
.bouton-theme{position:fixed;left:20px;bottom:20px;z-index:40;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid var(--ligne-2);border-radius:999px;background:var(--surface);color:var(--texte);box-shadow:0 10px 30px -12px rgba(10,19,37,.45);cursor:pointer;transition:transform .15s ease,border-color .15s ease}
.bouton-theme[hidden]{display:none}
.bouton-theme:hover{transform:translateY(-2px);border-color:var(--ligne-4);color:var(--texte-fort)}
.bouton-theme .icone-soleil{display:none}
[data-theme="sombre"] .bouton-theme .icone-lune{display:none}
[data-theme="sombre"] .bouton-theme .icone-soleil{display:block}
@media (max-width:640px){.bouton-theme{left:16px;bottom:16px;width:46px;height:46px}}
@media print{.bouton-theme{display:none}}

/* Pied de page */
.pied{border-top:1px solid var(--ligne-3);background:var(--fond-pied);color:var(--texte-doux)}
.pied-contenu{display:flex;flex-direction:column;gap:48px;padding-top:64px;padding-bottom:32px}
.pied-haut{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px 64px}
.pied-marque{flex:1 1 260px;max-width:340px;display:flex;flex-direction:column;gap:18px}
.pied-marque img{width:auto;height:42px;align-self:flex-start}
.pied-marque p{font-size:14.5px;line-height:1.65}
.pied-plan{flex:2 1 520px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:32px}
.pied-plan div{display:flex;flex-direction:column;gap:12px;font-size:14.5px}
.pied-plan h2{margin-bottom:4px;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-fort)}
.pied a{color:var(--texte-doux);text-decoration:none}
.pied a:hover{color:var(--texte-fort);text-decoration:underline}
.pied address{font-style:normal;line-height:1.65}
.pied-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 28px;padding-top:24px;border-top:1px solid var(--ligne-3);font-family:var(--mono);font-size:12.5px}
.pied-bas ul{display:flex;flex-wrap:wrap;gap:12px 24px}

/* Pages intérieures : métier, pages légales, 404 */
.page-entete{position:relative;overflow:hidden;background-color:var(--fond);background-image:linear-gradient(var(--grille) 1px,transparent 1px),linear-gradient(90deg,var(--grille) 1px,transparent 1px);background-size:64px 64px;border-bottom:1px solid var(--ligne-3)}
.page-entete::before{content:"";position:absolute;width:900px;height:900px;right:-320px;top:-500px;border-radius:50%;background:radial-gradient(closest-side,var(--c-halo,var(--halo-bleu)),transparent);pointer-events:none}
.page-entete-contenu{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:22px;padding-top:clamp(48px,7vw,88px);padding-bottom:clamp(48px,6vw,72px)}
.page-entete h1{max-width:14em;font-size:clamp(2.4rem,5vw,4.2rem);font-weight:600;line-height:1.04;letter-spacing:-.035em;color:var(--texte-fort)}
.page-entete .chapo{max-width:40em;font-size:clamp(1.05rem,1.35vw,1.2rem);line-height:1.65;color:var(--texte-doux)}
.page-entete-sobre h1{font-size:clamp(2.2rem,4.4vw,3.4rem)}
.fil-ariane ol{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:12.5px;color:var(--texte-doux)}
.fil-ariane li+li::before{content:"/";margin-right:8px;color:var(--separateur)}
.fil-ariane a{color:var(--texte-doux);text-decoration:none}
.fil-ariane a:hover{color:var(--texte-fort);text-decoration:underline}
.fil-ariane [aria-current]{color:var(--texte-fort)}
.groupe+.groupe{margin-top:40px}
.groupe h3{margin-bottom:16px;font-family:var(--mono);font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--c-texte)}
.prestations{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:12px}
.prestation{display:flex;align-items:flex-start;gap:12px;padding:20px 22px;border:1px solid var(--ligne);border-radius:14px;background:var(--surface);box-shadow:var(--ombre-carte);font-size:16px;line-height:1.5;color:var(--texte)}
.autres-metiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:12px}
.autre-metier{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px solid var(--ligne);border-radius:14px;background:var(--fond);box-shadow:var(--ombre-carte);color:var(--texte-fort);font-weight:600;text-decoration:none}
.autre-metier .pastille-carree{width:40px;height:40px;border-radius:10px}
.autre-metier>.icone{margin-left:auto;color:var(--c-texte)}
.autre-metier:hover{border-color:var(--c-texte);color:var(--texte-fort)}
.bandeau-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px;padding:clamp(24px,4vw,48px);border:1px solid var(--ligne-2);border-radius:20px;background:var(--surface);box-shadow:var(--ombre-carte)}
.bandeau-cta>div:first-child{flex:1 1 380px;display:flex;flex-direction:column;gap:10px}
.bandeau-cta h2{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600;letter-spacing:-.03em;color:var(--texte-fort)}
.bandeau-cta p{font-size:16.5px;line-height:1.6;color:var(--texte-doux)}
.section-prose{padding-top:clamp(48px,6vw,72px)}
.prose{max-width:780px}
.prose h2{margin:44px 0 14px;font-size:22px;font-weight:600;color:var(--texte-fort)}
.prose h2:first-child{margin-top:0}
.prose p,.prose li,.prose dd{font-size:16px;line-height:1.7;color:var(--texte-clair)}
.prose p+p{margin-top:12px}
.prose ul{margin:10px 0;padding-left:20px;list-style:disc}
.prose li+li{margin-top:8px}
.prose strong{color:var(--texte-fort)}
.prose dl{display:grid;grid-template-columns:max-content 1fr;gap:10px 24px;margin:0}
.prose dt{font-size:14.5px;line-height:1.7;color:var(--texte-doux)}
.prose dd{margin:0}

/* Écrans moyens et petits */
@media (max-width:1199px){
  .entete-tel{display:none}
}
@media (max-width:1100px){
  .nav-liens{display:none}
  .nav-menu{display:inline-flex}
}
@media (min-width:1101px){
  .nav-mobile{display:none!important}
}
@media (max-width:900px){
  .flux{flex-direction:column;align-items:stretch}
  .flux-noeud,.flux-centre{flex:0 0 auto}
  .flux-voie{flex-direction:row;gap:18px;min-height:150px;padding:14px 0}
  .flux-piste{flex:1 1 0;flex-direction:row;align-items:stretch;gap:14px;text-align:right}
  .flux-retour{flex-direction:row-reverse;text-align:left}
  .flux-etiquette{flex:1 1 0;align-self:center}
  .flux-trait{flex:0 0 2px;width:2px;height:auto}
  .flux-point{top:0;left:-4px;animation-name:flux-bas}
  .flux-retour .flux-point{animation-name:flux-haut}
  .flux-fleche{top:auto;right:auto;bottom:-7px;left:-7px;transform:rotate(90deg)}
  .flux-retour .flux-fleche{bottom:auto;top:-7px}
}
@media (max-width:640px){
  .masque-mobile{display:none!important}
  .entete-barre{height:68px}
  .entete-logo img{height:36px}
  .entete-actions{gap:10px}
  .prose dl{grid-template-columns:1fr;gap:2px}
  .prose dd{margin-bottom:10px}
  .formulaire .btn{align-self:stretch}
}

/* Mouvement réduit demandé par le système : schéma fixe, points visibles */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .flux-point,.flux-anneau{animation:none}
  .flux-point{left:calc(30% - 5px)}
  .flux-point+.flux-point{left:calc(70% - 5px)}
}
@media (prefers-reduced-motion:reduce) and (max-width:900px){
  .flux-point{left:-4px;top:calc(30% - 5px)}
  .flux-point+.flux-point{left:-4px;top:calc(70% - 5px)}
}
