/* Riad Golden : la charte de la maison.
   Ivoire du plâtre sculpté, miel du tadelakt des chambres, émeraude du bassin, laiton des lanternes, velours
   corail des fauteuils du patio. Castoro Titling = les capitales « GOLDEN » du blason brodé (nom, nav, étiquettes,
   boutons) ; Ibarra Real Nova = le « Riad » du ruban (titres en italique, texte, prix, citations). Angles droits.
   Le mouvement (photos qui se posent, blason et brins qui se tracent, mots qui montent) se fait en transform et en
   tracé de traits, jamais en masquant du texte. Tout s'arrête sous prefers-reduced-motion. */

@font-face{font-family:"Castoro Titling";src:url(assets/fonts/castoro-titling.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Castoro Titling";src:url(assets/fonts/castoro-titling-ext.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-0130,U+0132-0151,U+0154-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Ibarra Real Nova";src:url(assets/fonts/ibarra.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Ibarra Real Nova";src:url(assets/fonts/ibarra-ext.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-0130,U+0132-0151,U+0154-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Ibarra Real Nova";src:url(assets/fonts/ibarra-italic.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Ibarra Real Nova";src:url(assets/fonts/ibarra-italic-ext.woff2) format("woff2");font-weight:400 700;font-style:italic;font-display:swap;unicode-range:U+0100-0130,U+0132-0151,U+0154-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --ivoire:#F6F1E8; --miel:#EFE4D2; --miel-f:#E4D4BA;
  --emeraude:#0F3A2F; --emeraude-2:#0A2C23; --emeraude-3:#1A4B3E;
  --laiton:#A27A36; --laiton-f:#7A5A22; --or:#D9B872; --or-c:#E6C987;
  --velours:#A9472A; --encre:#2B2119; --gris:#6A5C4F;
  --filet:rgba(43,33,25,.17); --filet-c:rgba(217,184,114,.34);
  --titre:"Castoro Titling","Trajan Pro",Georgia,serif;
  --texte:"Ibarra Real Nova",Georgia,"Times New Roman",serif;
  --doux:cubic-bezier(.2,.7,.2,1); --trace:cubic-bezier(.6,.1,.2,1);
  --nav-h:76px; --gouttiere:clamp(16px,4.4vw,64px); --max:1240px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 64px)}
body{margin:0;background:var(--ivoire);color:var(--encre);font:400 18px/1.62 var(--texte);font-feature-settings:"kern","liga";-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.a-barre-m{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--laiton);outline-offset:3px}
.saut{position:absolute;left:12px;top:-60px;z-index:300;background:var(--emeraude);color:var(--ivoire);padding:10px 16px;font:14px var(--titre);letter-spacing:.14em}
.saut:focus{top:12px}

/* ---------- type ---------- */
.etq{display:block;font:400 12.5px/1.4 var(--titre);letter-spacing:.26em;text-transform:uppercase;color:var(--laiton-f)}
.sombre .etq{color:var(--or)}
.tete{margin-bottom:clamp(26px,3.4vw,44px)}
.tete h2{font:italic 400 clamp(34px,4.3vw,58px)/1.06 var(--texte);letter-spacing:-.005em;margin-top:.32em;text-wrap:balance}
.tete--centre{text-align:center}
.tete--centre .brin{margin-left:auto;margin-right:auto}
.tete--clair h2{color:var(--ivoire)}
.lien{display:inline-flex;align-items:center;gap:.6em;font:400 13px/1 var(--titre);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--encre);padding:10px 0;border-bottom:1px solid var(--laiton)}
.lien .ico--lien{width:18px;height:18px;transition:transform .5s var(--doux)}
.lien:hover .ico--lien{transform:translateX(5px)}
.ico{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:50px;padding:0 28px;border:1px solid var(--emeraude);background:var(--emeraude);color:var(--ivoire);font:400 12.5px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;cursor:pointer;border-radius:0;transition:background .4s var(--doux),color .4s var(--doux),border-color .4s var(--doux)}
.btn:hover{background:var(--emeraude-3);border-color:var(--emeraude-3)}
.btn--ligne{background:transparent;color:var(--emeraude)}
.btn--ligne:hover{background:var(--emeraude);color:var(--ivoire)}
.btn--clair{background:rgba(246,241,232,.94);border-color:rgba(246,241,232,.94);color:var(--emeraude)}
.btn--clair:hover{background:var(--ivoire);border-color:var(--ivoire)}
.btn--or{background:var(--or);border-color:var(--or);color:var(--emeraude-2)}
.btn--or:hover{background:var(--or-c);border-color:var(--or-c)}
.btn--ligne-clair{background:transparent;border-color:var(--filet-c);color:var(--ivoire)}
.btn--ligne-clair:hover{border-color:var(--or);color:var(--or-c)}
.btn[aria-disabled="true"]{opacity:.45;pointer-events:none}

/* ---------- fonds ---------- */
.papier{background:var(--ivoire)}
.miel{background:var(--miel)}
.sombre{background:var(--emeraude);color:var(--ivoire)}
section{position:relative}
.papier,.miel,.sombre{padding:clamp(72px,9vw,132px) var(--gouttiere)}

/* ---------- tracés : blason, brins, arcs, bassin, plan ---------- */
.trait{stroke-dasharray:1 1;stroke-dashoffset:0}
.brin{display:block;width:72px;height:24px;margin-bottom:14px;overflow:visible;color:var(--laiton)}
.brin path{fill:currentColor;stroke:currentColor;stroke-width:.9}
.brin .tige{fill:none;stroke-width:1.2}
.brin--clair{color:var(--or-c)}
.sombre .brin{color:var(--or)}
[data-trace].attend .trait{stroke-dashoffset:1;fill-opacity:0}
[data-trace].vu .trait{animation-name:trace,remplit;animation-duration:1.3s,.8s;animation-timing-function:cubic-bezier(.6,.1,.2,1),ease;animation-fill-mode:both,both;animation-delay:calc(var(--i,0) * 70ms),calc(.7s + var(--i,0) * 70ms)}
@keyframes trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes remplit{from{fill-opacity:0}to{fill-opacity:1}}
@keyframes pose{from{transform:scale(1.03)}to{transform:none}}
@keyframes monte{from{transform:translateY(18px)}to{transform:none}}

.crest{display:block;overflow:visible}
.crest .tige{fill:none;stroke:currentColor;stroke-width:1.6}
.crest__feuilles path,.crest__lettres path{fill:currentColor;stroke:currentColor;stroke-width:1.1}
.crest--petit{width:84px;height:84px;margin:0 auto 18px;color:var(--or)}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:100;height:var(--nav-h);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:24px;padding:0 var(--gouttiere);color:var(--ivoire);background:transparent;border-bottom:1px solid transparent;transition:background .45s var(--doux),color .45s var(--doux),border-color .45s var(--doux)}
.nav::before{content:"";position:absolute;inset:0 0 -90px 0;background:linear-gradient(rgba(8,24,18,.7),rgba(8,24,18,.34) 55%,rgba(8,24,18,0));pointer-events:none;transition:opacity .45s}
.nav:not(.plein) .nav__links a,.nav:not(.plein) .nav__langue{text-shadow:0 1px 10px rgba(6,20,15,.55)}
.nav.plein{background:var(--ivoire);color:var(--encre);border-bottom-color:var(--filet)}
.nav.plein::before{opacity:0}
.nav__logo{position:relative;display:block;height:44px;justify-self:start}
.nav__logo img{height:44px;width:auto}
.nav__logo .l-fonce{position:absolute;inset:0 auto auto 0;opacity:0;transition:opacity .45s}
.nav__logo .l-clair{transition:opacity .45s}
.nav.plein .nav__logo .l-fonce{opacity:1}
.nav.plein .nav__logo .l-clair{opacity:0}
.nav__links{position:relative;display:flex;gap:clamp(18px,2.4vw,38px)}
.nav__links a{font:400 12.5px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;padding:8px 0;border-bottom:1px solid transparent;transition:border-color .4s}
.nav__links a:hover,.nav__links a[aria-current="page"]{border-bottom-color:currentColor}
.nav__pied-menu{display:none}
.nav__droite{position:relative;display:flex;align-items:center;gap:22px;justify-self:end}
.nav__langue{font:400 12px/1 var(--titre);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;opacity:.9}
.nav__reserver{min-height:42px;padding:0 20px;background:transparent;border-color:rgba(246,241,232,.7);color:var(--ivoire)}
.nav__reserver:hover{background:var(--ivoire);color:var(--emeraude)}
.nav.plein .nav__reserver{background:var(--emeraude);border-color:var(--emeraude);color:var(--ivoire)}
.nav__burger{display:none;width:44px;height:44px;border:0;background:none;padding:10px;cursor:pointer;position:relative;z-index:2}
.nav__burger span{display:block;height:1.5px;background:currentColor;margin:5px 0;transition:transform .45s var(--doux),opacity .3s}
.nav.menu-open .nav__burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav.menu-open .nav__burger span:nth-child(2){opacity:0}
.nav.menu-open .nav__burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden;background:var(--emeraude-2);color:var(--ivoire);display:flex;flex-direction:column;justify-content:center;align-items:center}
.hero__diapo{position:absolute;inset:0}
.hero__ph{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease}
.hero__ph.est-vu{opacity:1}
.hero__ph img,.hero__ph picture{width:100%;height:100%;object-fit:cover}
.hero__ph.est-vu img{animation:pose 16s cubic-bezier(.2,.7,.2,1) both}
.hero__voile{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(ellipse 46% 40% at 50% 46%,rgba(8,26,20,.5),rgba(8,26,20,0) 72%),
  linear-gradient(rgba(8,26,20,0) 62%,rgba(8,26,20,.55))}
