/* ───────────────────────────────────────────────
   Yankers Royal Hotel — feuille de style du site
   Direction artistique : noir charbon, or, ivoire, terracotta
   ─────────────────────────────────────────────── */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jost-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jost-latin-600-normal.woff2) format("woff2")}

:root{
  --ink:#0b0a09;--ink-2:#14110e;--ink-3:#1d1914;--ink-4:#2a241c;
  --ivory:#f6f0e4;--ivory-2:#ece3d0;--ivory-3:#ddd1b8;
  --text:#2a2118;--muted:#7c6e58;--muted-d:#a99b84;
  --gold:#d4a84b;--gold-1:#f6d98a;--gold-2:#c8962e;--gold-3:#8d6420;--gold-ink:#7a5516;
  --terra:#b4553a;--teal:#1f6377;--ok:#2f7d57;--err:#b3382c;
  --line:rgba(246,240,228,.14);--line-d:rgba(42,33,24,.14);
  --gold-grad:linear-gradient(100deg,#8d6420 0%,#e9c46a 38%,#fbe6a2 52%,#c8962e 78%,#8d6420 100%);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Jost",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ease:cubic-bezier(.22,.8,.2,1);--ease-io:cubic-bezier(.77,0,.18,1);
  --hdr:84px;--pad:clamp(20px,4vw,56px);--max:1320px;
  --r:4px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--ink);color:var(--ivory);font-family:var(--sans);font-weight:400;font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
::selection{background:var(--gold);color:var(--ink)}
[hidden]{display:none!important}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--gold);color:var(--ink);padding:10px 16px;border-radius:var(--r);font-weight:500;transition:top .2s}
.skip:focus{top:12px}
.ic{width:1.25em;height:1.25em;flex:none}
.ic--xs{width:.9em;height:.9em}.ic--lg{width:2.2rem;height:2.2rem}.ic--xl{width:3rem;height:3rem}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.ok{color:var(--ok)}
.center{text-align:center}
.muted{color:var(--muted)}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.wrap--narrow{max-width:880px}.wrap--narrow2{max-width:1000px}

