@import url('https://fonts.googleapis.com/css2?family=Saira+Condensed:wght@400;600;700;800;900&family=Spline+Sans:wght@400..700&display=swap');
:root{
  --turquoise:#00A7A5;
  --turquoise-fonce:#007B79;
  --turquoise-pale:#DDF5F2;
  --craie:#F1EFE9;
  --papier:#FAF9F5;
  --blanc:#FFFFFF;
  --encre:#14201F;
  --encre-doux:#53605E;
  --graphite:#263230;
  --sable:#D9D2C5;
  --argile:#B77A60;
  --jaune:#E8B44B;
  --ombre:color-mix(in srgb,var(--encre) 14%,transparent);
  --ombre-forte:color-mix(in srgb,var(--encre) 23%,transparent);
  --voile:color-mix(in srgb,var(--encre) 70%,transparent);
  --ligne:color-mix(in srgb,var(--encre) 18%,transparent);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;background:var(--craie);color:var(--encre);font-family:'Spline Sans',sans-serif;font-size:1rem;line-height:1.65;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:99;background-image:linear-gradient(90deg,transparent 49.85%,color-mix(in srgb,var(--turquoise) 12%,transparent) 50%,transparent 50.15%);opacity:.35}
img{display:block;width:100%;object-fit:cover;background:repeating-linear-gradient(135deg,var(--sable) 0 8px,var(--craie) 8px 16px);color:var(--encre)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease,opacity .25s ease}
h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3,h4{font-family:'Saira Condensed',sans-serif;text-transform:uppercase;letter-spacing:-.035em;line-height:.9}
h1{font-size:clamp(3.6rem,7.5vw,8.5rem);font-weight:900}
h2{font-size:clamp(2.8rem,5.5vw,6.5rem);font-weight:900}
h3{font-size:clamp(1.6rem,2.7vw,3rem);font-weight:800}
p{max-width:68ch}
.saut{position:absolute;left:-9999px;top:0;background:var(--turquoise);color:var(--blanc);padding:1rem;z-index:200}
.saut:focus{left:1rem;top:1rem}
.sur{font-weight:800;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem;color:var(--turquoise-fonce)}
.env{width:min(1320px,calc(100% - 48px));margin-inline:auto}
.info{min-height:36px;background:var(--graphite);color:var(--blanc);display:flex;justify-content:center;align-items:center;gap:clamp(1rem,4vw,4rem);padding:.45rem 24px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.info a{border-bottom:1px solid var(--turquoise)}
.info a:hover{color:var(--turquoise);transform:translateY(-1px)}
.hd{height:86px;background:var(--papier);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;padding:0 max(24px,calc((100vw - 1320px)/2));position:sticky;top:0;z-index:50;border-bottom:1px solid var(--ligne);box-shadow:0 8px 30px color-mix(in srgb,var(--encre) 4%,transparent)}
.logo{font-family:'Saira Condensed',sans-serif;font-size:2rem;font-weight:900;line-height:.75;letter-spacing:-.04em;white-space:nowrap}
.logo small{display:block;font-family:'Spline Sans',sans-serif;font-size:.55rem;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;margin-top:.45rem}
.nav{justify-self:end;display:flex;align-items:center;gap:clamp(.9rem,2vw,2rem);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.nav a{position:relative;padding:.7rem 0}
.nav a::after{content:"";position:absolute;left:0;bottom:.35rem;width:100%;height:2px;background:var(--turquoise);transform:scaleX(0);transform-origin:right;transition:transform .3s ease}
.nav a:hover::after,.nav a.actif::after{transform:scaleX(1);transform-origin:left}
.nav a:hover{color:var(--turquoise-fonce);transform:translateY(-2px)}
.tel-hd{min-height:48px;padding:.75rem 1rem;border-radius:12px;background:var(--turquoise);color:var(--blanc);font-weight:800;display:flex;align-items:center;box-shadow:0 8px 18px var(--ombre)}
.tel-hd:hover{background:var(--turquoise-fonce);transform:translateY(-3px);box-shadow:0 12px 24px var(--ombre-forte)}
.menu-btn{display:none;border:1px solid var(--encre);border-radius:10px;background:transparent;width:48px;height:48px;align-items:center;justify-content:center;font-weight:900}
.hero{width:min(1320px,calc(100% - 48px));margin:24px auto 0;min-height:720px;display:grid;grid-template-columns:1.05fr .95fr;gap:16px}
.hero-texte{background:var(--papier);border-radius:12px;padding:clamp(2rem,5vw,5.5rem);display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 34px var(--ombre)}
.hero h1{margin-bottom:1.5rem}
.hero h1 em{font-style:normal;color:var(--turquoise)}
.hero-texte>p:not(.sur){font-size:clamp(1.05rem,1.5vw,1.35rem);max-width:42ch}
.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1rem}
.btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:.85rem 1.25rem;border:1px solid var(--encre);border-radius:10px;font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;background:var(--papier)}
.btn:hover{background:var(--encre);color:var(--blanc);transform:translateY(-3px);box-shadow:0 10px 22px var(--ombre)}
.btn.plein{background:var(--turquoise);border-color:var(--turquoise);color:var(--blanc)}
.btn.plein:hover{background:var(--turquoise-fonce);border-color:var(--turquoise-fonce);transform:translateY(-3px) scale(1.01)}
.hero-visuels{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.15fr .85fr;gap:16px}
.hero-visuels figure{margin:0;position:relative;overflow:hidden;border-radius:12px;box-shadow:0 10px 34px var(--ombre)}
.hero-visuels figure:first-child{grid-column:1/-1}
.hero-visuels img{height:100%;transition:transform .7s ease,filter .7s ease}
.hero-visuels figure:hover img{transform:scale(1.04);filter:saturate(1.08)}
.hero-visuels figcaption{position:absolute;left:12px;bottom:12px;background:var(--papier);padding:.55rem .75rem;border-radius:8px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.essentiel{width:min(1320px,calc(100% - 48px));margin:16px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.essentiel>div{background:var(--blanc);border-radius:12px;padding:1.25rem;min-height:118px;box-shadow:0 7px 22px var(--ombre);display:flex;flex-direction:column;justify-content:space-between}
.essentiel b{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--turquoise-fonce)}
.essentiel span,.essentiel a{font-weight:700}
.essentiel a{font-family:'Saira Condensed',sans-serif;font-size:1.45rem;line-height:1}
.essentiel>div:hover{transform:translateY(-4px);box-shadow:0 12px 25px var(--ombre-forte)}
.intro{width:min(1320px,calc(100% - 48px));margin:clamp(5rem,10vw,9rem) auto;display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(2rem,6vw,7rem);align-items:start}
.intro .titre{position:sticky;top:140px}
.intro h2{font-size:clamp(3rem,6vw,7.4rem)}
.intro .texte{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding-top:1rem}
.intro .texte p:first-child{font-size:1.22rem;font-weight:600}
.prestations{background:var(--graphite);color:var(--blanc);padding:clamp(5rem,10vw,9rem) 24px}
.prestations>.env>header{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:3rem}
.prestations .sur{color:var(--turquoise)}
.prestations h2{margin-bottom:0}
.grille-presta{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.carte{background:var(--papier);color:var(--encre);border-radius:12px;overflow:hidden;box-shadow:0 10px 30px color-mix(in srgb,var(--encre) 34%,transparent);display:flex;flex-direction:column;min-height:430px}
.carte img{height:220px;filter:saturate(.85);transition:transform .6s ease,filter .6s ease}
.carte>div{padding:1.5rem;display:flex;flex-direction:column;flex:1}
.carte h3{font-size:2.2rem;margin-bottom:.7rem}
.carte p{color:var(--encre-doux)}
.carte strong{margin-top:auto;font-family:'Saira Condensed',sans-serif;font-size:1.35rem;text-transform:uppercase}
.carte a{margin-top:1rem;font-weight:800;color:var(--turquoise-fonce)}
.carte:hover{transform:translateY(-8px);box-shadow:0 18px 38px color-mix(in srgb,var(--encre) 45%,transparent)}
.carte:hover img{transform:scale(1.05);filter:saturate(1.05)}
.plans{width:min(1320px,calc(100% - 48px));margin:clamp(5rem,10vw,9rem) auto}
.plans>header{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:3rem}
.plans h2{margin-bottom:0}
.plans-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.plan{background:var(--blanc);border-radius:12px;padding:2rem;box-shadow:0 8px 26px var(--ombre);position:relative;overflow:hidden}
.plan::before{content:"";display:block;height:180px;border-radius:8px;margin-bottom:1.5rem;background-color:var(--turquoise-pale);background-image:linear-gradient(var(--ligne) 2px,transparent 2px),linear-gradient(90deg,var(--ligne) 2px,transparent 2px);background-size:42px 42px;transition:background-size .5s ease,transform .5s ease}
.plan:nth-child(2)::before{transform:rotate(45deg) scale(.8);background-size:38px 38px}
.plan:nth-child(3)::before{background-position:20px 0;background-size:72px 36px}
.plan:hover::before{background-size:50px 50px;transform:scale(1.03)}
.plan:nth-child(2):hover::before{transform:rotate(45deg) scale(.86)}
.plan span{font-weight:900;color:var(--turquoise-fonce);letter-spacing:.12em;font-size:.72rem}
.plan h3{font-size:2.2rem;margin:.6rem 0}
.plan strong{display:block;margin-top:1rem}
.avant-apres{display:grid;grid-template-columns:1fr 1fr;min-height:760px;background:var(--turquoise)}
.avant-apres figure{margin:0;position:relative;overflow:hidden}
.avant-apres img{height:100%;min-height:760px;filter:saturate(.75);transition:filter .6s ease,transform .8s ease}
.avant-apres figure:hover img{filter:saturate(1);transform:scale(1.025)}
.avant-apres figcaption{position:absolute;top:24px;left:24px;background:var(--papier);padding:.8rem 1rem;border-radius:10px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.avant-apres .apres figcaption{background:var(--turquoise);color:var(--blanc)}
.preuve{width:min(1320px,calc(100% - 48px));margin:clamp(5rem,10vw,9rem) auto;display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.preuve-texte{background:var(--papier);border-radius:12px;padding:clamp(2rem,5vw,5rem);box-shadow:0 10px 30px var(--ombre)}
.preuve img{height:100%;min-height:560px;border-radius:12px;box-shadow:0 10px 30px var(--ombre)}
.badges{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:2rem}
.badge{background:var(--blanc);border-radius:10px;padding:1.2rem;box-shadow:0 5px 16px var(--ombre)}
.badge b{display:block;font-family:'Saira Condensed',sans-serif;font-size:1.55rem;text-transform:uppercase;line-height:1}
.badge small{color:var(--encre-doux)}
.parcours{background:var(--turquoise-pale);padding:clamp(5rem,9vw,8rem) 24px}
.parcours h2{max-width:12ch}
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:3rem}
.etape{background:var(--papier);border-radius:12px;padding:1.6rem;min-height:260px;box-shadow:0 8px 22px var(--ombre)}
.etape span{font-family:'Saira Condensed',sans-serif;font-weight:900;font-size:3rem;color:var(--turquoise)}
.etape h3{font-size:1.8rem;margin:1rem 0}
.etape:hover{background:var(--turquoise);color:var(--blanc);transform:translateY(-6px)}
.etape:hover span{color:var(--blanc)}
.zone{width:min(1320px,calc(100% - 48px));margin:clamp(5rem,10vw,9rem) auto;display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.carte-zone{min-height:530px;border-radius:12px;background:var(--graphite);color:var(--blanc);position:relative;overflow:hidden;box-shadow:0 10px 30px var(--ombre)}
.carte-zone::before,.carte-zone::after{content:"";position:absolute;border:2px solid var(--turquoise);border-radius:50% 38% 46% 54%;inset:12% 18%;transform:rotate(-8deg)}
.carte-zone::after{inset:26% 32%;border-color:var(--jaune);transform:rotate(12deg)}
.carte-zone .villes{position:absolute;inset:0;padding:2rem;display:grid;grid-template-columns:1fr 1fr;align-content:space-between;font-family:'Saira Condensed',sans-serif;font-size:1.5rem;font-weight:800;text-transform:uppercase}
.zone-texte{background:var(--papier);border-radius:12px;padding:clamp(2rem,5vw,5rem);box-shadow:0 10px 30px var(--ombre)}
.zone-texte ul{padding-left:1.2rem}
.avis{background:var(--jaune);padding:clamp(5rem,10vw,9rem) 24px}
.avis .env{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem}
.avis-liste{display:grid;gap:16px}
.avis blockquote{margin:0;background:var(--papier);border-radius:12px;padding:1.8rem;font-size:1.08rem;box-shadow:0 8px 24px var(--ombre)}
.avis cite{display:block;margin-top:1rem;font-style:normal;font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.contact{width:min(1320px,calc(100% - 48px));margin:clamp(5rem,10vw,9rem) auto;background:var(--graphite);color:var(--blanc);border-radius:12px;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;box-shadow:0 16px 40px var(--ombre-forte)}
.contact>div{padding:clamp(2rem,5vw,5rem)}
.contact h2{font-size:clamp(3.2rem,6vw,7rem)}
.contact .sur{color:var(--turquoise)}
.contact aside{background:var(--turquoise);padding:clamp(2rem,5vw,5rem);display:flex;flex-direction:column;justify-content:center}
.contact .telephone{font-family:'Saira Condensed',sans-serif;font-size:clamp(2.3rem,4vw,4.5rem);font-weight:900;line-height:1;border-bottom:2px solid var(--blanc)}
.contact .telephone:hover{color:var(--encre);transform:translateX(8px);border-color:var(--encre)}
.page-hero{width:min(1320px,calc(100% - 48px));margin:24px auto 0;display:grid;grid-template-columns:.82fr 1.18fr;min-height:650px;gap:16px}
.page-hero .ph-texte{background:var(--turquoise);color:var(--blanc);padding:clamp(2rem,5vw,5rem);border-radius:12px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 10px 30px var(--ombre)}
.page-hero .ph-texte .sur{color:var(--blanc)}
.page-hero h1{font-size:clamp(3.4rem,6.3vw,7.2rem);overflow-wrap:anywhere}
.page-hero img{height:100%;min-height:650px;border-radius:12px;box-shadow:0 10px 30px var(--ombre)}
.page-main{width:min(1180px,calc(100% - 48px));margin:clamp(4rem,8vw,8rem) auto}
.page-main>.lead{font-size:clamp(1.2rem,2vw,1.65rem);max-width:58ch;margin-bottom:4rem}
.lignes-prix{display:grid;gap:12px}
.ligne-prix{display:grid;grid-template-columns:1fr 1.3fr auto;gap:2rem;align-items:center;background:var(--papier);border-radius:12px;padding:1.6rem;box-shadow:0 7px 20px var(--ombre)}
.ligne-prix h3{font-size:1.65rem;margin:0}
.ligne-prix p{margin:0;color:var(--encre-doux)}
.ligne-prix strong{font-family:'Saira Condensed',sans-serif;font-size:1.5rem;white-space:nowrap}
.ligne-prix:hover{transform:translateY(-4px);box-shadow:0 12px 26px var(--ombre-forte)}
.galerie{display:grid;grid-template-columns:1.2fr .8fr;grid-auto-rows:360px;gap:16px}
.galerie figure{margin:0;position:relative;overflow:hidden;border-radius:12px;box-shadow:0 8px 24px var(--ombre)}
.galerie figure:nth-child(3){grid-column:1/-1}
.galerie img{height:100%;transition:transform .7s ease,filter .7s ease}
.galerie figure:hover img{transform:scale(1.04);filter:saturate(1.1)}
.galerie figcaption{position:absolute;bottom:12px;left:12px;background:var(--papier);border-radius:8px;padding:.55rem .8rem;font-size:.76rem;font-weight:800}
.portrait{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;align-items:stretch}
.portrait img{height:650px;border-radius:12px;box-shadow:0 10px 30px var(--ombre)}
.portrait>div{background:var(--papier);border-radius:12px;padding:clamp(2rem,5vw,5rem);box-shadow:0 10px 30px var(--ombre)}
.liste-villes{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.ville{background:var(--papier);border-radius:12px;padding:1.7rem;box-shadow:0 7px 22px var(--ombre)}
.ville h3{font-size:2rem}
.ville:hover{background:var(--turquoise-pale);transform:translateY(-5px);box-shadow:0 13px 28px var(--ombre-forte)}
.formulaire{background:var(--papier);border-radius:12px;padding:clamp(1.5rem,4vw,4rem);box-shadow:0 10px 30px var(--ombre);display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.formulaire label{display:grid;gap:.5rem;font-weight:700}
.formulaire label.large{grid-column:1/-1}
.formulaire input,.formulaire select,.formulaire textarea{width:100%;min-height:48px;border:1px solid var(--ligne);border-radius:10px;background:var(--blanc);padding:.85rem}
.formulaire textarea{min-height:150px;resize:vertical}
.formulaire input:focus,.formulaire select:focus,.formulaire textarea:focus{outline:3px solid var(--turquoise-pale);border-color:var(--turquoise);box-shadow:0 0 0 2px var(--turquoise)}
.formulaire button{justify-self:start;border:0;cursor:pointer}
.legal{max-width:900px;margin-inline:auto}
.legal h2{font-size:2.5rem;margin-top:3rem}
.pied{background:var(--encre);color:var(--blanc);padding:4rem max(24px,calc((100vw - 1320px)/2));display:grid;grid-template-columns:1fr 2fr 1fr;gap:3rem;align-items:start}
.pied .logo{font-size:2rem}
.pied nav{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;font-size:.8rem}
.pied nav a{border-bottom:1px solid var(--turquoise)}
.pied nav a:hover{color:var(--turquoise);transform:translateY(-2px)}
.appel-mobile{display:none;position:fixed;right:16px;bottom:16px;z-index:80;width:62px;height:62px;border-radius:50%;background:var(--turquoise);color:var(--blanc);align-items:center;justify-content:center;font-weight:900;box-shadow:0 10px 28px var(--ombre-forte)}
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.rv.vu{opacity:1;transform:none}
.serie>*{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.serie.vu>*{opacity:1;transform:none}
.serie.vu>*:nth-child(2){transition-delay:.08s}.serie.vu>*:nth-child(3){transition-delay:.16s}.serie.vu>*:nth-child(4){transition-delay:.24s}
@keyframes flotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes trace{0%{background-position:0 0}100%{background-position:84px 42px}}
@keyframes entree{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--turquoise) 45%,transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--turquoise) 0%,transparent)}}
.hero-texte>*{animation:entree .7s both}.hero-texte>*:nth-child(2){animation-delay:.08s}.hero-texte>*:nth-child(3){animation-delay:.16s}.hero-texte>*:nth-child(4){animation-delay:.24s}
.appel-mobile{animation:pulse 2.5s infinite}
.plan:first-child::before{animation:trace 8s linear infinite}
.badge{transition:transform .28s ease,background-color .28s ease}
.badge:hover{transform:translateY(-4px);background:var(--turquoise-pale)}
.carte-zone::before{transition:transform .7s ease}
.carte-zone:hover::before{transform:rotate(8deg) scale(1.04)}
.avis blockquote{transition:transform .3s ease,box-shadow .3s ease}
.avis blockquote:hover{transform:translateX(6px);box-shadow:0 13px 30px var(--ombre-forte)}
@media(max-width:1050px){
  .nav{display:none}.nav.ouvert{display:flex;position:absolute;left:12px;right:12px;top:calc(100% + 8px);background:var(--papier);color:var(--encre);padding:1rem;box-shadow:0 16px 34px var(--ombre-forte);border:1px solid var(--ligne);border-radius:12px;flex-direction:column;align-items:stretch}.nav.ouvert a{min-height:46px;display:flex;align-items:center;border-bottom:1px solid var(--ligne)}.menu-btn{display:flex}.tel-hd{justify-self:end}.hd{grid-template-columns:auto 1fr auto auto}
  .hero{grid-template-columns:1fr;min-height:auto}.hero-texte{min-height:610px}.hero-visuels{min-height:600px}
  .essentiel{grid-template-columns:1fr 1fr}.grille-presta,.plans-grille{grid-template-columns:1fr 1fr}.grille-presta .carte:last-child,.plans-grille .plan:last-child{grid-column:1/-1}
  .intro,.preuve,.zone,.avis .env{grid-template-columns:1fr}.intro .titre{position:static}.etapes{grid-template-columns:1fr 1fr}.page-hero{grid-template-columns:1fr}.page-hero img{min-height:480px}.pied{grid-template-columns:1fr 2fr}
}
@media(max-width:700px){
  body::before{display:none}.env,.hero,.essentiel,.intro,.plans,.preuve,.zone,.contact,.page-hero,.page-main{width:min(100% - 24px,1320px)}
  .info{justify-content:space-between;font-size:.62rem;gap:.4rem}.info span:nth-child(2){display:none}
  .hd{height:72px;padding:0 12px;gap:.55rem}.logo{font-size:1.55rem}.tel-hd{width:46px;height:46px;min-height:46px;padding:0;justify-content:center;font-size:0}.tel-hd::after{content:"TÉL";font-size:.68rem}.menu-btn{display:flex}.nav{display:none}
  .hero{margin-top:12px;gap:12px}.hero-texte{min-height:auto;padding:2rem 1.2rem}.hero h1{font-size:clamp(3.5rem,18vw,5.8rem);overflow-wrap:anywhere}.hero-visuels{min-height:auto;grid-template-columns:1fr;grid-template-rows:360px 240px 240px}.hero-visuels figure:first-child{grid-column:auto}
  .actions{display:grid}.btn{width:100%;min-height:50px}.essentiel{grid-template-columns:1fr;margin-top:12px}.essentiel>div{min-height:100px}
  .intro{margin:5rem auto;grid-template-columns:1fr;gap:1rem}.intro .texte{grid-template-columns:1fr}.intro h2{font-size:clamp(3.2rem,15vw,5.2rem)}
  .prestations,.parcours,.avis{padding:4.5rem 12px}.prestations>.env>header,.plans>header{grid-template-columns:1fr}.grille-presta,.plans-grille{grid-template-columns:1fr}.grille-presta .carte:last-child,.plans-grille .plan:last-child{grid-column:auto}.carte{min-height:auto}
  .avant-apres{grid-template-columns:1fr;min-height:auto}.avant-apres img{min-height:420px}.preuve{grid-template-columns:1fr}.preuve img{min-height:420px}.badges{grid-template-columns:1fr}.etapes{grid-template-columns:1fr}.etape{min-height:210px}
  .zone{grid-template-columns:1fr}.carte-zone{min-height:440px}.avis .env{grid-template-columns:1fr;gap:2rem}.contact{grid-template-columns:1fr}.contact h2{overflow-wrap:anywhere}.contact .telephone{font-size:2.5rem}
  .page-hero{margin-top:12px}.page-hero .ph-texte{padding:2.4rem 1.2rem}.page-hero h1{font-size:clamp(3.5rem,17vw,5.7rem)}.page-hero img{min-height:360px}.page-main{margin:4rem auto}.ligne-prix{grid-template-columns:1fr;gap:.6rem}.galerie{grid-template-columns:1fr;grid-auto-rows:320px}.galerie figure:nth-child(3){grid-column:auto}.portrait{grid-template-columns:1fr}.portrait img{height:480px}.liste-villes{grid-template-columns:1fr}.formulaire{grid-template-columns:1fr;padding:1.2rem}.formulaire label.large{grid-column:auto}
  .pied{grid-template-columns:1fr;padding:3rem 20px}.appel-mobile{display:flex}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.rv,.serie>*{opacity:1;transform:none}}
.formulaire input[type="checkbox"]{width:20px;min-height:20px;height:20px;padding:0;accent-color:var(--turquoise);vertical-align:middle}