.hero__texte{position:relative;z-index:2;text-align:center;padding:calc(var(--nav-h) + 8px) var(--gouttiere) 150px;display:flex;flex-direction:column;align-items:center}
.crest--hero{width:clamp(92px,8.6vw,124px);height:auto;aspect-ratio:1;color:var(--or-c);filter:drop-shadow(0 1px 10px rgba(6,20,15,.55));margin-bottom:10px}
.crest--hero .r{color:var(--or)}
.crest--hero .trait{animation-name:trace,remplit;animation-duration:1.5s,.9s;animation-timing-function:cubic-bezier(.6,.1,.2,1),ease;animation-fill-mode:both,both;animation-delay:calc(.15s + var(--i,0) * 75ms),calc(.95s + var(--i,0) * 75ms)}
.crest--hero .tige{animation-duration:2s,.1s;animation-delay:.1s,0s}
.hero__nom{display:flex;flex-direction:column;align-items:center;line-height:.95;text-shadow:0 2px 24px rgba(6,20,15,.42);animation:monte 1s cubic-bezier(.2,.7,.2,1) .3s both}
.hero__riad{font:italic 400 clamp(30px,3.6vw,52px)/1 var(--texte);color:var(--or-c)}
.hero__golden{font:400 clamp(50px,8.8vw,138px)/1 var(--titre);letter-spacing:.14em;margin-right:-.14em;text-transform:uppercase}
.hero__phrase{font:italic 400 clamp(19px,1.8vw,25px)/1.4 var(--texte);margin:20px 0 28px;max-width:38ch;text-wrap:balance;text-shadow:0 1px 16px rgba(6,20,15,.6);animation:monte 1s cubic-bezier(.2,.7,.2,1) .44s both}
.hero__btn{animation:monte 1s cubic-bezier(.2,.7,.2,1) .58s both}
.hero__pastille{position:absolute;z-index:3;right:var(--gouttiere);bottom:128px;display:flex;align-items:center;gap:2px;padding:4px 6px 4px 14px;background:rgba(8,26,20,.42);border:1px solid rgba(246,241,232,.22);font:400 11.5px/1 var(--titre);letter-spacing:.2em}
.hero__pastille span{margin-right:6px;font-variant-numeric:tabular-nums}
.hero__pastille button{width:34px;height:34px;border:0;background:none;color:var(--ivoire);cursor:pointer;display:grid;place-items:center}
.hero__pastille svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}
.hero__pause svg path{stroke-linecap:round}
.barre{position:absolute;z-index:3;left:50%;bottom:30px;transform:translateX(-50%);width:min(980px,calc(100% - 2 * var(--gouttiere)));display:grid;grid-template-columns:1fr 1fr .7fr auto;background:var(--ivoire);color:var(--encre);border:1px solid rgba(246,241,232,.6)}
.barre__champ{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 22px;border-right:1px solid var(--filet);min-width:0}
.barre__champ span{font:400 11px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--laiton-f)}
.barre input,.barre select{-webkit-appearance:none;appearance:none;width:100%;min-height:30px;border:0;background:transparent;font:italic 400 19px/1.2 var(--texte);color:var(--encre);padding:0;border-radius:0}
.barre input::-webkit-date-and-time-value{text-align:left;margin:0}
.barre input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}
.barre__btn{min-height:auto;height:100%;padding:0 34px}