/* ── Typographie ── */
.eyebrow{font-family:var(--sans);font-size:.78rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.eyebrow--c{text-align:center}
.display{font-family:var(--serif);font-weight:500;font-size:clamp(2.8rem,6.4vw,6.2rem);line-height:.98;letter-spacing:-.01em}
.display--sm{font-size:clamp(2.4rem,5vw,4.4rem)}
.h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.3rem,4.4vw,3.8rem);line-height:1.05}
.h2{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,3.8vw,3.3rem);line-height:1.08}
.h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.15;margin:1.6em 0 .5em}
.lead{font-size:clamp(1.05rem,1.35vw,1.22rem);font-weight:300;line-height:1.7;max-width:62ch;color:inherit;opacity:.88}
.prose p+p{margin-top:1em}
.prose--lg{font-size:1.15rem}
.prose{max-width:68ch}
.note{font-size:.86rem;color:var(--muted);margin-top:.8rem}
.sec--dark .note,.card--dark .note{color:var(--muted-d)}
.gold-text{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ── Boutons ── */
.btn{--bg:transparent;--fg:var(--ivory);--bd:var(--line);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7em;padding:1rem 1.7rem;border:1px solid var(--bd);border-radius:2px;background:var(--bg);color:var(--fg);font-family:var(--sans);font-weight:500;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;overflow:hidden;isolation:isolate;transition:color .35s var(--ease),border-color .35s,transform .35s var(--ease);white-space:nowrap}
.btn::before{content:"";position:absolute;inset:0;background:var(--gold-grad);background-size:220% 100%;background-position:100% 0;transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1}
.btn:hover::before{transform:translateY(0)}
.btn .ic{width:1.1em;height:1.1em;transition:transform .35s var(--ease)}
.btn:hover .ic{transform:translateX(4px)}
.btn--gold{--bg:var(--gold);--fg:#17110a;--bd:var(--gold)}
.btn--gold::before{background:var(--ivory);transform:translateY(101%)}
.btn--gold:hover{color:#17110a}
.btn--line{--fg:var(--gold-ink);--bd:var(--gold-3)}
.sec--dark .btn--line,.card--dark .btn--line{--fg:var(--gold);--bd:rgba(212,168,75,.5)}
.btn--line:hover,.btn--ghost:hover{color:#17110a;--bd:var(--gold)}
.btn--ghost{--bd:rgba(246,240,228,.35)}
.btn--ghost-dark{--fg:var(--text);--bd:var(--line-d)}
.btn--ghost-dark:hover{color:#17110a;--bd:var(--gold)}
.btn--sm{padding:.75rem 1.2rem;font-size:.72rem}
.btn--block{display:flex;width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem}.btn-row--c{justify-content:center}
.link-arrow{display:inline-flex;align-items:center;gap:.6em;font-size:.78rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink);border-bottom:1px solid currentColor;padding-bottom:4px}
.sec--dark .link-arrow,.card--dark .link-arrow,.hcard .link-arrow{color:var(--gold)}
.link-arrow .ic{transition:transform .3s var(--ease)}
.link-arrow:hover .ic{transform:translateX(5px)}
.link-arrow--back .ic{transform:rotate(180deg)}.link-arrow--back:hover .ic{transform:rotate(180deg) translateX(5px)}

/* ── En-tête ── */
.hdr{position:fixed;inset:0 0 auto 0;z-index:90;height:var(--hdr);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-inline:var(--pad);transition:background .4s,height .4s var(--ease),backdrop-filter .4s,transform .5s var(--ease);color:var(--ivory)}
.hdr::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(212,168,75,.55),transparent);opacity:0;transition:opacity .4s}
.hdr.is-solid{background:rgba(11,10,9,.82);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);--hdr:68px;height:68px}
.hdr.is-solid::after{opacity:1}
.hdr.is-hidden{transform:translateY(-100%)}
.brand{display:flex;align-items:center;gap:.8rem}
.brand img{width:44px;height:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
.brand__t{display:flex;flex-direction:column;line-height:1}
.brand__t b{font-family:var(--serif);font-weight:600;font-size:1.35rem;letter-spacing:.14em;text-transform:uppercase;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand__t i{font-style:normal;font-size:.62rem;letter-spacing:.5em;text-transform:uppercase;color:var(--muted-d);margin-top:4px;padding-left:2px}
.nav{display:flex;align-items:center;gap:clamp(.9rem,1.8vw,2rem);font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.nav>a,.nav__dd>button{position:relative;padding:.6rem 0;color:rgba(246,240,228,.85);transition:color .3s}
.nav>a::after,.nav__dd>button::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.nav>a:hover,.nav>a[aria-current],.nav__dd:hover>button,.nav__dd>button[aria-expanded=true]{color:var(--gold-1)}
.nav>a:hover::after,.nav>a[aria-current]::after,.nav__dd:hover>button::after{transform:scaleX(1)}
.nav__dd{position:relative}
.nav__dd>button{display:inline-flex;align-items:center;gap:.4em;font:inherit;letter-spacing:inherit;text-transform:inherit}
.dd{position:absolute;top:100%;left:-1.2rem;min-width:280px;padding:.8rem;background:rgba(14,12,10,.97);border:1px solid var(--line);box-shadow:0 30px 60px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,transform .4s var(--ease),visibility .3s}
.nav__dd:hover .dd,.nav__dd:focus-within .dd,.nav__dd.is-open .dd{opacity:1;visibility:visible;transform:none}
.dd__item{display:flex;flex-direction:column;gap:2px;padding:.85rem 1rem;border-radius:2px;transition:background .25s}
.dd__item b{font-family:var(--serif);font-size:1.4rem;font-weight:500;letter-spacing:.02em;text-transform:none}
.dd__item small{font-size:.74rem;letter-spacing:.06em;text-transform:none;color:var(--muted-d);font-weight:400}
.dd__item:hover{background:rgba(212,168,75,.1)}
.hdr__r{display:flex;align-items:center;gap:1rem}
.lang{display:flex;border:1px solid var(--line);border-radius:2px;font-size:.7rem;font-weight:500;letter-spacing:.14em}
.lang a{padding:.45rem .65rem;color:var(--muted-d);transition:all .25s}
.lang a[aria-current]{background:var(--gold);color:var(--ink)}
.lang a:not([aria-current]):hover{color:var(--gold-1)}
.burger{display:none;width:44px;height:44px;position:relative}
.burger i{position:absolute;left:11px;right:11px;height:1.5px;background:var(--ivory);transition:transform .4s var(--ease),top .4s var(--ease)}
.burger i:first-child{top:18px}.burger i:last-child{top:25px}
.burger[aria-expanded=true] i:first-child{top:21px;transform:rotate(45deg)}
.burger[aria-expanded=true] i:last-child{top:21px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:85;background:var(--ink);padding:calc(var(--hdr) + 24px) var(--pad) 32px;display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto;clip-path:inset(0 0 100% 0);visibility:hidden}
.mnav.is-open{clip-path:inset(0);visibility:visible;transition:clip-path .7s var(--ease-io)}
.mnav nav{display:flex;flex-direction:column}
.mnav a{font-family:var(--serif);font-size:clamp(1.8rem,7vw,2.6rem);line-height:1.2;padding:.35rem 0;border-bottom:1px solid var(--line);opacity:0;transform:translateY(20px);transition:opacity .5s,transform .6s var(--ease)}
.mnav.is-open a{opacity:1;transform:none;transition-delay:calc(var(--n,0)*45ms + .25s)}
.mnav a.mnav__h{color:var(--gold-1)}
.mnav hr{border:0;margin:.8rem 0}
body.nav-open{overflow:hidden}

/* ── Splash d'introduction ── */
.splash{display:none}
.intro .splash{position:fixed;inset:0;z-index:300;display:block;overflow:hidden}
.intro body{overflow:hidden}
.splash__frame{position:absolute;inset:clamp(12px,2.2vw,28px);z-index:2;pointer-events:none}
.splash__frame i{position:absolute;background:rgba(212,168,75,.6)}
.splash__frame i:nth-child(1){left:0;right:0;top:0;height:1px;transform-origin:left}
.splash__frame i:nth-child(2){top:0;bottom:0;right:0;width:1px;transform-origin:top}
.splash__frame i:nth-child(3){left:0;right:0;bottom:0;height:1px;transform-origin:right}
.splash__frame i:nth-child(4){top:0;bottom:0;left:0;width:1px;transform-origin:bottom}
.splash__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;padding:2rem;z-index:4}
.splash__center::before{content:"";position:absolute;width:min(720px,90vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(212,168,75,.16),transparent 62%);z-index:-1}
.splash__mark{position:relative;width:min(240px,48vw);clip-path:inset(100% 0 0 0)}
.splash__mark img{width:100%;height:auto}
.splash__sheen{position:absolute;inset:-10%;background:linear-gradient(105deg,transparent 35%,rgba(255,244,205,.85) 50%,transparent 65%);mix-blend-mode:overlay;transform:translateX(-120%);pointer-events:none}
.splash__name{display:flex;gap:.1em;font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,4.2vw,2.8rem);letter-spacing:.32em;text-transform:uppercase;padding-left:.32em}
.splash__name span{display:inline-block;opacity:0;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.splash__name em{display:inline-block;width:.5em}
.splash__sub{font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;color:var(--muted-d);opacity:0;text-align:center}
.splash__bar{width:min(260px,60vw);height:1px;background:rgba(212,168,75,.2);margin-top:.8rem;overflow:hidden}
.splash__bar i{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}
.splash__curtain{position:absolute;top:0;bottom:0;width:50.5%;background:#0b0a09;z-index:1}
.splash__curtain--l{left:0}
.splash__curtain--r{right:0}
.splash__skip{position:absolute;right:var(--pad);bottom:28px;z-index:5;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted-d);padding:.6rem .2rem;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.splash__skip:hover{color:var(--gold-1);border-color:var(--gold)}

/* Rideau de transition de page */
.wipe{position:fixed;inset:0;z-index:250;background:var(--ink);pointer-events:none;transform:translateY(101%);will-change:transform}
.wiping .wipe{transform:none}
.rf .wipe{display:none}
.wipe::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--gold-grad)}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:95;pointer-events:none}
.progress i{display:block;height:100%;background:var(--gold-grad);transform:scaleX(0);transform-origin:left}
.cursor{display:none}
@media (hover:hover) and (pointer:fine){
  .js .cursor{display:block;position:fixed;inset:0;pointer-events:none;z-index:400}
  .cursor{opacity:0;transition:opacity .4s}.cursor.is-on{opacity:1}
  .cursor__dot,.cursor__ring{position:fixed;left:0;top:0;border-radius:50%;pointer-events:none;will-change:transform}
  .cursor__dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--gold)}
  .cursor__ring{width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(212,168,75,.7);transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .3s,border-color .3s;mix-blend-mode:normal}
  .cursor.is-link .cursor__ring{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(212,168,75,.14);border-color:var(--gold)}
  .cursor.is-img .cursor__ring{width:84px;height:84px;margin:-42px 0 0 -42px;background:rgba(246,240,228,.12);border-color:var(--ivory)}
}

/* ── Révélations (états initiaux gérés par JS) ── */
.js [data-reveal],.js [data-fade]{opacity:0;transform:translateY(34px)}
.js [data-split]{visibility:hidden}
.js [data-split].is-split{visibility:visible}
.split-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.split-line>span{display:block;will-change:transform}
.rf [data-reveal],.rf [data-fade]{opacity:1!important;transform:none!important}
.rf [data-split]{visibility:visible!important}
.rf .hero__vis,.rf .hero__txt>*{opacity:1!important;transform:none!important}
.mask-img,.exp__img,.hcard__img{overflow:hidden}
.js [data-mask]{clip-path:inset(0 0 100% 0)}
.rf [data-mask]{clip-path:none!important}

