/* ==========================================================
   Les Gîtes de Mamie — feuille de style
   Palette tirée de l’affiche :
   Ciel d’Ardèche #2B9BE0 · Bleu Rivière #1461AC · Vert Chêne #1B5634
   Vert Prairie #6AB23E · Brume #F4F9F7 · Cœur de Mamie #EC6A6A
   Typo : Fredoka (titres arrondis) · Nunito (texte) · Asap Condensed (étiquettes)
   ========================================================== */

:root{
  --ciel:#2B9BE0; --ciel-2:#7FC8F2; --ciel-3:#DDF0FB;
  --riviere:#1461AC; --riviere-d:#0C3F74;
  --chene:#1B5634; --chene-d:#123D25; --prairie:#6AB23E; --mousse:#E5F2DF;
  --brume:#F4F9F7; --blanc:#fff; --coeur:#EC6A6A; --soleil:#F6CF45;
  --ink:#15302A; --ink-2:#4A625B;

  --ease:cubic-bezier(.16,1,.3,1);
  --r:24px; --r-sm:14px;
  --shadow:0 18px 40px -22px rgba(12,63,116,.35);

  --f-d:'Fredoka',ui-rounded,'Nunito','Segoe UI',system-ui,sans-serif;
  --f-b:'Nunito','Segoe UI',system-ui,-apple-system,sans-serif;
  --f-c:'Asap Condensed','Arial Narrow','Segoe UI',system-ui,sans-serif;

  --gutter:clamp(16px,4vw,40px);
  --nav-h:72px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f-b);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--brume);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--f-d);font-weight:600;line-height:1.08;margin:0;color:var(--chene);letter-spacing:-.01em}
h2{font-size:clamp(2rem,4.6vw,3.4rem)}
h3{font-size:1.35rem}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--soleil);outline-offset:3px;border-radius:8px}
.wrap{max-width:1200px;margin:0 auto;padding-inline:var(--gutter)}
.i{width:1.2em;height:1.2em;flex:none}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--chene);color:#fff;padding:.6rem 1rem;border-radius:10px;text-decoration:none}
.skip:focus{top:12px}