/* ---------- faits pratiques ---------- */
.faits{background:var(--ivoire);border-bottom:1px solid var(--filet);padding:30px var(--gouttiere)}
.faits ul{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.faits li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center}
.faits .ico{grid-row:span 2;color:var(--laiton);width:30px;height:30px}
.faits span{font:400 11px/1.3 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--gris)}
.faits b{font:italic 400 19px/1.3 var(--texte)}

/* ---------- la photo dans l'arc ---------- */
.arche-photo{position:relative;margin:0;aspect-ratio:200/270;width:100%}
.arche-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:url(#arche-o)}
.arche-photo svg{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:hidden;pointer-events:none}
.arche-photo path{fill:none;stroke:var(--laiton);stroke-width:.9}
@media (hover:hover){.arche-photo img{transition:transform 1.1s var(--doux)}.arche-photo:hover img{transform:scale(1.03)}}

/* ---------- accueil : la maison ---------- */
.maison__grille,.recit__grille{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1fr);gap:clamp(40px,7vw,110px);align-items:center}
.maison__texte p,.recit__texte p{max-width:52ch}
.chiffres{display:flex;flex-wrap:wrap;gap:12px 40px;margin:30px 0 34px;padding-top:26px;border-top:1px solid var(--filet)}
.chiffres li{display:flex;align-items:baseline;gap:10px}
.chiffres b{font:italic 400 44px/1 var(--texte);color:var(--laiton)}
.chiffres span{font:400 11.5px/1.3 var(--titre);letter-spacing:.2em;text-transform:uppercase;color:var(--gris);max-width:16ch}

/* ---------- vitrine des chambres ---------- */
.vitrine__intro{max-width:56ch;margin:-14px auto 44px;text-align:center;color:var(--gris)}
.vitrine__grille{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:clamp(30px,4vw,64px);align-items:start}
.vitrine__liste{border-top:1px solid var(--filet)}
.vitrine__btn{width:100%;display:grid;grid-template-columns:38px 1fr auto;grid-template-areas:"num nom prix" "num meta prix";column-gap:16px;align-items:baseline;padding:15px 14px 15px 0;border:0;border-bottom:1px solid var(--filet);background:none;text-align:left;cursor:pointer;position:relative;transition:padding .5s var(--doux)}
.vitrine__btn::before{content:"";position:absolute;left:-14px;top:14px;bottom:14px;width:2px;background:var(--velours);transform:scaleY(0);transition:transform .5s var(--doux)}
.vitrine__num{grid-area:num;font:400 12px/1 var(--titre);letter-spacing:.16em;color:var(--laiton-f)}
.vitrine__nom{grid-area:nom;font:italic 400 25px/1.15 var(--texte)}
.vitrine__meta{grid-area:meta;font-size:15px;color:var(--gris)}
.vitrine__prix{grid-area:prix;font:italic 400 17px/1.2 var(--texte);white-space:nowrap;align-self:center}
.vitrine__ligne.actif .vitrine__btn{padding-left:10px}
.vitrine__ligne.actif .vitrine__btn::before{transform:none}
.vitrine__ligne.actif .vitrine__nom{color:var(--velours)}
.vitrine__photos{position:sticky;top:calc(var(--nav-h) + 24px);aspect-ratio:1.25;overflow:hidden;background:var(--miel-f)}
.vitrine__photos figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .9s ease}
.vitrine__photos figure.actif{opacity:1}
.vitrine__photos img{width:100%;height:100%;object-fit:cover;transform:scale(1.03);transition:transform 1.6s var(--doux)}
.vitrine__photos figure.actif img{transform:none}
.vitrine__pied{max-width:var(--max);margin:36px auto 0;display:flex;flex-wrap:wrap;gap:18px 34px;align-items:center}