/* ── Hero (accueil) ── */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:calc(var(--hdr) + 36px) 0 140px;background:var(--ink);overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;z-index:-1}
.hero__glow{position:absolute;right:-10%;top:-10%;width:75vw;height:75vw;max-width:1100px;max-height:1100px;border-radius:50%;background:radial-gradient(circle,rgba(212,168,75,.22) 0%,rgba(180,85,58,.09) 40%,transparent 68%);filter:blur(10px);animation:glow 14s ease-in-out infinite alternate}
@keyframes glow{from{transform:translate(0,0) scale(1)}to{transform:translate(-4%,6%) scale(1.12)}}
.hero__grain{position:absolute;inset:0;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 .9  0 0 0 0 .7  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");mix-blend-mode:screen}
.hero__lines{position:absolute;inset:0;width:100%;height:100%;color:rgba(212,168,75,.13);animation:spin 120s linear infinite;transform-origin:70% 50%}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(24px,4vw,72px);align-items:center;position:relative}
.hero__eyebrow{margin-bottom:1.6rem;display:flex;align-items:center;gap:1rem}
.hero__eyebrow::before{content:"";width:56px;height:1px;background:var(--gold)}
.hero__title{margin-bottom:1.8rem}
.hero__title .split-line:nth-child(2){font-style:italic}
.hero__title .split-line:nth-child(2)>span{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.1em}
.hero__lead{margin-bottom:2.4rem;max-width:52ch;color:rgba(246,240,228,.78)}
.hero__cta{display:flex;flex-wrap:wrap;gap:1rem}
.hero__vis{position:relative;height:min(74vh,640px);min-height:480px}
.arch{position:absolute;overflow:hidden;border-radius:999px 999px 0 0;background:var(--ink-3)}
.arch img{width:100%;height:100%;object-fit:cover}
.arch--a{right:6%;top:0;width:min(62%,420px);aspect-ratio:2/3;border:1px solid rgba(212,168,75,.55);padding:10px;background:transparent;border-radius:999px 999px 6px 6px}
.arch--a .arch__slides{position:relative;width:100%;height:100%;border-radius:999px 999px 0 0;overflow:hidden}
.arch__slide{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease-io)}
.arch__slide img{transform:scale(1.18);transition:transform 6s linear}
.arch__slide.is-on{clip-path:inset(0)}
.arch__slide.is-on img{transform:scale(1.02)}
.arch__cap{position:absolute;left:0;right:0;bottom:10px;padding:2.4rem 1.2rem 1rem;display:flex;align-items:flex-end;justify-content:space-between;background:linear-gradient(transparent,rgba(11,10,9,.85))}
.arch__city{font-family:var(--serif);font-size:1.7rem;font-weight:500;letter-spacing:.04em}
.arch__dots{display:flex;gap:.45rem;padding-bottom:.55rem}
.arch__dots button{width:22px;height:2px;background:rgba(246,240,228,.35);transition:background .3s,width .4s var(--ease)}
.arch__dots button.is-on{background:var(--gold);width:38px}
.arch--b{left:0;bottom:-4%;width:min(34%,230px);aspect-ratio:2/3;border:6px solid var(--ink);box-shadow:0 0 0 1px rgba(212,168,75,.5),0 30px 60px rgba(0,0,0,.5);border-radius:999px 999px 0 0}
.seal{position:absolute;right:0;bottom:6%;width:132px;height:132px;display:grid;place-items:center;border-radius:50%;background:rgba(11,10,9,.82);backdrop-filter:blur(6px);border:1px solid rgba(212,168,75,.45)}
.seal__ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 26s linear infinite}
.seal__ring text{font-family:var(--sans);font-size:11.4px;letter-spacing:.2em;fill:var(--gold-1);font-weight:500}
.seal img{width:48px;height:auto}
.hero__scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.6rem;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted-d);z-index:2}
.hero__scroll i{width:1px;height:44px;background:linear-gradient(var(--gold),transparent);transform-origin:top;animation:scrollcue 2.2s var(--ease-io) infinite}
@keyframes scrollcue{0%{transform:scaleY(0)}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
.js .hero__vis,.js .hero__eyebrow,.js .hero__lead,.js .hero__cta{opacity:0}

/* ── Barre de réservation ── */
.bbar-wrap{position:relative;z-index:6;margin-top:-62px}
.bbar{display:grid;grid-template-columns:1.2fr 1fr 1fr .7fr .7fr auto;gap:0;align-items:stretch;background:var(--ivory);color:var(--text);border-top:2px solid var(--gold);box-shadow:0 40px 80px rgba(0,0,0,.45)}
.bbar__f{display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.3rem;border-right:1px solid var(--line-d);cursor:pointer;transition:background .25s}
.bbar__f:hover,.bbar__f:focus-within{background:var(--ivory-2)}
.bbar__f>span{display:flex;align-items:center;gap:.5em;font-size:.68rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink)}
.bbar__f .ic{width:1.05em;height:1.05em}
.bbar select,.bbar input{width:100%;background:transparent;border:0;padding:.2rem 0;font-size:1.05rem;color:var(--text);outline:0;appearance:none;-webkit-appearance:none;cursor:pointer;min-height:30px}
.bbar select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%238d6420' stroke-width='1.5'/></svg>");background-repeat:no-repeat;background-position:right 2px center;padding-right:18px}
.bbar input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.bbar .btn{border-radius:0;padding-inline:2rem}
.bbar--hero{margin-inline:0}

/* ── Sections ── */
.sec{position:relative;padding:clamp(72px,10vw,150px) 0;background:var(--ivory);color:var(--text)}
.sec--dark{background:var(--ink);color:var(--ivory)}
.sec--ivory2{background:var(--ivory-2)}
.shead{margin-bottom:clamp(32px,5vw,64px);max-width:760px}
.shead .eyebrow{margin-bottom:1rem;color:var(--gold-ink)}
.sec--dark .shead .eyebrow,.shead--light .eyebrow{color:var(--gold)}
.shead .lead{margin-top:1.2rem}
.shead--c{margin-inline:auto;text-align:center}.shead--c .lead{margin-inline:auto}
.orn{display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--gold-3);margin:2.4rem 0}
.orn i{height:1px;width:90px;background:linear-gradient(90deg,transparent,var(--gold-3))}.orn i:last-child{transform:scaleX(-1)}
.orn .ic{width:1rem;height:1rem}

.manifesto{background:var(--ivory)}
.manifesto__text{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.6vw,3rem);line-height:1.28;text-align:center;color:var(--text);margin-top:1.4rem}
.manifesto__text .w{display:inline-block;opacity:.18;transition:none}
.no-js .manifesto__text .w,.rf .manifesto__text .w{opacity:1}
.manifesto__stats{display:flex;justify-content:center;gap:clamp(24px,6vw,90px);margin-top:1rem}
.manifesto__stats div{text-align:center}
.manifesto__stats b{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(2.6rem,5vw,4rem);line-height:1;color:var(--gold-ink)}
.manifesto__stats span{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}