.kicker{font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.9rem;color:var(--prairie);margin:0 0 .8rem}
.kicker--light{color:var(--soleil)}
.kicker--sky{color:#fff;opacity:.95}
.lead{font-size:clamp(1.08rem,1.6vw,1.22rem);color:var(--ink-2)}
.head{max-width:760px;margin-bottom:clamp(2rem,5vw,3.5rem)}
.head h2{margin-bottom:1rem}

/* Icônes posées sur une « tache » organique, comme sur l’affiche */
.ico{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;color:var(--chene);background:var(--mousse);border-radius:46% 54% 58% 42% / 52% 44% 56% 48%}
.ico svg{width:24px;height:24px}
.ico--lg{width:56px;height:56px}
.ico--lg svg{width:28px;height:28px}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.9rem 1.4rem;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid transparent;transition:transform .25s var(--ease),background-color .25s var(--ease),color .25s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn--sun{background:var(--soleil);color:var(--chene-d)}
.btn--sun:hover{background:#FFE07A}
.btn--ghost{border-color:rgba(255,255,255,.6);color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.12)}
.round{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:2px solid currentColor;background:transparent;color:var(--chene);transition:transform .25s var(--ease),background-color .25s var(--ease)}
.round:hover{transform:scale(1.06);background:var(--mousse)}
.link{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;color:var(--riviere);text-decoration:none}
.link .i{transition:transform .25s var(--ease)}
.link:hover .i{transform:translateX(4px)}

/* ---------- Navigation ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:100;height:var(--nav-h);color:#fff;transition:background-color .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease)}
.nav.is-solid{background:rgba(255,255,255,.94);color:var(--chene);box-shadow:0 8px 30px -18px rgba(12,63,116,.4);backdrop-filter:blur(10px)}
.nav__inner{height:100%;max-width:1280px;margin:0 auto;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none}
.brand__logo{width:36px;height:36px;color:currentColor}
.brand__name{font-family:var(--f-d);font-weight:700;font-size:1.3rem;letter-spacing:-.01em;white-space:nowrap}
.brand__name em{font-style:normal;font-weight:500;opacity:.8}
.nav__links{display:flex;align-items:center;gap:clamp(.8rem,2vw,1.8rem)}
.nav__links a{text-decoration:none;font-weight:700;font-size:.98rem;position:relative;padding:.3rem 0}
.nav__links a:not(.nav__cta)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav__links a:not(.nav__cta):hover::after{transform:scaleX(1)}
.nav__cta{background:var(--soleil);color:var(--chene-d);padding:.55rem 1.1rem!important;border-radius:999px;transition:transform .25s var(--ease)}
.nav__cta:hover{transform:translateY(-2px)}
.nav__burger{display:none;width:46px;height:46px;border:0;background:transparent;border-radius:12px;position:relative}
.nav__burger span{position:absolute;left:12px;right:12px;height:2.5px;border-radius:2px;background:currentColor;transition:transform .3s var(--ease)}
.nav__burger span:first-child{top:18px}
.nav__burger span:last-child{top:26px}
.nav.is-open .nav__burger span:first-child{transform:translateY(4px) rotate(45deg)}
.nav.is-open .nav__burger span:last-child{transform:translateY(-4px) rotate(-45deg)}

@media (max-width:900px){
  .nav__burger{display:block}
  .nav__links{position:fixed;inset:var(--nav-h) 12px auto;flex-direction:column;align-items:stretch;gap:.2rem;padding:1rem;background:#fff;color:var(--chene);border-radius:var(--r);box-shadow:var(--shadow);opacity:0;transform:translateY(-10px);pointer-events:none;visibility:hidden;transition:opacity .3s var(--ease),transform .3s var(--ease),visibility 0s .3s}
  .nav__links a{padding:.8rem 1rem;border-radius:12px}
  .nav__links a:not(.nav__cta)::after{display:none}
  .nav__cta{text-align:center;margin-top:.4rem}
  .nav.is-open .nav__links{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition-delay:0s}
  .nav.is-open{background:#fff;color:var(--chene)}
  .brand__name{font-size:1.15rem}
}

/* ==========================================================
   HERO — signature : la maison-fenêtre s’ouvre sur la piscine
   ========================================================== */
.hero{position:relative;height:240vh;background:var(--ciel)}
.hero__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;align-items:center;padding-top:calc(var(--nav-h) + clamp(.5rem,3vh,2.5rem));
  background:linear-gradient(180deg,#1E8ED6 0%,#3AA7E6 38%,#8FD0F3 72%,#CDEBFA 100%)}
.hero__sky{position:absolute;inset:0;pointer-events:none}
.cloud{position:absolute;overflow:visible;opacity:.95}
.cloud--1{width:clamp(110px,14vw,210px);top:15%;left:5%}
.cloud--2{width:clamp(80px,10vw,150px);top:30%;right:7%;opacity:.8}
.cloud--3{width:clamp(60px,7vw,110px);top:44%;left:18%;opacity:.6}

.hero__layer{position:absolute;left:0;right:0;bottom:0;pointer-events:none;will-change:transform}
.hero__layer svg{width:100%;height:100%;display:block}
.hero__layer--far{height:62%;z-index:1}
.hero__layer--mid{height:56%;z-index:2}
.hero__layer--front{height:34%;z-index:4}

.hero__copy{position:relative;z-index:5;text-align:center;padding-inline:var(--gutter);will-change:transform,opacity}
.hero__title{font-family:var(--f-d);font-weight:700;color:#fff;font-size:clamp(2.7rem,9.4vw,7.2rem);line-height:.95;letter-spacing:-.005em;margin:0;
  text-shadow:0 .045em 0 var(--riviere),.03em .07em 0 var(--riviere),0 .12em .3em rgba(12,63,116,.25)}
.hero__title .w{display:inline-block}
.hero__sub{font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--chene);font-size:clamp(1rem,2.4vw,1.75rem);margin:.7rem 0 .2rem}
.hero__orn{width:clamp(110px,14vw,160px);height:auto;color:var(--chene)}
/* la maison dessinée : l’origine du zoom est le centre de la porte (x 50 %, y 74,7 %) */
.hero__house{position:relative;z-index:3;margin-top:auto;margin-bottom:clamp(36px,8vh,100px);
  width:min(66vw,460px,44svh);aspect-ratio:400/380;transform-origin:50% 74.7%}
.hero__art{display:block;width:100%;height:100%;overflow:visible}
.hero__door{transform-box:fill-box;transform-origin:left center}
.hero__inside{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;
  background:radial-gradient(120% 80% at 50% 0%,#2C7A48 0%,var(--chene) 55%,var(--chene-d) 100%)}
.hero__welcome{position:absolute;z-index:6;left:0;right:0;bottom:16vh;text-align:center;color:#fff;padding-inline:var(--gutter);opacity:0;pointer-events:none}
.hero__welcome-k{font-family:var(--f-d);font-weight:700;font-size:clamp(2.2rem,6vw,4.6rem);line-height:1;margin:0 0 .6rem;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.hero__welcome-t{font-weight:700;font-size:clamp(1rem,1.8vw,1.3rem);margin:0;text-shadow:0 2px 16px rgba(0,0,0,.4)}
.hero__scroll{position:absolute;z-index:6;bottom:14px;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:.4rem;color:#fff;text-decoration:none;font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;padding:.4rem .8rem;border-radius:999px;background:rgba(18,61,37,.35)}
.hero__scroll svg{animation:nudge 2.4s var(--ease) infinite}
@keyframes nudge{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(4px)}}

/* Intro du hero (au chargement) */
.js .hero__title .w,.js .hero__sub,.js .hero__orn,.js .kicker--sky{opacity:0;transform:translateY(.5em) rotate(-3deg)}
.js .hero__layer svg{transform:translateY(60px);opacity:0}
.js .hero__art{opacity:0;transform:translateY(40px) scale(.94)}
.is-loaded .hero__title .w,.is-loaded .hero__sub,.is-loaded .hero__orn,.is-loaded .kicker--sky,
.is-loaded .hero__layer svg,.is-loaded .hero__art{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.is-loaded .hero__layer--far svg{transition-delay:.05s}
.is-loaded .hero__layer--mid svg{transition-delay:.15s}
.is-loaded .hero__layer--front svg{transition-delay:.25s}
.is-loaded .kicker--sky{transition-delay:.3s}
.is-loaded .hero__title .w:nth-child(1){transition-delay:.38s}
.is-loaded .hero__title .w:nth-child(2){transition-delay:.45s}
.is-loaded .hero__title .w:nth-child(3){transition-delay:.52s}
.is-loaded .hero__title .w:nth-child(4){transition-delay:.59s}
.is-loaded .hero__sub{transition-delay:.7s}
.is-loaded .hero__orn{transition-delay:.78s}
.is-loaded .hero__art{transition-delay:.5s;transition-duration:1.2s}

/* ==========================================================
   L’HISTOIRE DU NOM
   ========================================================== */
.nom{padding-block:clamp(4.5rem,11vw,8.5rem);background:var(--brume);position:relative}
.nom__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.nom__text h2{margin-bottom:1.2rem}
.bubble{position:relative;margin:1.4rem 0 1.6rem;display:inline-block;font-family:var(--f-d);font-weight:600;font-size:clamp(1.6rem,3.4vw,2.4rem);color:#fff;background:var(--ciel);padding:.7rem 1.4rem .8rem;border-radius:28px 28px 28px 8px;box-shadow:0 6px 0 var(--riviere);line-height:1.15}
.nom__sign{font-family:var(--f-d);font-weight:600;font-size:1.25rem;color:var(--chene);margin-top:1.4rem;display:flex;align-items:center;gap:.6rem}
.nom__sign::before{content:"";width:34px;height:3px;border-radius:3px;background:var(--coeur)}
.tape{margin:0;padding:clamp(1.2rem,3vw,2.2rem);background:#fff;border-radius:var(--r);box-shadow:var(--shadow)}
.tape svg{width:100%;height:auto;overflow:visible}
.tape figcaption{font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;color:var(--ink-2);text-align:center;margin-top:.6rem}
.tape__strip{transform-box:fill-box;transform-origin:left center;transform:scaleX(.04)}
.tape.is-in .tape__strip{transform:scaleX(1);transition:transform 1.4s var(--ease) .35s}

/* ==========================================================
   LE DOMAINE
   ========================================================== */
.domaine{padding-block:clamp(4.5rem,10vw,8rem);background:linear-gradient(180deg,var(--ciel-3),var(--brume) 60%)}
.four{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.6rem,2vw,1.2rem);margin-bottom:clamp(2rem,5vw,3rem)}
.four__item{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:#fff;border-radius:var(--r-sm);padding:clamp(.8rem,2vw,1.4rem) .4rem;color:var(--chene);box-shadow:0 10px 30px -24px rgba(12,63,116,.5)}
.four__item svg{width:clamp(38px,6vw,60px);height:auto}
.four__item span{font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem}
.domaine__cols{display:grid;grid-template-columns:1fr 1fr auto;gap:clamp(1rem,3vw,2rem);align-items:center;margin-bottom:clamp(2.5rem,6vw,4rem)}
.pack{background:#fff;border-radius:var(--r);padding:clamp(1.4rem,3vw,2rem);height:100%}
.pack h3{margin-bottom:1rem}
.feats li,.equip li{display:flex;align-items:center;gap:.9rem;font-weight:600}
.feats li+li{margin-top:.8rem}
.sign{width:clamp(130px,15vw,190px);height:auto;overflow:visible}
.sign__board{transform-box:view-box;transform-origin:100px 20px;transition:transform .6s var(--ease)}
.sign:hover .sign__board{transform:rotate(-4deg)}

.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,clamp(180px,22vw,290px));gap:clamp(.6rem,1.4vw,1rem);
  grid-template-areas:"a b b c" "a d e c"}
.shot{position:relative;border:0;padding:0;border-radius:var(--r);overflow:hidden;background:var(--mousse)}
.shot img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.shot:hover img{transform:scale(1.04)}
.shot--a{grid-area:a}.shot--b{grid-area:b}.shot--c{grid-area:c}.shot--d{grid-area:d}.shot--e{grid-area:e}
.chip{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.94);color:var(--chene);font-weight:700;font-size:.9rem;padding:.35rem .8rem;border-radius:999px}

/* ==========================================================
   LE GÎTE
   ========================================================== */
.gite{padding-block:clamp(4.5rem,10vw,8rem);background:var(--brume)}
.beds{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto auto;align-items:center;gap:clamp(.4rem,1.2vw,1rem);margin-bottom:clamp(2.5rem,6vw,4rem)}
.bed{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.bed__img{display:block;width:100%;border:0;padding:0;aspect-ratio:4/3.3;overflow:hidden;background:var(--mousse)}
.bed__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.bed__img:hover img{transform:scale(1.05)}
.bed__body{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem 1.2rem}
.bed__body h3{font-size:1.2rem}
.bed__body p{margin:0;font-size:.95rem;color:var(--ink-2);line-height:1.35}
.bed__n{margin-left:auto;font-family:var(--f-d);font-weight:700;font-size:1.3rem;width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;background:var(--ciel);color:#fff}
.beds__op{font-family:var(--f-d);font-weight:700;font-size:2rem;color:var(--ciel)}
.beds__total{display:flex;flex-direction:column;align-items:center;justify-content:center;width:clamp(96px,10vw,130px);aspect-ratio:1;border-radius:50%;background:var(--chene);color:#fff;box-shadow:0 8px 0 var(--chene-d)}
.beds__total strong{font-family:var(--f-d);font-size:clamp(2.6rem,4vw,3.4rem);line-height:.9}
.beds__total span{font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}

.equip{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:clamp(3rem,7vw,5rem)}
.equip li{background:#fff;border-radius:var(--r-sm);padding:.9rem 1rem;line-height:1.3;font-size:.98rem}
.equip__wide{grid-column:span 4}
.equip small{display:block;font-weight:400;color:var(--ink-2);font-size:.92rem;margin-top:.15rem}

.strip__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;gap:1rem}
.strip__head h3{font-size:1.6rem}
.strip__nav{display:flex;gap:.6rem}
.strip__track{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,26vw,320px);gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;scrollbar-width:thin;scrollbar-color:var(--prairie) transparent;overscroll-behavior-x:contain}
.strip__item{position:relative;scroll-snap-align:start;border:0;padding:0;aspect-ratio:3/4;border-radius:var(--r);overflow:hidden;background:var(--mousse)}
.strip__item img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.strip__item:hover img{transform:scale(1.05)}
.strip__item span{position:absolute;left:12px;bottom:12px;background:rgba(255,255,255,.94);color:var(--chene);font-weight:700;font-size:.9rem;padding:.35rem .8rem;border-radius:999px}

/* ==========================================================
   LE PONT
   ========================================================== */
.pont{padding-block:clamp(4.5rem,10vw,8rem);background:linear-gradient(165deg,var(--riviere) 0%,var(--riviere-d) 100%);color:#E7F2FB;position:relative;overflow:hidden}
.pont h2{color:#fff;margin-bottom:1.2rem}
.pont__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.pont__facts{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem}
.pont__facts li{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .9rem;border-radius:999px;background:rgba(255,255,255,.1);font-weight:700;color:#fff}
.pont__facts .i{color:var(--soleil)}
.pont__photos{position:relative;padding-bottom:18%}
.pont__main,.pont__night{border:0;padding:0;display:block;border-radius:var(--r);overflow:hidden;background:var(--riviere-d)}
.pont__main{width:78%;aspect-ratio:3/4}
.pont__night{position:absolute;right:0;bottom:0;width:48%;aspect-ratio:3/4;border:6px solid var(--riviere-d)}
.pont__main img,.pont__night img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.pont__main:hover img,.pont__night:hover img{transform:scale(1.04)}
.pont__main img{object-position:50% 20%}

/* ==========================================================
   ÉTÉ / HIVER
   ========================================================== */
.saisons{position:relative;padding-block:clamp(4.5rem,10vw,8rem);overflow:hidden}
.saisons__bg{position:absolute;inset:0;transition:opacity .8s var(--ease)}
.saisons__bg--ete{background:linear-gradient(180deg,#FFF6D8 0%,var(--mousse) 100%)}
.saisons__bg--hiver{background:linear-gradient(180deg,#E3EEF6 0%,#CFE0EC 100%);opacity:0}
.saisons[data-season="hiver"] .saisons__bg--hiver{opacity:1}
.saisons .wrap{position:relative}
.switch{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;background:#fff;border-radius:999px;padding:6px;margin-bottom:clamp(1.8rem,4vw,2.6rem);box-shadow:0 10px 30px -20px rgba(12,63,116,.5);max-width:100%}
.switch button{position:relative;z-index:1;border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.3rem;border-radius:999px;font-weight:700;color:var(--ink-2);transition:color .3s var(--ease);white-space:nowrap}
.switch button[aria-selected="true"]{color:#fff}
.switch__pill{position:absolute;top:6px;bottom:6px;left:6px;width:calc(50% - 6px);border-radius:999px;background:var(--prairie);transition:transform .5s var(--ease),background-color .5s var(--ease)}
.saisons[data-season="hiver"] .switch__pill{transform:translateX(100%);background:var(--riviere)}
.panel{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,5vw,4rem);align-items:center}
.panel[hidden]{display:none}
.panel.is-in .panel__text>*,.panel.is-in .panel__img{animation:rise .8s var(--ease) both}
.panel.is-in .panel__text>*:nth-child(2){animation-delay:.07s}
.panel.is-in .panel__text>*:nth-child(3){animation-delay:.14s}
.panel.is-in .panel__img{animation-delay:.1s}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.panel h3{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:1rem}
.panel__img{width:100%;height:auto;max-height:380px;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow)}
.checks li{position:relative;padding-left:2rem;font-weight:600}
.checks li+li{margin-top:.55rem}
.checks li::before{content:"";position:absolute;left:0;top:.28em;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--prairie) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m7 12.5 3.2 3L17 9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat}
.saisons[data-season="hiver"] .checks li::before{background-color:var(--riviere)}

/* ==========================================================
   ALENTOURS
   ========================================================== */
.alentours{padding-block:clamp(4.5rem,10vw,8rem);background:var(--brume)}
.spots{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,2vw,1.2rem)}
.spot{position:relative;background:#fff;border-radius:var(--r);padding:clamp(1.4rem,3vw,2rem);transition:transform .35s var(--ease)}
.spot:hover{transform:translateY(-4px)}
.spot h3{margin:1rem 0 .5rem}
.spot p{color:var(--ink-2);margin:0}
.spot .link{margin-top:1rem}
.spot__tag{position:absolute;top:1.3rem;right:1.3rem;font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;color:var(--riviere);background:var(--ciel-3);padding:.25rem .6rem;border-radius:999px}
.spot--fav{background:var(--chene);color:#fff}
.spot--fav h3{color:#fff}
.spot--fav p{color:#D6E9DC}
.spot--fav .ico{background:var(--soleil);color:var(--chene-d)}
.spot--fav .spot__tag{background:var(--coeur);color:#fff}
.spot--fav .link{color:var(--soleil)}

/* ==========================================================
   CONTACT
   ========================================================== */
.contact{padding-block:0 clamp(4rem,9vw,7rem);background:var(--brume)}
.contact__card{display:grid;grid-template-columns:1.05fr .95fr;border-radius:calc(var(--r) + 8px);overflow:hidden;background:var(--chene);color:#DDEDE2;box-shadow:var(--shadow)}
.contact__main{padding:clamp(1.8rem,5vw,3.5rem)}
.contact__main h2{color:#fff;margin-bottom:1rem}
.contact__btns{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0 2rem}
.contact__list li{display:flex;gap:.8rem;align-items:flex-start;line-height:1.45}
.contact__list li+li{margin-top:.8rem}
.contact__list .i{color:var(--soleil);margin-top:.15em}
.contact__list strong{color:#fff}
.contact__list a{color:#fff;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px;overflow-wrap:anywhere}
.contact__map{position:relative;min-height:340px;background:var(--mousse)}
.contact__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.contact__route{position:absolute;right:14px;bottom:14px;display:inline-flex;align-items:center;gap:.4rem;background:#fff;color:var(--chene);font-weight:700;text-decoration:none;padding:.6rem 1rem;border-radius:999px;box-shadow:var(--shadow);transition:transform .25s var(--ease)}
.contact__route:hover{transform:translateY(-2px)}

/* ---------- Footer ---------- */
.footer{background:var(--chene-d);color:#BFD6C7;padding-block:2rem;font-size:.92rem}
.footer__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}
.footer p{margin:0}
.brand--foot{color:#fff}
.brand--foot .brand__logo{width:30px;height:30px}
.brand--foot .brand__name{font-size:1.1rem}
.footer__links{display:flex;gap:1.2rem}
.footer__links a{color:#fff;text-underline-offset:3px}

/* ---------- Visionneuse ---------- */
.lb{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:clamp(16px,4vw,48px)}
.lb[hidden]{display:none!important}
.lb__scrim{position:absolute;inset:0;border:0;background:rgba(9,32,22,.86);opacity:0;transition:opacity .35s var(--ease)}
.lb__fig{position:relative;margin:0;max-width:min(1100px,100%);opacity:0;transform:scale(.96);transition:opacity .45s var(--ease),transform .6s var(--ease)}
.lb.is-open .lb__scrim{opacity:1}
.lb.is-open .lb__fig{opacity:1;transform:none}
.lb__img{max-height:78vh;width:auto;margin:0 auto;border-radius:var(--r-sm)}
.lb__cap{color:#fff;text-align:center;font-weight:700;margin-top:.8rem}
.lb .round{position:absolute;color:#fff;background:rgba(0,0,0,.25)}
.lb .round:hover{background:rgba(255,255,255,.15)}
.lb__close{top:16px;right:16px}
.lb__prev{left:16px;top:50%;margin-top:-23px}
.lb__next{right:16px;top:50%;margin-top:-23px}

/* ==========================================================
   VU DU CIEL — plan interactif + survol vidéo
   ========================================================== */
.plan{padding-block:clamp(4.5rem,10vw,8rem);background:var(--chene);color:#D6E9DC}
.plan h2,.plan h3{color:#fff}
.plan .lead{color:#C9DFD0}
.stats{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.stats li{display:flex;align-items:baseline;gap:.45rem;background:rgba(255,255,255,.08);border-radius:999px;padding:.45rem 1rem;color:#fff;font-weight:700}
.stats strong{font-family:var(--f-d);font-size:1.5rem;line-height:1;color:var(--soleil)}
.plan__grid{display:grid;grid-template-columns:1.65fr 1fr;gap:clamp(1.2rem,3vw,2.4rem);align-items:start}
.plan__map{position:relative;margin:0;border-radius:var(--r);overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.plan__map img{width:100%;height:auto}
.plan__map::after{content:"";position:absolute;inset:0;background:rgba(9,32,22,.28);opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.plan__map.has-active::after{opacity:1}
.plan__pins{position:absolute;inset:0;z-index:2}
.pin{position:absolute;left:var(--x);top:var(--y);width:34px;height:34px;margin:-17px 0 0 -17px;padding:0;border:0;background:transparent}
.pin__n{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;background:#fff;color:var(--chene);font-family:var(--f-d);font-weight:700;font-size:1rem;line-height:1;box-shadow:0 0 0 3px var(--prairie),0 6px 16px rgba(0,0,0,.35);transition:transform .3s var(--ease),background-color .3s var(--ease),color .3s var(--ease)}
.pin__n svg{width:18px;height:18px}
.pin::before{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid #fff;opacity:0;transform:scale(.6);transition:opacity .3s var(--ease),transform .5s var(--ease)}
.pin.is-active{z-index:3}
.pin.is-active::before{opacity:.9;transform:scale(1)}
.pin:hover .pin__n,.pin.is-active .pin__n{transform:scale(1.15);background:var(--soleil);color:var(--chene-d)}
.pin__label{position:absolute;left:50%;bottom:calc(100% + 12px);white-space:nowrap;background:#fff;color:var(--chene);font-weight:700;font-size:.85rem;padding:.3rem .75rem;border-radius:999px;opacity:0;transform:translate(-50%,6px);pointer-events:none;transition:opacity .25s var(--ease),transform .35s var(--ease)}
.pin.is-active .pin__label{opacity:1;transform:translate(-50%,0)}
.pin--end .pin__label{left:auto;right:-4px;transform:translateY(6px)}
.pin--end.is-active .pin__label{transform:none}

.legend{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}
.legend button{display:flex;gap:.9rem;align-items:center;width:100%;text-align:left;border:0;background:rgba(255,255,255,.06);border-radius:var(--r-sm);padding:.75rem 1rem;color:#C9DFD0;transition:background-color .25s var(--ease),transform .3s var(--ease)}
.legend button:hover,.legend button.is-active{background:rgba(255,255,255,.14);transform:translateX(4px)}
.legend .pin__n{width:36px;height:36px;box-shadow:0 0 0 2px var(--prairie)}
.legend .pin__n svg{width:20px;height:20px}
.legend button.is-active .pin__n{background:var(--soleil);color:var(--chene-d)}
.legend strong{display:block;color:#fff;font-size:1.02rem;line-height:1.25}
.legend .t{display:block;font-size:.92rem;line-height:1.4}
.plan__hint{font-size:.88rem;color:#A9C7B3;margin:.9rem 0 0}

.survol{display:grid;grid-template-columns:1fr 1.65fr;gap:clamp(1.2rem,3vw,2.4rem);align-items:center;margin-top:clamp(3rem,7vw,5rem)}
.survol__text h3{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:.7rem}
.survol__media{position:relative;aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#0B2A1A;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.survol__media video{width:100%;height:100%;object-fit:cover;display:block}
.survol__toggle{position:absolute;left:14px;bottom:14px;color:#fff;background:rgba(0,0,0,.35);border-color:rgba(255,255,255,.85)}
.survol__toggle:hover{background:rgba(0,0,0,.5)}
.survol__toggle .i-pause,.is-playing .survol__toggle .i-play{display:none}
.is-playing .survol__toggle .i-pause{display:block}

/* ---------- Pont : vue aérienne annotée ---------- */
.aerial{position:relative;margin:clamp(3rem,7vw,5rem) 0 0;border-radius:var(--r);overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.55)}
.aerial img{width:100%;height:auto}
.aerial__tag{position:absolute;left:var(--x);top:var(--y);display:flex;align-items:center;gap:.5rem;margin:-14px 0 0 -7px}
.aerial__tag::before{content:"";width:14px;height:14px;flex:none;border-radius:50%;background:var(--soleil);box-shadow:0 0 0 4px rgba(246,207,69,.35)}
.aerial__tag>span{background:rgba(12,63,116,.88);color:#fff;font-weight:700;font-size:.9rem;padding:.3rem .75rem;border-radius:999px;white-space:nowrap}
.aerial__tag--home::before{background:var(--coeur);box-shadow:0 0 0 4px rgba(236,106,106,.4)}
.aerial__tag--home>span{background:var(--coeur)}
.aerial__tag--end{left:auto;right:calc(100% - var(--x));flex-direction:row-reverse;margin:-14px -7px 0 0}
.aerial figcaption{position:absolute;left:0;right:0;bottom:0;padding:3rem 1.4rem 1.1rem;background:linear-gradient(transparent,rgba(12,63,116,.85));color:#fff;font-weight:700;pointer-events:none}
.aerial figcaption span{display:block;font-weight:600;font-size:.9rem;opacity:.85;margin-top:.15rem}
/* points cliquables */
.aerial__tag{z-index:2;border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}
.aerial__tag::after{content:"";position:absolute;left:0;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;border:2px solid var(--soleil);pointer-events:none;animation:ping 2.6s var(--ease) infinite}
.aerial__tag--end::after{left:auto;right:0}
.aerial__tag--home::after{border-color:var(--coeur)}
@keyframes ping{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(2.8);opacity:0}}
.aerial__tag>span{transition:background-color .25s var(--ease),transform .3s var(--ease)}
.aerial__tag:hover>span,.aerial__tag:focus-visible>span{background:var(--riviere-d);transform:translateY(-2px)}
.aerial__tag--home:hover>span,.aerial__tag--home:focus-visible>span{background:#D9504F}

/* ---------- Pop-up lieux ---------- */
.place{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:clamp(12px,3vw,40px)}
.place[hidden]{display:none!important}
.place__scrim{position:absolute;inset:0;border:0;padding:0;background:rgba(9,32,22,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .4s var(--ease);cursor:default}
.place__card{position:relative;display:grid;grid-template-columns:1.05fr 1fr;width:min(980px,100%);max-height:min(88vh,720px);background:#fff;border-radius:calc(var(--r) + 6px);overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.6);opacity:0;transform:translateY(28px) scale(.98);transition:opacity .5s var(--ease),transform .8s var(--ease)}
.place.is-open .place__scrim{opacity:1}
.place.is-open .place__card{opacity:1;transform:none}
.place__media{position:relative;overflow:hidden;background:var(--mousse);min-height:320px}
.place__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.4s var(--ease)}
.place.is-open .place__media img{transform:none}
.place__credit{position:absolute;left:10px;bottom:10px;z-index:1;max-width:calc(100% - 20px);background:rgba(0,0,0,.55);color:#fff;font-size:.72rem;line-height:1.3;padding:.25rem .6rem;border-radius:999px;text-decoration:none}
.place__credit:hover{text-decoration:underline}
.place__body{padding:clamp(1.5rem,3.5vw,2.6rem);overflow-y:auto}
.place__body h3{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:1rem}
.place__body p{color:var(--ink-2)}
.place__body>*{opacity:0;transform:translateY(14px)}
.place.is-open .place__body>*{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .8s var(--ease);transition-delay:calc(150ms + var(--i,0) * 70ms)}
.place__facts{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.2rem 0 0}
.place__facts li{display:inline-flex;align-items:center;gap:.45rem;background:var(--mousse);color:var(--chene);font-weight:700;font-size:.9rem;padding:.4rem .8rem;border-radius:999px}
.place__facts .i{color:var(--prairie)}
.place__body .link{margin-top:1.3rem}
.place__close{position:absolute;top:12px;right:12px;z-index:2;background:#fff}
@media (max-width:760px){
  .place{place-items:end stretch;padding:0}
  .place__card{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);max-height:92vh;border-radius:26px 26px 0 0;transform:translateY(60px)}
  .place__media{aspect-ratio:16/10;min-height:0}
}

/* ---------- Avis Google ---------- */
.avis{padding-block:clamp(4.5rem,10vw,8rem);background:linear-gradient(180deg,var(--brume),var(--ciel-3))}
.avis__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.avis__head{position:sticky;top:calc(var(--nav-h) + 2rem)}
.avis__head h2{margin-bottom:1.4rem}
.score{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:var(--r);padding:1.1rem 1.3rem;box-shadow:var(--shadow);margin-bottom:1.4rem}
.score__big{font-family:var(--f-d);font-weight:700;font-size:3.4rem;line-height:1;color:var(--chene)}
.score__meta{display:grid;gap:.3rem;font-weight:700;color:var(--ink-2);font-size:.95rem;line-height:1.3}
.stars{display:inline-flex;gap:2px;color:#F2B01E}
.stars svg{width:18px;height:18px}
.topics__k{font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--ink-2);margin:0 0 .5rem}
.topics{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.4rem}
.topics li{background:#fff;border-radius:999px;padding:.35rem .85rem;font-weight:700;font-size:.9rem;color:var(--chene)}
.topics li span{color:var(--prairie);margin-left:.35rem}
.reviews{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.review{margin:0;background:#fff;border-radius:var(--r);padding:clamp(1.3rem,2.6vw,1.8rem);display:flex;flex-direction:column;gap:.9rem;box-shadow:0 14px 34px -26px rgba(12,63,116,.45)}
.review--wide{grid-column:span 2}
.review blockquote{margin:0;font-size:1.02rem;line-height:1.55;color:var(--ink)}
.review--wide blockquote{font-family:var(--f-d);font-weight:500;font-size:clamp(1.25rem,2.2vw,1.55rem);line-height:1.32;color:var(--chene)}
.review figcaption{margin-top:auto;display:flex;align-items:center;gap:.7rem}
.review figcaption strong{display:block;line-height:1.2;color:var(--chene)}
.review figcaption small{color:var(--ink-2);font-size:.85rem}
.avatar{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:50%;font-family:var(--f-d);font-weight:700;color:#fff;background:var(--ciel)}
.review:nth-child(2) .avatar{background:var(--prairie)}
.review:nth-child(3) .avatar{background:var(--coeur)}
.review:nth-child(4) .avatar{background:var(--riviere)}
.review:nth-child(5) .avatar{background:var(--chene)}

/* ---------- Lien d’appel + pop-up téléphone ---------- */
.call-link{position:relative;display:inline-flex;align-items:center;gap:.5rem;border:0;background:none;padding:0;font-family:var(--f-d);font-weight:600;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.2;color:var(--soleil);cursor:pointer}
.call-link::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:3px;border-radius:3px;background:currentColor;transform-origin:left;transition:transform .35s var(--ease)}
.call-link:hover::after{transform:scaleX(.3)}
.call-link .i{transition:transform .3s var(--ease)}
.call-link:hover .i{transform:translateX(5px)}
.call-link--inline{font-family:var(--f-b);font-weight:700;font-size:inherit;color:var(--riviere)}
.call-link--inline::after{height:2px;bottom:-1px}
.contact__call{margin:1.6rem 0 2.2rem}
button.nav__cta{border:0;font-family:inherit;font-weight:700;font-size:.98rem;line-height:inherit;cursor:pointer}

.call{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:var(--gutter);text-align:center;color:#fff;overflow:hidden}
.call[hidden]{display:none!important}
.call__bg{position:absolute;inset:0;border:0;padding:0;background:rgba(18,61,37,.95);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;transition:opacity .45s var(--ease);cursor:default}
.call__hills{position:absolute;left:0;right:0;bottom:0;height:30vh;opacity:0;transform:translateY(40px);pointer-events:none;transition:opacity .8s var(--ease),transform 1.1s var(--ease)}
.call__hills svg{width:100%;height:100%;display:block}
.call__inner{position:relative;max-width:980px}
.call__logo{display:block;width:54px;height:54px;margin:0 auto 1rem}
.call__k{font-family:var(--f-c);font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--soleil);margin:0 0 .5rem}
.call__title{color:#fff;font-size:clamp(1.4rem,3vw,2rem);margin:0 0 1.2rem}
.call__num{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:0 .26em;font-family:var(--f-d);font-weight:700;font-size:clamp(2.9rem,12.5vw,8.6rem);line-height:1.02;color:#fff;text-decoration:none;text-shadow:0 .05em 0 var(--chene-d);border-radius:14px;transition:color .25s var(--ease)}
.call__num:hover{color:var(--soleil)}
.call__num span{display:inline-block;opacity:0;transform:translateY(.45em)}
.call__sub{max-width:34rem;margin:1.5rem auto 1.4rem;color:#CFE3D6}
.call__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}
.call__btn{display:inline-flex;align-items:center;gap:.5rem;border:2px solid rgba(255,255,255,.55);background:transparent;color:#fff;border-radius:999px;padding:.7rem 1.2rem;font-weight:700;text-decoration:none;cursor:pointer;transition:background-color .25s var(--ease),transform .25s var(--ease)}
.call__btn:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.call__btn--sun{background:var(--soleil);border-color:var(--soleil);color:var(--chene-d)}
.call__btn--sun:hover{background:#FFE07A}
.call__close{position:absolute;top:16px;right:16px;z-index:2;color:#fff;border-color:rgba(255,255,255,.7)}
.call__close:hover{background:rgba(255,255,255,.12)}
.call__inner>*:not(.call__num){opacity:0;transform:translateY(16px)}
.call.is-open .call__bg{opacity:1}
.call.is-open .call__hills{opacity:1;transform:none}
.call.is-open .call__inner>*{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--d,0) * 70ms)}
.call.is-open .call__num span{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .9s var(--ease);transition-delay:calc(200ms + var(--i,0) * 70ms)}

@media (max-width:900px){
  .plan__grid,.survol,.avis__grid{grid-template-columns:1fr}
  .survol__text{order:1}
  .avis__head{position:static}
}
@media (max-width:560px){
  .pin,.pin__n{width:24px;height:24px}
  .pin{margin:-12px 0 0 -12px}
  .pin__n{font-size:.8rem;box-shadow:0 0 0 2px var(--prairie),0 4px 10px rgba(0,0,0,.35)}
  .pin__n svg{width:13px;height:13px}
  .pin__label{font-size:.75rem;padding:.2rem .55rem;bottom:calc(100% + 8px)}
  .legend .pin__n{width:32px;height:32px}
  .aerial__tag>span{font-size:.72rem;padding:.2rem .5rem}
  .aerial__tag::before{width:10px;height:10px}
  .aerial__tag::after{width:10px;height:10px;margin-top:-5px}
  .aerial__tag[data-place="pont"]{--y:10%!important}
  .aerial figcaption span{font-size:.78rem}
  .reviews{grid-template-columns:1fr}
  .review--wide{grid-column:auto}
  .aerial figcaption{font-size:.85rem;padding:2rem 1rem .8rem}
  .stats li{font-size:.9rem}
}

/* ---------- « Dans chaque gîte » : grossit puis rétrécit ---------- */
.kicker--pulse{font-family:var(--f-d);font-weight:700;text-transform:none;letter-spacing:-.01em;font-size:clamp(2.2rem,5.6vw,3.8rem);line-height:1.1;color:var(--prairie);margin-bottom:.9rem}
.kicker--pulse span{display:inline-block;transform-origin:left center;animation:grow 2.6s cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
@keyframes grow{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}

/* ---------- Loupe au survol des photos ---------- */
.loupe{position:fixed;left:0;top:0;z-index:250;width:180px;height:180px;margin:-90px 0 0 -90px;border-radius:50%;border:4px solid #fff;background-color:#fff;background-repeat:no-repeat;box-shadow:0 14px 34px rgba(0,0,0,.35);pointer-events:none;opacity:0;transition:opacity .2s var(--ease);will-change:transform}
.loupe::after{content:"";position:absolute;left:calc(50% + 60px);top:calc(50% + 60px);width:14px;height:62px;margin-left:-7px;border-radius:7px;background:var(--chene);box-shadow:inset 0 0 0 2px rgba(255,255,255,.25);transform-origin:50% 0;transform:rotate(-45deg)}
.loupe.is-on{opacity:1}
@media (hover:hover) and (pointer:fine){
  .shot,.strip__item,.bed__img,.pont__main,.pont__night,.panel__img,.place__media{cursor:zoom-in}
  .shot:hover img,.strip__item:hover img,.bed__img:hover img,.pont__main:hover img,.pont__night:hover img{transform:none}
}

/* ---------- Révélations au scroll ---------- */
.js [data-reveal]{opacity:0;transform:translateY(28px)}
.js [data-reveal].is-in{opacity:1;transform:none;transition:opacity .9s var(--ease),transform 1s var(--ease)}
.js [data-stagger]>*{opacity:0;transform:translateY(22px)}
.js [data-stagger].is-in>*{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .9s var(--ease);transition-delay:calc(var(--i,0) * 70ms)}
.js .beds.is-in>.bed:hover,.js .spots.is-in>.spot:hover{transform:translateY(-4px);transition-delay:0s}

/* ==========================================================
   RESPONSIVE
   ========================================================== */
@media (max-width:1024px){
  .beds{grid-template-columns:1fr 1fr 1fr}
  .beds__op{display:none}
  .beds__total{grid-column:1/-1;justify-self:center;flex-direction:row;gap:.6rem;width:auto;aspect-ratio:auto;border-radius:999px;padding:.6rem 1.4rem;box-shadow:0 5px 0 var(--chene-d)}
  .equip{grid-template-columns:repeat(2,1fr)}
  .equip__wide{grid-column:span 2}
  .spots{grid-template-columns:repeat(2,1fr)}
  .domaine__cols{grid-template-columns:1fr 1fr}
  .sign{display:none}
}
@media (max-width:800px){
  .nom__grid,.pont__grid,.panel,.contact__card{grid-template-columns:1fr}
  .tape{max-width:520px}
  .bento{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:clamp(160px,44vw,260px);grid-template-areas:"a b" "a c" "d c" "e e"}
  .beds{grid-template-columns:1fr}
  .bed{display:grid;grid-template-columns:120px 1fr}
  .bed__img{aspect-ratio:auto;height:100%}
  .bed__body{padding:.9rem}
  .bed__body .ico{display:none}
  .panel__img{order:-1;aspect-ratio:16/10;max-height:240px}
  .contact__map{min-height:300px}
  .pont__photos{max-width:520px}
}
@media (max-width:560px){
  body{font-size:1rem}
  .four span{font-size:.72rem;letter-spacing:.04em}
  .domaine__cols{grid-template-columns:1fr}
  .equip{grid-template-columns:1fr}
  .equip__wide{grid-column:auto}
  .spots{grid-template-columns:1fr}
  .switch{display:grid;width:100%}
  .switch button{padding:.75rem .6rem;font-size:.9rem;white-space:normal;line-height:1.2}
  .switch button .i{display:none}
  .hero{height:200vh}
  .contact__btns .btn{flex:1 1 100%;justify-content:center}
  .footer__inner{flex-direction:column;align-items:flex-start}
}

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .hero{height:auto}
  .hero__stage{position:relative}
  .call__inner>*,.call__num span,.place__body>*,.place__card{opacity:1!important;transform:none!important}
  .js [data-reveal],.js [data-stagger]>*,
  .js .hero__title .w,.js .hero__sub,.js .hero__orn,.js .kicker--sky,.js .hero__layer svg,.js .hero__art{opacity:1!important;transform:none!important}
  .tape__strip{transform:none}
}
