/* Grand Hotels of the World — v4 — feuille unique */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-sans-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* =====================================================================
   Grand Hotels of the World — v4 « Élitiste contemporain »
   En production : /assets/css/main.css (une seule feuille, mise en cache)
   ===================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  --porcelain:#F5F5F2;   /* fond de page */
  --paper:#FFFFFF;       /* surfaces élevées (popovers) */
  --ink:#0E1B2A;         /* bleu nuit de Prusse : bandeaux, pied de page, texte fort */
  --ink-2:#16283B;       /* bleu nuit, variation de surface */
  --graphite:#2A2E35;    /* texte courant */
  --stone:#6E6E70;       /* texte secondaire (AA sur porcelaine : 5.0:1) */
  --champagne:#BFA26A;   /* accent unique : focus, actif, points de carte */
  --champagne-d:#8A6F3A; /* accent sur fond clair (AA texte : 4.6:1) */
  --rule:rgba(14,27,42,.12);
  --rule-inv:rgba(255,255,255,.16);

  --f-display:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --f-text:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;

  /* échelle typographique — ratio 1.333 (quarte), base 16 px */
  --t-xs:.75rem; --t-sm:.875rem; --t-base:1rem; --t-md:1.125rem;
  --t-lg:1.333rem; --t-xl:1.777rem; --t-2xl:2.369rem; --t-3xl:3.157rem;
  --t-hero:clamp(2.6rem, 5.4vw, 5.2rem);

  --gutter:clamp(16px, 4vw, 56px);
  --maxw:1320px;
  --header-h:76px;
  --ease:cubic-bezier(.2,.7,.1,1);
  --grade:saturate(.78) contrast(1.04) brightness(.97);
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--porcelain);color:var(--graphite);font:400 var(--t-base)/1.6 var(--f-text);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:2px solid var(--champagne);outline-offset:3px;border-radius:2px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px}
.skip:focus{top:12px}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.graded{filter:var(--grade)}

h1,h2,h3{font-family:var(--f-display);font-weight:400;letter-spacing:-.01em;line-height:1.08;margin:0;color:var(--ink)}
h2{font-size:clamp(2rem,3.6vw,var(--t-3xl))}
h3{font-size:var(--t-lg);line-height:1.2}
p{margin:0 0 1em}
.lede{font-size:var(--t-md);color:var(--stone);max-width:58ch}
.section{padding-block:clamp(72px,10vw,140px)}
.section__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:end;margin-bottom:clamp(32px,5vw,56px)}
.section__head p{margin:14px 0 0}
.link{display:inline-flex;align-items:center;gap:.5em;font-weight:500;font-size:var(--t-sm);
  border-bottom:1px solid currentColor;padding-bottom:2px;white-space:nowrap}
.link:hover{color:var(--champagne-d)}

/* ---------- 3. Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:48px;padding:0 24px;
  font-weight:500;font-size:var(--t-sm);letter-spacing:.01em;border-radius:999px;transition:background .25s var(--ease),color .25s,border-color .25s;white-space:nowrap}
.btn--gold{background:var(--champagne);color:var(--ink)}
.btn--gold:hover{background:#D3B97F}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:var(--ink-2)}
.btn--line{border:1px solid currentColor}
.btn--line:hover{background:rgba(255,255,255,.08)}
.btn--sm{min-height:38px;padding:0 16px;font-size:var(--t-xs)}

/* ---------- 4. En-tête (partial header) ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:60;height:var(--header-h);color:#fff;
  transition:background .35s var(--ease),color .35s,box-shadow .35s}
.hdr__in{height:100%;display:flex;align-items:center;gap:32px}
.brand{display:flex;flex-direction:column;line-height:1;font-family:var(--f-display);white-space:nowrap}
.brand__a{font-size:1.32rem;font-weight:500;letter-spacing:.005em}
.brand__b{font-size:.78rem;font-style:italic;opacity:.8;margin-top:4px;letter-spacing:.02em}
.nav{display:flex;gap:28px;margin-left:auto;font-size:var(--t-sm)}
.nav a{opacity:.86;padding-block:6px;border-bottom:1px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{opacity:1;border-color:currentColor}
.hdr__tools{display:flex;align-items:center;gap:10px}
.icon-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;transition:background .2s}
.icon-btn:hover{background:rgba(127,127,127,.16)}
.icon-btn svg{width:20px;height:20px}
.flag{width:22px;height:15px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
.hdr.is-solid,.hdr--solid{background:rgba(245,245,242,.94);color:var(--ink);box-shadow:0 1px 0 var(--rule);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
.hdr.is-solid .flag,.hdr--solid .flag{box-shadow:0 0 0 1px var(--rule)}
.hdr .btn--line{border-color:currentColor}
.hdr.is-solid .btn--line:hover,.hdr--solid .btn--line:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.menu-btn{display:none}

/* menu plein écran mobile */
.drawer{position:fixed;inset:0;z-index:90;background:var(--ink);color:#fff;padding:24px var(--gutter);
  display:flex;flex-direction:column;gap:32px;transform:translateY(-100%);transition:transform .45s var(--ease);visibility:hidden}
.drawer.is-open{transform:none;visibility:visible}
.drawer__top{display:flex;justify-content:space-between;align-items:center}
.drawer nav{display:flex;flex-direction:column;gap:6px}
.drawer nav a{font-family:var(--f-display);font-size:var(--t-2xl);padding-block:6px;border-bottom:1px solid var(--rule-inv)}

@media (max-width:980px){
  .nav,.hdr__cta{display:none}
  .menu-btn{display:grid}
  .hdr__tools{margin-left:auto}
}
@media (max-width:420px){ .brand__a{font-size:1.1rem} .hdr__in{gap:12px} }

/* ---------- 5. Finder : moteur de recherche live (composant partagé) ---------- */
.finder{position:relative;display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1.3fr) minmax(0,1fr) auto;
  align-items:stretch;border-radius:22px;color:var(--ink);background:var(--paper);box-shadow:0 30px 80px -30px rgba(14,27,42,.45)}
