@font-face{font-family:"Zodiak";src:url("fonts/zodiak-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Switzer";src:url("fonts/switzer-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Switzer";src:url("fonts/switzer-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Switzer";src:url("fonts/switzer-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{
  --gres:#e4e4e1;
  --gres-2:#d8d7d3;
  --joint:#c6c3bc;
  --blanc:#f6f5f2;
  --encre:#1c1d1f;
  --gris:#55595a;
  --nuit:#161718;
  --nuit-joint:#2b2d2f;
  --gris-nuit:#a9adab;
  --sun:#f2c14e;
  --f-t:"Zodiak",Georgia,serif;
  --f-x:"Switzer",system-ui,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --pad:clamp(1rem,4.4vw,4.5rem);
  --sec:clamp(6.5rem,13vw,12.5rem);
  --gap:0.375rem;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:clamp(16px,calc(8.3px + .535vw),24px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:#8f8c86 var(--gres)}
body{margin:0;background:var(--gres);color:var(--encre);font:400 1.0625rem/1.6 var(--f-x);-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit}
h1,h2,h3,p,ul,ol,figure,blockquote,fieldset{margin:0;padding:0}
ul,ol{list-style:none}
fieldset{border:0;min-width:0}
::selection{background:var(--sun);color:var(--encre)}
:focus-visible{outline:2px solid var(--sun);outline-offset:3px}
svg{width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.skip{position:fixed;left:0.75rem;top:-3.75rem;z-index:500;background:var(--sun);color:var(--encre);padding:0.625rem 0.875rem;text-decoration:none;font-weight:600}
.skip:focus{top:0.75rem}
.wrap{width:100%;max-width:2880px;margin:0 auto;padding:0 var(--pad)}
.h2{font:400 clamp(2.5rem,5.4vw,5.5rem)/.98 var(--f-t);letter-spacing:-.035em;text-wrap:balance;max-width:14ch}
.lead{margin-top:1.375rem;max-width:46ch;color:var(--gris);font-size:clamp(1rem,1.25vw,1.1875rem)}
/* Masques des lignes : assez de marge pour les jambages (j, g, p, q) */
.split-lines>div{padding-bottom:.16em;margin-bottom:-.16em}
.js .split-lines{visibility:hidden}
.split-ready .split-lines,.static .split-lines{visibility:visible}

/* ---------- Logo (carré provisoire en attendant le vrai logo) ---------- */
.mark{width:1.375rem;height:1.375rem;fill:var(--encre);stroke:none}
.nav.is-dark .mark,.foot .mark{outline:1px solid rgba(246,245,242,.35)}

/* ---------- Navigation ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;gap:1.625rem;padding:1rem var(--pad);transition:transform .7s var(--ease),background-color .4s,color .4s,box-shadow .4s}
.nav.is-scrolled{background:rgba(228,228,225,.86);backdrop-filter:blur(0.875rem) saturate(1.2);-webkit-backdrop-filter:blur(0.875rem) saturate(1.2);box-shadow:0 1px 0 var(--joint)}
.nav.is-dark{color:var(--blanc);background:rgba(22,23,24,.84);box-shadow:0 1px 0 var(--nuit-joint)}
.nav.is-hidden{transform:translateY(-110%)}
.brand{display:flex;align-items:center;gap:0.75rem;min-height:2.75rem;text-decoration:none;font:600 1rem/1 var(--f-x);letter-spacing:-.01em;white-space:nowrap}
.nav nav{display:flex;gap:1.625rem;margin-left:auto}
.nav nav a{white-space:nowrap;text-decoration:none;font-size:0.9375rem;font-weight:500;position:relative;padding:0.375rem 0}
.nav nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--sun);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav nav a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-tel{display:flex;align-items:center;gap:0.5rem;text-decoration:none;font-size:0.9375rem;font-weight:600;font-variant-numeric:tabular-nums}
.nav-tel svg{width:1rem;height:1rem}
.nav-cta{white-space:nowrap;display:inline-flex;align-items:center;min-height:2.625rem;padding:0 1.125rem;background:var(--encre);color:var(--blanc);text-decoration:none;font-weight:600;font-size:0.9375rem;transition:background-color .3s,color .3s}
.nav-cta:hover,.nav.is-dark .nav-cta{background:var(--sun);color:var(--encre)}

/* ---------- Boutons : des dalles, pas des pilules ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0.625rem;min-height:3.375rem;padding:0 1.5rem;border:1px solid transparent;font:600 1rem/1 var(--f-x);text-decoration:none;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s var(--ease)}
/* La couleur part du point d'entrée du curseur */
.btn::before{content:"";position:absolute;z-index:-1;left:var(--x,50%);top:var(--y,100%);width:260%;aspect-ratio:1;border-radius:50%;background:var(--fill,var(--sun));transform:translate(-50%,-50%) scale(0);transition:transform .65s var(--ease)}
.btn:hover::before{transform:translate(-50%,-50%) scale(1)}
.btn:active,.nav-cta:active,.ba-tabs button:active,.zone-list button:active,.qf-opts label:active,.mat:active{scale:.98}
p,li,figcaption,.lead{text-wrap:pretty}
.btn svg{transition:transform .5s var(--ease)}
.btn:hover>svg:first-child{transform:rotate(-8deg) scale(1.08)}
/* Le texte roule vers le haut au survol */
.roll{display:inline-block;overflow:hidden;line-height:1.15;height:1.15em;vertical-align:top}
.roll>span{display:block;transition:transform .55s var(--ease)}
.roll>span::after{content:attr(data-t);display:block}
.btn:hover .roll>span,.nav-cta:hover .roll>span{transform:translateY(-50%)}
.btn-ink{background:var(--encre);color:var(--blanc)}
.btn-ink:hover{color:var(--encre)}
.btn-line{border-color:rgba(28,29,31,.4);color:var(--encre);--fill:var(--encre)}
.btn-line:hover{color:var(--blanc);border-color:var(--encre)}
.btn-sun{background:var(--sun);color:var(--encre);--fill:var(--blanc)}
.btn-line-light{border-color:rgba(246,245,242,.45);color:var(--blanc);background:transparent;--fill:var(--blanc)}
.btn-line-light:hover{color:var(--encre)}
.cta-row{display:flex;flex-wrap:wrap;gap:0.5rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 0. Chargement ---------- */
.intro{position:fixed;inset:0;z-index:400;display:grid;place-items:center;pointer-events:auto}
html:not(.js) .intro{display:none}
.intro-tiles{--j:0;position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--c,6),1fr);grid-template-rows:repeat(var(--r,4),1fr);gap:2px;background:rgba(242,193,78,calc(var(--j) * .9));perspective:100rem}
.intro-tiles i{display:block;background:var(--nuit);transform-origin:50% 0;backface-visibility:hidden}
.intro-brand{position:relative;display:grid;justify-items:center;gap:0.875rem;text-align:center;padding:0 1rem}
.intro-name{font:400 clamp(2.125rem,6.4vw,5.75rem)/1.05 var(--f-t);letter-spacing:-.04em;color:var(--blanc);overflow:hidden;padding-bottom:.14em}
.intro-name .wd{display:inline-block;white-space:nowrap}
.intro-name .ch{display:inline-block}
.intro-sub{font-size:0.875rem;font-weight:500;color:var(--gris-nuit);opacity:0;transform:translateY(0.625rem)}
.intro-count{position:absolute;right:var(--pad);bottom:calc(var(--pad) + env(safe-area-inset-bottom));font:400 clamp(3rem,7vw,6.5rem)/.8 var(--f-t);letter-spacing:-.04em;color:var(--sun);font-variant-numeric:tabular-nums}
.intro-count::after{content:" %";font-size:.35em;letter-spacing:0;color:var(--gris-nuit)}

/* ---------- Étoiles ---------- */
.stars{display:inline-flex;gap:2px}
.stars svg{width:0.9375rem;height:0.9375rem;fill:var(--sun);stroke:none}
.stars-lg svg{width:1.75rem;height:1.75rem;fill:transparent;stroke:#c99a24;stroke-width:1.3}
.stars-lg svg path,.stars-lg use{stroke-dasharray:80;stroke-dashoffset:80}

/* ---------- 1. Hero ---------- */
.hero{position:relative;height:100svh;min-height:38.75rem;max-height:75rem;display:flex;align-items:flex-end;overflow:hidden;color:var(--blanc);background:#2a2b2c}
.hero-bg{position:absolute;inset:0}
.hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,23,24,.58) 0,rgba(22,23,24,.22) 14%,rgba(22,23,24,0) 30%),linear-gradient(0deg,rgba(22,23,24,.78) 0,rgba(22,23,24,.38) 42%,rgba(22,23,24,0) 70%),linear-gradient(90deg,rgba(22,23,24,.35),rgba(22,23,24,0) 60%)}
.hero-text{position:relative;z-index:2;padding-bottom:clamp(2.5rem,8vh,6rem)}
.hero-title{font:400 clamp(4rem,9vw,10.5rem)/.88 var(--f-t);letter-spacing:-.05em;max-width:8ch}
.hero-lead{margin-top:clamp(1.125rem,3vh,1.875rem);max-width:44ch;font-size:clamp(1.0312rem,1.3vw,1.25rem);line-height:1.5;color:#eceae6}
.hero-text .cta-row{margin-top:clamp(1.375rem,3.4vh,2.125rem)}
.btn-ghost{border-color:rgba(246,245,242,.55);color:var(--blanc);--fill:var(--blanc)}
.btn-ghost:hover{color:var(--encre);border-color:var(--blanc)}
.hero-cap{position:absolute;z-index:2;right:var(--pad);bottom:clamp(2.5rem,8vh,6rem);max-width:24ch;text-align:right;font-size:0.875rem;line-height:1.45;color:#d9d8d4}
.nav.on-photo:not(.is-scrolled){color:var(--blanc)}
.nav.on-photo:not(.is-scrolled) .mark{fill:var(--blanc)}
.nav.on-photo:not(.is-scrolled) .nav-cta{background:var(--sun);color:var(--encre)}

/* ---------- 2. Chantiers en opus ---------- */
.works{padding:var(--sec) 0}
.works-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.5rem 4rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.opus-box{container-type:inline-size}
.opus{--row:calc((100cqw - 0.75rem - 5 * var(--gap)) / 6);display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(var(--row),auto);gap:var(--gap);background:var(--joint);padding:var(--gap)}
.tl{grid-area:var(--d);position:relative;overflow:hidden;background:var(--gres-2);border:0;padding:0;margin:0;text-align:left;min-height:0}
.tl.ph{cursor:zoom-in}
.tl.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .6s var(--ease)}
.tl.ph:hover img{transform:scale(1.045)}
.tl.ph::after{content:attr(data-cap);position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1.125rem 1rem;color:var(--blanc);font-size:0.875rem;line-height:1.35;background:linear-gradient(transparent,rgba(22,23,24,.62));opacity:0;transform:translateY(0.5rem);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.tl.ph:hover::after,.tl.ph:focus-visible::after{opacity:1;transform:none}
.tl.tx{display:flex;flex-direction:column;justify-content:flex-end;gap:0.5rem;padding:clamp(1rem,1.8vw,1.75rem);background:var(--blanc)}
.tl.tx h3{font:400 clamp(1.5rem,2.2vw,2.25rem)/1 var(--f-t);letter-spacing:-.03em}
.tl.tx p{font-size:0.9062rem;line-height:1.45;color:var(--gris);max-width:36ch}
.tl.sw{display:flex;align-items:flex-end;padding:0.875rem}
.tl.sw span{font-size:0.8125rem;font-weight:500}
.sw-marbre{background:url("img/marbre.webp") center/cover}
.sw-gres{background:#d5d2cb url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .14 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E")}
.tl.sw-cross{display:grid;place-items:center;background:var(--sun)}
.sw-cross svg{width:42%;height:42%;fill:var(--encre);stroke:none}
.tl.cta{display:flex;flex-direction:column;justify-content:space-between;gap:1rem;padding:clamp(1.125rem,2vw,2rem);background:var(--nuit);color:var(--blanc)}
.cta-t{font:400 clamp(1.625rem,2.4vw,2.5rem)/1.02 var(--f-t);letter-spacing:-.03em;max-width:14ch}

/* ---------- 2 bis. Avant / après ---------- */
.ba{padding:0 0 var(--sec)}
.ba-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,6.875rem);align-items:center}
.ba-tabs{display:flex;flex-wrap:wrap;gap:0.375rem;margin-top:2.25rem}
.ba-tabs button{min-height:2.75rem;padding:0 1rem;border:1px solid var(--joint);background:transparent;font-size:0.9375rem;font-weight:500;cursor:pointer;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.ba-tabs button:hover{border-color:var(--encre)}
.ba-tabs button[aria-selected="true"]{background:var(--encre);color:var(--blanc);border-color:var(--encre)}
.ba-cap{margin-top:1.25rem;max-width:44ch;color:var(--gris);font-size:0.9688rem;min-height:3em}
.ba-stage{position:relative;aspect-ratio:4/5;max-height:86svh;width:100%;justify-self:end;overflow:hidden;background:var(--gres-2);touch-action:pan-y;user-select:none}
.ba-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .5s var(--ease)}
.ba-stage.is-swap img{opacity:0}
.ba-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.ba-line{position:absolute;top:0;bottom:0;left:var(--p);width:2px;margin-left:-1px;background:var(--sun);pointer-events:none}
.ba-knob{position:absolute;top:50%;left:50%;width:2.875rem;height:2.875rem;margin:-1.4375rem 0 0 -1.4375rem;display:grid;place-items:center;background:var(--sun);color:var(--encre);box-shadow:0 0.625rem 1.5rem -0.625rem rgba(22,23,24,.5);transition:transform .4s var(--ease)}
.ba-knob svg{width:1.25rem;height:1.25rem;stroke-width:2}
.ba-stage:hover .ba-knob,.ba-range:focus-visible~.ba-line .ba-knob{transform:scale(1.08)}
.ba-range:focus-visible+.ba-line,.ba-stage:has(.ba-range:focus-visible) .ba-knob{outline:2px solid var(--encre);outline-offset:3px}
.ba-tag{position:absolute;top:0.875rem;padding:0.375rem 0.625rem;background:rgba(22,23,24,.72);color:var(--blanc);font-size:0.8125rem;font-weight:600;pointer-events:none}
.ba-tag-a{left:0.875rem}.ba-tag-b{right:0.875rem}
.ba-stage{cursor:ew-resize}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;pointer-events:none;-webkit-appearance:none;appearance:none}

/* ---------- 3. Thomas ---------- */
.team{padding:0 0 var(--sec)}
.team-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,6vw,6.875rem);align-items:center}
.team-photo{max-width:31.25rem}
.team-photo img{width:100%}
.team-photo figcaption{margin-top:0.75rem;font-size:0.875rem;color:var(--gris)}
.team-story{margin-top:1.75rem;font:400 clamp(1.375rem,2vw,1.875rem)/1.3 var(--f-t);letter-spacing:-.015em;max-width:30ch}
.team-quote{margin-top:2.25rem;padding-top:1.125rem;border-top:1px solid var(--joint);max-width:32.5rem}
.team-quote blockquote{font-size:clamp(1.0625rem,1.3vw,1.1875rem);line-height:1.5}
.team-quote figcaption{margin-top:0.625rem;font-size:0.875rem;color:var(--gris)}

/* ---------- 4. Visualiseur ---------- */
.cal{padding:var(--sec) 0;background:var(--blanc);border-top:1px solid var(--joint);border-bottom:1px solid var(--joint)}
.cal-head{margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.vz-stage{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--gres-2)}
.vz-photo,.vz-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vz-stage canvas{opacity:0;transition:opacity .6s var(--ease)}
.vz-stage.is-gl canvas{opacity:1}
.vz-stage::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--sun);transform:scaleX(0);transform-origin:0 50%;opacity:0;transition:opacity .3s}
.vz-stage.is-busy::after{opacity:1;animation:vzload 1.1s var(--ease) infinite}
@keyframes vzload{0%{transform:scaleX(0);transform-origin:0 50%}50%{transform:scaleX(1);transform-origin:0 50%}51%{transform-origin:100% 50%}100%{transform:scaleX(0);transform-origin:100% 50%}}
.chips label.is-off{cursor:not-allowed}
.chips label.is-off span{opacity:.35}
.chips label.is-off input{pointer-events:none}
.vz-rooms{position:absolute;left:clamp(0.75rem,1.6vw,1.5rem);bottom:clamp(0.75rem,1.6vw,1.5rem);display:flex;gap:0.25rem;padding:0.25rem;background:rgba(246,245,242,.86);backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem)}
.vz-rooms label{position:relative;cursor:pointer}
.vz-rooms input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.vz-rooms span{display:inline-flex;align-items:center;min-height:2.5rem;padding:0 0.875rem;font-size:0.9062rem;font-weight:500;transition:background-color .3s var(--ease),color .3s var(--ease)}
.vz-rooms input:checked+span{background:var(--encre);color:var(--blanc)}
.vz-rooms input:focus-visible+span{outline:2px solid var(--sun);outline-offset:2px}
.vz-ctrl{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,.9fr);gap:1.75rem clamp(1.5rem,3vw,3rem);margin-top:1.75rem;align-items:start}
.vz-ctrl legend,.surf>span{display:block;font-size:0.8438rem;font-weight:600;color:var(--gris);margin-bottom:0.625rem;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:0.375rem}
.chips label,.mats label{position:relative;cursor:pointer}
.chips input,.mats input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}
.chips span{display:inline-flex;align-items:center;min-height:2.625rem;padding:0 0.8125rem;border:1px solid var(--joint);background:var(--gres);font-size:0.9062rem;font-weight:500;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.chips label:hover span{border-color:var(--encre)}
.chips input:checked+span{background:var(--encre);color:var(--blanc);border-color:var(--encre)}
.chips input:focus-visible+span,.mats input:focus-visible+span{outline:2px solid var(--sun);outline-offset:2px}
.mats{display:flex;flex-wrap:wrap;gap:0.625rem 0.625rem}
.mats label{display:grid;justify-items:center;gap:0.375rem;width:3.875rem}
.mats span{width:3.25rem;height:3.25rem;background:var(--t) center/cover;box-shadow:inset 0 0 0 1px rgba(28,29,31,.12);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.mats em{font-style:normal;font-size:0.7812rem;color:var(--gris);text-align:center;line-height:1.2}
.mats input:checked+span{box-shadow:0 0 0 2px var(--blanc),0 0 0 0.25rem var(--encre);transform:translateY(-2px)}
.surf{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0.375rem 1rem}
.surf>span{grid-column:1/-1;margin:0}
.surf input{width:100%;accent-color:var(--encre);height:1.75rem}
.surf output{font:400 1.625rem/1 var(--f-t);font-variant-numeric:tabular-nums;min-width:3.6em;text-align:right}
.cal-out{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0.875rem 1.5rem;padding-top:1.5rem;border-top:1px solid var(--joint)}
.cal-sum{font-size:1rem;color:var(--gris);max-width:56ch}
.cal-sum b{color:var(--encre);font-weight:600}

/* ---------- 5. La coupe ---------- */
/* ---------- 5. La douche étanche : avant / après avec repères ---------- */
.regle{padding:var(--sec) 0}
.niche{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(1.75rem,5vw,6rem);align-items:center}
.niche-t{font:400 clamp(2rem,3.4vw,3.375rem)/1.02 var(--f-t);letter-spacing:-.03em}
.niche-txt .lead{max-width:40ch}
.niche-pts{list-style:none;margin:1.875rem 0 0;padding:0;border-top:1px solid var(--joint);max-width:44ch}
.niche-pts button{display:grid;grid-template-columns:1.875rem minmax(0,1fr);gap:0.875rem;align-items:start;width:100%;padding:0.9375rem 0;border:0;border-bottom:1px solid var(--joint);background:none;text-align:left;font:inherit;font-size:clamp(0.9375rem,1.1vw,1.0625rem);line-height:1.45;color:var(--gris);cursor:pointer;transition:color .3s}
.niche-pts b{display:grid;place-items:center;width:1.75rem;height:1.75rem;margin-top:-2px;border:1px solid rgba(28,29,31,.35);font:600 0.8125rem/1 var(--f-x);color:var(--encre);transition:background-color .3s,border-color .3s}
.niche-pts button:hover,.niche-pts button[aria-pressed="true"]{color:var(--encre)}
.niche-pts button:hover b,.niche-pts button[aria-pressed="true"] b{background:var(--sun);border-color:var(--sun)}
.niche-pts button:focus-visible{outline:2px solid var(--encre);outline-offset:0.25rem}
.niche-acts{margin-top:1.875rem}
.niche-note{margin-top:0.875rem;font-size:0.875rem;color:var(--gris)}
.niche-ph{position:relative}
.np{position:absolute;left:var(--x);top:var(--y);width:2rem;height:2rem;margin:-1rem 0 0 -1rem;display:grid;place-items:center;background:var(--sun);color:var(--encre);font:600 0.875rem/1 var(--f-x);box-shadow:0 0.375rem 1.125rem -0.375rem rgba(22,23,24,.5);transition:transform .45s var(--ease)}
.np::after{content:"";position:absolute;inset:-1px;border:2px solid var(--sun);opacity:0}
.np.is-on{transform:scale(1.2)}
.np.is-on::after{animation:npOnde 1.6s var(--ease) infinite}
@keyframes npOnde{from{transform:scale(1);opacity:.9}to{transform:scale(2.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.np.is-on::after{animation:none}}
.niche-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(0.5rem,1vw,0.875rem)}
.niche-duo figure{margin:0}
.niche-duo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--gres-2)}
.niche-duo figcaption{display:grid;gap:2px;margin-top:0.75rem;font-size:0.875rem;color:var(--gris)}
.niche-duo figcaption b{font-weight:600;color:var(--encre)}
@media (max-width:900px){
  .niche{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:700px){
}

/* ---------- 6. Avis ---------- */
.reviews{background:var(--nuit);color:var(--blanc);padding:var(--sec) 0 clamp(5rem,9vw,8.125rem);overflow:hidden}
.rv-top{display:grid;justify-items:center;text-align:center}
.rv-top .h2{margin-top:0;max-width:13ch}
.big-score{display:grid;justify-items:center;gap:0.875rem;margin-top:clamp(2.25rem,5vw,4rem);text-decoration:none;color:var(--blanc)}
.bs-n{display:flex;align-items:flex-end;font:400 clamp(6.5rem,13vw,12.5rem)/1 var(--f-t);letter-spacing:-.06em;font-variant-numeric:lining-nums tabular-nums;color:var(--sun)}
.bs-m{display:block;overflow:hidden;padding:.06em 0 .14em;margin:-.06em 0 -.14em}
.bs-v{display:block;line-height:1}
.bs-sur{font-size:.22em;line-height:1;letter-spacing:-.02em;color:var(--gris-nuit);margin:0 0 .16em .12em}
.bs-t{font-size:clamp(1rem,1.3vw,1.1875rem);color:#c9ccca}
.bs-t b{color:var(--blanc);font-weight:600}
.big-score:hover .bs-t b{color:var(--sun)}
.rv-une{font:400 clamp(1.75rem,3.8vw,3.625rem)/1.12 var(--f-t);letter-spacing:-.03em;max-width:24ch;margin:clamp(4.375rem,9vw,8.125rem) auto clamp(3.5rem,7vw,6rem);text-align:center;text-wrap:balance}
.rv-une .w{color:rgba(246,245,242,.16);transition:color .25s}
.rv-une cite{display:block;margin-top:1.625rem;font:500 1rem/1.4 var(--f-x);letter-spacing:0;font-style:normal;color:#c9ccca}
.rv-une cite b{color:var(--blanc)}
.rangs{display:grid;gap:0.875rem}
.rang{overflow:hidden;touch-action:pan-y;cursor:grab}
.rang.is-drag{cursor:grabbing}
.rang-piste{display:flex;gap:0.875rem;width:max-content;will-change:transform}
.carte{flex:none;width:clamp(17.875rem,80vw,28.75rem);display:flex;flex-direction:column;gap:1.25rem;margin:0;padding:clamp(1.5rem,2.4vw,2.125rem);background:#1f2022;border:1px solid var(--nuit-joint);user-select:none;-webkit-user-select:none;transition:border-color .5s var(--ease)}
.carte:hover{border-color:rgba(242,193,78,.55)}
.carte blockquote{font:400 clamp(1.1875rem,1.5vw,1.4375rem)/1.38 var(--f-t);letter-spacing:-.01em}
.carte figcaption{display:flex;align-items:center;gap:0.75rem;margin-top:auto;font-size:0.875rem;color:#a9adab}
.carte figcaption i{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;background:var(--sun);color:var(--encre);font:400 1.125rem var(--f-t);font-style:normal}
.carte figcaption b{display:block;font-size:1rem;color:var(--blanc);font-weight:600}
.rv-bas{margin-top:clamp(1.875rem,4vw,3.125rem);text-align:center}
.rv-bas a{display:inline-flex;align-items:center;gap:0.625rem;color:var(--blanc);font-weight:600;text-decoration:none;border-bottom:1px solid var(--sun);padding-bottom:0.25rem}
.rv-bas a svg{width:1rem;height:1rem;transition:transform .5s var(--ease)}
.rv-bas a:hover svg{transform:translateX(0.25rem)}

/* ---------- 6 bis. Zone : la région posée en carreaux ---------- */
.zone{padding:var(--sec) 0 0;overflow:hidden}
.zone-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"text stage" "side stage";column-gap:clamp(2.5rem,5vw,6rem);align-items:start}
.zone-text{grid-area:text}
.zone-text .lead{margin-top:1.375rem;max-width:44ch}
.zone-stage{grid-area:stage;align-self:center;margin:0}
.zcarte{display:block;width:100%;height:auto;overflow:hidden;font-family:var(--f-x);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(transparent,#000 8%,#000 92%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(transparent,#000 8%,#000 92%,transparent);mask-composite:intersect}
.zc-fond{fill:#d9e2e4}
.zc-terre path{fill:#eeede8;stroke:#eeede8;stroke-width:1.2;stroke-linejoin:round}
.zc-com{fill:#fbfaf7;stroke:rgba(28,29,31,.28);stroke-width:1.2;stroke-linejoin:round;transition:fill .4s}
.zc-com--base{fill:#f6e3ad}
.zc-com.is-on{fill:#faecc6}
.zc-mer{font:500 22px var(--f-x);fill:#7f949b;letter-spacing:.12em}
.zc-trait{fill:none;stroke:#c08c17;stroke-width:1.5;stroke-linecap:round;opacity:.75;transition:stroke-width .3s,opacity .3s}
.zcarte.has-on .zc-trait{opacity:.25}
.zcarte.has-on .zc-trait.is-on{opacity:1;stroke-width:3}
.zc-ville circle{fill:var(--encre)}
.zc-ville text{font-size:22px;font-weight:600;fill:var(--encre);paint-order:stroke;stroke:#fbfaf7;stroke-width:6px;stroke-linejoin:round}
.zc-point{fill:var(--sun);stroke:var(--encre);stroke-width:2.5}
.zc-siege text{font:700 30px var(--f-x);letter-spacing:-.01em;fill:var(--encre);paint-order:stroke;stroke:#f6e3ad;stroke-width:7px;stroke-linejoin:round}
.zc-onde{fill:none;stroke:#c08c17;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:zcOnde 2.6s var(--ease) infinite}
.zc-onde--2{animation-delay:1.3s}
@keyframes zcOnde{from{transform:scale(1);opacity:.9}to{transform:scale(4.2);opacity:0}}
@media (max-width:700px){
  .zc-ville text{display:none}
  .zc-ville circle{r:9px}
  .zc-siege text{font-size:46px}
  .zc-mer{font-size:34px}
  .zc-trait{stroke-width:2.6}
}
}
@media (prefers-reduced-motion:reduce){.zc-onde{animation:none;opacity:0}}
.zone-side{grid-area:side}
.zone-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.25rem;margin-top:clamp(1.75rem,4vw,2.75rem);border-top:1px solid var(--joint)}
.zone-list li{border-bottom:1px solid var(--joint)}
.zone-list button{display:flex;justify-content:space-between;align-items:baseline;gap:0.625rem;width:100%;padding:0.75rem 0;border:0;background:none;font:500 0.9688rem/1.3 var(--f-x);color:var(--encre);text-align:left;cursor:pointer;transition:color .3s,padding .5s var(--ease)}
.zone-list button em{font-style:normal;font-size:0.8438rem;color:var(--gris);white-space:nowrap;font-variant-numeric:tabular-nums}
.zone-list button:hover,.zone-list button[aria-pressed="true"]{padding-left:0.625rem;background:linear-gradient(90deg,rgba(242,193,78,.22),rgba(242,193,78,0) 85%)}
.zone-list button[aria-pressed="true"] em{color:var(--encre)}
.zone-acts{margin-top:clamp(1.5rem,3vw,2.25rem);flex-wrap:nowrap}
.zone-acts .btn{padding-left:1.125rem;padding-right:1.125rem;white-space:nowrap}
@media (max-width:1180px){
  .zone-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"text" "stage" "side"}
  .zone-stage{margin:clamp(1.75rem,4vw,2.75rem) 0 0}
  .zone-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:820px){
  .zone-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .zone-stage{margin:1.5rem calc(var(--pad) * -1) 0}
  .zone-list{column-gap:1rem}
  .zone-list button{font-size:0.9062rem}
}

.faq{padding:var(--sec) 0}
.faq-in{max-width:65rem;display:grid;justify-items:center;gap:clamp(2rem,4vw,3.5rem)}
.faq-in .h2{text-align:center}
.faq-list{width:100%;border-top:1px solid var(--joint)}
.faq-list details{border-bottom:1px solid var(--joint)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.25rem;padding:1.5rem 0;font:400 clamp(1.25rem,1.7vw,1.625rem)/1.25 var(--f-t);letter-spacing:-.015em;transition:padding-left .5s var(--ease),color .3s}
.faq-list summary:hover{padding-left:0.625rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";flex:none;width:2.5rem;height:2.5rem;border:1px solid var(--joint);background:linear-gradient(currentColor,currentColor) center/0.8125rem 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 0.8125rem no-repeat;transition:transform .6s var(--ease),background-color .4s var(--ease),border-color .4s var(--ease)}
.faq-list summary:hover::after{border-color:var(--encre)}
.faq-list details.is-open summary::after{transform:rotate(135deg);background-color:var(--sun);border-color:var(--sun)}
.faq-list{overflow-anchor:none}
.faq-a{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .5s cubic-bezier(.65,0,.35,1)}
.faq-a>div{min-height:0;overflow:hidden}
.faq-a p{opacity:0;transition:opacity .3s}
.faq-list details.is-open .faq-a{grid-template-rows:1fr}
.faq-list details.is-open .faq-a p{opacity:1;transition:opacity .4s .12s}
@media (prefers-reduced-motion:reduce){.faq-a,.faq-a p{transition:none}}
.faq-list p{padding:0 3.5rem 1.5rem 0;color:var(--gris);max-width:62ch}

/* ---------- 8. Devis ---------- */
.quote{background:var(--gres);padding:var(--sec) 0;border-top:1px solid var(--joint)}
.quote-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2.5rem,6vw,6.875rem);align-items:start}
.quote-head{position:sticky;top:6.875rem}
.quote-head>p{margin-top:1.375rem;color:var(--gris);max-width:40ch;font-size:clamp(1rem,1.25vw,1.1875rem)}
.qf{display:grid;gap:1.375rem;align-content:start;padding:clamp(1.5rem,3.2vw,3rem);background:var(--blanc);box-shadow:0 0 0 1px var(--joint),0 2.5rem 5rem -3.75rem rgba(22,23,24,.4)}
.qf-top{display:flex;justify-content:space-between;align-items:center;min-height:1.75rem;font-size:0.875rem;color:var(--gris)}
.qf-step b{color:var(--encre);font-weight:600}
.qf-back{display:inline-flex;align-items:center;gap:0.375rem;border:0;background:none;padding:0.25rem 0;font:600 0.875rem var(--f-x);color:var(--encre);cursor:pointer;text-decoration:underline;text-underline-offset:0.25rem;text-decoration-color:var(--joint)}
.qf-back[hidden]{display:none}
.qf-back:hover{text-decoration-color:var(--encre)}
.qf-bar{display:block;height:3px;background:var(--gres-2,#e2e1dd);margin-top:-0.5rem}
.qf-bar i{display:block;height:100%;background:var(--sun);transform-origin:0 50%;transform:scaleX(.3333);transition:transform .7s var(--ease)}
.qf-pane{display:grid;gap:1.125rem;border:0;margin:0;padding:0;min-width:0}
.qf-pane[hidden]{display:none}
.qf-pane>legend{float:left;width:100%;padding:0;margin-bottom:1.375rem;font:400 clamp(1.75rem,2.6vw,2.5rem)/1.08 var(--f-t);letter-spacing:-.03em;color:var(--encre)}
.qf-pane>legend+*{clear:both}
.qf-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.5rem}
.qf-opts-1{grid-template-columns:minmax(0,1fr);margin-top:-0.625rem}
.qf-opts label{position:relative;cursor:pointer}
.qf-opts input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.qf-opts span{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;min-height:4.125rem;padding:0 1.125rem;border:1px solid var(--joint);background:var(--gres);font-size:1.0312rem;font-weight:500;transition:background-color .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.qf-opts span svg{opacity:.3;transition:transform .5s var(--ease),opacity .3s}
.qf-opts label:hover span{border-color:var(--encre);background:var(--blanc)}
.qf-opts label:hover span svg{opacity:1;transform:translateX(0.25rem)}
.qf-opts input:checked+span{background:var(--encre);color:var(--blanc);border-color:var(--encre)}
.qf-opts input:checked+span svg{opacity:1;color:var(--sun)}
.qf-opts input:focus-visible+span,.qf-canal input:focus-visible+span{outline:2px solid var(--sun);outline-offset:2px}
.qf-canal{display:flex;flex-wrap:wrap;gap:0.375rem;border:0;margin:0;padding:0;min-width:0}
.qf-canal legend{width:100%;margin-bottom:0.625rem;padding:0;font-size:0.875rem;font-weight:600}
.qf-canal label{position:relative;cursor:pointer}
.qf-canal input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.qf-canal span{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1rem;border:1px solid var(--joint);background:var(--gres);font-size:0.9062rem;font-weight:500;transition:background-color .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.qf-canal label:hover span{border-color:var(--encre)}
.qf-canal input:checked+span{background:var(--encre);color:var(--blanc);border-color:var(--encre)}
.qf-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.field{display:grid;gap:0.5rem;font-size:0.875rem;font-weight:600;color:var(--encre)}
.field small{font-size:0.8125rem;font-weight:400;color:var(--gris)}
.field input,.field textarea{caret-color:#b5861b;width:100%;font:400 1.0312rem/1.4 var(--f-x);color:var(--encre);background:var(--gres);border:1px solid var(--joint);border-radius:0;padding:0.8125rem 0.875rem;transition:border-color .3s var(--ease),background-color .3s var(--ease)}
.field textarea{resize:vertical;min-height:4.5rem}
.field input::placeholder,.field textarea::placeholder{color:#8a8d8c}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--encre);background:var(--blanc)}
.field input[aria-invalid="true"]{border-color:#c4462b}
.qf-error{color:#b23a20;font-size:0.9375rem}
.qf .btn{width:100%;min-height:3.75rem;font-size:1.0625rem}
.qf-note{font-size:0.8438rem;line-height:1.5;color:var(--gris)}

/* ---------- Pied de page ---------- */
.foot{background:var(--nuit);color:#c9ccca;padding:clamp(5rem,10vw,9.375rem) 0 calc(1.75rem + env(safe-area-inset-bottom));border-top:1px solid var(--nuit-joint);overflow:hidden}
.foot-cta{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.foot-big{font:400 clamp(2.75rem,6.4vw,6.5rem)/.95 var(--f-t);letter-spacing:-.045em;color:var(--blanc)}
.foot-acts{display:flex;gap:0.5rem;flex-wrap:wrap}
.foot-ig-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gap);margin:clamp(3.5rem,7vw,6.25rem) 0;padding:0 var(--gap)}
.foot-ig-strip a{display:block;aspect-ratio:1;overflow:hidden;background:var(--nuit-joint)}
.foot-ig-strip img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) brightness(.85);transition:filter .6s var(--ease),transform 1s var(--ease)}
.foot-ig-strip a:hover img{filter:none;transform:scale(1.06)}
.foot-cols{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2rem 3rem;padding-bottom:3rem;border-bottom:1px solid var(--nuit-joint)}
.foot-col{display:grid;align-content:start;gap:0.625rem;font-size:0.9375rem}
.foot-col h3{font-size:0.8125rem;font-weight:600;color:var(--gris-nuit);margin-bottom:0.375rem}
.foot .brand{color:var(--blanc);margin-bottom:0.375rem}
.foot-col a:not(.brand){color:var(--blanc);text-decoration:none;width:fit-content;background:linear-gradient(var(--sun),var(--sun)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease)}
.foot-col a:not(.brand):hover{background-size:100% 1px}
.foot-legal{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:1.5rem;font-size:0.8125rem;color:#8f9391}
.foot-top{display:inline-flex;align-items:center;gap:0.5rem;min-height:2.75rem;color:var(--blanc);text-decoration:none}
.foot-top svg{width:0.875rem;height:0.875rem;transform:rotate(-90deg);transition:transform .5s var(--ease)}
.foot-top:hover svg{transform:rotate(-90deg) translateX(0.25rem)}

/* ---------- Visionneuse ---------- */
.lb{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:rgba(22,23,24,0);padding:4.5rem 1.25rem 2.5rem}
.lb[hidden]{display:none}
.lb-fig{display:grid;gap:0.75rem;justify-items:center;max-width:min(92vw,75rem)}
.lb-fig img{max-height:76vh;width:auto;max-width:100%;object-fit:contain}
.lb-fig figcaption{color:var(--blanc);font-size:0.9375rem;opacity:0}
.lb-x{position:absolute;top:1.125rem;right:1.125rem;width:3rem;height:3rem;display:grid;place-items:center;background:var(--blanc);color:var(--encre);border:0;cursor:pointer;opacity:0}

.dock{display:none}

/* ---------- Tablette ---------- */
@media (max-width:1180px){
  .nav-tel span{display:none}
  .nav-tel{width:2.625rem;height:2.625rem;justify-content:center;border:1px solid currentColor}
}
@media (max-width:1320px){
  .nav,.nav nav{gap:1.125rem}
}
@media (max-width:1100px){
  .nav nav{display:none}
  .nav-tel{margin-left:auto}
}
@media (min-width:701px) and (max-width:1100px){
  .tl.tx p{font-size:0.8438rem}
}
@media (max-width:980px){
  .works-head,.team-grid,.cal-grid,.quote-grid,.ba-grid{grid-template-columns:minmax(0,1fr)}
  .ba-stage{justify-self:stretch;max-height:none}
  .quote-head{position:static}
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vz-ctrl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-photo{max-width:26.25rem}
}
@media (max-width:900px){
}
/* ---------- Téléphone ---------- */
@media (max-width:700px){
  body{font-size:1rem;padding-bottom:calc(4.375rem + env(safe-area-inset-bottom))}
  .nav{padding:0.75rem 1rem;gap:0.875rem}
  .nav-tel span,.nav-cta{display:none}
  .nav-tel{width:2.75rem;height:2.75rem;justify-content:center;border:1px solid currentColor}
  .hero-title{font-size:clamp(3.375rem,16vw,5rem)}
  .hero-lead{font-size:0.9688rem}
  .hero{min-height:35rem}
  .hero-bg img{object-position:40% 70%}
  .hero-text{padding-bottom:calc(5.5rem + env(safe-area-inset-bottom))}
  .hero-cap{display:none}
  .cta-row .btn{flex:1 1 auto}
  .opus{--row:calc((100cqw - 0.75rem - var(--gap)) / 2);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row dense}
  .tl{grid-area:auto}
  .tl[data-m="m22"]{grid-column:span 2;grid-row:span 2}
  .tl[data-m="m12"]{grid-row:span 2}
  .tl[data-m="m21"]{grid-column:span 2}
  .tl.ph::after{opacity:1;transform:none;font-size:0.7812rem;padding:1.75rem 0.625rem 0.625rem}
  .vz-stage{aspect-ratio:4/3.6;margin-left:-1rem;margin-right:-1rem}
  .vz-ctrl{grid-template-columns:minmax(0,1fr)}
  .vz-rooms{left:0.5rem;right:0.5rem;bottom:0.5rem;justify-content:space-between}
  .vz-rooms label{flex:1}.vz-rooms span{justify-content:center;width:100%;padding:0 0.375rem;font-size:0.875rem}
  .qf-row{grid-template-columns:minmax(0,1fr)}
  .zone-acts{flex-wrap:wrap}
  .zone-acts .btn{width:100%}
  .qf{padding:1.375rem 1rem;margin:0 -0.375rem;min-height:0}
  .qf-opts{grid-template-columns:minmax(0,1fr)}
  .qf-opts span{min-height:3.5rem}
  .bs-n{font-size:clamp(7.5rem,40vw,11.25rem)}
  .foot-ig-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-cols{grid-template-columns:minmax(0,1fr)}
  .dock{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:0.375rem;position:fixed;z-index:70;left:0;right:0;bottom:0;padding:0.5rem 0.5rem calc(0.5rem + env(safe-area-inset-bottom));background:rgba(22,23,24,.95);backdrop-filter:blur(0.625rem);-webkit-backdrop-filter:blur(0.625rem)}
  .dock a{display:flex;align-items:center;justify-content:center;gap:0.5rem;min-height:3.25rem;color:var(--blanc);text-decoration:none;font-weight:600;font-size:0.9375rem;border:1px solid var(--nuit-joint)}
  .dock svg{width:1.0625rem;height:1.0625rem}
  .dock .dock-main{background:var(--sun);color:var(--encre);border-color:var(--sun)}
}

/* ---------- Sans animation ---------- */
.static .stars-lg svg{fill:var(--sun)}
.static .stars-lg use{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important}
}

/* Très grands écrans : au-delà de 2880 px, le menu s'aligne sur le contenu */
@media (min-width:2881px){.nav{padding-left:calc((100vw - 2880px)/2 + var(--pad));padding-right:calc((100vw - 2880px)/2 + var(--pad))}}

/* ---------- Écrans tactiles : réponse immédiate, pas d'effet de survol qui reste collé ---------- */
a,button,summary,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
@media (hover:none){
  .faq-list summary:hover{padding-left:0}
  .zone-list button:hover,.zone-list button[aria-pressed="true"]{padding-left:0}
}

/* ---------- Téléphone : confort et fluidité ---------- */
@media (max-width:700px){
  /* Zones tactiles d'au moins 44 px */
  .chips span,.vz-rooms span{min-height:2.75rem}
  .zone-list button{min-height:2.75rem;padding:0.8125rem 0}
  .rv-bas a{min-height:2.75rem;padding:0.625rem 0}
  .foot-col{gap:0}
  .foot-col h3{margin-bottom:0.25rem}
  .foot-col a:not(.brand){display:inline-flex;align-items:center;min-height:2.75rem;background:none}
  .foot-top{min-height:2.75rem}
  /* Lisibilité */
  .mats em{font-size:0.8125rem}
  .zone-list button em{font-size:0.875rem}
  .foot-legal{color:#a9adab}
  /* Mise en page */
  .tl.tx{justify-content:center}
  .cal-out .btn{width:100%;justify-content:center}
  .foot-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-acts .btn{width:100%;justify-content:center}
  .foot-acts .btn:first-child{grid-column:1/-1}
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}
  .foot-col:nth-child(-n+2){grid-column:1/-1}
  /* Effets coûteux au défilement : des fonds pleins à la place du flou */
  .nav.is-scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(228,228,225,.98)}
  .nav.is-dark{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(22,23,24,.98)}
  .dock{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--nuit);transition:transform .3s var(--ease)}
  .dock.is-off{transform:translateY(110%)}
  .vz-rooms{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(246,245,242,.96)}
  .zc-onde{display:none}
}
/* Petits téléphones (iPhone SE et moins) : tout le haut de page tient dans l'écran */
@media (max-width:700px) and (max-height:640px){
  .hero{min-height:100svh}
  .hero .btn-ghost{display:none}
  .hero-title{font-size:clamp(2.875rem,14vw,3.75rem)}
}
