/* ==========================================================================
   FISARMUSICA — feuille de style « Spectre » (v3, Fraunces)
   Palette issue du logo (vague sonore) : sarcelle → ambre → corail → magenta → violet
   ========================================================================== */
:root{
  --noir:#080510; --noir-2:#0f0a1b; --noir-3:#170f28; --noir-4:#20153a;
  --creme:#f6f3ee; --blanc:#fff; --encre:#161020;
  --gris:#6a6378; --gris-clair:#a9a1b8; --gris-doux:#cec6dc;
  --sarcelle:#2fbfa0; --ambre:#f2a93b; --corail:#f4635e; --magenta:#e8397b; --violet:#7a3bbf;
  --degrade:linear-gradient(90deg,#2fbfa0 0%,#f2a93b 27%,#f4635e 50%,#e8397b 73%,#7a3bbf 100%);
  --duo:linear-gradient(110deg,#e8397b,#7a3bbf);
  --ombre:0 30px 80px -34px rgba(6,4,12,.72);
  --ombre-douce:0 18px 50px -26px rgba(22,16,32,.26);
  --rayon:16px; --rayon-lg:22px;
  --police-titre:"Fraunces",Georgia,"Times New Roman",serif;
  --police-texte:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --pas:clamp(90px,11vw,152px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--police-texte);font-size:17px;line-height:1.72;color:var(--encre);
  background:var(--creme);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;height:auto;display:block}
a{color:var(--magenta);text-decoration:none}a:hover{color:var(--violet)}
h1,h2,h3,h4{font-family:var(--police-titre);line-height:1.1;margin:0 0 .5em;letter-spacing:-.01em;font-weight:600}
.conteneur{width:min(1220px,92%);margin-inline:auto}
.centre{text-align:center}.centre .sous-titre{margin-inline:auto}

.kicker{display:inline-flex;align-items:center;gap:12px;font-family:var(--police-texte);
  font-size:11.5px;font-weight:700;letter-spacing:.34em;text-transform:uppercase;margin:0 0 18px}
.kicker::before{content:"";width:30px;height:2px;border-radius:2px;background:var(--degrade)}
.kicker.grad{background:var(--duo);-webkit-background-clip:text;background-clip:text;color:transparent}
.kicker.grad::before{display:none}
.titre-section{font-size:clamp(2.2rem,4.8vw,3.4rem);margin-bottom:20px}
.sous-titre{color:var(--gris);max-width:640px;font-size:1.07rem;margin:0}
.section-sombre .sous-titre{color:var(--gris-clair)}
.filet{height:2px;width:60px;background:var(--degrade);border-radius:3px;margin:24px 0 0}
.centre .filet{margin-inline:auto}

/* ---------- Header ---------- */
.entete{position:fixed;inset:0 0 auto 0;z-index:100;background:rgba(8,5,16,.32);
  backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);
  border-bottom:1px solid rgba(255,255,255,.05);transition:background .35s,border-color .35s}
.entete.plein{background:rgba(8,5,16,.9);border-color:rgba(255,255,255,.09)}
.entete-inner{display:flex;align-items:center;justify-content:space-between;padding:15px 0}
.marque{display:flex;align-items:center;gap:13px;color:var(--blanc)}
.marque:hover{color:var(--blanc)}
.marque svg{height:32px;width:auto}
.marque-nom{font-family:var(--police-texte);font-weight:800;letter-spacing:.16em;font-size:16px;text-transform:uppercase}
.marque-nom span{font-weight:300;color:var(--gris-clair);letter-spacing:.12em}
.nav-liens{display:flex;align-items:center;gap:36px;list-style:none;margin:0;padding:0}
.nav-liens a{color:rgba(255,255,255,.82);font-size:13px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;position:relative;padding:6px 0}
.nav-liens a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--degrade);border-radius:2px;transition:width .3s}
.nav-liens a:hover,.nav-liens a.actif{color:var(--blanc)}
.nav-liens a:hover::after,.nav-liens a.actif::after{width:100%}
.nav-cta{background:var(--duo);color:var(--blanc)!important;padding:11px 24px!important;border-radius:999px;
  font-weight:700!important;letter-spacing:.08em!important;box-shadow:0 10px 30px -12px rgba(232,57,123,.6);transition:transform .2s,filter .2s}
