/* VESSOT PLOMBERIE — feuille de style
   Bleu profond, cuivre et argent, repris du logo de l'entreprise. */

:root{
  --nuit:#0B2239;
  --nuit-2:#102E4B;
  --profond:#123A5E;
  --bleu:#3E96D4;
  --bleu-clair:#8FC9ED;
  --cuivre:#D97B36;
  --cuivre-clair:#F0A873;
  --argent:#C9D3DB;
  --brume:#F3F6F9;
  --encre:#14202C;
  --encre-douce:#48606F;
  --blanc:#fff;
  --rayon:22px;
  --rayon-s:14px;
  --conteneur:1180px;
  --gouttiere:clamp(1.25rem,5vw,4rem);
  --espace-section:clamp(4.5rem,8vw,7.5rem);
  --ombre:0 18px 50px rgba(11,34,57,.10);
  --ombre-forte:0 26px 70px rgba(11,34,57,.18);
  --titre:"Familjen Grotesk","Helvetica Neue",Arial,sans-serif;
  --texte:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;font-family:var(--texte);font-size:clamp(.97rem,.93rem + .18vw,1.04rem);
  line-height:1.65;color:var(--encre);background:var(--blanc);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--titre);font-weight:600;line-height:1.1;margin:0;letter-spacing:-.015em}