/* Hôtels */
.hgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,36px)}
.hgrid--2{grid-template-columns:repeat(2,1fr);max-width:900px}
.hcard{position:relative}
.hcard:nth-child(2){margin-top:clamp(0px,5vw,72px)}.hgrid--2 .hcard:nth-child(2){margin-top:0}
.hcard__link{display:block;color:var(--ivory)}
.hcard__img{position:relative;aspect-ratio:3/4.1;border-radius:999px 999px 4px 4px;border:1px solid rgba(212,168,75,.4);padding:9px;transition:border-color .5s}
.hcard__img::before{content:"";position:absolute;inset:9px;border-radius:999px 999px 0 0;background:linear-gradient(transparent 55%,rgba(11,10,9,.65));z-index:1;pointer-events:none}
.hcard__pic{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 0 0;transition:transform 1.2s var(--ease)}
.hcard__link:hover .hcard__pic{transform:scale(1.07)}
.hcard__link:hover .hcard__img{border-color:var(--gold)}
.hcard__no{position:absolute;left:50%;bottom:1.3rem;transform:translateX(-50%);z-index:2;font-family:var(--serif);font-size:1rem;letter-spacing:.3em;color:var(--gold-1)}
.hcard__body{text-align:center;padding-top:1.6rem}
.hcard__city{font-family:var(--serif);font-weight:500;font-size:clamp(2.3rem,3.4vw,3.2rem);line-height:1.05;margin:.3rem 0 .6rem}
.hcard__from{color:var(--muted-d);font-size:.95rem;margin-bottom:1.1rem}.hcard__from b{color:var(--ivory);font-weight:500}

/* Chambres — défilement horizontal */
.rooms-showcase{padding-bottom:clamp(56px,8vw,110px)}
.hscroll{overflow:hidden;margin-top:1rem}
.hscroll__track{display:flex;gap:clamp(18px,2.4vw,36px);padding:0 var(--pad);width:max-content}
.rslide{flex:none;width:min(78vw,720px);display:grid;grid-template-columns:.9fr 1.1fr;background:var(--ivory-2);border:1px solid var(--line-d)}
.rslide__img{position:relative;overflow:hidden;min-height:clamp(380px,60vh,540px)}
.rslide__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rslide__no{position:absolute;left:1rem;top:.8rem;font-family:var(--serif);font-size:3.4rem;line-height:1;color:var(--ivory);text-shadow:0 2px 20px rgba(0,0,0,.45)}
.rslide__body{padding:clamp(22px,3vw,40px);display:flex;flex-direction:column;justify-content:center;gap:.8rem}
.rslide__body .eyebrow{color:var(--gold-ink)}
.rslide__body h3{font-family:var(--serif);font-size:clamp(1.8rem,2.6vw,2.4rem);font-weight:500;line-height:1.1}
.rslide__body p{font-size:.98rem;color:#51453a}
.rslide__price{color:var(--text)!important}.rslide__price b{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:var(--gold-ink)}
.rslide--cta{display:flex;align-items:center;justify-content:center;background:var(--ink);color:var(--ivory);text-align:center;width:min(70vw,460px);padding:2rem;border-color:rgba(212,168,75,.4)}
.rslide--cta h3{font-family:var(--serif);font-size:clamp(1.9rem,3vw,2.6rem);font-weight:500;line-height:1.12;margin:.8rem 0 1.6rem}

.marquee{background:var(--ink);overflow:hidden;border-block:1px solid rgba(212,168,75,.3);padding:1.2rem 0}
.marquee__track{display:flex;align-items:center;gap:2rem;width:max-content;animation:marq 38s linear infinite;font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.6rem);font-style:italic;color:var(--gold-1);white-space:nowrap}
.marquee__track i{color:var(--gold-3);display:inline-flex}.marquee__track i .ic{width:.7em;height:.7em}
@keyframes marq{to{transform:translateX(-25%)}}

.exp__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,110px);align-items:center}
.exp__imgs{position:relative;aspect-ratio:1/1.12}
.exp__img{position:absolute;overflow:hidden;box-shadow:0 30px 70px rgba(42,33,24,.28)}
.exp__img img{width:100%;height:100%;object-fit:cover}
.exp__img--a{left:0;top:0;width:66%;aspect-ratio:2/3;border-radius:999px 999px 0 0}
.exp__img--b{right:0;bottom:0;width:50%;aspect-ratio:2/3;border:8px solid var(--ivory)}
.exp__txt .eyebrow{color:var(--gold-ink);margin-bottom:1rem}
.exp__txt .lead{margin:1.2rem 0 2rem;color:#51453a}
.feat{display:grid;gap:1.2rem;margin-bottom:2rem}
.feat li{display:flex;gap:1rem;align-items:flex-start;padding-bottom:1.2rem;border-bottom:1px solid var(--line-d)}
.feat .ic{width:2rem;height:2rem;color:var(--gold-3);margin-top:.15rem}
.feat b{display:block;font-family:var(--serif);font-size:1.4rem;font-weight:500}
.feat span{color:#625548;font-size:.95rem}

/* Offres */
.ogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,32px)}
.ocard{background:var(--ivory);border:1px solid var(--line-d);display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s}
.ocard:hover{transform:translateY(-6px);box-shadow:0 30px 60px rgba(42,33,24,.16)}
.ocard__img{aspect-ratio:16/10;overflow:hidden}.ocard__img img{width:100%;height:100%;object-fit:cover;object-position:center 40%;transition:transform 1s var(--ease)}
.ocard:hover .ocard__img img{transform:scale(1.06)}
.ocard__body{padding:1.6rem;display:flex;flex-direction:column;gap:.7rem;flex:1;align-items:flex-start}
.ocard__body h3{font-family:var(--serif);font-weight:500;font-size:1.8rem;line-height:1.1}
.ocard__body p{color:#51453a;font-size:.97rem;flex:1}
.badge{display:inline-block;padding:.3rem .7rem;background:var(--ink);color:var(--gold-1);font-size:.66rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;border-radius:2px}
.badge--confirmed,.badge--completed{background:var(--ok);color:#fff}.badge--pending{background:var(--gold-2);color:#17110a}.badge--cancelled,.badge--expired{background:#7a2e26;color:#fff}

/* Bande galerie */
.gstrip{overflow:hidden;margin-bottom:3rem}
.gstrip__track{display:flex;gap:14px;width:max-content;animation:gmarq 60s linear infinite;padding-left:14px}
.gstrip:hover .gstrip__track{animation-play-state:paused}
.gstrip a{flex:none;width:clamp(150px,18vw,240px);aspect-ratio:2/3;overflow:hidden;position:relative}
.gstrip a:nth-child(even){margin-top:36px}.gstrip a:nth-child(odd){margin-bottom:36px}
.gstrip img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .5s;filter:saturate(.9)}
.gstrip a:hover img{transform:scale(1.08);filter:none}
@keyframes gmarq{to{transform:translateX(-50%)}}

.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.review{padding:2rem;border:1px solid var(--line-d);background:var(--ivory-2)}
.stars{display:flex;gap:2px;color:var(--gold-2);margin-bottom:1rem}.stars .ic{width:1rem;height:1rem}
.review blockquote{margin:0 0 1rem;font-family:var(--serif);font-size:1.35rem;line-height:1.35}
.review figcaption{font-size:.85rem;color:var(--muted)}

.ngrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.4vw,32px)}
.ncard{display:grid;grid-template-columns:.8fr 1.2fr;background:var(--ivory-2);border:1px solid var(--line-d);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s}
.ncard:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(42,33,24,.14)}
.ncard__img{min-height:220px;overflow:hidden}.ncard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.ncard:hover .ncard__img img{transform:scale(1.07)}
.ncard__body{padding:1.5rem;display:flex;flex-direction:column;gap:.5rem}
.ncard__body time{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-ink)}
.ncard__body h3{font-family:var(--serif);font-size:1.6rem;font-weight:500;line-height:1.12}
.ncard__body p{color:#51453a;font-size:.95rem;flex:1}

.cta{position:relative;padding:clamp(90px,13vw,200px) 0;text-align:center;background:var(--ink);overflow:hidden;isolation:isolate}
.cta__bg{position:absolute;inset:0;z-index:-1;opacity:.35}
.cta__bg img{width:100%;height:100%;object-fit:cover;filter:blur(14px) saturate(1.1);transform:scale(1.15)}
.cta::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,rgba(11,10,9,.2),rgba(11,10,9,.85))}
.cta .display{margin:1rem 0 2.4rem}
.cta__btns{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem}