/* ---------- le moment : le bassin ---------- */
.moment__grille{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(44px,7vw,120px);align-items:center}
.moment h2{font:italic 400 clamp(36px,4.6vw,62px)/1.04 var(--texte);margin:.3em 0 .6em;color:var(--ivoire)}
.moment__texte p{max-width:46ch;color:rgba(246,241,232,.86)}
.bassin{display:block;width:min(100%,330px);height:auto;margin-bottom:34px;overflow:visible}
.bassin .sol{fill:#EEE6D8;stroke:rgba(217,184,114,.6);stroke-width:.7}
.bassin .cabochons{fill:#1F6B53}
.bassin .rive{fill:#1F6B53;stroke:var(--or);stroke-width:.8}
.bassin .eau{fill:#0B5A44}
.bassin .reflet{fill:none;stroke:#8ED3BA;stroke-width:1.3;stroke-linecap:round;opacity:.7}
[data-trace].attend .eau,[data-trace].attend .cabochons{fill-opacity:0}
[data-trace].vu .eau{animation:remplit 1.4s ease 1.2s both}
[data-trace].vu .cabochons{animation:remplit 1s ease .9s both}
[data-trace].vu .reflet{animation-delay:1.9s,0s}
.moment blockquote{margin:30px 0 0;padding:22px 0 0;border-top:1px solid var(--filet-c);max-width:44ch}
.moment blockquote p{font:italic 400 21px/1.45 var(--texte);color:var(--ivoire);margin-bottom:10px}
.moment cite{font:400 11.5px/1 var(--titre);letter-spacing:.24em;text-transform:uppercase;font-style:normal;color:var(--or)}
.moment__photos{position:relative;padding:0 0 60px 60px}
.moment__grande{margin:0;aspect-ratio:.72;overflow:hidden}
.moment__grande img,.moment__incrust img{width:100%;height:100%;object-fit:cover}
.moment__incrust{position:absolute;left:0;bottom:0;width:46%;margin:0;background:var(--ivoire);padding:7px 7px 0}
.moment__incrust img{aspect-ratio:.8}
.moment__incrust figcaption{font:italic 400 15px/1.3 var(--texte);color:var(--encre);padding:9px 4px 11px}
.moment__photos--seule{padding:0}
@media (hover:hover){.moment__grande img,.matin__grande img{transition:transform 1.1s var(--doux)}.moment__grande:hover img,.matin__grande:hover img{transform:scale(1.05)}}

/* ---------- le matin ---------- */
.matin__grille{max-width:1160px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(44px,7vw,110px);align-items:center}
.matin__photos{position:relative;padding:0 50px 70px 0}
.matin__grande{margin:0;aspect-ratio:1.4;overflow:hidden}
.matin__grande img{width:100%;height:100%;object-fit:cover}
.matin__incrust{position:absolute;right:0;bottom:0;width:40%;margin:0;padding:7px;background:var(--ivoire);border:1px solid var(--filet)}
.matin__incrust img{aspect-ratio:1;width:100%;object-fit:cover}
.matin__texte p{max-width:44ch}
.insta{padding-top:clamp(56px,6vw,84px);padding-bottom:clamp(56px,6vw,84px)}
.insta__corps{max-width:1160px;margin:0 auto}
.insta__titre{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:16px;margin-bottom:22px;border-bottom:1px solid var(--filet)}
.insta__titre a{font:italic 400 21px/1 var(--texte);text-decoration:none}
.insta__tuiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.insta__tuiles a{display:block;overflow:hidden;aspect-ratio:1}
.insta__tuiles img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--doux)}
@media (hover:hover){.insta__tuiles a:hover img{transform:scale(1.05)}}

/* ---------- avis, une citation à la fois ---------- */
.avis{background:var(--emeraude-2);text-align:center}
.avis__liste{max-width:880px;margin:0 auto;display:grid}
.avis__liste li{margin:0 0 40px}
.avis blockquote{margin:0}
.avis blockquote p{font:italic 400 clamp(24px,2.9vw,38px)/1.32 var(--texte);color:var(--ivoire);margin-bottom:22px;text-wrap:balance}
.avis cite{font:400 12px/1 var(--titre);letter-spacing:.28em;text-transform:uppercase;font-style:normal;color:var(--or)}
.avis.js-carrousel .avis__liste li{grid-area:1/1;margin:0;visibility:hidden;opacity:0;transform:translateY(10px);transition:opacity .9s ease,transform .9s var(--doux),visibility 0s .9s}
.avis.js-carrousel .avis__liste li.actif{visibility:visible;opacity:1;transform:none;transition:opacity .9s ease .1s,transform .9s var(--doux) .1s}
.avis__nav{display:none;align-items:center;justify-content:center;gap:16px;margin-top:40px}
.avis.js-carrousel .avis__nav{display:flex}
.avis__nav>button{width:44px;height:44px;border:1px solid var(--filet-c);background:none;color:var(--ivoire);cursor:pointer;display:grid;place-items:center}
.avis__nav>button:hover{border-color:var(--or)}
.avis__nav svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.avis__points{display:flex;gap:6px}
.avis__points button{width:30px;height:30px;border:0;background:none;cursor:pointer;display:grid;place-items:center;padding:0}
.avis__points button::after{content:"";width:22px;height:1px;background:rgba(246,241,232,.35);transition:background .4s,height .4s}
.avis__points button[aria-current="true"]::after{background:var(--or);height:2px}

/* ---------- réservez en direct ---------- */
.direct{padding-top:clamp(70px,8vw,110px);padding-bottom:clamp(70px,8vw,110px)}
.direct__cadre{position:relative;max-width:640px;margin:0 auto;padding:clamp(120px,13vw,170px) clamp(26px,5vw,64px) clamp(44px,5vw,64px);text-align:center}
.direct__arche{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.direct__arche path{fill:none;stroke:var(--or);stroke-width:.42}
.direct h2{font:italic 400 clamp(36px,4.4vw,56px)/1.05 var(--texte);margin:.3em 0 .55em;color:var(--ivoire)}
.direct__corps>p{max-width:44ch;margin-left:auto;margin-right:auto;color:rgba(246,241,232,.85)}
.paliers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:30px 0 20px;text-align:left}
.palier{border:1px solid var(--filet-c);padding:16px 16px 18px;display:flex;flex-direction:column;gap:8px}
.palier b{font:400 11.5px/1.2 var(--titre);letter-spacing:.2em;text-transform:uppercase;color:var(--or);font-weight:400}
.palier span{font:italic 400 17px/1.35 var(--texte)}
.direct__cond{font-size:14px;color:rgba(246,241,232,.62)}
.direct__btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}

/* ---------- pied de page ---------- */
.pied{background:var(--emeraude-2);color:rgba(246,241,232,.82);padding:clamp(64px,7vw,96px) var(--gouttiere) 28px;border-top:1px solid var(--filet-c)}
.pied__haut{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:40px}
.pied__logo{width:170px;height:auto;margin-bottom:22px}
.pied__marque p{max-width:34ch;font-size:16px}
.pied h2{font:400 11.5px/1 var(--titre);letter-spacing:.24em;text-transform:uppercase;color:var(--or);margin:8px 0 18px}
.pied li{margin-bottom:10px;font-size:16px}
.pied a{text-decoration:none}
.pied a:hover{color:var(--or-c)}
.pied__bas{max-width:var(--max);margin:56px auto 0;padding-top:22px;border-top:1px solid var(--filet-c);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font:400 11px/1.4 var(--titre);letter-spacing:.2em;text-transform:uppercase;color:rgba(246,241,232,.55)}

/* ---------- bandeau des pages ---------- */
.bandeau{position:relative;height:clamp(460px,66vh,680px);overflow:hidden;background:var(--emeraude-2);color:var(--ivoire);display:flex;align-items:flex-end}
.bandeau picture,.bandeau img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bandeau img{animation:pose 16s cubic-bezier(.2,.7,.2,1) both}
.bandeau::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,26,20,.5),rgba(8,26,20,.12) 55%,rgba(8,26,20,0)),linear-gradient(rgba(8,26,20,.4),rgba(8,26,20,0) 30%,rgba(8,26,20,0) 42%,rgba(8,26,20,.7))}
.bandeau__texte{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gouttiere) clamp(44px,6vw,76px);animation:monte 1s cubic-bezier(.2,.7,.2,1) .2s both}
.bandeau__texte .etq{color:var(--or-c)}
.bandeau h1{font:italic 400 clamp(46px,6.6vw,92px)/1 var(--texte);margin:.2em 0 .28em;text-shadow:0 2px 24px rgba(6,20,15,.35)}
.bandeau p{max-width:46ch;font-size:19px;margin:0;text-shadow:0 1px 14px rgba(6,20,15,.5)}
.bandeau .brin{width:80px;height:27px}