h1{font-size:clamp(2.1rem,1.45rem + 2.7vw,3.4rem)}
h2{font-size:clamp(1.6rem,1.2rem + 1.5vw,2.3rem)}
h3{font-size:clamp(1.12rem,1.02rem + .35vw,1.32rem)}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
strong{font-weight:600}
.conteneur{width:min(100% - var(--gouttiere)*2,var(--conteneur));margin-inline:auto}
.conteneur--large{width:min(100% - var(--gouttiere)*2,1320px)}
.section{padding-block:var(--espace-section)}
.section--brume{background:var(--brume)}
.section--nuit{background:var(--nuit);color:#E8EFF5}
.section--nuit h2,.section--nuit h3{color:#fff}
.sur-titre{display:flex;align-items:center;gap:.7rem;font-family:var(--titre);font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--bleu);margin-bottom:1rem;font-weight:600}
.sur-titre::before{content:"";width:28px;height:2px;background:currentColor;flex:none;border-radius:2px}
.section--nuit .sur-titre{color:var(--cuivre-clair)}
.accent{color:var(--bleu)}
.section--nuit .accent{color:var(--cuivre-clair)}
.mesure{max-width:62ch}
.chapo{font-size:1.08em;color:var(--encre-douce)}
.section--nuit .chapo{color:#C3D4E2}

/* ---------- Boutons ---------- */
.btn{
  --fond:var(--bleu);--texte-btn:#fff;
  display:inline-flex;align-items:center;gap:.7rem;padding:.95rem 1.6rem;border-radius:999px;
  background:var(--fond);color:var(--texte-btn);text-decoration:none;font-weight:600;
  font-family:var(--titre);font-size:1rem;border:0;cursor:pointer;
  transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .35s,background .35s;
  box-shadow:0 10px 26px rgba(62,150,212,.28);
}
.btn:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(62,150,212,.34)}
.btn--cuivre{--fond:var(--cuivre);box-shadow:0 10px 26px rgba(217,123,54,.30)}
.btn--cuivre:hover{box-shadow:0 16px 34px rgba(217,123,54,.36)}
.btn--clair{--fond:#fff;--texte-btn:var(--nuit);box-shadow:0 10px 26px rgba(8,22,38,.22)}
.btn--ligne{--fond:transparent;--texte-btn:var(--nuit);box-shadow:none;border:1px solid rgba(20,32,44,.18)}
.btn--ligne:hover{box-shadow:none;background:rgba(20,32,44,.04)}
.section--nuit .btn--ligne{--texte-btn:#fff;border-color:rgba(255,255,255,.28)}
.btn__fleche{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.18);
  display:grid;place-items:center;flex:none;transition:transform .35s}
.btn--clair .btn__fleche,.btn--ligne .btn__fleche{background:rgba(20,32,44,.08)}
.btn:hover .btn__fleche{transform:translateX(3px)}
.btn__fleche svg{width:15px;height:15px}
/* texte qui roule */
.btn__roule{position:relative;overflow:hidden;display:inline-grid}
.btn__roule span{grid-area:1/1;transition:transform .45s cubic-bezier(.22,.61,.36,1),opacity .35s}
.btn__roule span:last-child{transform:translateY(105%);opacity:0}
.btn:hover .btn__roule span:first-child{transform:translateY(-105%);opacity:0}
.btn:hover .btn__roule span:last-child{transform:translateY(0);opacity:1}

/* ---------- Loader ---------- */
.loader{position:fixed;inset:0;z-index:999;background:var(--nuit);display:grid;place-items:center}
.loader__marque{display:flex;align-items:center;gap:.9rem;color:#fff;font-family:var(--titre);
  font-size:1.1rem;letter-spacing:.18em}
.loader__barre{width:min(240px,42vw);height:2px;background:rgba(255,255,255,.18);
  margin-top:1.2rem;overflow:hidden;border-radius:2px}
.loader__barre i{display:block;height:100%;width:0;background:var(--cuivre)}
.loader__bloc{display:flex;flex-direction:column;align-items:center}
.loader img{width:62px;height:auto}
body.charge .loader{opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s}

/* ---------- En-tête ---------- */
.entete{position:fixed;inset:0 0 auto 0;z-index:90;padding-block:1rem;transition:background .4s,box-shadow .4s,padding .4s}
.entete__barre{display:flex;align-items:center;gap:1.5rem;position:relative}
.entete__marque{display:flex;align-items:center;gap:.75rem;text-decoration:none;flex:none;
  background:rgba(255,255,255,.96);border-radius:999px;padding:.5rem 1.15rem .5rem .6rem;
  box-shadow:0 10px 30px rgba(8,22,38,.18)}
.entete__marque img{width:46px;height:46px;object-fit:contain}
.entete__nom{font-family:var(--titre);font-weight:600;font-size:1.02rem;line-height:1.05;color:var(--nuit);white-space:nowrap}
.entete__nom small{display:block;font-size:.68rem;letter-spacing:.14em;color:var(--bleu);font-weight:600}
.nav{margin-left:auto;display:flex;align-items:center;gap:.35rem}
/* Entrées de premier niveau uniquement : tout ce qui est dans le panneau
   déroulant a ses propres règles et ne doit jamais hériter de celles-ci. */
.nav > a:not(.btn),
.nav > .menu-deroulant > .menu-deroulant__bouton{display:inline-flex;align-items:center;padding:.6rem .85rem;
  border-radius:999px;text-decoration:none;color:#fff;font-weight:500;font-size:.98rem;white-space:nowrap;
  transition:background .3s,color .3s}
.entete.est-claire .nav > a:not(.btn),
.entete.est-claire .nav > .menu-deroulant > .menu-deroulant__bouton{color:var(--nuit)}
.nav > a:not(.btn):hover,
.nav > .menu-deroulant > .menu-deroulant__bouton:hover{background:rgba(255,255,255,.16)}
.entete.est-claire .nav > a:not(.btn):hover,
.entete.est-claire .nav > .menu-deroulant > .menu-deroulant__bouton:hover{background:rgba(20,32,44,.06)}
.entete.est-collee{background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
  box-shadow:0 10px 30px rgba(8,22,38,.10);padding-block:.6rem}
.entete.est-collee .nav > a:not(.btn),
.entete.est-collee .nav > .menu-deroulant > .menu-deroulant__bouton{color:var(--nuit)}
.nav .btn{margin-left:.6rem;padding:.8rem 1.3rem;font-size:.96rem;white-space:nowrap}
/* sous-menu, sans trou de survol */
/* Le panneau se cale sur le conteneur de l'en-tête, pas sur le bouton :
   il reste ainsi dans l'écran quelle que soit la largeur. */
.menu-deroulant{position:static}
.menu-deroulant__panneau{position:absolute;top:100%;left:0;width:min(880px,100%);
  border-top:14px solid transparent;background-clip:padding-box;
  opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);
  transition:opacity .3s,transform .3s,visibility .3s}
.menu-deroulant.est-ouvert .menu-deroulant__panneau{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.megamenu{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,210px);gap:1.4rem;background:#fff;
  border-radius:20px;box-shadow:var(--ombre-forte);padding:1.4rem;align-items:stretch}
.megamenu__colonnes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1.1rem}
.megamenu__titre{font-family:var(--titre);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--bleu);margin:.2rem 0 .45rem .5rem;font-weight:600;white-space:nowrap}
.megamenu__titre + ul + .megamenu__titre{margin-top:1rem}
.megamenu__colonne + .megamenu__colonne{border-left:1px solid rgba(20,32,44,.07);padding-left:1rem}
.megamenu ul{list-style:none;margin:0 0 .4rem;padding:0}
/* Entrée illustrée : vignette à gauche, intitulé et précision à droite. */
.megamenu__colonne a{display:flex;align-items:center;gap:.7rem;padding:.4rem .5rem;border-radius:12px;
  text-decoration:none;color:var(--nuit);font-size:.92rem;line-height:1.25;font-weight:500}