/* ── Pages internes ── */
.phero{position:relative;min-height:clamp(420px,62vh,640px);display:flex;align-items:flex-end;padding:calc(var(--hdr) + 60px) 0 clamp(48px,7vw,90px);isolation:isolate;overflow:hidden;background:var(--ink)}
.phero__bg{position:absolute;inset:0;z-index:-2}
.phero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:blur(7px) saturate(1.05);transform:scale(1.12)}
.phero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,10,9,.72),rgba(11,10,9,.55) 40%,rgba(11,10,9,.92)),radial-gradient(ellipse at 20% 100%,rgba(212,168,75,.15),transparent 60%)}
.phero__in .eyebrow{margin-bottom:1.2rem}
.phero__in .display{max-width:16ch}
.phero__in .lead{margin-top:1.5rem;color:rgba(246,240,228,.82)}
.phero--hotel .display{max-width:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px);align-items:center}
.split__imgs{position:relative;aspect-ratio:1/1.12}
.mask-img{position:absolute;overflow:hidden;box-shadow:0 30px 70px rgba(42,33,24,.28)}
.mask-img img{width:100%;height:100%;object-fit:cover}
.split__imgs .mask-img:first-child{left:0;top:0;width:66%;aspect-ratio:2/3;border-radius:999px 999px 0 0}
.mask-img--b{right:0;bottom:0;width:50%;aspect-ratio:2/3;border:8px solid var(--ivory)}
.card{padding:clamp(22px,3vw,40px);border-radius:3px}
.card--ivory{background:var(--ivory-2);color:var(--text);border:1px solid var(--line-d)}
.card--dark{background:var(--ink-2);color:var(--ivory);border:1px solid rgba(212,168,75,.3)}
.card h3,.card h4{font-family:var(--serif);font-weight:500}
.card h3{font-size:1.7rem;margin-bottom:1rem}
.hotel__grid{display:grid;grid-template-columns:1.4fr .8fr;gap:clamp(30px,5vw,80px);align-items:start}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem 2rem;margin-top:2.2rem}
.facts li{display:flex;gap:.9rem;align-items:flex-start}.facts .ic{width:1.6rem;height:1.6rem;color:var(--gold-3);margin-top:.2rem}
.facts b{display:block;font-family:var(--serif);font-size:1.25rem;font-weight:500}.facts span{color:#625548;font-size:.95rem}
.facts--s{grid-template-columns:repeat(3,1fr);margin:1.6rem 0}
.contact-card{position:sticky;top:calc(var(--hdr) + 24px);display:grid;gap:1rem}
.clist{display:grid;gap:.75rem;margin-bottom:.8rem}.clist li{display:flex;gap:.8rem;align-items:flex-start}.clist .ic{color:var(--gold);margin-top:.2rem}
.clist a:hover{color:var(--gold-1)}
.rgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,32px)}
.rcard{background:var(--ivory);border:1px solid var(--line-d);display:flex;flex-direction:column;height:100%;transition:transform .5s var(--ease),box-shadow .5s}
.rcard:hover{transform:translateY(-6px);box-shadow:0 30px 60px rgba(42,33,24,.16)}
.rcard__img{display:block;aspect-ratio:4/3.1;overflow:hidden}.rcard__img img{width:100%;height:100%;object-fit:cover;object-position:center 55%;transition:transform 1s var(--ease)}
.rcard:hover .rcard__img img{transform:scale(1.07)}
.rcard__body{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;flex:1}
.rcard__body .eyebrow{color:var(--gold-ink)}
.rcard h3{font-family:var(--serif);font-size:1.9rem;font-weight:500;line-height:1.1}
.rcard__desc{font-size:.96rem;color:#51453a;flex:1}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}.chips li{display:inline-flex;align-items:center;gap:.45em;font-size:.78rem;padding:.35rem .7rem;border:1px solid var(--line-d);border-radius:99px;color:#51453a}.chips .ic{width:1em;height:1em;color:var(--gold-3)}
.chips--lg li{font-size:.9rem;padding:.5rem .9rem}
.rcard__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--line-d)}
.price{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.price small{font-size:.74rem;color:var(--muted);letter-spacing:.06em}.price b{font-family:var(--serif);font-size:1.9rem;font-weight:600;color:var(--gold-ink);line-height:1}
.icons4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem;margin-bottom:2rem}.icons4 li{display:flex;flex-direction:column;align-items:center;gap:.8rem;text-align:center;padding:1.8rem 1rem;border:1px solid var(--line-d);transition:border-color .3s,transform .4s var(--ease)}
.icons4 li:hover{border-color:var(--gold-2);transform:translateY(-4px)}
.icons4 .ic{width:2.2rem;height:2.2rem;color:var(--gold-3)}.icons4 b{font-family:var(--serif);font-size:1.3rem;font-weight:500}
.map{position:relative;aspect-ratio:16/8;background:var(--ink-3);border:1px solid var(--line);overflow:hidden;display:grid;place-items:center}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05)}
.map__ph{text-align:center;display:grid;gap:.7rem;justify-items:center;padding:1rem;color:var(--ivory)}.map__ph .ic{color:var(--gold)}.map__ph small{color:var(--muted-d)}
.map__link{position:absolute;right:1rem;bottom:1rem;z-index:2;background:rgba(11,10,9,.85);padding:.6rem 1rem;color:var(--gold)}
.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.tabs button{padding:.7rem 1.3rem;border:1px solid var(--line-d);font-size:.76rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text);transition:all .3s}
.tabs button[aria-selected=true]{background:var(--ink);color:var(--gold-1);border-color:var(--ink)}
.tabs button:hover{border-color:var(--gold-2)}
.tabs--dark button{border-color:var(--line);color:var(--ivory)}.tabs--dark button[aria-selected=true]{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.rooms-block{margin-bottom:clamp(40px,6vw,80px)}
.rooms-block__h{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--line-d)}
.rooms-block__h span{font-family:var(--serif);font-size:clamp(2rem,3.6vw,3rem);font-weight:500}
.rpage{padding:calc(var(--hdr) + 40px) 0 clamp(48px,7vw,90px);background:var(--ivory);color:var(--text)}
.rpage__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:start}
.rpage__gal{position:sticky;top:calc(var(--hdr) + 20px);display:grid;grid-template-columns:84px 1fr;gap:12px;order:0}
.rpage__main{position:relative;aspect-ratio:2/3;order:2;overflow:hidden;background:var(--ink);border-radius:999px 999px 4px 4px}
.rpage__main figure{position:absolute;inset:0;opacity:0;transition:opacity .6s,transform 1.2s var(--ease);transform:scale(1.06)}
.rpage__main figure.is-on{opacity:1;transform:none}.rpage__main img{width:100%;height:100%;object-fit:cover}
.rpage__thumbs{order:1;display:flex;flex-direction:column;gap:10px}
.rpage__thumbs button{aspect-ratio:1;overflow:hidden;border:2px solid transparent;opacity:.65;transition:all .3s}.rpage__thumbs button.is-on{border-color:var(--gold-2);opacity:1}
.rpage__thumbs img{width:100%;height:100%;object-fit:cover}
.rpage__info .eyebrow{color:var(--gold-ink);margin:1rem 0 .6rem}.rpage__info .lead{margin:1rem 0;color:#51453a}
.crumbs{font-size:.8rem;color:var(--muted)}.crumbs a:hover{color:var(--gold-ink)}
.qwidget{margin-top:1.8rem;display:grid;gap:1rem;background:var(--ink);color:var(--ivory)}
.qwidget__price small{color:var(--muted-d)}.qwidget__price b{color:var(--gold-1)}
.qwidget__row{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.8rem}
.qwidget label{display:grid;gap:.3rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-d)}
.qwidget input,.qwidget select{background:var(--ink-3);border:1px solid var(--line);padding:.7rem .8rem;font-size:1rem;color:var(--ivory);border-radius:2px;width:100%;min-width:0;color-scheme:dark}
.qwidget__out{font-size:.95rem;min-height:1.4em}
.qwidget__out .line{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;border-bottom:1px solid var(--line)}
.qwidget__out .line.total{font-family:var(--serif);font-size:1.5rem;border:0;padding-top:.8rem;color:var(--gold-1)}
.qwidget__out .err{color:#ff9d8f}.qwidget__out .warn{color:var(--gold-1)}
.seasons{margin-top:2rem}.seasons h4{font-family:var(--serif);font-size:1.5rem;font-weight:500;margin-bottom:.6rem}
.seasons li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line-d)}.seasons small{display:block;color:var(--muted)}.seasons b{font-family:var(--serif);font-size:1.3rem;color:var(--gold-ink)}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px)}.sgrid--3{grid-template-columns:repeat(3,1fr)}
.scard{padding:2rem 1.6rem;background:var(--ivory);border:1px solid var(--line-d);transition:transform .5s var(--ease),border-color .3s,box-shadow .5s}
.scard:hover{transform:translateY(-6px);border-color:var(--gold-2);box-shadow:0 26px 50px rgba(42,33,24,.12)}
.scard .ic{color:var(--gold-3);margin-bottom:1rem}.scard h3{font-family:var(--serif);font-size:1.55rem;font-weight:500;line-height:1.1;margin-bottom:.5rem}.scard p{font-size:.95rem;color:#51453a}
.sgrid--dark .scard{background:var(--ink-2);border-color:var(--line)}.sgrid--dark .scard p{color:var(--muted-d)}.sgrid--dark .scard .ic{color:var(--gold)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3rem;counter-reset:s}.steps li{padding:1.6rem;border-top:2px solid var(--gold-2);background:var(--ivory-2);display:grid;gap:.3rem}
.steps b{font-family:var(--serif);font-size:2.4rem;color:var(--gold-ink);line-height:1}.steps span{font-weight:500}.steps small{color:var(--muted)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.trio figure{aspect-ratio:2/3;overflow:hidden}.trio img{width:100%;height:100%;object-fit:cover}
.trio figure:nth-child(2){margin-top:40px}
.masonry{columns:4 220px;column-gap:14px}
.masonry__i{break-inside:avoid;margin:0 0 14px;overflow:hidden;position:relative;transition:opacity .4s,transform .5s var(--ease)}
.masonry__i[hidden]{display:none!important}
.masonry__i a{display:block;position:relative;cursor:zoom-in}.masonry__i img{width:100%;transition:transform 1s var(--ease),filter .4s;filter:saturate(.95)}
.masonry__i a:hover img{transform:scale(1.06);filter:none}
.masonry__i figcaption{position:absolute;inset:auto 0 0 0;padding:2.4rem 1rem .9rem;font-family:var(--serif);font-size:1.15rem;background:linear-gradient(transparent,rgba(11,10,9,.85));opacity:0;transform:translateY(10px);transition:all .4s var(--ease)}
.masonry__i a:hover figcaption{opacity:1;transform:none}
.lb{position:fixed;inset:0;z-index:500;background:rgba(8,7,6,.96);display:grid;place-items:center;padding:3rem 4rem}
.lb img{max-height:82vh;max-width:min(92vw,900px);width:auto;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.lb button{position:absolute;color:var(--ivory);width:52px;height:52px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;transition:all .3s}.lb button:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.lb__x{top:20px;right:20px}.lb__p{left:20px;top:50%;margin-top:-26px;transform:rotate(180deg)}.lb__n{right:20px;top:50%;margin-top:-26px}.lb__c{position:absolute;bottom:20px;left:0;right:0;text-align:center;font-family:var(--serif);font-size:1.3rem;color:var(--gold-1)}
.art{padding:calc(var(--hdr) + 60px) 0 clamp(60px,8vw,110px);background:var(--ivory);color:var(--text)}
.art .eyebrow{color:var(--gold-ink);margin-top:1.4rem;display:block}.art .h1{margin:.6rem 0 2rem}.art__img{margin-bottom:2.4rem;max-width:480px}.art__foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line-d)}
.legal{padding-top:calc(var(--hdr) + 60px)}.legal .h3{margin-top:2em}
.contact__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,80px);align-items:start}
.contact__grid h3{font-family:var(--serif);font-size:1.9rem;font-weight:500;margin-bottom:1rem}
.contact__grid .clist{color:var(--text)}.contact__grid .clist .ic{color:var(--gold-3)}.contact__grid .clist a:hover{color:var(--gold-ink)}
.contact__grid .map{margin-top:1.2rem;aspect-ratio:16/10}
.los{margin-top:2.4rem}.los ul{display:flex;flex-wrap:wrap;gap:2rem;margin:.5rem 0}.los b{font-family:var(--serif);font-size:2rem;color:var(--gold-1)}