.nav-cta::after{display:none}.nav-cta:hover{transform:translateY(-2px);filter:brightness(1.08)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.burger span{display:block;width:26px;height:2px;background:var(--blanc);margin:6px 0;border-radius:2px;transition:.3s}
.burger.ouvert span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.ouvert span:nth-child(2){opacity:0}
.burger.ouvert span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media(max-width:900px){
  .burger{display:block}
  .nav-liens{position:fixed;top:64px;left:0;right:0;flex-direction:column;gap:0;background:rgba(8,5,16,.98);
    backdrop-filter:blur(16px);max-height:0;overflow:hidden;transition:max-height .38s}
  .nav-liens.ouvert{max-height:440px;border-bottom:1px solid rgba(255,255,255,.1)}
  .nav-liens li{width:100%;text-align:center}.nav-liens a{display:block;padding:16px 0}.nav-liens a::after{display:none}
  .nav-cta{margin:14px auto 22px;display:inline-block}
}

/* ---------- HERO accueil (spectre au centre) ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;
  background:radial-gradient(130% 100% at 78% 8%,#241539 0%,#0d0819 46%,#080510 78%);
  overflow:hidden;padding:120px 0 90px}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 50% at 76% 42%,rgba(232,57,123,.22),transparent 62%),
            radial-gradient(50% 46% at 88% 62%,rgba(122,59,191,.28),transparent 60%)}
.hero-grid{position:relative;z-index:3;display:grid;grid-template-columns:1.06fr .94fr;
  gap:clamp(30px,5vw,72px);align-items:center}
.hero-txt{color:var(--blanc)}
.hero-kicker{font-size:11.5px;font-weight:600;letter-spacing:.42em;text-transform:uppercase;
  color:rgba(255,255,255,.66);margin:0 0 22px;display:flex;align-items:center;gap:16px}
.hero-kicker::before{content:"";width:44px;height:1.5px;background:var(--degrade);flex:0 0 auto}
.hero h1{font-size:clamp(3rem,6.6vw,5.6rem);font-weight:500;line-height:.98;letter-spacing:-.022em;
  margin:0 0 4px;color:#fff;font-optical-sizing:auto}
.hero h1 em{font-style:italic;font-weight:600;
  background:linear-gradient(94deg,#f2a93b,#f4635e 40%,#e8397b 74%,#b34fd0);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero-slogan{font-size:clamp(1.02rem,1.7vw,1.2rem);font-weight:300;color:rgba(255,255,255,.82);max-width:520px;margin:26px 0 0}
.hero-slogan strong{font-weight:500;color:#fff}
.hero-actions{margin-top:40px;display:flex;gap:15px;flex-wrap:wrap;align-items:center}
.hero-media{position:relative}
.hero-portrait{position:relative;border-radius:200px 200px 26px 26px;overflow:hidden;aspect-ratio:3/4;
  box-shadow:0 50px 120px -40px rgba(232,57,123,.5),0 0 0 1px rgba(255,255,255,.08);background:#0c0718}
.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 16%;filter:saturate(1.05) contrast(1.03)}
.hero-portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,5,16,.6));mix-blend-mode:multiply}
.hero-onde{position:absolute;inset:auto 0 0 0;width:100%;height:clamp(120px,17vh,190px);z-index:2;display:block;
  -webkit-mask:linear-gradient(180deg,transparent,#000 60%);mask:linear-gradient(180deg,transparent,#000 60%)}
.hero-badges{position:relative;z-index:3;margin-top:34px;display:flex;gap:26px;flex-wrap:wrap;color:rgba(255,255,255,.72);font-size:12.5px;letter-spacing:.06em}
.hero-badges b{color:#fff;font-family:var(--police-titre);font-weight:600;font-size:1.7rem;margin-right:8px;font-variant-numeric:tabular-nums}
.hero-badges span{display:inline-flex;align-items:baseline}
@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:44px}
  .hero-media{max-width:360px;margin:0 auto;order:-1}
  .hero-portrait{border-radius:160px 160px 22px 22px}
}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 32px;border-radius:999px;
  font-weight:700;font-size:14.5px;letter-spacing:.05em;font-family:var(--police-texte);border:0;cursor:pointer;
  transition:transform .22s,box-shadow .22s,filter .22s,border-color .22s}
.btn-blanc{background:#f3ede4;color:#14101c}
.btn-blanc:hover{background:#fff;transform:translateY(-2px);box-shadow:0 16px 40px -18px rgba(255,255,255,.4)}
.btn-plein{background:var(--duo);color:#fff;box-shadow:0 14px 36px -14px rgba(232,57,123,.6)}
.btn-plein:hover{transform:translateY(-2px);filter:brightness(1.08);color:#fff}
.btn-contour{background:rgba(255,255,255,.04);color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.btn-contour:hover{border-color:#fff;transform:translateY(-2px)}
.btn-sombre{background:var(--noir);color:var(--blanc)}
.btn-sombre:hover{color:var(--blanc);transform:translateY(-2px)}
.btn .fl{transition:transform .22s}.btn:hover .fl{transform:translateX(4px)}

/* ---------- Sections ---------- */
.section{padding:var(--pas) 0}
.section-sombre{background:var(--noir);color:rgba(255,255,255,.86)}
.section-sombre h2,.section-sombre h3{color:#fff}

/* ---------- Chiffres (ruban, si présent) ---------- */
.ruban-chiffres{background:linear-gradient(180deg,var(--noir),var(--noir-2));padding:66px 0;position:relative;
  border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}
.ruban-chiffres::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--degrade)}
.chiffres{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.chiffre{text-align:center;padding:18px 12px;position:relative}
.chiffre+.chiffre::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:rgba(255,255,255,.1)}
.chiffre b{display:block;font-family:var(--police-titre);font-size:clamp(2.7rem,5.6vw,4rem);font-weight:500;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.chiffre span{display:block;margin-top:14px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris-clair)}
@media(max-width:760px){.chiffres{grid-template-columns:repeat(2,1fr);gap:34px 0}.chiffre:nth-child(2n+1)::before{display:none}}