.megamenu__vignette{flex:none;width:58px;height:44px;border-radius:9px;overflow:hidden;background:var(--brume)}
.megamenu__vignette img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.megamenu__colonne a:hover .megamenu__vignette img{transform:scale(1.07)}
.megamenu__texte{min-width:0}
.megamenu__texte strong{display:block;font-weight:600}
.megamenu__texte > span{display:block;font-size:.78rem;color:var(--encre-douce);font-weight:400;margin-top:.05rem}
.megamenu__colonne a:hover{background:var(--brume)}
.megamenu__encart{display:flex;flex-direction:column;justify-content:center;gap:.5rem;min-width:0;
  border-radius:16px;padding:1.3rem 1.2rem;text-decoration:none;align-self:stretch;
  background:linear-gradient(150deg,var(--nuit),var(--profond));color:#fff;
  transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.megamenu__encart:hover{transform:translateY(-3px)}
.megamenu__encart-icone{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.12);
  color:var(--cuivre-clair);display:grid;place-items:center;margin-bottom:.2rem}
.megamenu__encart-icone svg{width:20px;height:20px}
.megamenu__encart strong{font-family:var(--titre);font-size:1.02rem;color:#fff;font-weight:600}
.megamenu__encart-texte{font-size:.82rem;line-height:1.45;color:#BCD1E2}
.megamenu__encart-lien{display:inline-flex;align-items:center;gap:.35rem;margin-top:.3rem;
  font-family:var(--titre);font-weight:600;font-size:.86rem;color:var(--cuivre-clair)}
.megamenu__encart-lien svg{width:15px;height:15px;transition:transform .3s}
.megamenu__encart:hover .megamenu__encart-lien svg{transform:translateX(3px)}
.megamenu__encart:hover img{opacity:.9}
.menu-deroulant__bouton{cursor:pointer}
/* Liens du panneau : règle propre, sans !important, le sélecteur de nav
   les exclut explicitement (sinon texte blanc sur fond blanc). */
.menu-deroulant__lien{display:block;color:var(--nuit);font-weight:500;line-height:1.3}
.menu-deroulant.est-ouvert>.menu-deroulant__bouton{background:rgba(255,255,255,.16)}
.entete.est-collee .menu-deroulant.est-ouvert>.menu-deroulant__bouton{background:rgba(20,32,44,.06)}
.burger{display:none;margin-left:auto;width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(8,22,38,.18);
  flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger i{display:block;width:19px;height:2px;background:var(--nuit);border-radius:2px;transition:transform .3s,opacity .3s}
body.menu-ouvert .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-ouvert .burger i:nth-child(2){opacity:0}
body.menu-ouvert .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;padding:clamp(8rem,13vw,10.5rem) 0 clamp(3rem,6vw,4.5rem);
  background:radial-gradient(120% 120% at 15% 0%,var(--nuit-2) 0%,var(--nuit) 55%,#081B2E 100%);
  color:#fff;overflow:hidden}
.hero::after{content:"";position:absolute;inset:auto -10% -40% 40%;height:70%;
  background:radial-gradient(closest-side,rgba(62,150,212,.22),transparent 70%);pointer-events:none}
.hero__grille{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,4vw,3rem);align-items:center;position:relative;z-index:2}
@media(min-width:1000px){
  .hero--trois .hero__grille{grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) minmax(0,.9fr)}
}
.hero__texte{max-width:36rem}
.hero h1{margin-bottom:1.2rem}
.hero__chapo{font-size:1.06rem;color:#C7D8E6;max-width:34rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.8rem}
.hero__visuel{border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre-forte)}
.hero__visuel img{width:100%;height:100%;object-fit:cover;min-height:260px}
@media(min-width:1000px){.hero__visuel img{min-height:420px}}
.rassurances{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem 1.6rem;
  margin-top:clamp(2.5rem,5vw,3.5rem);position:relative;z-index:2}
@media(min-width:760px){.rassurances{grid-template-columns:repeat(4,minmax(0,1fr))}}
.rassurance{display:flex;gap:.75rem;align-items:flex-start;font-size:.97rem;line-height:1.35;color:#D6E4EF}
.rassurance svg{width:22px;height:22px;flex:none;color:var(--cuivre-clair);margin-top:2px}
.rassurance b{display:block;color:#fff;font-weight:600}

/* ---------- Bandeau de page intérieure ---------- */
.banniere{position:relative;padding:clamp(8rem,12vw,10rem) 0 clamp(3rem,5vw,4rem);
  background:var(--nuit);color:#fff;overflow:hidden}
.banniere__fond{position:absolute;inset:0;opacity:.30}
.banniere__fond img{width:100%;height:100%;object-fit:cover}
.banniere::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(11,34,57,.94) 20%,rgba(11,34,57,.55) 100%)}
.banniere .conteneur{position:relative;z-index:2}
.banniere__icone{width:54px;height:54px;border-radius:15px;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);display:grid;place-items:center;color:var(--cuivre-clair);
  margin-bottom:1.2rem}
.banniere__icone svg{width:26px;height:26px}
.banniere h1{max-width:20ch}
.banniere p{max-width:60ch;color:#CBDCE9;margin-top:1.1rem}
.fil{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.86rem;color:#9FBAD0;margin-bottom:1.2rem}
.fil a{text-decoration:none}
.fil a:hover{text-decoration:underline}

/* ---------- Blocs image + texte ---------- */
.duo{display:grid;gap:clamp(1.8rem,4vw,3.4rem);align-items:stretch}
@media(min-width:900px){
  .duo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .duo--inverse .duo__visuel{order:2}
}
.duo__visuel{border-radius:var(--rayon);overflow:hidden;box-shadow:var(--ombre);position:relative}
/* L'image occupe toute la hauteur de la colonne de texte : les deux blocs
   se terminent à la même ligne, jamais un texte qui dépasse sous la photo. */
.duo__visuel img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
@media(min-width:900px){
  .duo{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr)}
  .duo--inverse{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)}
  /* L'image est détachée du flux : c'est le texte qui donne la hauteur du bloc,
     et la photo la remplit exactement. Sans ça, l'image impose sa hauteur
     naturelle et le bloc occupe tout l'écran. */
  .duo__visuel{min-height:390px}
  .duo__visuel img{position:absolute;inset:0;aspect-ratio:auto;height:100%;width:100%}
  .duo__texte{align-self:center;padding-block:.4rem}
}
.duo + .duo{margin-top:clamp(3rem,6vw,5rem)}
/* Bloc image + texte : on reste compact, un bloc ne doit pas occuper tout l'écran. */
.duo__texte{font-size:.97rem;line-height:1.58}
.duo__texte h2{margin-bottom:.9rem;font-size:clamp(1.5rem,1.15rem + 1.15vw,2.05rem)}
.duo__texte p{margin-bottom:.85em}
.duo__texte .liste{margin-top:1.1rem}
.duo__texte .liste li{margin-bottom:.45rem;padding-left:1.7rem}
.duo__texte .liste li::before{width:8px;height:8px;top:.6em;box-shadow:0 0 0 3px rgba(217,123,54,.16)}
.liste{list-style:none;margin:1.4rem 0 0;padding:0}
.liste li{display:block;position:relative;padding-left:2rem;margin-bottom:.7rem}
.liste li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:10px;border-radius:50%;
  background:var(--cuivre);box-shadow:0 0 0 4px rgba(217,123,54,.16)}
.section--nuit .liste li::before{background:var(--bleu-clair);box-shadow:0 0 0 4px rgba(143,201,237,.18)}

/* ---------- Grille de prestations ---------- */
.prestations{display:grid;gap:clamp(1.4rem,2.4vw,2rem);grid-template-columns:minmax(0,1fr)}
@media(min-width:680px){.prestations{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.prestations{grid-template-columns:repeat(4,minmax(0,1fr))}}
.prestation{display:flex;flex-direction:column;background:#fff;border-radius:var(--rayon-s);overflow:hidden;
  text-decoration:none;color:inherit;box-shadow:var(--ombre);
  transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s}
.prestation:hover{transform:translateY(-6px);box-shadow:var(--ombre-forte)}
.prestation__image{position:relative;overflow:hidden}
.prestation__image img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.prestation:hover .prestation__image img{transform:scale(1.05)}
.prestation__corps{padding:1.3rem 1.35rem 1.5rem;display:flex;flex-direction:column;flex:1}
.prestation__icone{position:absolute;left:1rem;bottom:1rem;width:44px;height:44px;border-radius:12px;
  background:var(--nuit);color:var(--bleu-clair);display:grid;place-items:center;
  box-shadow:0 8px 20px rgba(8,22,38,.35)}
.prestation__icone svg{width:22px;height:22px}
.prestation h3{font-size:1.1rem;margin-bottom:.4rem}
.prestation p{font-size:.95rem;color:var(--encre-douce);line-height:1.55}
.prestation__lien{display:inline-flex;align-items:center;gap:.45rem;margin-top:auto;padding-top:1rem;white-space:nowrap;
  font-weight:600;font-family:var(--titre);font-size:.94rem;color:var(--bleu)}
.prestation__lien svg{width:17px;height:17px;flex:none;transition:transform .35s}
.prestation:hover .prestation__lien svg{transform:translateX(4px)}

.prestation--appel{background:linear-gradient(150deg,var(--nuit),var(--profond));color:#fff;justify-content:center}
.prestation--appel .prestation__corps{padding:1.8rem 1.5rem}
.prestation--appel h3{color:#fff}
.prestation--appel p{color:#BCD1E2}
.prestation--appel .prestation__lien{color:var(--cuivre-clair)}
.prestation--appel .prestation__icone{position:static;margin-bottom:1rem;background:rgba(255,255,255,.12);color:var(--cuivre-clair)}

/* ---------- Bandeau en quatre colonnes ---------- */
.piliers{display:grid;gap:1.8rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:680px){.piliers{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.piliers{grid-template-columns:repeat(4,minmax(0,1fr))}}
.pilier{display:flex;gap:.9rem;align-items:flex-start;position:relative}
@media(min-width:1000px){
  .pilier + .pilier{padding-left:1.6rem}
  .pilier + .pilier::before{content:"";position:absolute;left:0;top:.2rem;bottom:.2rem;width:1px;
    background:linear-gradient(180deg,transparent,rgba(255,255,255,.16),transparent)}
}
.pilier svg{width:28px;height:28px;color:var(--cuivre-clair);flex:none;margin-top:3px}
.pilier h3{font-size:1.04rem;margin-bottom:.3rem}
.pilier p{font-size:.94rem;color:#B9CCDB;line-height:1.55}

/* ---------- Réalisations ---------- */
.realisations{display:grid;gap:clamp(1.5rem,3vw,2.75rem);grid-template-columns:minmax(0,1fr)}
@media(min-width:680px){.realisations{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.realisations{grid-template-columns:repeat(3,minmax(0,1fr))}}
.realisation{display:block;text-decoration:none;color:inherit;transition:transform .4s cubic-bezier(.22,.61,.36,1)}
.realisation:hover{transform:translateY(-4px)}
.realisation__image{border-radius:var(--rayon-s);overflow:hidden;margin-bottom:1rem;position:relative}
.realisation__image::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;
  background:linear-gradient(90deg,var(--cuivre),var(--bleu));transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.22,.61,.36,1)}
.realisation:hover .realisation__image::after{transform:scaleX(1)}
.realisation__image img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s cubic-bezier(.22,.61,.36,1)}
.realisation:hover .realisation__image img{transform:scale(1.04)}
.realisation h3{font-size:1.1rem;margin-bottom:.3rem}
.realisation__lieu{font-size:.88rem;color:var(--bleu);font-weight:600;font-family:var(--titre);
  letter-spacing:.04em;margin-bottom:.45rem;display:block}
.realisation p{font-size:.95rem;color:var(--encre-douce);line-height:1.55}

/* ---------- Conseils / blog ---------- */
.conseils{display:grid;gap:clamp(1.5rem,3vw,2.5rem);grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.conseils{grid-template-columns:repeat(3,minmax(0,1fr))}}
.conseil{display:block;text-decoration:none;color:inherit;background:#fff;border-radius:var(--rayon-s);
  overflow:hidden;box-shadow:var(--ombre);transition:transform .4s,box-shadow .4s}
.conseil:hover{transform:translateY(-5px);box-shadow:var(--ombre-forte)}
.conseil img{width:100%;aspect-ratio:16/9;object-fit:cover}
.conseil__corps{padding:1.4rem 1.4rem 1.6rem}
.conseil h3{font-size:1.1rem;margin-bottom:.5rem}
.conseil p{font-size:.94rem;color:var(--encre-douce)}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:1rem;max-width:56rem}
.faq details{background:#fff;border-radius:var(--rayon-s);box-shadow:var(--ombre);overflow:hidden;
  border-left:3px solid transparent;transition:border-color .3s}
.faq details[open]{border-left-color:var(--cuivre)}
.section--brume .faq details{background:#fff}
.faq summary{cursor:pointer;list-style:none;padding:1.15rem 3.2rem 1.15rem 1.4rem;position:relative;
  font-family:var(--titre);font-weight:600;font-size:1.05rem;color:var(--nuit)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:1.4rem;top:50%;width:11px;height:11px;
  border-right:2px solid var(--bleu);border-bottom:2px solid var(--bleu);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq__reponse{padding:0 1.4rem 1.4rem;color:var(--encre-douce)}

/* ---------- Tableaux ---------- */
.tableau-enveloppe{overflow-x:auto;border-radius:var(--rayon-s);box-shadow:var(--ombre);background:#fff}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:.96rem}
th,td{text-align:left;padding:.95rem 1.1rem;border-bottom:1px solid rgba(20,32,44,.08)}
th{font-family:var(--titre);font-weight:600;color:var(--nuit);background:var(--brume)}
tr:last-child td{border-bottom:0}

.sr-seulement{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Appel à l'action ---------- */
.appel{position:relative;overflow:hidden;border-radius:var(--rayon);isolation:isolate;
  padding:clamp(2.5rem,5vw,4rem);color:#fff}
.appel__fond{position:absolute;inset:0;z-index:-2}
.appel__fond img{width:100%;height:100%;object-fit:cover}
.appel::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(11,34,57,.93) 25%,rgba(11,34,57,.68))}
.appel h2{max-width:20ch;margin-bottom:.9rem}
.appel p{max-width:48ch;color:#CBDCE9}
.appel__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.7rem}

/* ---------- Formulaire ---------- */
.formulaire{display:grid;gap:1.1rem;background:#fff;border-radius:var(--rayon);
  padding:clamp(1.6rem,3vw,2.4rem);box-shadow:var(--ombre)}
.champ{display:grid;gap:.4rem}
.champ label{font-family:var(--titre);font-weight:600;font-size:.94rem;color:var(--nuit)}
.champ input,.champ textarea,.champ select{
  width:100%;padding:.85rem 1rem;border:1px solid rgba(20,32,44,.16);border-radius:12px;
  font:inherit;font-size:1rem;background:var(--brume);color:var(--encre)}
.champ input:focus,.champ textarea:focus,.champ select:focus{
  outline:2px solid var(--bleu);outline-offset:1px;background:#fff}
.champ textarea{min-height:140px;resize:vertical}
.champ--duo{display:grid;gap:1.1rem}
@media(min-width:620px){.champ--duo{grid-template-columns:repeat(2,minmax(0,1fr))}}
.consentement{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;color:var(--encre-douce)}
.consentement input{width:18px;height:18px;flex:none;margin-top:.25rem}
.pot-de-miel{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formulaire__retour{display:none;padding:.9rem 1.1rem;border-radius:12px;font-size:.95rem}
.formulaire__retour.est-visible{display:block}
.formulaire__retour.est-ok{background:#E7F5EC;color:#1C6B3C}
.formulaire__retour.est-erreur{background:#FDECEA;color:#9B2C1F}

/* ---------- Coordonnées ---------- */
.coordonnees{display:grid;gap:1.4rem}
.coordonnee{display:flex;gap:.9rem;align-items:flex-start}
.coordonnee svg{width:24px;height:24px;color:var(--bleu);flex:none;margin-top:3px}
.coordonnee b{display:block;font-family:var(--titre);color:var(--nuit)}
.coordonnee a{text-decoration:none;color:var(--encre-douce)}
.coordonnee a:hover{color:var(--bleu)}

/* ---------- Pied de page ---------- */
.pied{background:var(--nuit);color:#A9C1D4;padding-block:clamp(3rem,6vw,4.5rem) 2rem;font-size:.96rem}
.pied__grille{display:grid;gap:2.4rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:760px){.pied__grille{grid-template-columns:1.4fr 1fr 1fr}}
.pied h3{font-size:1rem;color:#fff;margin-bottom:.9rem;letter-spacing:.02em}
.pied ul{list-style:none;margin:0;padding:0}
.pied li{margin-bottom:.5rem}
.pied a{text-decoration:none;color:#A9C1D4}
.pied a:hover{color:#fff}
.pied__marque{display:flex;align-items:center;gap:.8rem;margin-bottom:1.1rem}
.pied__marque img{width:70px;height:70px;object-fit:contain}
.pied__marque span{font-family:var(--titre);font-size:1.1rem;color:#fff;font-weight:600;line-height:1.1}
.pied__marque small{display:block;font-size:.7rem;letter-spacing:.14em;color:var(--bleu-clair)}
.pied__bas{margin-top:2.6rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);
  display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:space-between;font-size:.88rem}

/* ---------- Fenêtre d'information sur les aides ---------- */
.fenetre-aide{position:fixed;left:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:80;
  width:min(26rem,calc(100vw - 2rem));background:#fff;border-radius:18px;box-shadow:var(--ombre-forte);
  padding:1.3rem 1.4rem 1.4rem;display:flex;gap:.95rem;align-items:flex-start;
  opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1)}
.fenetre-aide.est-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.fenetre-aide__icone{width:44px;height:44px;border-radius:12px;background:var(--nuit);color:var(--cuivre-clair);
  display:grid;place-items:center;flex:none}
.fenetre-aide__icone svg{width:22px;height:22px}
.fenetre-aide h2{font-size:1.02rem;margin-bottom:.35rem;padding-right:1.4rem}
.fenetre-aide p{font-size:.92rem;color:var(--encre-douce);line-height:1.5;margin-bottom:.8rem}
.fenetre-aide a{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--titre);font-weight:600;
  font-size:.93rem;color:var(--bleu);text-decoration:none}
.fenetre-aide a svg{width:16px;height:16px;transition:transform .3s}
.fenetre-aide a:hover svg{transform:translateX(3px)}
.fenetre-aide__fermer{position:absolute;top:.6rem;right:.6rem;width:30px;height:30px;border:0;border-radius:50%;
  background:transparent;color:var(--encre-douce);cursor:pointer;font-size:1.2rem;line-height:1}
.fenetre-aide__fermer:hover{background:var(--brume)}
@media(max-width:620px){.fenetre-aide{left:.8rem;right:.8rem;bottom:.8rem;width:auto}}

/* ---------- Éléments graphiques ---------- */
/* Trait de fin de section, aux couleurs de la charte. */
.section--filet{position:relative}
.section--filet::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:min(100% - var(--gouttiere)*2,var(--conteneur));height:1px;
  background:linear-gradient(90deg,transparent,rgba(62,150,212,.35) 18%,rgba(217,123,54,.35) 82%,transparent)}

/* Semis de points, repris de la direction artistique validée. */
.pointilles{position:absolute;pointer-events:none;opacity:.5;
  background-image:radial-gradient(currentColor 1.2px,transparent 1.2px);
  background-size:16px 16px}
.hero .pointilles{color:rgba(143,201,237,.42);width:220px;height:170px;top:7.5rem;left:-40px}
@media(min-width:1200px){.hero .pointilles{left:calc(50% - 760px)}}

/* Le motif du logo, en filigrane, pour habiller les grands aplats. */
.motif-marque{position:absolute;pointer-events:none;opacity:.055;width:min(430px,46vw);
  right:-90px;bottom:-130px;mix-blend-mode:screen}
.section--nuit{position:relative;overflow:hidden}
.appel .motif-marque{opacity:.09;right:-70px;bottom:-110px;width:min(330px,40vw)}

/* ---------- Animations ---------- */
/* Rien n'est masqué par la feuille de style : l'état de départ des animations
   est posé par le JavaScript. Sans JavaScript, tout le texte reste visible. */
.mot{display:inline-block}
.parallaxe{will-change:transform}
@media (prefers-reduced-motion:reduce){
  .mot,[data-reveal]{opacity:1!important;transform:none!important;filter:none!important}
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ---------- Mobile ---------- */
@media(max-width:1180px){
  .burger{display:flex}
  .nav{position:fixed;inset:0;background:var(--nuit);flex-direction:column;justify-content:center;
    gap:.4rem;padding:5rem var(--gouttiere) 3rem;transform:translateY(-100%);transition:transform .5s cubic-bezier(.22,.61,.36,1);
    overflow-y:auto;align-items:stretch;margin:0}
  body.menu-ouvert .nav{transform:translateY(0)}
  body.menu-ouvert{overflow:hidden}
  .entete.est-collee{backdrop-filter:none;background:rgba(255,255,255,.96)}
  body.menu-ouvert .entete.est-collee{background:transparent;box-shadow:none}
  .nav > a:not(.btn),
  .nav > .menu-deroulant > .menu-deroulant__bouton,
  .entete.est-collee .nav > a:not(.btn),
  .entete.est-collee .nav > .menu-deroulant > .menu-deroulant__bouton,
  .entete.est-claire .nav > a:not(.btn),
  .entete.est-claire .nav > .menu-deroulant > .menu-deroulant__bouton{color:#fff;font-size:1.1rem;padding:.75rem .4rem}
  .nav .btn{margin:.8rem 0 0;justify-content:center}
  .menu-deroulant__panneau{position:static;width:auto;margin-left:0;opacity:1;visibility:visible;
    pointer-events:auto;transform:none;border-top:0;max-height:0;overflow:hidden;transition:max-height .45s}
  .menu-deroulant.est-ouvert .menu-deroulant__panneau{max-height:46rem}
  .megamenu{display:block;background:transparent;box-shadow:none;padding:.2rem 0 .6rem .8rem}
  .megamenu__colonnes{display:block}
  .megamenu__colonne + .megamenu__colonne{border-left:0;padding-left:0;margin-top:.6rem}
  .megamenu__titre{color:var(--cuivre-clair);margin-left:.4rem}
  .megamenu__colonne a{color:#B9CCDB;padding:.4rem .4rem;font-size:1rem;gap:.7rem}
  .megamenu__texte > span{display:none}
  .megamenu__vignette{width:46px;height:36px}
  .megamenu__colonne a:hover{background:rgba(255,255,255,.08)}
  .megamenu__encart{display:none}
}