/* ── Formulaires ── */
.form{display:grid;gap:1.1rem}
.card.form{background:var(--ivory);border:1px solid var(--line-d);color:var(--text)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.field{display:grid;gap:.35rem;font-size:.72rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-ink)}
.field input,.field select,.field textarea{width:100%;padding:.85rem 1rem;background:#fffdf8;border:1px solid var(--ivory-3);border-radius:2px;font-size:1rem;letter-spacing:0;text-transform:none;font-weight:400;color:var(--text);transition:border-color .25s,box-shadow .25s}
.field textarea{resize:vertical;min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--gold-2);box-shadow:0 0 0 3px rgba(200,150,46,.18)}
.field.has-err input,.field.has-err select,.field.has-err textarea{border-color:var(--err)}
.field .err{color:var(--err);font-size:.76rem;letter-spacing:0;text-transform:none;font-weight:400}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:#51453a}.check input{margin-top:.3rem;accent-color:var(--gold-2);width:18px;height:18px;flex:none}.check a{text-decoration:underline;text-decoration-color:var(--gold-2);text-underline-offset:3px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.form__msg{min-height:1.4em;font-size:.95rem}.form__msg.is-ok{color:var(--ok)}.form__msg--err,.form__msg.is-err{color:var(--err)}

/* ── Assistant de réservation ── */
.bk{position:relative;padding:calc(var(--hdr) + 40px) 0 clamp(60px,8vw,110px);background:var(--ivory);color:var(--text);isolation:isolate}
.bk__bg{position:absolute;left:0;right:0;top:0;height:340px;z-index:-1;overflow:hidden;background:var(--ink)}.bk__bg img{width:100%;height:100%;object-fit:cover;filter:blur(18px) brightness(.45);transform:scale(1.2)}
.bk__head{color:var(--ivory);padding-bottom:2.4rem}.bk__head .h1{margin:.4rem 0 1.8rem}
.stepper{display:flex;gap:clamp(12px,3vw,40px);flex-wrap:wrap}
.stepper li{display:flex;align-items:center;gap:.7rem;opacity:.5;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;transition:opacity .4s}
.stepper li b{width:34px;height:34px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-family:var(--serif);font-size:1.1rem;letter-spacing:0}
.stepper li.is-on,.stepper li.is-done{opacity:1;color:var(--gold-1)}.stepper li.is-done b{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.bk__grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(24px,4vw,56px);align-items:start;margin-top:1rem}
.bk__main{background:#fffdf8;border:1px solid var(--line-d);padding:clamp(22px,3.2vw,44px);box-shadow:0 30px 60px rgba(42,33,24,.12)}
.bstep{display:none;gap:1.4rem}.bstep.is-on{display:grid;animation:stepin .6s var(--ease)}
@keyframes stepin{from{opacity:0;transform:translateY(16px)}}
.bstep .h3{margin:0}
.hpick{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.hpick__i{cursor:pointer;display:block}.hpick__i input{position:absolute;opacity:0}
.hpick__c{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;border:2px solid transparent;transition:border-color .3s}
.hpick__c img{width:100%;height:100%;object-fit:cover;filter:brightness(.6);transition:transform .8s var(--ease),filter .4s}
.hpick__c b{position:absolute;inset:auto 0 .8rem;text-align:center;font-family:var(--serif);font-size:1.7rem;font-weight:500;color:var(--ivory)}
.hpick__i:hover img{transform:scale(1.06)}.hpick__i input:checked+.hpick__c{border-color:var(--gold-2)}.hpick__i input:checked+.hpick__c img{filter:brightness(.85)}
.hpick__i input:focus-visible+.hpick__c{outline:2px solid var(--gold);outline-offset:3px}
.bstep__recap{padding:.9rem 1.1rem;background:var(--ivory-2);font-size:.95rem;border-left:3px solid var(--gold-2)}
.rlist{display:grid;gap:1.2rem}
.ropt{display:grid;grid-template-columns:200px 1fr;border:1px solid var(--line-d);background:var(--ivory);overflow:hidden;transition:border-color .3s,box-shadow .4s}
.ropt:hover{border-color:var(--gold-2);box-shadow:0 18px 40px rgba(42,33,24,.12)}
.ropt.is-sold{opacity:.6}
.ropt__img img{width:100%;height:100%;object-fit:cover;min-height:200px}
.ropt__body{padding:1.3rem;display:grid;gap:.5rem;align-content:start}
.ropt__body h3{font-family:var(--serif);font-size:1.7rem;font-weight:500;line-height:1.1}.ropt__body p{font-size:.93rem;color:#51453a}
.ropt__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.5rem}
.ropt__price b{font-family:var(--serif);font-size:2rem;color:var(--gold-ink);line-height:1}.ropt__price small{display:block;color:var(--muted);font-size:.8rem}
.ropt__left{font-size:.78rem;color:var(--terra);font-weight:500;letter-spacing:.06em}
.ropt .err{color:var(--err);font-size:.88rem}
.bk__side{position:sticky;top:calc(var(--hdr) + 20px)}
.bsidebar h3{font-family:var(--serif);font-size:1.6rem;margin-bottom:.8rem}
.bsidebar .line{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px solid var(--line-d);font-size:.95rem}
.bsidebar .line.total{font-family:var(--serif);font-size:1.6rem;border:0;padding-top:.9rem;color:var(--gold-ink)}
.bsidebar .line.dep{font-weight:500}
.bsidebar .line .neg{color:var(--ok)}
.bsidebar__room{font-family:var(--serif);font-size:1.3rem;margin-bottom:.3rem}
.trust{display:grid;gap:.5rem;margin-top:1.2rem;font-size:.88rem;color:#51453a}.trust li{display:flex;gap:.6rem;align-items:center}.trust .ic{color:var(--ok);width:1rem;height:1rem}
.pay__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,64px);align-items:start}
.pay .h1{margin:.5rem 0 1.4rem}.pay{padding-top:calc(var(--hdr) + 60px)}
.paybox{display:grid;gap:1.2rem}.paybox h3 b{color:var(--gold-1);font-weight:600}
.demo-banner{padding:.7rem 1rem;background:rgba(212,168,75,.16);border:1px dashed var(--gold);color:var(--gold-1);font-size:.78rem;letter-spacing:.14em;font-weight:500}
.pm{display:flex;gap:.8rem;flex-wrap:wrap}.pm label{cursor:pointer}.pm input{position:absolute;opacity:0}
.pm span{display:inline-block;padding:.8rem 1.4rem;border:1px solid var(--line);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;transition:all .3s}
.pm input:checked+span{background:var(--gold);color:var(--ink);border-color:var(--gold)}.pm input:focus-visible+span{outline:2px solid var(--gold);outline-offset:3px}
.pay-ins{padding:1rem 1.2rem;border:1px solid var(--line)}.pay-ins h4{font-family:var(--serif);font-size:1.3rem;color:var(--gold-1);margin-bottom:.4rem}
.hold{display:flex;gap:.6rem;align-items:center;margin-bottom:1.2rem;color:var(--terra);font-weight:500}
.bsum{position:sticky;top:calc(var(--hdr) + 20px)}.bsum__head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.bsum__ref{font-family:ui-monospace,Menlo,monospace;font-size:.95rem;letter-spacing:.06em}
.bsum h3{margin-bottom:.1rem}
.dl{display:grid;margin-top:1rem}.dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line-d)}.dl dt{color:var(--muted);font-size:.88rem}.dl dd{text-align:right;font-weight:500}.dl small{display:block;color:var(--muted);font-weight:400}
.dl__total dd{font-family:var(--serif);font-size:1.5rem;color:var(--gold-ink)}
.conf{padding-top:calc(var(--hdr) + 60px);background:var(--ivory)}.conf .bsum{position:static;margin:2rem 0}
.conf__icon{width:92px;height:92px;margin:0 auto 1.4rem;display:grid;place-items:center;border-radius:50%;border:1px solid var(--gold-2);color:var(--gold-3)}
.conf__icon.is-ok{background:var(--ok);border-color:var(--ok);color:#fff;animation:pop .7s var(--ease)}
@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
.conf .h1{margin-bottom:.8rem}.conf .lead{margin:0 auto}
.manage{padding-top:calc(var(--hdr) + 60px)}.manage .h1{margin:.4rem 0 1.6rem}.manage__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:start}.manage__grid .bsum{position:static}
.manage .card--dark{display:grid;gap:1rem}
.err{padding:calc(var(--hdr) + 90px) 0 120px;min-height:80vh;display:grid;align-content:center;gap:1.2rem;background:var(--ink)}