.finder__f{position:relative;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:14px 24px;min-width:0;text-align:left}
.finder__f + .finder__f{border-left:1px solid var(--rule)}
.finder__lbl{font-size:var(--t-xs);color:var(--stone);font-weight:500}
.finder__q{border:0;background:none;padding:0;outline:none;width:100%;min-width:0;
  font-family:var(--f-display);font-size:var(--t-lg);color:var(--ink);text-overflow:ellipsis}
.finder__q::placeholder{color:#9A9A9C}
.finder__val{font-size:var(--t-md);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.finder__val.is-empty{color:#9A9A9C}
button.finder__f:hover{background:rgba(14,27,42,.03)}
.finder__go{margin:8px;border-radius:16px;min-height:auto;padding:0 26px}
.finder__clear{position:absolute;right:12px;top:50%;translate:0 -50%;width:30px;height:30px;border-radius:50%;
  display:none;place-items:center;color:var(--stone)}
.finder__clear:hover{background:rgba(14,27,42,.06)}
.finder.has-q .finder__clear{display:grid}

/* panneau de résultats live */
.live{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:40;background:var(--paper);color:var(--ink);
  border-radius:22px;box-shadow:0 40px 100px -30px rgba(14,27,42,.55);overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;max-height:min(70vh,560px);
  opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .2s,transform .25s var(--ease)}
.finder--up .live{top:auto;bottom:calc(100% + 10px);transform:translateY(6px)}
.live.is-open{opacity:1;transform:none;pointer-events:auto}
.live__list{overflow:auto;padding:12px;overscroll-behavior:contain}
.live__grp{padding:14px 12px 6px;font-size:var(--t-xs);color:var(--stone);font-weight:500;display:flex;justify-content:space-between}
.live__it{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center;padding:8px 12px;border-radius:12px;cursor:pointer}
.live__it[aria-selected="true"]{background:rgba(191,162,106,.16)}
.live__th{width:52px;height:38px;border-radius:6px;background:#ddd center/cover;filter:var(--grade)}
.live__ic{width:52px;height:38px;border-radius:6px;display:grid;place-items:center;background:rgba(14,27,42,.05);color:var(--stone)}
.live__n,.live__m{display:block}
.live__n{font-family:var(--f-display);font-size:var(--t-md);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live__m{font-size:var(--t-xs);color:var(--stone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.live__n mark{background:none;color:var(--champagne-d);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.live__c{font-size:var(--t-xs);color:var(--stone)}
.live__empty{padding:28px 14px;color:var(--stone)}
.live__empty strong{display:block;color:var(--ink);font-family:var(--f-display);font-size:var(--t-lg);font-weight:400;margin-bottom:6px}
.live__pv{position:relative;background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;min-height:320px;overflow:hidden}
.live__pv-img{position:absolute;inset:0;background:center/cover;filter:var(--grade);transition:opacity .35s}
.live__pv::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,27,42,0) 30%,rgba(14,27,42,.92))}
.live__pv-body{position:relative;z-index:1;padding:24px}
.live__pv-n{font-family:var(--f-display);font-size:var(--t-xl);line-height:1.1}
.live__pv-m{font-size:var(--t-sm);opacity:.8;margin:6px 0 16px}
.live__pv-act{display:flex;flex-wrap:wrap;gap:8px}
.live__foot{grid-column:1/-1;display:flex;gap:18px;padding:10px 24px;border-top:1px solid var(--rule);font-size:var(--t-xs);color:var(--stone)}
.live__foot kbd{font:inherit;border:1px solid var(--rule);border-radius:4px;padding:0 5px;margin-right:4px}

/* popovers dates + voyageurs */
.pop{position:absolute;z-index:45;top:calc(100% + 10px);background:var(--paper);color:var(--ink);border-radius:20px;
  box-shadow:0 40px 100px -30px rgba(14,27,42,.55);padding:22px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .2s,transform .25s var(--ease)}
.finder--up .pop{top:auto;bottom:calc(100% + 10px)}
.pop.is-open{opacity:1;transform:none;pointer-events:auto}
.pop--cal{left:50%;translate:-50% 0;width:min(680px,calc(100vw - 32px))}
.pop--guests{right:0;width:min(340px,calc(100vw - 32px))}
.cal__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cal__months{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.cal__t{font-family:var(--f-display);font-size:var(--t-md);text-align:center;margin-bottom:10px;text-transform:capitalize}
.cal__g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0;text-align:center}
.cal__dow{font-size:var(--t-xs);color:var(--stone);padding-bottom:6px}
.cal__d{height:40px;font-size:var(--t-sm);border-radius:999px;position:relative}
.cal__d:hover:not(:disabled){box-shadow:inset 0 0 0 1px var(--ink)}
.cal__d:disabled{color:#C4C4C6;cursor:default;text-decoration:line-through;text-decoration-color:rgba(0,0,0,.15)}
.cal__d.is-in{background:rgba(191,162,106,.18);border-radius:0}
.cal__d.is-start,.cal__d.is-end{background:var(--ink);color:#fff;border-radius:999px}
.cal__d.is-today::after{content:"";position:absolute;left:50%;bottom:6px;width:3px;height:3px;border-radius:50%;background:currentColor;translate:-50% 0}
.cal__foot,.pop__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--rule);font-size:var(--t-sm)}
.cal__nav{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--rule)}
.cal__nav:disabled{opacity:.3}
.cal__nav:hover:not(:disabled){border-color:var(--ink)}
.step:last-of-type{border-bottom:0}
.step{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--rule)}
.step small{display:block;color:var(--stone);font-size:var(--t-xs)}
.step__c{display:flex;align-items:center;gap:14px}
.step__c button{width:36px;height:36px;border-radius:50%;border:1px solid var(--rule);font-size:1.1rem;line-height:1}
.step__c button:hover:not(:disabled){border-color:var(--ink)}
.step__c button:disabled{opacity:.3;cursor:default}
.step__c output{min-width:1.5em;text-align:center;font-variant-numeric:tabular-nums}
.ages{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;padding-top:12px}
.ages label{font-size:var(--t-xs);color:var(--stone);display:grid;gap:4px}
.ages select{border:1px solid var(--rule);border-radius:10px;padding:8px;background:#fff;color:var(--ink)}
.textbtn{font-weight:500;text-decoration:underline;text-underline-offset:3px}

@media (max-width:900px){
  .finder{grid-template-columns:1fr 1fr;border-radius:18px}
  .finder__f--q{grid-column:1/-1}
  .finder__f + .finder__f{border-left:0}
  .finder__f--d,.finder__f--g{border-top:1px solid var(--rule)}
  .finder__f--g{border-left:1px solid var(--rule)!important}
  .finder__go{grid-column:1/-1;min-height:52px}
  .finder__val{font-size:var(--t-base)}
  .live{grid-template-columns:1fr;max-height:62vh}
  .live__pv,.live__foot{display:none}
  .cal__months{grid-template-columns:1fr}
  .cal__m + .cal__m{display:none}
  .pop--cal{left:0;translate:none;width:100%}
  .pop--guests{left:0;right:auto;width:100%}
}

/* ---------- 6. Hero (accueil) ---------- */
.hero{position:relative;overflow:clip;min-height:100vh;min-height:100svh;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;
  padding:calc(var(--header-h) + 40px) 0 clamp(28px,5vh,56px);isolation:isolate;background:var(--ink)}
.hero__slides{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__slide{position:absolute;inset:0;background:center/cover;opacity:0;transition:opacity 1.6s ease;filter:var(--grade)}
.hero__slide.is-on{opacity:1;animation:slowzoom 14s linear both}
@keyframes slowzoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(14,27,42,.55) 0%,rgba(14,27,42,.12) 28%,rgba(14,27,42,.2) 55%,rgba(14,27,42,.88) 100%)}
.hero__amb{position:absolute;inset:-40px;z-index:-1;background:center/cover;filter:blur(40px) saturate(.9) brightness(.55);opacity:0;transition:opacity .5s}
.hero.is-searching .hero__amb{opacity:1}
.hero__title{font-size:var(--t-hero);color:#fff;max-width:14ch;line-height:1.02;letter-spacing:-.02em}
.hero__sub{font-size:var(--t-md);max-width:52ch;opacity:.86;margin:20px 0 36px}
.hero__credit{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px;font-size:var(--t-xs);opacity:.85}
.hero__credit a{border-bottom:1px solid rgba(255,255,255,.5)}
.hero__dots{display:flex;gap:6px}
.hero__dots button{width:28px;height:2px;background:rgba(255,255,255,.35)}
.hero__dots button[aria-current="true"]{background:#fff}
.hero .finder{background:rgba(255,255,255,.97)}
@media (prefers-reduced-motion:reduce){.hero__slide.is-on{animation:none}*{scroll-behavior:auto!important}}

/* ---------- 7. Sélection éditoriale ---------- */
.feat{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:auto auto;gap:clamp(20px,3vw,40px)}
.feat__big{grid-row:1/3}
.card{position:relative;display:block}
.card__img{display:block;position:relative;overflow:hidden;border-radius:4px;background:#d9d9d6;aspect-ratio:4/3}
.card__img img,.card__img .ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);transition:transform 1.2s var(--ease)}
.card:hover .card__img img{transform:scale(1.035)}
.feat__big .card__img{aspect-ratio:4/5}
.card__body{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-top:16px}
.card__n{font-family:var(--f-display);font-size:var(--t-xl);line-height:1.1;color:var(--ink)}
.feat__big .card__n{font-size:var(--t-2xl)}
.card__m{font-size:var(--t-sm);color:var(--stone);margin-top:6px}
.card__a{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.card__stretch::after{content:"";position:absolute;inset:0 0 56px}
.card__a a{position:relative;z-index:1}
@media (max-width:760px){.feat{grid-template-columns:1fr}.feat__big{grid-row:auto}.feat__big .card__img{aspect-ratio:4/3}}

/* ---------- 8. Carte du monde ---------- */
.atlas{background:var(--ink);color:#fff}
.atlas h2{color:#fff}
.atlas .lede{color:rgba(255,255,255,.72)}
.atlas__grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.regions{display:flex;flex-direction:column;border-top:1px solid var(--rule-inv)}
.regions button{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--rule-inv);text-align:left;
  font-family:var(--f-display);font-size:var(--t-lg);color:rgba(255,255,255,.6);transition:color .2s}
.regions button span{font-family:var(--f-text);font-size:var(--t-sm);font-variant-numeric:tabular-nums}
.regions button:hover,.regions button[aria-pressed="true"]{color:#fff}
.regions button[aria-pressed="true"] span{color:var(--champagne)}
.map{position:relative;width:100%}
.map svg{width:100%;height:auto;display:block;overflow:hidden;aspect-ratio:1000/470}
.r-map .map svg{transition:none}
.map__land{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.14);stroke-width:.5}
.map__dot{fill:var(--champagne);transition:opacity .3s,r .2s;cursor:pointer}
.map__dot.is-dim{opacity:.12}
.map__dot.is-hot{stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke}
.map__tip{position:absolute;z-index:3;pointer-events:none;background:var(--paper);color:var(--ink);border-radius:12px;padding:10px 14px;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.6);translate:-50% calc(-100% - 14px);opacity:0;transition:opacity .15s;white-space:nowrap}
.map__tip.is-on{opacity:1}
.map__tip b{display:block;font-family:var(--f-display);font-weight:400;font-size:var(--t-md)}
.map__tip span{font-size:var(--t-xs);color:var(--stone)}
.map__legend{margin-top:16px;font-size:var(--t-xs);color:rgba(255,255,255,.6)}
@media (max-width:860px){.atlas__grid{grid-template-columns:1fr}.regions{flex-direction:row;flex-wrap:wrap;gap:0 20px;border:0}
  .regions button{font-size:var(--t-md);gap:8px;border:0;padding:6px 0}}

/* ---------- 9. Selon l'envie ---------- */
.moods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,24px)}
.mood{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:3/4;color:#fff;background:var(--ink);display:flex;flex-direction:column;justify-content:flex-end;padding:22px}
.mood img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);transition:transform 1.2s var(--ease)}
.mood::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,27,42,0) 40%,rgba(14,27,42,.85))}
.mood:hover img{transform:scale(1.04)}
.mood b,.mood span{position:relative;z-index:1}
.mood b{font-family:var(--f-display);font-weight:400;font-size:var(--t-xl);line-height:1.1}
.mood span{font-size:var(--t-sm);opacity:.8;margin-top:6px}
@media (max-width:860px){.moods{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- 10. Histoires ---------- */
.stories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.story .card__img{aspect-ratio:3/2}
.story__k{font-size:var(--t-xs);color:var(--champagne-d);font-weight:500;margin-top:18px}
.story h3{margin:6px 0 10px;font-size:var(--t-xl)}
.story p{color:var(--stone);font-size:var(--t-sm);max-width:44ch}
@media (max-width:860px){.stories{grid-template-columns:1fr}}

/* ---------- 11. Carnet (newsletter) ---------- */
.carnet{border-top:1px solid var(--rule)}
.carnet__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end}
.carnet form{display:block}
.carnet input{flex:1;min-width:0;border:0;background:none;padding:14px 0;font-size:var(--t-md);outline:none}
.carnet small{display:block;margin-top:10px;color:var(--stone);font-size:var(--t-xs)}
@media (max-width:760px){.carnet__in{grid-template-columns:1fr}}

/* ---------- 12. Pied de page (partial footer) ---------- */
.ftr{background:var(--ink);color:rgba(255,255,255,.72);padding-block:72px 32px;font-size:var(--t-sm)}
.ftr__grid{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:40px}
.ftr__logo{display:inline-block;margin-bottom:18px}
.ftr__logo img{width:70px;height:52px}
.ftr .brand{color:#fff;margin-bottom:16px}
.ftr h4{margin:0 0 14px;color:#fff;font-weight:500;font-size:var(--t-sm)}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ftr a:hover{color:#fff}
.ftr__aff{max-width:46ch;font-size:var(--t-xs);line-height:1.6;margin-top:16px}
.ftr__bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:56px;padding-top:22px;border-top:1px solid var(--rule-inv);font-size:var(--t-xs)}
@media (max-width:860px){.ftr__grid{grid-template-columns:1fr 1fr}.ftr__grid > :first-child{grid-column:1/-1}}

/* ---------- 13. Page recherche ---------- */
.sbar{position:sticky;top:var(--header-h);z-index:30;background:var(--porcelain);padding-block:16px;border-bottom:1px solid var(--rule)}
.sbar .finder{box-shadow:0 0 0 1px var(--rule)}
.res-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;padding-block:40px 20px}
.res-head h1{font-size:clamp(2rem,4vw,var(--t-3xl))}
.res-count{color:var(--stone);font-size:var(--t-sm);margin-top:8px}
.res-count b{color:var(--ink);font-weight:500}
.facets{display:flex;flex-wrap:wrap;gap:10px 28px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--rule)}
.facet{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.facet__l{font-size:var(--t-xs);color:var(--stone);margin-right:4px}
.chip{min-height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--rule);font-size:var(--t-sm);background:var(--paper);transition:all .2s}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.chip small{opacity:.6;margin-left:4px;font-variant-numeric:tabular-nums}
.sel{min-height:34px;border:1px solid var(--rule);border-radius:999px;padding:0 32px 0 14px;font-size:var(--t-sm);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%232A2E35'/%3E%3C/svg%3E") no-repeat right 12px center;appearance:none}
.views{margin-left:auto;display:flex;border:1px solid var(--rule);border-radius:999px;padding:3px;background:var(--paper)}
.views button{min-height:30px;padding:0 14px;border-radius:999px;font-size:var(--t-sm)}
.views button[aria-pressed="true"]{background:var(--ink);color:#fff}
.results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px clamp(20px,2.4vw,32px);padding-block:36px 96px}
.results.is-map{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:32px}
.r-list{display:contents}
.results.is-map .r-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;align-content:start}
.r-map{display:none}
.results.is-map .r-map{display:block;position:sticky;top:calc(var(--header-h) + 130px);align-self:start;background:var(--ink);border-radius:6px;padding:20px}
.rcard .card__img{aspect-ratio:3/2}
.rcard .card__n{font-size:var(--t-lg)}
.rcard .card__body{padding-top:14px}
.rcard__tags{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.tag{font-size:var(--t-xs);padding:2px 10px;border-radius:999px;border:1px solid var(--rule);color:var(--stone)}
.rcard.is-hot .card__img{box-shadow:0 0 0 2px var(--champagne)}
.rcard[hidden]{display:none}
.r-empty{grid-column:1/-1;padding:64px 0;text-align:center;color:var(--stone)}
.r-empty strong{display:block;font-family:var(--f-display);font-weight:400;color:var(--ink);font-size:var(--t-xl);margin-bottom:8px}
.avail{font-size:var(--t-xs);font-weight:500;padding:6px 12px;border-radius:999px;background:var(--ink);color:#fff;white-space:nowrap}
.avail:hover{background:var(--champagne);color:var(--ink)}
.avail--none{background:none;color:var(--stone);padding:6px 0;font-weight:400}
@media (max-width:1080px){.results{grid-template-columns:repeat(2,minmax(0,1fr))}.results.is-map{grid-template-columns:1fr}.results.is-map .r-map{position:relative;top:0;order:-1}}
@media (max-width:640px){.results,.results.is-map .r-list{grid-template-columns:1fr}.views{margin-left:0}}

/* ---------- 14. Fiche hôtel ---------- */
.hhero{position:relative;min-height:88vh;min-height:88svh;color:#fff;display:flex;align-items:flex-end;padding:calc(var(--header-h) + 40px) 0 clamp(36px,6vh,72px);isolation:isolate;background:var(--ink)}
.hhero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:var(--grade)}
.hhero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,27,42,.5),rgba(14,27,42,.05) 30%,rgba(14,27,42,.15) 55%,rgba(14,27,42,.9))}
.crumbs{font-size:var(--t-xs);opacity:.85;margin-bottom:20px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.crumbs li + li::before{content:"/";margin-right:8px;opacity:.6}
.hhero h1{color:#fff;font-size:clamp(3rem,8vw,7rem);letter-spacing:-.025em;line-height:.95}
.hhero__sub{font-size:var(--t-md);max-width:56ch;opacity:.9;margin:20px 0 0}
.bbar{position:sticky;top:var(--header-h);z-index:30;background:var(--porcelain);border-bottom:1px solid var(--rule)}
.bbar__in{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center;padding-block:14px}
.bbar__h{font-family:var(--f-display);font-size:var(--t-lg);color:var(--ink);white-space:nowrap}
.bbar__h small{display:block;font-family:var(--f-text);font-size:var(--t-xs);color:var(--stone)}
.bbar .finder{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto;box-shadow:0 0 0 1px var(--rule)}
.bbar .finder__f + .finder__f{border-left:1px solid var(--rule)}
.compare{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:var(--t-xs);color:var(--stone);padding-bottom:12px}
.compare a{color:var(--ink);font-weight:500;border-bottom:1px solid var(--rule)}
.compare a:hover{border-color:var(--ink)}
@media (max-width:900px){.bbar__in{grid-template-columns:1fr}.bbar__h{display:none}.bbar .finder{grid-template-columns:1fr 1fr}.bbar .finder__go{grid-column:1/-1}}

.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.facts div{padding:24px 20px 24px 0}
.facts div + div{padding-left:20px;border-left:1px solid var(--rule)}
.facts dt{font-size:var(--t-xs);color:var(--stone)}
.facts dd{margin:6px 0 0;font-family:var(--f-display);font-size:var(--t-xl);color:var(--ink);line-height:1.1}
.facts dd small{display:block;font-family:var(--f-text);font-size:var(--t-xs);color:var(--stone);margin-top:4px}
@media (max-width:760px){.facts{grid-template-columns:1fr 1fr}.facts div:nth-child(3){padding-left:0;border-left:0}.facts div:nth-child(n+3){border-top:1px solid var(--rule)}}

.prose{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(24px,5vw,80px)}
.prose__txt{font-family:var(--f-display);font-size:var(--t-md);line-height:1.75;color:var(--graphite);max-width:62ch}
.prose__txt p:first-child::first-letter{float:left;font-size:4.2em;line-height:.82;padding:6px 10px 0 0;color:var(--ink)}
blockquote.quote{margin:32px 0 0;padding:0;font-family:var(--f-display);font-style:italic;font-size:var(--t-xl);color:var(--ink);line-height:1.25}
blockquote.quote footer{font-family:var(--f-text);font-style:normal;font-size:var(--t-xs);color:var(--stone);margin-top:10px}
@media (max-width:860px){.prose{grid-template-columns:1fr}}

.tl{list-style:none;margin:0;padding:0;display:grid;gap:0}
.tl li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;padding:22px 0;border-top:1px solid var(--rule)}
.tl time{font-family:var(--f-display);font-size:var(--t-xl);color:var(--champagne-d);line-height:1}
.tl h3{font-size:var(--t-lg)}
.tl p{margin:6px 0 0;color:var(--stone);max-width:64ch}
.tl figure{margin:16px 0 0;max-width:340px}
.tl figure img{border-radius:4px;filter:grayscale(.2)}
.tl figcaption{font-size:var(--t-xs);color:var(--stone);margin-top:6px}
@media (max-width:640px){.tl li{grid-template-columns:1fr;gap:8px}}

.figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.fig{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;align-items:center;padding:18px;border:1px solid var(--rule);border-radius:4px;background:var(--paper)}
.fig img{width:96px;height:96px;object-fit:cover;border-radius:50%;filter:grayscale(1)}
.fig b{display:block;font-family:var(--f-display);font-weight:400;font-size:var(--t-lg);color:var(--ink)}
.fig span{font-size:var(--t-xs);color:var(--stone)}
@media (max-width:860px){.figs{grid-template-columns:1fr}}

.tables{columns:2;column-gap:48px}
.tables div{break-inside:avoid;padding:16px 0;border-top:1px solid var(--rule)}
.tables b{font-family:var(--f-display);font-weight:400;font-size:var(--t-lg);color:var(--ink)}
.tables p{margin:4px 0 0;color:var(--stone);font-size:var(--t-sm)}
@media (max-width:640px){.tables{columns:1}}

.info{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:40px}
.info dl{margin:0;display:grid;gap:18px}
.info dt{font-size:var(--t-xs);color:var(--stone)}
.info dd{margin:4px 0 0;color:var(--ink)}
.mapbox{position:relative;aspect-ratio:16/10;border-radius:4px;overflow:hidden;background:var(--ink);display:grid;place-items:center;color:#fff;text-align:center}
.mapbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:grayscale(1)}
.mapbox > div{position:relative}
@media (max-width:860px){.info{grid-template-columns:1fr}}

.near{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
@media (max-width:1000px){.near{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.near{grid-template-columns:1fr}}

.faq details{border-top:1px solid var(--rule);padding:20px 0}
.faq details:last-child{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font-family:var(--f-display);font-size:var(--t-lg);color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-text);font-weight:300;font-size:1.6rem;line-height:1;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{margin:12px 0 0;color:var(--stone);max-width:70ch}

/* ---------- 15. Audit Stay22 (maquette uniquement) ---------- */
.audit-btn{position:fixed;right:16px;bottom:16px;z-index:120;background:var(--ink);color:#fff;border-radius:999px;padding:10px 16px;font-size:var(--t-xs);
  box-shadow:0 10px 30px -10px rgba(0,0,0,.5);display:flex;gap:8px;align-items:center}
.audit-btn i{width:8px;height:8px;border-radius:50%;background:#8a8a8a}
.audit-on .audit-btn i{background:var(--champagne)}
.audit-panel{position:fixed;right:16px;bottom:64px;z-index:120;width:min(460px,calc(100vw - 32px));background:var(--paper);color:var(--ink);border-radius:16px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.5);padding:18px;font-size:var(--t-xs);display:none}
.audit-on .audit-panel{display:block}
.audit-panel h4{margin:0 0 8px;font-size:var(--t-sm)}
.audit-panel code{display:block;word-break:break-all;background:#F1F1EE;border-radius:8px;padding:10px;margin:8px 0;font-size:11px;line-height:1.5;max-height:140px;overflow:auto}
.audit-panel ul{margin:8px 0;padding-left:18px}
.audit-on a[data-aff]{outline:1px dashed var(--champagne-d);outline-offset:2px;position:relative}
.audit-on a[data-aff]::before{content:attr(data-aff);position:absolute;top:-10px;right:-6px;z-index:3;background:var(--champagne);color:var(--ink);
  font:500 9px/1 var(--f-text);padding:3px 5px;border-radius:4px;letter-spacing:.02em;pointer-events:none}

/* ---------- 16. Sélecteur de langue (drapeaux SVG sans texte, décision v3) ---------- */
.lang{position:relative}
.langs{position:absolute;right:0;top:calc(100% + 10px);background:var(--paper);border-radius:16px;padding:12px;display:grid;grid-template-columns:repeat(4,44px);gap:6px;
  box-shadow:0 30px 70px -25px rgba(14,27,42,.5);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .2s,transform .25s var(--ease)}
.langs.is-open{opacity:1;pointer-events:auto;transform:none}
.langs a{display:grid;place-items:center;height:36px;border-radius:8px}
.langs a:hover,.langs a[aria-current="true"]{background:rgba(14,27,42,.07)}
.langs svg,.flag svg{display:block;width:100%;height:100%}
.langs a span{width:24px;height:16px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px var(--rule)}

.finder__q::-webkit-search-cancel-button,.finder__q::-webkit-search-decoration{-webkit-appearance:none;appearance:none}
@media (max-width:640px){.audit-btn{top:auto;bottom:12px;right:12px;padding:8px 12px}.audit-panel{top:auto;bottom:56px;right:12px;left:12px;width:auto}}

/* ---------- 17. Mobile : barres non collantes + CTA de réservation fixe ---------- */
.mcta{display:none}
@media (max-width:900px){
  .sbar,.bbar{position:static}
  .mcta{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:12px;align-items:center;justify-content:space-between;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(245,245,242,.96);box-shadow:0 -1px 0 var(--rule);
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .mcta b{display:block;font-family:var(--f-display);font-weight:400;font-size:var(--t-md);color:var(--ink);line-height:1.1}
  .mcta span{font-size:var(--t-xs);color:var(--stone)}
  .has-mcta .ftr{padding-bottom:110px}
  .has-mcta .audit-btn{bottom:84px}
}

/* =====================================================================
   18. Gabarits hors fiches hôtel (Pays, Index, Figure, Hall of Fame, Marque)
   ===================================================================== */
.hhero--dest h1{font-size:clamp(2.6rem,6vw,5.4rem);max-width:16ch}
.map--light .map__land{fill:rgba(14,27,42,.07);stroke:rgba(14,27,42,.16)}
.map--light .map__dot{fill:var(--champagne-d)}
.map--light .map__dot.is-dim{opacity:.18}
.map--light .map__route{fill:none;stroke:var(--ink);stroke-width:1.2px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke;opacity:.55}
.map--panel{background:var(--paper);border:1px solid var(--rule);border-radius:6px;padding:16px}
.split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.citylist{list-style:none;margin:0;padding:0;columns:2;column-gap:32px}
.citylist li{break-inside:avoid;border-top:1px solid var(--rule)}
.citylist a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;font-family:var(--f-display);font-size:var(--t-lg);color:var(--ink)}
.citylist a span{font-family:var(--f-text);font-size:var(--t-sm);color:var(--stone);font-variant-numeric:tabular-nums}
.citylist a:hover{color:var(--champagne-d)}
@media (max-width:560px){.citylist{columns:1}}
.chips-row{display:flex;flex-wrap:wrap;gap:8px}
a.chip{display:inline-flex;align-items:center}

/* Index (pays / villes) */
.idx-head{padding-top:calc(var(--header-h) + 56px)}
.idx-head h1{font-size:clamp(2.6rem,6vw,5rem)}
.idx-tools{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--rule);position:sticky;top:var(--header-h);background:var(--porcelain);z-index:20}
.idx-filter{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--ink);min-width:min(320px,100%)}
.idx-filter input{border:0;background:none;padding:10px 0;font-family:var(--f-display);font-size:var(--t-lg);outline:none;width:100%;min-width:0;color:var(--ink)}
.idx-filter input::-webkit-search-cancel-button{-webkit-appearance:none}
.idx-group{padding-top:48px}
.idx-group > h2{font-size:var(--t-2xl);display:flex;align-items:baseline;gap:14px;margin-bottom:12px}
.idx-group > h2 small{font-family:var(--f-text);font-size:var(--t-sm);color:var(--stone)}
.idx-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr) 90px 210px;gap:24px;align-items:center;padding:18px 0;border-top:1px solid var(--rule);position:relative}
.idx-row:hover{background:linear-gradient(90deg,rgba(191,162,106,.08),transparent)}
.idx-row__n{font-family:var(--f-display);font-size:var(--t-xl);color:var(--ink);line-height:1.1}
.idx-row__n a::after{content:"";position:absolute;inset:0}
.idx-row__m{font-size:var(--t-sm);color:var(--stone)}
.idx-row__c{font-size:var(--t-sm);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.idx-row__th{display:flex;gap:6px;justify-content:flex-end}
.idx-row__th i{display:block;width:64px;height:44px;border-radius:3px;background:#ddd center/cover;filter:var(--grade)}
.idx-row[hidden]{display:none}
@media (max-width:900px){.idx-row{grid-template-columns:minmax(0,1fr) auto}.idx-row__m{grid-column:1/-1;order:3}.idx-row__th{display:none}}
.az{display:flex;flex-wrap:wrap;gap:2px}
.az a{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;font-size:var(--t-sm);color:var(--ink)}
.az a:hover{background:var(--ink);color:#fff}
.az span{width:30px;height:30px;display:grid;place-items:center;font-size:var(--t-sm);color:#C4C4C6}
.city-hotels{display:flex;flex-wrap:wrap;gap:4px 14px}
.city-hotels a{position:relative;z-index:1;font-size:var(--t-sm);color:var(--graphite);border-bottom:1px solid var(--rule)}
.city-hotels a:hover{border-color:var(--ink)}

/* Figure */
.fhero{padding:calc(var(--header-h) + 48px) 0 clamp(48px,7vw,96px)}
.fhero__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,80px);align-items:end}
.fhero__img{position:relative}
.fhero__img img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;filter:grayscale(1) contrast(1.05);border-radius:2px}
.fhero__img figcaption{font-size:var(--t-xs);color:var(--stone);margin-top:8px}
.fhero h1{font-size:clamp(3.2rem,8vw,7.4rem);line-height:.92;letter-spacing:-.03em}
.fhero__dates{font-family:var(--f-display);font-style:italic;font-size:var(--t-xl);color:var(--champagne-d);margin:14px 0 22px}
.fhero .lede{font-size:var(--t-md);color:var(--graphite)}
.fhero .crumbs{color:var(--stone)}
@media (max-width:860px){.fhero__in{grid-template-columns:1fr}.fhero__img{max-width:420px}}
.journey{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,64px);align-items:start}
.journey__map{position:sticky;top:calc(var(--header-h) + 24px)}
.journey__map .map__legend{color:var(--stone)}
.jsteps{list-style:none;margin:0;padding:0}
.jstep{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;padding:22px 0;border-top:1px solid var(--rule);cursor:default;transition:background .2s}
.jstep time{font-family:var(--f-display);font-size:var(--t-xl);color:var(--stone);line-height:1;transition:color .2s}
.jstep h3{font-size:var(--t-lg)}
.jstep__p{font-size:var(--t-xs);color:var(--champagne-d);font-weight:500;margin:4px 0 6px}
.jstep p{margin:0;color:var(--stone);font-size:var(--t-sm)}
.jstep a{position:relative;color:var(--ink);border-bottom:1px solid var(--rule)}
.jstep.is-on time,.jstep:hover time{color:var(--ink)}
.jstep.is-on{background:linear-gradient(90deg,rgba(191,162,106,.1),transparent 70%)}
@media (max-width:900px){.journey{grid-template-columns:1fr}.journey__map{position:relative;top:0}}
.gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.gal figure{margin:0}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(1);border-radius:2px}
.gal figcaption{font-size:var(--t-xs);color:var(--stone);margin-top:8px;line-height:1.5}
@media (max-width:900px){.gal{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Hall of Fame */
.hof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 24px}
.hof__c{position:relative}
.hof__c img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 15%;filter:grayscale(1) contrast(1.04);border-radius:2px;transition:filter .5s}
.hof__c:hover img{filter:grayscale(.2)}
.hof__c h3{margin-top:14px;font-size:var(--t-lg)}
.hof__c h3 a::after{content:"";position:absolute;inset:0}
.hof__d{font-family:var(--f-display);font-style:italic;color:var(--champagne-d);font-size:var(--t-sm);margin-top:2px}
.hof__r{font-size:var(--t-sm);color:var(--stone);margin:6px 0 0}
.hof__c[hidden]{display:none}
@media (max-width:1000px){.hof{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.hof{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}}
.life{position:relative;margin-top:8px}
.life__axis{display:grid;grid-template-columns:200px minmax(0,1fr);font-size:var(--t-xs);color:var(--stone)}
.life__ticks{position:relative;height:22px;border-bottom:1px solid var(--rule)}
.life__ticks span{position:absolute;translate:-50% 0}
.life__row{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;height:30px}
.life__row a{font-size:var(--t-sm);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:12px}
.life__track{position:relative;height:100%;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 1px),var(--rule) calc(10% - 1px) 10%)}
.life__bar{position:absolute;top:50%;height:6px;translate:0 -50%;border-radius:3px;background:var(--ink)}
.life__bar--r{background:var(--champagne)}
.life__row:hover .life__bar{height:10px}
.legend{display:flex;gap:20px;font-size:var(--t-xs);color:var(--stone);margin-top:14px}
.legend i{display:inline-block;width:18px;height:6px;border-radius:3px;margin-right:6px;vertical-align:middle;background:var(--ink)}
.legend i.r{background:var(--champagne)}
@media (max-width:640px){.life__axis,.life__row{grid-template-columns:120px minmax(0,1fr)}}