/* ---------- onglets collés ---------- */
.onglets{position:sticky;top:var(--nav-h);z-index:50;background:var(--ivoire);border-bottom:1px solid var(--filet);padding:0 var(--gouttiere)}
.onglets ol{max-width:var(--max);margin:0 auto;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.onglets li:first-child a{padding-left:0}
.onglets ol::-webkit-scrollbar{display:none}
.onglets a{display:flex;align-items:baseline;gap:8px;white-space:nowrap;padding:18px 12px 16px;text-decoration:none;font:italic 400 18px/1 var(--texte);border-bottom:2px solid transparent;transition:border-color .4s,color .4s}
.onglets a span{font:400 11px/1 var(--titre);letter-spacing:.14em;color:var(--laiton-f);font-style:normal}
.onglets a[aria-current="true"]{border-bottom-color:var(--velours);color:var(--velours)}

/* ---------- chambres ---------- */
.chambres{padding-top:clamp(56px,6vw,90px)}
.chambre{max-width:var(--max);margin:0 auto clamp(80px,9vw,140px);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(34px,5vw,80px);align-items:start;scroll-margin-top:calc(var(--nav-h) + 70px)}
.chambre--inverse .chambre__photos{order:2}
.chambre__grande{position:relative;aspect-ratio:1.33;overflow:hidden;background:var(--miel)}
.chambre__grande img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--doux)}
@media (hover:hover){.chambre__grande:hover img{transform:scale(1.04)}}
.chambre__voir{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 16px;border:0;background:rgba(246,241,232,.94);color:var(--encre);font:400 11.5px/1 var(--titre);letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.chambre__voir .ico{width:18px;height:18px}
.chambre__vignettes{display:flex;gap:8px;margin-top:8px}
.chambre__vignettes button{width:78px;aspect-ratio:1.3;padding:0;border:1px solid transparent;background:none;cursor:pointer;overflow:hidden;opacity:.72;transition:opacity .4s,border-color .4s}
.chambre__vignettes button[aria-pressed="true"]{opacity:1;border-color:var(--laiton)}
.chambre__vignettes img{width:100%;height:100%;object-fit:cover}
.chambre__texte{padding-top:8px}
.chambre__num{font:400 13px/1 var(--titre);letter-spacing:.2em;color:var(--laiton-f)}
.chambre h2{font:italic 400 clamp(36px,3.8vw,52px)/1.05 var(--texte);margin:.25em 0 .7em}
.chambre__faits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 22px;border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.chambre__faits div{padding:14px 12px 14px 0}
.chambre__faits div+div{padding-left:14px;border-left:1px solid var(--filet)}
.chambre__faits dt{font:400 10.5px/1.2 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--gris)}
.chambre__faits dd{margin:6px 0 0;font:italic 400 21px/1.2 var(--texte)}
.chambre__table{border-collapse:collapse;margin-bottom:20px;font-size:16px}
.chambre__table th{text-align:left;font-weight:400;color:var(--gris);padding:8px 28px 8px 0;white-space:nowrap;display:flex;align-items:center;gap:10px;min-width:170px}
.chambre__table th .ico{width:22px;height:22px;color:var(--laiton)}
.chambre__table td{padding:8px 0}
.chambre__etiquettes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.chambre__etiquettes li{border:1px solid var(--filet);padding:6px 12px;font-size:14px;color:var(--gris)}
.chambre__prix{font-size:17px;margin-bottom:22px}
.chambre__prix b{font:italic 400 26px/1 var(--texte);color:var(--velours);font-weight:400}

.equipement__grille{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px)}
.equipement__liste{columns:2;column-gap:40px}
.equipement__liste li{break-inside:avoid;display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--filet);font-size:17px}
.equipement__liste span{font:400 11px/1.9 var(--titre);letter-spacing:.14em;color:var(--laiton-f)}
.equipement__prix p{font-size:17px}
.equipement__prix b{font:italic 400 22px/1 var(--texte);font-weight:400;color:var(--velours)}
.bains{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:26px}
.tuile{display:block;width:100%;height:100%;padding:0;border:0;background:var(--miel-f);cursor:zoom-in;overflow:hidden}
.tuile img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--doux)}
@media (hover:hover){.tuile:hover img{transform:scale(1.05)}}
.bains .tuile{aspect-ratio:1}

/* ---------- la maison ---------- */
.recit__grille{grid-template-columns:minmax(0,1fr) minmax(0,.86fr)}
.recit__grille .arche-photo{order:2}
.recit__avis{margin:26px 0 0;padding:18px 0 0 22px;border-left:1px solid var(--laiton)}
.recit__avis p{font:italic 400 20px/1.45 var(--texte);margin-bottom:8px}
.recit__avis cite{font:400 11px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase;font-style:normal;color:var(--laiton-f)}
.chiffres--grand{max-width:1000px;margin:0 auto;justify-content:space-between;border-top:0;padding-top:0}
.chiffres--grand li{flex-direction:column;align-items:center;gap:12px;text-align:center}
.chiffres--grand b{font-size:clamp(56px,6vw,84px)}
.chiffres-maison__note{text-align:center;margin:34px auto 0;color:var(--gris)}
.mosaique__grille{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,clamp(200px,22vw,300px));grid-template-areas:"a b b" "a c d" "e f d";gap:10px}
.mosaique__grille li:nth-child(1){grid-area:a}.mosaique__grille li:nth-child(2){grid-area:c}.mosaique__grille li:nth-child(3){grid-area:b}
.mosaique__grille li:nth-child(4){grid-area:e}.mosaique__grille li:nth-child(5){grid-area:f}.mosaique__grille li:nth-child(6){grid-area:d}
.services__grille{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(40px,6vw,96px);align-items:start}
.services__liste li{display:grid;grid-template-columns:minmax(0,14ch) 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--filet)}
.services__liste b{font:italic 400 21px/1.3 var(--texte);font-weight:400}
.services__note{margin-top:22px;font-size:16px;color:var(--gris)}
.services__photo{margin:0;aspect-ratio:.75;overflow:hidden}
.services__photo img{width:100%;height:100%;object-fit:cover}
.pratique__grille{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,6vw,96px)}
.autour li{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--filet)}
.autour b{font:italic 400 18px/1.4 var(--texte);font-weight:400;color:var(--laiton-f);white-space:nowrap}
.savoir li{padding:12px 0 12px 26px;border-bottom:1px solid var(--filet);position:relative;font-size:17px}
.savoir li::before{content:"";position:absolute;left:2px;top:23px;width:10px;height:1px;background:var(--laiton)}