/* ---------- Missions ---------- */
.grille-missions{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:60px}
.mission{background:#fff;border-radius:var(--rayon-lg);padding:38px 30px;box-shadow:var(--ombre-douce);
  position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s}
.mission::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--degrade);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.mission:hover{transform:translateY(-8px);box-shadow:var(--ombre)}
.mission:hover::before{transform:scaleX(1)}
.mission-icone{width:60px;height:60px;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(47,191,160,.12),rgba(232,57,123,.12),rgba(122,59,191,.14));margin-bottom:24px}
.mission-icone svg{width:30px;height:30px}
.mission h3{font-size:1.32rem;margin-bottom:.4em}
.mission p{color:var(--gris);font-size:.96rem;margin:0}
@media(max-width:1000px){.grille-missions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grille-missions{grid-template-columns:1fr}}

/* ---------- Catégories artistes ---------- */
.cat-groupe{margin-top:58px;text-align:left}
.cat-groupe:first-of-type{margin-top:52px}
.cat-entete{display:flex;align-items:center;gap:22px}
.cat-titre{font-family:var(--police-titre);font-style:italic;font-weight:500;
  font-size:clamp(1.4rem,2.4vw,1.95rem);color:#fff;white-space:nowrap;display:inline-flex;align-items:center;gap:14px}
.cat-titre::before{content:"";width:26px;height:2px;border-radius:2px;background:var(--degrade)}
.cat-filet{flex:1;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.22),transparent)}
.cat-groupe .grille-artistes{margin-top:26px}