/* Marque */
.tri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,24px)}
.tri__c{position:relative;min-height:min(78vh,720px);border-radius:4px;overflow:hidden;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;background:var(--ink)}
.tri__c img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);transition:transform 1.2s var(--ease)}
.tri__c::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,27,42,.1) 30%,rgba(14,27,42,.9))}
.tri__c:hover img{transform:scale(1.03)}
.tri__c > *:not(img){position:relative;z-index:1}
.tri__y{font-family:var(--f-display);font-size:var(--t-3xl);line-height:1;color:var(--champagne)}
.tri__c h3{color:#fff;font-size:var(--t-2xl);margin:8px 0 4px}
.tri__c h3 a::after{content:"";position:absolute;inset:0;z-index:0}
.tri__c p{font-size:var(--t-sm);opacity:.85;margin:0 0 18px}
.tri__c .avail{position:relative;z-index:2;align-self:flex-start;background:var(--champagne);color:var(--ink)}
@media (max-width:900px){.tri{grid-template-columns:1fr}.tri__c{min-height:420px}}
.note{border-left:2px solid var(--champagne);padding:4px 0 4px 18px;color:var(--stone);font-size:var(--t-sm);max-width:70ch}
@media (max-width:900px){.idx-tools{position:static}}

/* =====================================================================
   19. Site de production (pages générées)
   ===================================================================== */
.langs__soon{display:grid;place-items:center;height:36px;border-radius:8px;opacity:.3;cursor:not-allowed}
.langs__soon span{width:24px;height:16px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px var(--rule)}
.infolist{list-style:none;margin:0;padding:0;font-family:var(--f-display);font-size:var(--t-md);line-height:1.6;color:var(--graphite)}
.infolist li{padding:14px 0;border-top:1px solid var(--rule)}
.infolist li:last-child{border-bottom:1px solid var(--rule)}
.tl__t{margin:0;color:var(--graphite);max-width:68ch}
.tl__t a{color:var(--ink);border-bottom:1px solid var(--champagne)}
.tl li > div > figure,.tl .vid{margin:14px 0 0;max-width:360px}
.vids{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.vid{margin:0}
.vid__b{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:4px;overflow:hidden;background:var(--ink)}
.vid__b img{width:100%;height:100%;object-fit:cover;filter:var(--grade);opacity:.85;transition:opacity .3s}
.vid__b:hover img{opacity:1}
.vid__p{position:absolute;left:50%;top:50%;width:64px;height:64px;translate:-50% -50%;border-radius:50%;background:rgba(14,27,42,.75);box-shadow:0 0 0 1px rgba(255,255,255,.5)}
.vid__p::after{content:"";position:absolute;left:26px;top:20px;border-left:18px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent}
.vid iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:4px}
.vid figcaption{font-size:var(--t-xs);color:var(--stone);margin-top:8px}
.gal--color img{filter:var(--grade)}
.gal--col{grid-template-columns:repeat(2,minmax(0,1fr))}
.mapbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.prose__txt--plain p:first-child::first-letter{float:none;font-size:inherit;padding:0;line-height:inherit}
.prose__txt--plain{font-size:var(--t-base)}
.legal{max-width:760px}
.legal h2{font-size:var(--t-xl);margin:40px 0 10px}
.legal h2:first-child{margin-top:0}
.legal p{color:var(--graphite)}
.tline{padding-top:48px}
.tline > h2{font-size:var(--t-2xl);margin-bottom:12px}
.tline__r{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.tblwrap{max-height:560px;overflow:auto;border-top:1px solid var(--rule)}
.tbl{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
.tbl th,.tbl td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.tbl thead th{position:sticky;top:0;background:var(--porcelain);font-weight:500;color:var(--stone);font-size:var(--t-xs)}
.tbl tbody th{font-family:var(--f-display);font-weight:400;font-size:var(--t-md);color:var(--ink)}
.tbl tr[hidden]{display:none}
.psgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:24px}
.ps{display:block}
.ps img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px;filter:var(--grade)}
.ps b{display:block;font-family:var(--f-display);font-weight:400;font-size:var(--t-lg);color:var(--ink);margin-top:10px}
.ps span{font-size:var(--t-xs);color:var(--stone)}
.consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:130;max-width:560px;margin-inline:auto;background:var(--ink);color:#fff;border-radius:16px;padding:18px 20px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.6);display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;font-size:var(--t-sm)}
.consent[hidden]{display:none}
.consent p{margin:0;flex:1 1 280px;color:rgba(255,255,255,.85)}
.consent a{text-decoration:underline}
.consent__a{display:flex;gap:8px}
.consent .btn--line{color:#fff}
.ftr__consent{color:inherit;text-decoration:underline;text-underline-offset:3px}
.has-mcta .consent{bottom:84px}
@media (max-width:640px){.consent{font-size:var(--t-xs);padding:14px 16px;left:10px;right:10px;bottom:10px}}
/* emplacements publicitaires (partials/ads.php)
   Repliés à 0 px tant qu'aucune annonce n'est affichée ; masqués si AdSense ne remplit pas l'emplacement. */
.adslot{display:block;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);text-align:center;height:0;overflow:hidden}
.adslot__l{display:none;font-size:var(--t-xs);color:var(--stone);margin-bottom:8px;letter-spacing:.02em}
.adslot:has(ins[data-ad-status="filled"]){height:auto;overflow:visible;margin-bottom:clamp(56px,7vw,96px)}
.adslot:has(ins[data-ad-status="filled"]) .adslot__l{display:block}
.adslot:has(ins[data-ad-status="unfilled"]),ins.adsbygoogle[data-ad-status="unfilled"]{display:none!important}
.adslot--preview{height:auto;overflow:visible;margin-bottom:clamp(56px,7vw,96px)}
.adslot--preview .adslot__l{display:block}
.adslot__ph{display:grid;place-items:center;min-height:120px;border:1px dashed var(--champagne-d);border-radius:6px;background:rgba(191,162,106,.08);color:var(--champagne-d);font-size:var(--t-sm)}
/* ---------- carte OpenFreeMap de la fiche hôtel ---------- */
.hmap{position:relative;margin:0;aspect-ratio:16/10;border-radius:4px;overflow:hidden;background:#E9E8E3}
.hmap__ph{position:absolute;inset:0;pointer-events:none;width:100%;height:100%;object-fit:cover;opacity:.35;filter:grayscale(1);transition:opacity .6s}
.hmap .hmap__c{position:absolute;inset:0}
.hmap.is-ready .hmap__ph{opacity:0}
.hmap noscript{position:absolute;inset:0;display:grid;place-items:center}
.hpin{display:block;width:68px;height:78px;padding:0;border:0;background:none;cursor:pointer;filter:drop-shadow(0 8px 14px rgba(14,27,42,.35))}
.hpin::after{content:"";position:absolute;left:50%;bottom:0;width:16px;height:16px;background:#fff;transform:translateX(-50%) rotate(45deg);border-radius:0 0 3px 0;z-index:0}
.hpin__img{position:relative;z-index:1;display:block;width:68px;height:68px;border-radius:50%;background:#fff center/cover no-repeat;border:3px solid #fff;box-shadow:0 0 0 2px var(--champagne)}
.hpin:hover .hpin__img,.hpin:focus-visible .hpin__img{box-shadow:0 0 0 3px var(--champagne-d)}
.hpin:focus-visible{outline:none}
.hpop .maplibregl-popup-content{font-family:'Instrument Sans',system-ui,sans-serif;padding:14px 16px;border-radius:4px;box-shadow:0 12px 30px rgba(14,27,42,.18);display:grid;gap:4px;color:var(--ink)}
.hpop b{font-family:'Bodoni Moda',serif;font-weight:500;font-size:17px}
.hpop span{font-size:13px;color:var(--stone)}

.hmap .maplibregl-ctrl-group{border-radius:4px;box-shadow:0 4px 14px rgba(14,27,42,.14)}
.hmap .maplibregl-cooperative-gesture-screen{font-family:'Instrument Sans',system-ui,sans-serif;background:rgba(14,27,42,.72)}