/* ---------- galerie ---------- */
.galerie{padding-top:clamp(56px,6vw,90px)}
.chapitre{max-width:var(--max);margin:0 auto clamp(70px,8vw,120px);scroll-margin-top:calc(var(--nav-h) + 70px)}
.chapitre__grille{columns:3;column-gap:12px}
.chapitre__grille li{break-inside:avoid;margin-bottom:24px}
.chapitre__grille .tuile{height:auto;display:block}
.chapitre__grille .tuile img{height:auto}
.chapitre__grille p{margin:8px 0 0;font-size:14.5px;line-height:1.35;color:var(--gris);display:flex;gap:10px}
.chapitre__grille p span{font:400 10.5px/1.9 var(--titre);letter-spacing:.12em;color:var(--laiton-f);white-space:nowrap}

/* ---------- contact ---------- */
.coord__grille{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:clamp(40px,6vw,96px);align-items:start}
.coord__grille>div>p{max-width:46ch}
.coord__btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.coord__liste{margin:0;border-top:1px solid var(--filet)}
.coord__liste div{display:grid;grid-template-columns:minmax(0,9ch) 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--filet)}
.coord__liste dt{font:400 11px/1.9 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--gris)}
.coord__liste dd{margin:0;font:italic 400 19px/1.45 var(--texte)}
.coord__liste .lien{font-style:normal;margin-top:8px}
.trajet__grille{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.plan{display:block;width:100%;height:auto;background:var(--ivoire);border:1px solid var(--filet)}
.plan__avenue{fill:none;stroke:var(--miel-f);stroke-width:16;stroke-linecap:round}
.plan__chemin{fill:none;stroke:var(--laiton);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:.1 9}
.plan mask .trait{stroke-dasharray:1 1}
.plan__taxi circle{fill:var(--emeraude)}
.plan__taxi path{fill:none;stroke:var(--or-c);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.plan__pharma rect{fill:var(--ivoire);stroke:var(--emeraude);stroke-width:1.4}
.plan__pharma path{stroke:var(--emeraude);stroke-width:2.4;stroke-linecap:round}
.plan__porte path{fill:var(--velours)}
.plan__pied{fill:none;stroke:var(--encre);stroke-width:1.5;stroke-linecap:round}
.plan__pied circle{fill:var(--encre);stroke:none}
.plan__etq{font:italic 400 14px var(--texte);fill:var(--gris)}
.plan__etq .fort{font:400 10.5px var(--titre);letter-spacing:.16em;text-transform:uppercase;fill:var(--encre)}
.plan__etq .nom{fill:var(--velours)}
.plan__temps{font:italic 400 16px var(--texte);fill:var(--laiton-f)}
.etapes li{display:grid;grid-template-columns:44px 1fr;column-gap:12px;padding:18px 0;border-bottom:1px solid var(--filet)}
.etapes span{grid-row:span 2;font:400 12px/1.9 var(--titre);letter-spacing:.14em;color:var(--laiton-f)}
.etapes b{font:italic 400 22px/1.3 var(--texte);font-weight:400}
.etapes p{margin:4px 0 0;font-size:17px;color:var(--gris)}
.faq__grille{max-width:860px;margin:0 auto}
.faq details{border-bottom:1px solid var(--filet)}
.faq details:first-child{border-top:1px solid var(--filet)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:20px 0;font:italic 400 21px/1.35 var(--texte)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 22px/1 var(--titre);color:var(--laiton);transition:transform .4s var(--doux)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{max-width:62ch;margin:0 0 22px;color:var(--gris)}

/* ---------- visionneuse ---------- */
.vis{position:fixed;inset:0;z-index:180;background:rgba(7,22,17,.96);color:var(--ivoire);display:grid;grid-template-rows:auto 1fr auto;visibility:hidden;opacity:0;transition:opacity .4s,visibility 0s .4s}
.vis.ouverte{visibility:visible;opacity:1;transition:opacity .4s}
.vis__haut{display:flex;justify-content:space-between;align-items:center;padding:14px var(--gouttiere);font:400 12px/1 var(--titre);letter-spacing:.2em}
.vis__fermer,.vis__fl{width:46px;height:46px;border:1px solid rgba(246,241,232,.25);background:rgba(7,22,17,.4);color:var(--ivoire);cursor:pointer;display:grid;place-items:center}
.vis svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.vis__scene{position:relative;min-height:0;display:grid;place-items:center;padding:0 72px}
.vis__scene img{max-width:100%;max-height:100%;object-fit:contain}
.vis__fl{position:absolute;top:50%;transform:translateY(-50%)}
.vis__fl--g{left:14px}.vis__fl--d{right:14px}
.vis__legende{text-align:center;font:italic 400 17px/1.4 var(--texte);padding:14px var(--gouttiere) calc(18px + env(safe-area-inset-bottom));margin:0;color:rgba(246,241,232,.85)}

/* ---------- carte d'avantages (ordinateur) et barre (téléphone) ---------- */
.carte-av{position:fixed;right:24px;bottom:24px;z-index:90;width:320px;background:var(--ivoire);border:1px solid var(--filet);border-top:3px solid var(--laiton);padding:24px 24px 22px;transform:translateY(calc(100% + 40px));transition:transform .8s var(--doux);display:none}
@media (min-width:1024px){.carte-av{display:block}}
.carte-av.ouverte{transform:none}
.carte-av__fermer{position:absolute;right:10px;top:10px;width:34px;height:34px;border:0;background:none;cursor:pointer;display:grid;place-items:center;color:var(--gris)}
.carte-av__fermer svg{width:12px;height:12px;stroke:currentColor;stroke-width:1.5;fill:none}
.carte-av h2{font:italic 400 26px/1.1 var(--texte);margin:0 0 14px}
.carte-av li{display:flex;gap:12px;align-items:baseline;padding:8px 0;border-top:1px solid var(--filet);font-size:16px}
.carte-av li b{font:400 10.5px/1 var(--titre);letter-spacing:.18em;text-transform:uppercase;color:var(--laiton-f);font-weight:400;white-space:nowrap;min-width:52px}
.carte-av .btn{width:100%;margin-top:14px}
.brin--carte{width:58px;height:20px;margin-bottom:10px}
.barre-m{position:fixed;left:0;right:0;bottom:0;z-index:95;display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom)) 18px;background:var(--emeraude);color:var(--ivoire);border-top:1px solid var(--filet-c);transform:translateY(110%);transition:transform .5s var(--doux)}
.barre-m.ouverte{transform:none}
.barre-m p{margin:0;font:italic 400 15.5px/1.25 var(--texte)}
.barre-m small{display:block;font:400 10px/1.4 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--or);font-style:normal}
.barre-m .btn{min-height:44px;padding:0 18px;background:var(--or);border-color:var(--or);color:var(--emeraude-2);flex:none}
@media (max-width:767px){.barre-m{display:flex}}