/* ---------- Cartes artistes ---------- */
.grille-artistes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:60px}
.carte-artiste{position:relative;border-radius:var(--rayon-lg);overflow:hidden;display:block;background:#0f0a19;
  border:1px solid rgba(255,255,255,.08);box-shadow:var(--ombre);transition:transform .35s,border-color .35s}
.carte-artiste:hover{transform:translateY(-8px);border-color:rgba(232,57,123,.5)}
.carte-artiste img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .6s}
.carte-artiste:hover img{transform:scale(1.05)}
.carte-artiste .voile{display:none}
.carte-artiste .infos{padding:24px 26px 26px;text-align:left;color:#fff}
.carte-artiste .infos h3{font-size:1.44rem;margin:0 0 5px;color:#fff}
.carte-artiste .tags{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-clair);margin:0}
.carte-artiste .lien{margin-top:16px;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;font-family:var(--police-texte);
  background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent}
.carte-artiste .lien::after{content:"→";color:var(--magenta);transition:transform .25s}
.carte-artiste:hover .lien::after{transform:translateX(4px)}
.carte-cta{display:flex;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(150deg,rgba(47,191,160,.1),rgba(232,57,123,.16),rgba(122,59,191,.2))}
.carte-cta .cta-carte-corps{padding:36px 30px}
.carte-cta .egaliseur{height:38px;margin-bottom:22px}
.carte-cta h3{font-size:1.55rem;color:#fff;margin-bottom:12px}
.carte-cta p{color:var(--gris-doux);font-size:.95rem;margin:0 0 20px}
.carte-cta .lien{color:#fff!important;-webkit-text-fill-color:#fff}
.egaliseur{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:48px}
.egaliseur i{display:block;width:5px;border-radius:3px;height:20%;
  animation:pulser 1.15s ease-in-out infinite alternate}
@keyframes pulser{from{height:14%}to{height:100%}}
@media(prefers-reduced-motion:reduce){.egaliseur i{animation:none;height:60%}}
@media(max-width:1000px){.grille-artistes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grille-artistes{grid-template-columns:1fr}}

/* ---------- Arguments ---------- */
.grille-arguments{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:64px}
.argument{padding:40px 34px;border-radius:var(--rayon-lg);background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);transition:border-color .3s,background .3s}
.argument:hover{border-color:rgba(232,57,123,.4);background:rgba(255,255,255,.06)}
.argument .num{font-family:var(--police-titre);font-style:italic;font-size:2.4rem;line-height:1;
  background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;margin-bottom:18px}
.argument h3{font-size:1.3rem}.argument p{color:var(--gris-clair);font-size:.96rem;margin:0}
@media(max-width:860px){.grille-arguments{grid-template-columns:1fr}}

/* ---------- Bandeau villes ---------- */
.bandeau-monde{padding:clamp(74px,9vw,106px) 0 clamp(60px,8vw,86px);background:var(--noir-2);overflow:hidden}
.bandeau-monde .entete-bandeau{text-align:center;margin-bottom:50px;color:var(--gris-clair)}
.bandeau-monde .entete-bandeau h2{color:#fff;font-size:clamp(1.9rem,3.8vw,2.6rem);margin-bottom:12px}
.bandeau-monde .entete-bandeau p{max-width:620px;margin:0 auto;font-size:.98rem}
.villes{display:flex;gap:56px;align-items:center;white-space:nowrap;font-family:var(--police-titre);
  font-size:clamp(1.8rem,3.8vw,2.9rem);font-style:italic;font-weight:500;color:rgba(255,255,255,.48);
  animation:defiler 30s linear infinite;width:max-content}
.villes span{display:inline-flex;align-items:center;gap:56px}
.villes i{font-style:normal;font-size:.45em;background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes defiler{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.villes{animation:none}}

/* ---------- Galerie ---------- */
.galerie{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:56px}
.galerie figure{margin:0;border-radius:var(--rayon);overflow:hidden;position:relative}
.galerie img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4;transition:transform .6s}
.galerie figure:hover img{transform:scale(1.05)}
.galerie figcaption{position:absolute;inset:auto 0 0 0;padding:28px 16px 15px;
  background:linear-gradient(180deg,transparent,rgba(5,3,8,.85));color:rgba(255,255,255,.92);font-size:12.5px;letter-spacing:.05em}
@media(max-width:900px){.galerie{grid-template-columns:repeat(2,1fr)}}

/* ---------- CTA booking ---------- */
.cta-booking{position:relative;text-align:center;padding:clamp(98px,13vw,152px) 0;
  background:var(--noir) url("../img/hero-concert.jpg") center 42%/cover no-repeat}
.cta-booking::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(8,5,16,.95) 8%,rgba(122,59,191,.5) 132%)}
.cta-booking::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--degrade)}
.cta-booking .conteneur{position:relative;z-index:2}
.cta-booking h2{color:#fff;font-size:clamp(2.2rem,4.8vw,3.4rem)}
.cta-booking p{color:rgba(255,255,255,.84);max-width:560px;margin:0 auto 38px}

/* ---------- Page intérieure : en-tête ---------- */
.hero-page{background:radial-gradient(120% 100% at 80% 0%,#20153a,#0c0819 60%,#080510);
  color:var(--blanc);text-align:center;padding:180px 0 92px;position:relative;overflow:hidden}
.hero-page::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--degrade)}
.hero-page h1{font-size:clamp(2.6rem,5.6vw,4.2rem);color:#fff;font-weight:500}
.hero-page .sous-titre{margin-inline:auto;color:var(--gris-clair)}
.hero-page .kicker.grad{margin-bottom:16px}

/* ---------- Fiche artiste ---------- */
.fiche{display:grid;grid-template-columns:380px 1fr;gap:60px;align-items:start}
.fiche-visuel{border-radius:var(--rayon-lg);overflow:hidden;box-shadow:var(--ombre);position:sticky;top:100px}
.fiche-corps h2{font-size:1.95rem}
.fiche-tags{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px;padding:0;list-style:none}
.fiche-tags li{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:7px 16px;border-radius:999px;color:#fff;background:var(--duo);font-family:var(--police-texte)}
.fiche-corps p{color:#453e52}
.fiche-actions{margin-top:34px;display:flex;gap:16px;flex-wrap:wrap}
@media(max-width:900px){.fiche{grid-template-columns:1fr}.fiche-visuel{position:static;max-width:420px}}

/* ---------- Musiciens ---------- */
.grille-musiciens{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:46px}
.musicien{text-align:center}
.musicien .portrait{border-radius:var(--rayon-lg);overflow:hidden;aspect-ratio:1/1;box-shadow:var(--ombre)}
.musicien .portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(35%);transition:filter .3s,transform .4s}
.musicien:hover .portrait img{filter:grayscale(0);transform:scale(1.04)}
.musicien h4{margin:16px 0 2px;font-size:1.12rem}
.musicien span{font-size:13px;color:var(--gris);letter-spacing:.06em;text-transform:uppercase}
@media(max-width:860px){.grille-musiciens{grid-template-columns:repeat(2,1fr)}}

/* ---------- Écoute / lecteurs audio ---------- */
.bloc-ecoute{display:grid;grid-template-columns:340px 1fr;gap:54px;align-items:center;margin-top:56px}
.pochette{border-radius:var(--rayon-lg);overflow:hidden;box-shadow:var(--ombre)}
.lecteurs{display:grid;gap:18px}
.lecteur{display:flex;align-items:center;gap:18px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:16px 20px}
.lecteur button{flex:0 0 auto;width:52px;height:52px;border-radius:50%;border:0;cursor:pointer;
  background:var(--duo);color:#fff;display:grid;place-items:center;transition:transform .2s}
.lecteur button:hover{transform:scale(1.07)}
.lecteur button svg{width:20px;height:20px}
.lecteur-infos{flex:1;min-width:0}
.lecteur-titre{font-weight:600;color:#fff;font-size:1rem}
.lecteur-piste{display:flex;align-items:center;gap:12px;margin-top:8px}
.lecteur-barre{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.14);cursor:pointer;position:relative;overflow:hidden}
.lecteur-barre b{position:absolute;inset:0 auto 0 0;width:0;background:var(--degrade);border-radius:3px}
.lecteur-temps{font-size:12.5px;color:var(--gris-clair);font-variant-numeric:tabular-nums;flex:0 0 auto}
@media(max-width:860px){.bloc-ecoute{grid-template-columns:1fr}.pochette{max-width:320px;margin-inline:auto}}

/* ---------- Formulaire de contact ---------- */
.grille-contact{display:grid;grid-template-columns:1fr 1.35fr;gap:60px;align-items:start}
.coordonnees{display:grid;gap:26px}
.coordonnee{display:flex;gap:18px;align-items:flex-start}
.coordonnee .picto{flex:0 0 auto;width:50px;height:50px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(47,191,160,.12),rgba(232,57,123,.12),rgba(122,59,191,.12))}
.coordonnee .picto svg{width:24px;height:24px}
.coordonnee b{display:block;font-size:15px;margin-bottom:3px}
.coordonnee p,.coordonnee a{margin:0;color:var(--gris);font-size:.98rem}
.coordonnee a:hover{color:var(--magenta)}
.formulaire{background:#fff;border-radius:var(--rayon-lg);padding:44px;box-shadow:var(--ombre-douce)}
.champ{margin-bottom:22px}
.champ label{display:block;font-weight:600;font-size:14px;margin-bottom:8px}
.champ input,.champ textarea,.champ select{width:100%;padding:14px 16px;border-radius:12px;
  border:1.5px solid #e4e0ea;background:var(--creme);font-family:var(--police-texte);font-size:15.5px;color:var(--encre);transition:border-color .2s,box-shadow .2s}
.champ input:focus,.champ textarea:focus,.champ select:focus{outline:none;border-color:var(--magenta);box-shadow:0 0 0 3px rgba(232,57,123,.12)}
.champ textarea{resize:vertical;min-height:140px}
.deux-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.hpot{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form-msg{display:none;padding:16px 20px;border-radius:12px;margin-bottom:22px;font-weight:600}
.form-msg.ok{display:block;background:#e5f7f0;color:#0d7a5c}
.form-msg.erreur{display:block;background:#fdeaea;color:#b3362f}
@media(max-width:900px){.grille-contact{grid-template-columns:1fr}.formulaire{padding:30px 22px}.deux-cols{grid-template-columns:1fr}}

/* ---------- Prose (pages légales) ---------- */
.prose{max-width:780px;margin-inline:auto}
.prose h2{font-size:1.6rem;margin-top:2em}
.prose p,.prose li{color:#453e52}

/* ---------- Citation ---------- */
.citation{max-width:780px;margin:70px auto 0;text-align:center;font-family:var(--police-titre);font-style:italic;
  font-size:clamp(1.35rem,2.6vw,1.75rem);line-height:1.5;color:#fff}
.citation::before{content:"« "}.citation::after{content:" »"}

/* ---------- Footer ---------- */
.pied{background:var(--noir);color:var(--gris-clair);padding:84px 0 0;position:relative}
.pied::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:rgba(255,255,255,.07)}
.pied-grille{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:44px;padding-bottom:60px}
.pied h4{color:#fff;font-family:var(--police-texte);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;margin-bottom:20px}
.pied p,.pied a{color:var(--gris-clair);font-size:.94rem}.pied a:hover{color:#fff}
.pied ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.pied .marque{margin-bottom:18px}
.pied-legal{border-top:1px solid rgba(255,255,255,.07);padding:26px 0;font-size:13px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.pied-legal a{color:var(--gris-clair)}.pied-legal a:hover{color:#fff}
@media(max-width:900px){.pied-grille{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.pied-grille{grid-template-columns:1fr}}

/* ---------- Reveal ---------- */
.reveler{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s cubic-bezier(.16,1,.3,1)}
.reveler.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveler{opacity:1;transform:none;transition:none}}