/* ── Pied de page ── */
.ftr{background:#070605;color:var(--ivory);border-top:1px solid rgba(212,168,75,.3);padding-top:clamp(56px,8vw,100px)}
.ftr__grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.3fr;gap:clamp(24px,4vw,64px);padding-bottom:3rem}
.ftr__brand img{width:112px;margin-bottom:1rem}.ftr__tag{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--gold-1);line-height:1.25;max-width:20ch}
.ftr h4{font-size:.74rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem}
.ftr li{margin-bottom:.6rem;color:rgba(246,240,228,.75);font-size:.96rem}.ftr a:hover{color:var(--gold-1)}
.ftr__contact li{display:flex;gap:.7rem;align-items:flex-start}.ftr__contact .ic{color:var(--gold);margin-top:.25rem}
.social{display:flex;gap:.6rem;margin-top:1.4rem;flex-wrap:wrap}.social li{margin:0}.social a{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;transition:all .3s}.social a:hover{background:var(--gold);color:var(--ink);border-color:var(--gold);transform:translateY(-3px)}
.ftr__bar{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.6rem;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted-d)}
.ftr__legal{display:flex;gap:1.4rem;flex-wrap:wrap}
.wa{position:fixed;right:20px;bottom:20px;z-index:80;display:flex;align-items:center;gap:.6rem;padding:.9rem 1.1rem;background:#25D366;color:#06260f;border-radius:99px;font-size:.8rem;font-weight:600;letter-spacing:.06em;box-shadow:0 14px 34px rgba(0,0,0,.35);transition:transform .35s var(--ease)}
.wa:hover{transform:translateY(-3px) scale(1.03)}.wa .ic{width:1.6rem;height:1.6rem}
.cookies{position:fixed;left:16px;right:16px;bottom:16px;z-index:120;max-width:720px;margin-inline:auto;display:flex;gap:1.2rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:1.1rem 1.3rem;background:rgba(14,12,10,.96);border:1px solid rgba(212,168,75,.45);backdrop-filter:blur(10px);font-size:.9rem;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.cookies>div{display:flex;gap:.6rem}

/* ── Responsive ── */
@media (max-width:1180px){
  .nav{gap:.9rem;font-size:.72rem;letter-spacing:.12em}
  .nav>a:nth-last-child(-n+2){display:none}
}
@media (max-width:1024px){
  .nav,.hdr__cta{display:none}.burger{display:block}
  .hero{padding-bottom:110px}
  .hero__grid{grid-template-columns:1fr}
  .hero__vis{height:520px;margin-top:2rem;max-width:520px;width:100%;margin-inline:auto}
  .arch--a{right:12%}
  .hgrid{grid-template-columns:1fr;max-width:480px;margin-inline:auto}.hcard:nth-child(2){margin-top:0}.hgrid--2{max-width:480px;grid-template-columns:1fr}
  .exp__grid,.split,.hotel__grid,.contact__grid,.rpage__grid,.pay__grid,.manage__grid,.bk__grid{grid-template-columns:1fr}
  .contact-card,.rpage__gal,.bk__side,.bsum{position:static}
  .rpage__gal{max-width:520px;margin-inline:auto}
  .ogrid,.rgrid,.rgrid3{grid-template-columns:1fr 1fr}
  .sgrid,.icons4{grid-template-columns:repeat(2,1fr)}.sgrid--3{grid-template-columns:1fr}
  .ngrid{grid-template-columns:1fr}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .bbar{grid-template-columns:1fr 1fr 1fr}.bbar__f{border-bottom:1px solid var(--line-d)}.bbar .btn{grid-column:1/-1;padding-block:1.1rem}
  .exp__imgs,.split__imgs{max-width:520px;margin-inline:auto;width:100%}
  .hscroll{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.rslide{scroll-snap-align:start}
}
@media (max-width:720px){
  :root{--hdr:68px}
  body{font-size:1rem}
  .brand__t b{font-size:1.1rem}.brand__t i{letter-spacing:.4em}
  .lang{display:none}
  .hero{min-height:auto;padding-bottom:100px}
  .hero__vis{height:440px}.arch--a{right:6%;width:68%}.arch--b{width:36%}.seal{width:104px;height:104px}.seal img{width:38px}.seal__ring text{font-size:12px}
  .hero__scroll{display:none}
  .bbar-wrap{margin-top:-40px}.bbar{grid-template-columns:1fr 1fr}.bbar__f:first-child{grid-column:1/-1}
  .ogrid,.rgrid,.rgrid3,.steps,.trio,.facts,.facts--s,.grid2,.hpick{grid-template-columns:1fr}
  .hpick{grid-template-columns:repeat(3,1fr)}.hpick__c b{font-size:1.2rem}
  .trio figure:nth-child(2){margin-top:0}
  .icons4{grid-template-columns:1fr 1fr}.sgrid{grid-template-columns:1fr}
  .rslide{grid-template-columns:1fr;width:82vw}.rslide__img{min-height:260px}
  .ncard{grid-template-columns:1fr}.ncard__img{min-height:180px}
  .ropt{grid-template-columns:1fr}.ropt__img img{min-height:0;height:200px}
  .qwidget__row{grid-auto-flow:row;grid-template-columns:1fr 1fr}
  .ftr__grid{grid-template-columns:1fr}
  .map{aspect-ratio:4/3}
  .lb{padding:3rem 1rem}.lb__p,.lb__n{top:auto;bottom:16px;margin:0}.lb__p{left:16px}.lb__n{right:16px}
  .wa span{display:none}.wa{padding:.95rem}
  .manifesto__stats{gap:24px}
  .btn{padding:.95rem 1.3rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .marquee__track,.gstrip__track{animation:none}.hero__lines,.seal__ring,.hero__glow{animation:none}
  .js [data-reveal],.js [data-fade],.js [data-split],.js .hero__vis,.js .hero__eyebrow,.js .hero__lead,.js .hero__cta{opacity:1!important;transform:none!important;visibility:visible!important}
  .js [data-mask]{clip-path:none!important}.manifesto__text .w{opacity:1}
  .arch__slide{clip-path:inset(0)}
}
@media print{
  .hdr,.ftr,.wa,.cookies,.splash,.wipe,.progress,.cursor,.btn-row,.mnav{display:none!important}
  body{background:#fff;color:#000}.conf{padding-top:20px}
}

/* Correctifs mobile : aucun débordement horizontal */
.bbar__f{min-width:0}.bbar input,.bbar select{min-width:0;max-width:100%}
html,body{overflow-x:clip}
.phero{overflow:hidden}