/* ---------- fenêtre de réservation (booking-modal.md §1, déclarations recopiées telles quelles) ---------- */
.rsv{position:fixed;inset:0;z-index:140;display:flex;align-items:flex-start;justify-content:center;
  padding:24px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;visibility:hidden}
.rsv.ouverte{visibility:visible}
.rsv__backdrop{position:fixed;inset:0;background:rgba(7,22,17,.6);opacity:0;transition:opacity .4s}
.rsv.ouverte .rsv__backdrop{opacity:1}
.rsv__card{position:relative;display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);grid-template-rows:minmax(0,1fr);
  width:min(940px,calc(100vw - 40px));margin:auto;
  max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);
  overflow:hidden;background:var(--ivoire);transform:translateY(24px);transition:transform .6s var(--doux)}
.rsv.ouverte .rsv__card{transform:none}
.rsv__aside{min-height:0;overflow-y:auto;position:relative;background:var(--emeraude);color:var(--ivoire)}
.rsv__aside > img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.rsv__aside::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(8,26,20,0) 45%,rgba(8,26,20,.82))}
.rsv__aside-texte{position:absolute;z-index:2;left:28px;right:28px;bottom:28px}
.rsv__aside-texte .crest{width:64px;height:64px;color:var(--or-c);margin-bottom:14px}
.rsv__aside-texte strong{display:block;font:400 22px/1.1 var(--titre);letter-spacing:.14em;text-transform:uppercase;font-weight:400}
.rsv__aside-texte p{margin:8px 0 0;font:italic 400 17px/1.4 var(--texte)}
.rsv__body{display:flex;flex-direction:column;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;padding:28px 32px 26px}
.rsv__body > *{flex-shrink:0}
.rsv__tete{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px}
.rsv__tete h2{font:italic 400 34px/1.05 var(--texte);margin-top:6px}
.rsv__fermer{width:42px;height:42px;border:1px solid var(--filet);background:none;cursor:pointer;display:grid;place-items:center;flex:none}
.rsv__fermer svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5;fill:none}
.rsv__bloc{padding:18px 0;border-bottom:1px solid var(--filet)}
.rsv__bloc>b,.rsv__envoi>b{display:block;font:400 11px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--laiton-f);margin-bottom:12px;font-weight:400}
.rsv__dates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.rsv__field{min-width:0}
.rsv__field label{display:block;font:400 11px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--laiton-f);margin-bottom:8px}
.rsv__field input[type="date"]{-webkit-appearance:none;appearance:none;width:100%;min-width:0;
  min-height:48px;line-height:1.3;padding:0 14px;font:italic 400 18px var(--texte);color:var(--encre);
  background:#fff;border:1px solid var(--filet);border-radius:0}
.rsv__field input[type="date"]::-webkit-date-and-time-value{text-align:left;margin:0}
.rsv__field input[type="date"]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.rsv__nuits{margin:10px 0 0;font:italic 400 16px var(--texte);color:var(--gris);min-height:1.3em}
.rsv__gens{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pas-a-pas{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--filet);background:#fff;padding:6px 6px 6px 14px}
.pas-a-pas span{font-size:16px}
.pas-a-pas div{display:flex;align-items:center;gap:4px}
.pas-a-pas button{width:36px;height:36px;border:1px solid var(--filet);background:none;cursor:pointer;font-size:18px;line-height:1}
.pas-a-pas button:disabled{opacity:.3;cursor:default}
.pas-a-pas output{min-width:22px;text-align:center;font:italic 400 19px var(--texte)}
.rsv__packs{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:none}
.rsv__pack{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;width:100%;text-align:left;padding:7px;border:1px solid var(--filet);background:#fff;cursor:pointer;transition:border-color .3s,background .3s}
.rsv__pack img{width:52px;height:52px;object-fit:cover}
.rsv__pack strong{display:block;font:italic 400 18px/1.15 var(--texte);font-weight:400}
.rsv__pack small{display:block;font-size:13.5px;color:var(--gris);line-height:1.35}
.rsv__pack[aria-pressed="true"]{border-color:var(--emeraude);background:rgba(15,58,47,.06);box-shadow:inset 3px 0 0 var(--emeraude)}
.rsv__compte{margin:10px 0 0;font-size:15px;color:var(--gris);min-height:1.2em}
.rsv__paliers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.rsv__paliers li{border:1px solid var(--filet);padding:10px 10px 12px;font-size:14px;line-height:1.35;color:var(--gris);transition:border-color .4s,background .4s,color .4s}
.rsv__paliers li b{display:block;font:400 10px/1.3 var(--titre);letter-spacing:.18em;text-transform:uppercase;font-weight:400;margin-bottom:6px;color:var(--laiton-f)}
.rsv__paliers li.coche{border-color:var(--laiton);background:rgba(162,122,54,.1);color:var(--encre)}
.rsv__paliers li.coche b::before{content:"✓ "}
.rsv__geste{margin:12px 0 0;font:italic 400 17px/1.4 var(--texte);color:var(--emeraude)}
.rsv__note-libre textarea{width:100%;min-height:64px;border:1px solid var(--filet);background:#fff;padding:12px 14px;font:16px/1.4 var(--texte);resize:vertical;border-radius:0}
.rsv__total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0 6px}
.rsv__total span{font:400 11px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase;color:var(--laiton-f)}
.rsv__total b{font:italic 400 22px/1.2 var(--texte);font-weight:400;color:var(--velours);text-align:right}
.rsv__envoi{padding-top:14px}
.rsv__ctas{display:flex;flex-wrap:wrap;gap:10px}
.rsv__ctas .btn{flex:1 1 200px;min-width:0}
.rsv__hint{margin:10px 0 0;font-size:15px;color:var(--velours);min-height:1.2em}
.rsv__note{margin:12px 0 0;font-size:13.5px;line-height:1.5;color:var(--gris)}

/* ---------- moyens écrans ---------- */
@media (max-width:1080px){
  .nav{grid-template-columns:1fr auto}
  .nav__burger{display:block}
  .nav__langue{display:none}
  .nav__links{position:fixed;inset:0;z-index:1;flex-direction:column;justify-content:center;gap:6px;padding:calc(var(--nav-h) + 20px) var(--gouttiere) 40px;background:var(--emeraude);color:var(--ivoire);transform:translateX(100%);transition:transform .6s var(--doux);visibility:hidden}
  .nav__links.nav-open{transform:none;visibility:visible}
  .nav .nav__links a,.nav.plein .nav__links a{font:italic 400 34px/1.2 var(--texte);letter-spacing:0;text-transform:none;color:var(--ivoire);border:0;padding:8px 0}
  .nav .nav__links a[aria-current="page"]{color:var(--or-c)}
  .nav__pied-menu{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:30px;padding-top:26px;border-top:1px solid var(--filet-c)}
  .nav .nav__pied-menu a,.nav.plein .nav__pied-menu a{font:400 12px/1 var(--titre);letter-spacing:.22em;text-transform:uppercase}
  .nav__menu-btn{background:var(--or);border-color:var(--or);color:var(--emeraude-2)}
  .nav.menu-open{color:var(--ivoire);background:transparent;border-bottom-color:transparent}
  .nav.menu-open .nav__logo .l-clair{opacity:1}.nav.menu-open .nav__logo .l-fonce{opacity:0}
  .nav.menu-open::before{opacity:0}
  .vitrine__grille{grid-template-columns:1fr}
  .vitrine__photos{position:relative;top:0;order:-1}
  .moment__grille,.matin__grille,.maison__grille,.recit__grille,.services__grille,.coord__grille,.trajet__grille,.equipement__grille{grid-template-columns:1fr}
  .recit__grille .arche-photo{order:0}
  .maison .arche-photo,.recit .arche-photo{max-width:440px;margin:0 auto}
  .chambre,.chambre--inverse{grid-template-columns:1fr}
  .chambre--inverse .chambre__photos{order:0}
  .pied__haut{grid-template-columns:1fr 1fr}
  .pied__marque{grid-column:1/-1}
  .chapitre__grille{columns:2}
  .insta__tuiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .faits ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rsv__card{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);
    max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px)}
  .rsv__aside{height:150px}
}

/* ---------- téléphone ---------- */
@media (max-width:767px){
  :root{--nav-h:64px}
  body{font-size:17px}
  .nav__logo,.nav__logo img{height:36px}
  .nav__reserver{display:none}
  .hero{min-height:600px;justify-content:flex-start}
  .hero__texte{padding:calc(var(--nav-h) + 26px) 20px 0}
  .crest--hero{width:84px;margin-bottom:6px}
  .hero__golden{font-size:clamp(44px,13.4vw,64px);letter-spacing:.11em;margin-right:-.11em}
  .hero__riad{font-size:30px}
  .hero__phrase{font-size:19px;margin:14px 0 20px}
  .hero__voile{background:radial-gradient(ellipse 80% 42% at 50% 34%,rgba(8,26,20,.52),rgba(8,26,20,0) 75%),linear-gradient(rgba(8,26,20,0) 52%,rgba(8,26,20,.6))}
  .hero__pastille{bottom:188px;right:14px;padding:2px 4px 2px 10px}
  .hero__pastille button{width:30px;height:30px}
  .barre{bottom:14px;width:calc(100% - 28px);grid-template-columns:1fr 1fr;box-shadow:none}
  .barre__champ{padding:10px 14px;border-bottom:1px solid var(--filet)}
  .barre__champ:nth-child(2){border-right:0}
  .barre__voy{border-right:1px solid var(--filet)}
  .barre input,.barre select{font-size:17px;min-height:26px}
  .barre__btn{min-height:52px}
  .faits{padding:22px 18px}
  .faits ul{gap:18px 14px}
  .faits b{font-size:17px}
  .papier,.miel,.sombre{padding:64px 20px}
  .tete h2{font-size:34px}
  .chiffres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .chiffres li{flex-direction:column;align-items:flex-start;gap:8px}
  .chiffres b{font-size:36px}
  .chiffres--grand{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 14px}
  .chiffres--grand li{align-items:center}
  .vitrine__btn{grid-template-columns:30px 1fr auto;column-gap:10px;padding:13px 8px 13px 0}
  .vitrine__nom{font-size:21px}
  .vitrine__prix{font-size:15px}
  .vitrine__meta{font-size:14px}
  .moment__photos{padding:0 0 40px 34px}
  .moment__incrust{width:52%}
  .matin__photos{padding:0 26px 50px 0}
  .matin__incrust{width:46%}
  .insta__titre{flex-direction:column;gap:6px}
  .avis blockquote p{font-size:23px}
  .direct__cadre{padding:112px 36px 44px}
  .direct__corps>p{font-size:16.5px}
  .paliers{grid-template-columns:1fr}
  .pied__haut{grid-template-columns:1fr}
  .pied__bas{flex-direction:column}
  .bandeau{height:clamp(440px,74svh,620px)}
  .bandeau h1{font-size:48px}
  .bandeau p{font-size:17px}
  .onglets a{padding:15px 10px 13px;font-size:17px}
  .chambre__faits dd{font-size:18px}
  .chambre__vignettes button{width:62px}
  .equipement__liste{columns:1}
  .bains{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mosaique__grille{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,150px);grid-template-areas:"b b" "a c" "a d" "e d" "f f"}
  .services__liste li{grid-template-columns:1fr;gap:4px}
  .pratique__grille{grid-template-columns:1fr}
  .chapitre__grille{column-gap:8px}
  .chapitre__grille li{margin-bottom:18px}
  .chapitre__grille p{font-size:13.5px}
  .coord__liste div{grid-template-columns:1fr;gap:4px}
  .faq summary{font-size:19px}
  .vis__scene{padding:0 8px}
  .vis__fl{top:auto;bottom:-56px;transform:none}
  .rsv{padding:0}
  .rsv__card{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);width:100vw;margin:0;
    height:100vh;max-height:100vh;height:100dvh;max-height:100dvh}
  .rsv__packs{max-height:none}
  .rsv__aside{display:none}
  .rsv__body{padding:20px 18px 22px}
  .rsv__tete h2{font-size:30px}
  .rsv__packs{grid-template-columns:1fr}
  .rsv__paliers{grid-template-columns:1fr}
  .rsv__gens{grid-template-columns:1fr}
  .rsv__field input[type="date"]{font-size:16px;padding:0 10px}
}
@media (max-width:380px){
  .faits ul{grid-template-columns:1fr}
  .barre__champ{padding:9px 12px}
}

/* ---------- moins d'animations ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important}
  [data-trace].attend .trait{stroke-dashoffset:0;fill-opacity:1}
  .hero__pastille{display:none}
}
