/* =====================================================================
   Manoir des 2 Sources — système visuel
   Une seule feuille : tokens, typographie, composants, pages.
   Aucune dépendance, aucun build.
   ===================================================================== */

:root{
  /* Le site est conçu en clair. On refuse le thème sombre automatique des
     navigateurs et de Chrome Android, qui rendait certaines sections illisibles. */
  color-scheme: light;

  /* --- couleurs ---------------------------------------------------- */
  --paper:#F7F4ED;        /* fond principal, lin */
  --paper-soft:#FBFAF6;   /* fond alterné, presque blanc */
  --linen:#EEE8DD;        /* fond alterné, chaud */
  --stone:#E8E0D4;        /* pierre claire */
  --stone-deep:#D9D0C2;   /* pierre soutenue */
  --forest:#21382D;       /* vert profond */
  --forest-deep:#13271E;  /* vert nuit */
  --night:#0F1C16;        /* pied de page */
  --terra:#A76449;        /* terracotta, par touches */
  --sand:#D1C4AE;         /* chiffres et accents sur fond sombre */
  --ink:#1E211E;
  --ink-soft:#64665F;
  --ink-mute:#85867E;
  --line:rgba(30,33,30,.16);
  --line-light:rgba(255,255,255,.24);

  /* --- typographie -------------------------------------------------- */
  --serif:"Newsreader","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:"Karla",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;

  /* --- rythme ------------------------------------------------------- */
  --gutter:72px;
  --section:112px;
  --head-h:88px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box;}
html{color-scheme:light;}
/* Les champs de formulaire suivent eux aussi le thème clair, quel que soit
   le réglage du téléphone. */
input,select,textarea,button{color-scheme:light;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img,video{display:block;width:100%;height:auto;object-fit:cover;}
a{color:inherit;text-decoration:none;}
figure{margin:0;}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:400;letter-spacing:-.03em;}
p{margin:0 0 18px;}
p:last-child{margin-bottom:0;}
::selection{background:var(--terra);color:#fff;}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px;}

.skip{position:absolute;left:-9999px;top:0;background:var(--forest);color:#fff;padding:12px 18px;z-index:200;}
.skip:focus{left:12px;top:12px;}

/* --- conteneurs ------------------------------------------------------ */
.shell,.wrap{width:min(1240px,calc(100% - var(--gutter)));margin-inline:auto;}
.narrow{max-width:820px;}
.section{padding:var(--section) 0;background:var(--paper);color:var(--ink);}
.section--tight{padding:calc(var(--section) * .68) 0;}
.section--stone{background:var(--linen);}
.section--soft{background:var(--paper-soft);}
.section--sand{background:var(--stone);}
.section--forest{background:var(--forest);color:#fff;}
.section--forest .muted,.section--forest p{color:rgba(255,255,255,.74);}
.section--forest h1,.section--forest h2,.section--forest h3{color:#fff;}

/* --- typographie ----------------------------------------------------- */
h1,.title{font-size:clamp(2.7rem,5.4vw,6rem);line-height:.98;letter-spacing:-.035em;}
h2{font-size:clamp(2.2rem,4.4vw,4.4rem);line-height:1.02;letter-spacing:-.033em;}
h3{font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.1;letter-spacing:-.025em;}

/* L'espace entre un sur-titre et le grand titre qui le suit se règle à un seul
   endroit pour tout le site : --eyebrow-gap, déclarée juste au-dessus.
   Valeur d'origine 18px. La terrasse garde la sienne, prise comme référence. */
:root{
  --eyebrow-gap:34px;
  --eyebrow-gap-terrace:18px;
}
.eyebrow{
  font-family:var(--sans);font-size:.69rem;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:var(--terra);
  margin:0 0 var(--eyebrow-gap);display:block;
}
.terrace-copy .eyebrow{margin-bottom:var(--eyebrow-gap-terrace);}
.section--forest .eyebrow{color:var(--sand);}
.lede{font-family:var(--serif);font-size:clamp(1.3rem,2.2vw,2.15rem);line-height:1.35;letter-spacing:-.02em;}
.lede p{margin-bottom:.5em;}
.muted{color:var(--ink-soft);}
.note{font-family:var(--serif);font-style:italic;color:var(--ink-mute);font-size:1.1rem;}
.serif-note{font-family:var(--serif);font-size:1.35rem;line-height:1.4;color:var(--ink);}
.section--forest .serif-note{color:var(--sand);}
.prose p{max-width:62ch;font-size:1.04rem;line-height:1.75;color:var(--ink-soft);}

.rule{border:0;height:1px;background:var(--line);margin:0;}

/* --- boutons --------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 22px;border:1px solid currentColor;border-radius:0;
  font-family:var(--sans);font-size:.67rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
}
.btn--solid{background:var(--forest-deep);border-color:var(--forest-deep);color:#fff;}
.btn--solid:hover{background:var(--forest);border-color:var(--forest);}
.btn--line:hover{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.btn--light{background:var(--paper);border-color:var(--paper);color:var(--forest-deep);}
.btn--light:hover{background:#fff;border-color:#fff;}
.btn--ghost-light{color:#fff;border-color:rgba(255,255,255,.5);}
.btn--ghost-light:hover{background:rgba(255,255,255,.14);border-color:#fff;}

.more{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.68rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;
  border-bottom:1px solid currentColor;padding-bottom:4px;
}
.more span{transition:transform .3s var(--ease);}
.more:hover span{transform:translateX(5px);}

/* --- en-tête --------------------------------------------------------- */
.masthead{
  position:fixed;top:0;left:0;right:0;z-index:60;color:#fff;
  background:linear-gradient(rgba(10,18,13,.46),transparent);
  transition:background .35s var(--ease),color .35s var(--ease),box-shadow .35s;
}
.masthead.on-light,.masthead.scrolled{
  background:rgba(247,244,237,.94);backdrop-filter:blur(15px);
  color:var(--ink);box-shadow:0 1px var(--line);
}
.masthead-inner{
  height:var(--head-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;
}
.nav,.masthead-actions{
  display:flex;align-items:center;gap:26px;
  font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
}
.masthead-actions{justify-content:flex-end;gap:20px;}
.nav a{position:relative;padding:4px 0;}
.nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:currentColor;transition:right .3s var(--ease);
}
.nav a:hover::after,.nav a[aria-current=page]::after{right:0;}

.wordmark{text-align:center;display:block;}
.wordmark-text{font-family:var(--serif);font-size:1.34rem;font-weight:400;letter-spacing:-.01em;display:block;}
.wordmark-text small{
  display:block;font-family:var(--sans);font-size:.52rem;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;margin-top:5px;opacity:.72;
}
.springs{display:none;}

.lang{display:flex;align-items:center;gap:7px;font-size:.68rem;letter-spacing:.12em;}
.lang a{opacity:.62;}
.lang a:hover,.lang a[aria-current=true]{opacity:1;}
.lang span{opacity:.35;}

.burger{display:none;border:0;background:none;color:inherit;padding:6px;cursor:pointer;}

.drawer{
  position:fixed;inset:0;z-index:70;background:var(--forest-deep);color:#fff;
  padding:26px var(--gutter);overflow-y:auto;
}
.drawer[hidden]{display:none;}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px;}
.drawer > a{
  display:block;font-family:var(--serif);font-size:clamp(1.7rem,7vw,2.4rem);
  padding:14px 0;border-bottom:1px solid rgba(255,255,255,.14);
}
.drawer .lang a{font-family:var(--sans);font-size:.8rem;}

/* L'en-tête est fixe : les pages intérieures réservent la hauteur. */
body:not(.page-home) main > section:first-child,
body:not(.page-home) main > .section:first-child{padding-top:calc(var(--head-h) + 56px);}

.nav-extra{position:relative;padding:4px 0;}
.nav-extra::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:right .3s var(--ease);}
.nav-extra:hover::after,.nav-extra[aria-current=page]::after{right:0;}

/* --- hero ------------------------------------------------------------ */
.hero{
  min-height:100svh;position:relative;display:flex;align-items:flex-end;
  color:#fff;background:var(--forest-deep);overflow:hidden;
}
.hero-media{position:absolute;inset:0;}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,18,12,.22),rgba(8,18,12,.12) 38%,rgba(8,18,12,.78));
}
.hero-inner{position:relative;z-index:2;padding:175px 0 64px;width:100%;}
.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:end;}
.hero .eyebrow{color:rgba(255,255,255,.82);}
.hero h1{
  font-size:clamp(3.4rem,8vw,9.2rem);line-height:.88;letter-spacing:-.045em;
  margin:0 0 .22em;max-width:14ch;
}
.hero .lede{font-family:var(--sans);font-size:1.13rem;line-height:1.6;max-width:52ch;color:rgba(255,255,255,.86);}
.hero-side{
  border-left:1px solid rgba(255,255,255,.45);padding-left:28px;
  max-width:340px;justify-self:end;
}
.hero-side strong{font-family:var(--serif);font-weight:400;font-size:1.6rem;display:block;margin-bottom:12px;}
.hero-side p{font-size:.9rem;color:rgba(255,255,255,.78);}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
.hero-scroll{
  position:relative;z-index:2;display:flex;align-items:center;gap:14px;margin-top:52px;
  font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8);
}
.hero-scroll i{display:block;width:80px;height:1px;background:rgba(255,255,255,.55);}
.hero-placeholder{
  position:absolute;z-index:3;left:50%;top:38%;transform:translateX(-50%);
  background:#FFEF9F;color:#222;padding:9px 15px;font-size:.75rem;font-weight:700;
}

/* --- grilles éditoriales --------------------------------------------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,95px);align-items:start;}
.split--landscape{grid-template-columns:1fr 1.1fr;align-items:center;}
.split--wide-media{grid-template-columns:.85fr 1.15fr;align-items:center;}
.split--aside{grid-template-columns:.45fr 1.55fr;}
.head{display:grid;grid-template-columns:1.15fr .65fr;gap:clamp(30px,7vw,100px);align-items:end;margin-bottom:56px;}
.head p{max-width:46ch;margin:0;color:var(--ink-soft);}
.section--forest .head p{color:rgba(255,255,255,.74);}

/* --- constats chiffrés (intro) ---------------------------------------- */
.truths{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  margin-top:64px;border-top:1px solid var(--line);row-gap:10px;column-gap:38px;
}
.truth{padding:34px 38px 36px 0;border-right:1px solid var(--line);}
.truth:last-child{border-right:0;}
.truth strong{
  font-family:var(--serif);font-size:2.2rem;font-weight:400;display:block;
  line-height:1.08;letter-spacing:-.03em;margin-bottom:14px;
}
.truth span{
  display:block;font-size:.78rem;line-height:1.5;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-soft);
}

/* --- vivre dehors ----------------------------------------------------- */
.outdoor-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;}
.outdoor-main{position:relative;min-height:740px;overflow:hidden;background:var(--forest-deep);}
.outdoor-main img{height:740px;}
.outdoor-main::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(8,18,12,.72));}
.outdoor-main figcaption{position:absolute;z-index:2;left:36px;bottom:32px;color:#fff;max-width:430px;}
.outdoor-main figcaption b{font-family:var(--serif);font-size:2rem;font-weight:400;display:block;}
.outdoor-main figcaption span{font-size:.87rem;color:rgba(255,255,255,.75);}
.outdoor-stack{display:grid;grid-auto-rows:1fr;gap:22px;}
.outdoor-card{display:grid;grid-template-columns:.93fr 1.07fr;min-height:359px;background:var(--linen);}
.outdoor-photo{overflow:hidden;}
.outdoor-photo img{height:100%;}
.outdoor-card > div:last-child{padding:34px 30px;display:flex;flex-direction:column;justify-content:center;}
.outdoor-card h3{margin:12px 0 16px;}
.outdoor-card p{font-size:.9rem;color:var(--ink-soft);}
.outdoor-card--dark{background:var(--forest);color:#fff;}
.outdoor-card--dark p{color:rgba(255,255,255,.72);}
.outdoor-card--dark .eyebrow{color:var(--sand);}

/* --- terrasse (pleine largeur) ---------------------------------------- */
.terrace{display:grid;grid-template-columns:1.1fr .9fr;background:var(--forest);color:#fff;}
.terrace-media{min-height:730px;}
.terrace-media img{height:100%;}
.terrace-copy{padding:100px 9vw;display:flex;flex-direction:column;justify-content:center;}
.terrace-copy p{max-width:540px;color:rgba(255,255,255,.8);font-size:1.06rem;}
.terrace-note{
  margin-top:32px;padding-top:22px;border-top:1px solid rgba(255,255,255,.2);
  font-family:var(--serif);font-size:1.4rem;line-height:1.4;color:#DED5C5;
}

/* --- une journée ------------------------------------------------------ */
.day{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));row-gap:10px;column-gap:38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.chapter{padding:34px 38px 38px 0;border-right:1px solid var(--line);}
.chapter:last-child{border-right:0;}
.chapter + .chapter{padding-left:28px;}
.chapter-num{font-family:var(--serif);font-size:1.25rem;color:var(--terra);display:block;margin-bottom:24px;}
.chapter-label{font-size:.67rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:0;}
.chapter h3{font-family:var(--serif);font-size:1.35rem;line-height:1.35;letter-spacing:-.01em;margin:14px 0 12px;}
.chapter p{font-size:.92rem;color:var(--ink-soft);margin:0;}
.day-note{text-align:right;margin:34px 0 0;}

/* --- saveurs ---------------------------------------------------------- */
.flavour-grid{display:grid;grid-template-columns:.93fr 1.07fr;gap:clamp(36px,6vw,90px);align-items:start;}
.flavour-photo{position:sticky;top:calc(var(--head-h) + 22px);min-height:720px;}
.flavour-photo img{height:720px;}
.kitchen-inset{margin:35px 0 10px;padding:28px 30px;background:var(--paper);border-left:3px solid var(--terra);}
.kitchen-inset h3{font-size:1.9rem;margin:12px 0 14px;}
.kitchen-inset small{display:block;margin-top:16px;color:var(--ink-mute);font-style:italic;}

.partners{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  margin-top:42px;border-top:1px solid var(--line);
  margin-left:-32px;width:calc(100% + 32px);
}
.partner{
  padding:22px 32px 24px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  display:flex;flex-direction:column;gap:6px;
}

.partner h3,.partner b{font-family:var(--serif);font-size:1.23rem;font-weight:400;letter-spacing:-.01em;}
.partner .role,.partner span.role{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--terra);}
.partner p{font-size:.88rem;color:var(--ink-soft);margin:6px 0 0;}
.partner .town{font-size:.78rem;color:var(--ink-mute);}
.partner .people{font-family:var(--serif);font-size:1rem;color:var(--ink);}
.partner .more{margin-top:14px;align-self:flex-start;font-size:.64rem;}
.partner-link{display:block;}
.partner-link:hover h3{color:var(--terra);}
.partner-photo{aspect-ratio:4/3;margin-bottom:12px;}

/* --- chambres --------------------------------------------------------- */
.rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;}
.room{background:#fff;}
.room-media{aspect-ratio:4/5;overflow:hidden;}
.room-media img{height:100%;transition:transform .65s var(--ease);}
.room:hover .room-media img{transform:scale(1.03);}
.room-body{padding:26px;}
.room h3{font-size:2.1rem;margin:0 0 2px;}
.room .tagline{
  font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--terra);margin:6px 0 16px;
}
.room .excerpt{font-size:.92rem;color:var(--ink-soft);}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px;}
.tag{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line);padding:5px 10px;}

/* --- rester plusieurs jours ------------------------------------------- */
.stay-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(36px,6vw,100px);}
.stay-list{border-top:1px solid var(--line-light);}
.stay-row{display:grid;grid-template-columns:70px 1fr;gap:25px;padding:27px 0;border-bottom:1px solid var(--line-light);}
.stay-row b{font-family:var(--serif);font-size:2.15rem;font-weight:400;color:var(--sand);}
.stay-row h3{font-size:1.75rem;margin:0 0 9px;}
.stay-row p{margin:0;font-size:.91rem;}

/* --- autour ----------------------------------------------------------- */
.activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);}
.activity-card{padding:34px;min-height:285px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.activity-card > span{font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);}
.activity-card h3{font-size:1.9rem;margin:15px 0 14px;}
.activity-card p{font-size:.9rem;color:var(--ink-soft);margin:0;}

/* --- projets à venir --------------------------------------------------- */
.future-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(40px,6vw,100px);}
.project-list{border-top:1px solid rgba(30,33,30,.25);}
.project{display:grid;grid-template-columns:150px 1fr;gap:30px;padding:30px 0;border-bottom:1px solid rgba(30,33,30,.25);align-items:start;}
.project > span{font-size:.65rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);padding-top:9px;}
.project h3{font-size:1.9rem;margin:0 0 9px;}
.project p{margin:0;color:var(--ink-soft);font-size:.9rem;}

/* --- hôtes ------------------------------------------------------------- */
.hosts-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,85px);align-items:center;}
.hosts-photo{min-height:650px;}
.hosts-photo img{height:100%;}
.quote{
  font-family:var(--serif);font-size:1.6rem;line-height:1.45;color:var(--forest);
  border-left:2px solid var(--terra);padding-left:25px;margin:30px 0 0;
}
.who{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);}

/* --- avis --------------------------------------------------------------- */
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}
.review{margin:0;padding:32px;background:var(--linen);}
.section--forest .review{background:rgba(255,255,255,.06);}
.review p{font-family:var(--serif);font-size:1.3rem;line-height:1.45;margin:0 0 20px;}
.review cite{font-style:normal;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);}
.section--forest .review cite{color:var(--sand);}
.empty-note{border:1px dashed var(--line);padding:24px;color:var(--ink-mute);font-style:italic;}

/* --- bandeau de réservation --------------------------------------------- */
.booking-band{background:var(--terra);color:#fff;text-align:center;padding:var(--section) 0;}
.booking-band h2{max-width:22ch;margin-inline:auto;}
.booking-band p{max-width:58ch;margin:22px auto 32px;color:rgba(255,255,255,.85);}
.booking-band .hero-actions{justify-content:center;margin-top:0;}
.booking-band .eyebrow{color:rgba(255,255,255,.8);}

/* --- pages intérieures ---------------------------------------------------- */
.page-hero{padding:calc(var(--head-h) + 82px) 0 90px;background:var(--forest-deep);color:#fff;}
.page-hero h1{max-width:16ch;}
.page-hero p{max-width:58ch;color:rgba(255,255,255,.78);margin-top:22px;}
.crumb{
  display:flex;gap:10px;align-items:center;margin:0 0 26px;
  font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
}
.crumb a{color:var(--terra);}
.crumb a:hover{text-decoration:underline;}

.room-panel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,80px);align-items:start;}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:22px;}
.steps{display:grid;gap:0;margin:0;padding:0;list-style:none;}
.step{
  display:grid;grid-template-columns:58px 1fr;gap:18px;align-items:baseline;
  padding:20px 0;border-bottom:1px solid var(--line);
}
.step:first-child{border-top:1px solid var(--line);}
.step i,.step b{font-family:var(--serif);font-size:1.75rem;font-style:normal;color:var(--terra);line-height:1;}
.steps--compact .step{padding:17px 0;}
.steps--compact .step span{font-size:1rem;line-height:1.5;}
.widget-frame{width:100%;min-height:640px;border:1px solid var(--line);background:#fff;}

.partner-head{display:grid;grid-template-columns:1fr minmax(220px,340px);gap:clamp(24px,4vw,56px);align-items:start;}
.partner-role{margin:16px 0 0;font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--terra);}
.partner-people{margin:18px 0 0;font-family:var(--serif);font-size:1.15rem;}
.partner-people strong{font-weight:400;}
.partner-town{margin:6px 0 0;color:var(--ink-soft);font-size:.9rem;}
.partner-portrait img{aspect-ratio:4/5;}
.partner-body{display:grid;grid-template-columns:1fr minmax(230px,300px);gap:clamp(28px,5vw,64px);align-items:start;}
.partner-aside{border-top:1px solid var(--line);padding-top:22px;}
.partner-aside h2{font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 14px;}
.partner-products{list-style:none;margin:0 0 26px;padding:0;}
.partner-products li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.96rem;}
.partner-products li:last-child{border-bottom:0;}

/* --- formulaires et calendrier --------------------------------------------- */
.field{display:block;margin-bottom:18px;}
.field > span{display:block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;}
.field input,.field select,.field textarea{
  width:100%;padding:13px 14px;border:1px solid var(--line);background:#fff;
  font:inherit;color:var(--ink);border-radius:0;
}
.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 18px;}
.picker{background:var(--paper-soft);border:1px solid var(--line);padding:clamp(20px,3vw,32px);}
.calendar{margin-top:26px;}
.cal-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:28px;}
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;}
.cal-head button{
  background:none;border:1px solid var(--line);width:38px;height:38px;
  cursor:pointer;font-size:1rem;color:var(--ink);
}
.cal-head button[disabled]{opacity:.35;cursor:not-allowed;}
.cal-month h4{font-family:var(--serif);font-weight:400;font-size:1.1rem;text-align:center;margin:0 0 10px;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-dow{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;color:var(--ink-soft);padding-bottom:6px;}
.cal-day{
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid var(--line);font-size:.86rem;
  cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease);
}
.cal-day.is-empty{visibility:hidden;border:0;background:none;}
.cal-day.is-past,.cal-day.is-booked{color:rgba(30,33,30,.3);cursor:not-allowed;text-decoration:line-through;}
.cal-day.is-booked{background:repeating-linear-gradient(-45deg,var(--stone),var(--stone) 3px,transparent 3px,transparent 6px);}
.cal-day.is-free:hover{background:var(--stone);}
.cal-day.is-selected{background:var(--forest);border-color:var(--forest);color:#fff;}
.cal-day.is-range{background:var(--linen);}
.cal-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px;font-size:.78rem;color:var(--ink-soft);}
.cal-legend i{display:inline-block;width:12px;height:12px;margin-right:6px;vertical-align:-2px;}
.cal-legend .free i{background:#fff;border:1px solid var(--line);}
.cal-legend .busy i{background:repeating-linear-gradient(-45deg,var(--stone),var(--stone) 3px,transparent 3px,transparent 6px);border:1px solid var(--line);}
.verdict{margin-top:20px;padding:16px 18px;border-left:3px solid var(--terra);background:#fff;}

/* --- pied de page ------------------------------------------------------------ */
.foot{background:var(--night);color:#fff;padding:70px 0 28px;}
.foot-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr;gap:50px;border-bottom:1px solid rgba(255,255,255,.14);padding-bottom:50px;}
.foot h3{font-size:2rem;margin:0 0 14px;}
.foot h4{font-family:var(--sans);font-size:.64rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45);margin:0 0 10px;}
.foot p,.foot a{font-size:.87rem;color:rgba(255,255,255,.7);display:block;margin:7px 0;}
.foot a:hover{color:#fff;}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:23px;font-size:.7rem;color:rgba(255,255,255,.42);}

/* --- barre d'appel mobile ------------------------------------------------------ */
.callbar{display:none;}

/* --- apparition au scroll ------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.in{opacity:1;transform:none;}

/* =====================================================================
   Responsive
   ===================================================================== */
@media (max-width:1080px){
  .outdoor-grid{grid-template-columns:1fr;}
  .outdoor-stack{grid-template-columns:1fr 1fr;grid-auto-rows:auto;}
  .outdoor-main,.outdoor-main img{min-height:600px;height:600px;}
  .outdoor-card{grid-template-columns:1fr;}
  .outdoor-photo{height:250px;}
  .project{grid-template-columns:120px 1fr;}
}

@media (max-width:980px){
  :root{--gutter:38px;--section:88px;}
  .shell,.wrap{width:min(760px,calc(100% - var(--gutter)));}
  .nav,.nav-extra{display:none;}
  .masthead-actions{gap:14px;}
  .masthead-inner{grid-template-columns:1fr auto;}
  .wordmark{text-align:left;grid-column:1;}
  .burger{display:block;}
  .hero-grid,.split,.split--landscape,.split--wide-media,.split--aside,
  .terrace,.stay-grid,.flavour-grid,.hosts-grid,.room-panel,.head,
  .future-grid,.partner-head,.partner-body{grid-template-columns:1fr;}
  .head{margin-bottom:40px;}
  .hero-side{justify-self:start;}
  .terrace-media{min-height:560px;}
  .flavour-photo{position:static;min-height:0;}
  .flavour-photo img{height:440px;}
  .hosts-photo{min-height:420px;}
  .partner-portrait img{aspect-ratio:4/3;}
}

@media (max-width:980px){
  /* Barre d'action toujours accessible : réserver ou appeler, en un geste. */
  body{padding-bottom:66px;}
  .callbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:56;
    background:var(--forest-deep);color:#fff;box-shadow:0 -2px 18px rgba(9,18,13,.28);
  }
  .callbar a{
    flex:1;text-align:center;padding:20px 8px;font-size:.7rem;font-weight:700;
    letter-spacing:.14em;text-transform:uppercase;
  }
  .callbar a + a{border-left:1px solid rgba(255,255,255,.18);}
  .callbar a.callbar--main{background:var(--terra);}
}

@media (max-width:640px){
  :root{--gutter:28px;--section:78px;--head-h:74px;}
  .masthead-actions .btn{padding:0 14px;min-height:42px;font-size:.62rem;}
  .hero-inner{padding-bottom:40px;}
  .hero-side{display:none;}
  .hero-scroll{margin-top:34px;}
  .truths,.day,.outdoor-stack,.partners,.activity-grid{grid-template-columns:1fr;}
  .truth,.chapter,.chapter + .chapter{border-right:0;border-bottom:1px solid var(--line);padding:26px 0 30px;}
  .truth:last-child,.chapter:last-child{border-bottom:0;}
  .day-note{text-align:left;}
  .partner{border-right:0;padding-right:0;}
  .activity-card{min-height:0;padding:26px 0;border-right:0;}
  .activity-grid{border-left:0;}
  .project{grid-template-columns:1fr;gap:6px;}
  .project > span{padding-top:0;}
  .terrace-copy{padding:70px 28px;}
  .outdoor-main,.outdoor-main img{min-height:440px;height:440px;}
  .stay-row{grid-template-columns:52px 1fr;gap:16px;}
  .foot-grid{grid-template-columns:1fr;gap:32px;}
}

/* =====================================================================
   Thème sombre : on ne suit pas le réglage du système.
   Le site est conçu en clair ; on réaffirme la palette pour que rien ne
   soit inversé si un navigateur tente de forcer un rendu sombre.
   ===================================================================== */
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:light;
    --paper:#F7F4ED;--paper-soft:#FBFAF6;--linen:#EEE8DD;--stone:#E8E0D4;
    --stone-deep:#D9D0C2;--forest:#21382D;--forest-deep:#13271E;--night:#0F1C16;
    --terra:#A76449;--sand:#D1C4AE;--ink:#1E211E;--ink-soft:#64665F;--ink-mute:#85867E;
    --line:rgba(30,33,30,.16);--line-light:rgba(255,255,255,.24);
  }
  html,body{background:var(--paper);color:var(--ink);}
  .section{background:var(--paper);color:var(--ink);}
  .section--stone{background:var(--linen);}
  .section--soft{background:var(--paper-soft);}
  .section--sand{background:var(--stone);}
  .section--forest{background:var(--forest);color:#fff;}
  .room,.room-open{background:#fff;}
  .modal-box,.picker,.verdict{background:var(--paper);}
  .field input,.field select,.field textarea{background:#fff;color:var(--ink);}
  .foot{background:var(--night);color:#fff;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}
  .reveal{opacity:1;transform:none;}
}

/* --- fenêtres de détail (chambres, partenaires) ------------------------ */
.modal{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;
  padding:clamp(12px,3vw,40px);background:rgba(15,28,22,.62);backdrop-filter:blur(3px);}
.modal[hidden]{display:none;}
.modal-box{
  position:relative;display:grid;grid-template-columns:1fr;
  grid-template-rows:auto minmax(0,1fr);
  width:min(1180px,100%);max-height:min(920px,92vh);overflow:hidden;
  background:var(--paper);border-radius:14px;box-shadow:0 28px 70px rgba(9,18,13,.42);
  animation:modal-in .32s var(--ease);
}
@keyframes modal-in{from{opacity:0;transform:translateY(14px) scale(.985);}to{opacity:1;transform:none;}}
.modal-media{overflow:hidden;background:var(--stone);min-height:0;position:relative;aspect-ratio:16/9;max-height:min(48vh,540px);}
.modal-media img{width:100%;height:100%;object-fit:cover;}
.modal-body{padding:clamp(28px,3.4vw,48px);overflow-y:auto;min-height:0;overscroll-behavior:contain;}
.modal-body h2{font-size:clamp(2rem,3.4vw,3rem);line-height:1.02;}
.modal-body .prose p{font-size:1rem;line-height:1.72;}
.modal-close{
  position:absolute;top:18px;right:18px;z-index:2;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);background:rgba(255,255,255,.92);color:var(--ink);
  display:grid;place-items:center;cursor:pointer;transition:background .25s var(--ease);
}
.modal-close:hover{background:#fff;}
.modal-list{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid var(--line);}
.modal-list li{padding:10px 0;border-bottom:1px solid var(--line);font-size:.94rem;color:var(--ink-soft);}
.modal-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:24px;}
.modal-gallery img{aspect-ratio:3/2;width:100%;object-fit:cover;display:block;}
.modal-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}
body.modal-open{overflow:hidden;}

/* cartes cliquables : un bouton qui ne ressemble pas à un bouton */
.room-open,.partner.partner-link{
  display:block;width:100%;text-align:left;background:none;border:0;padding:0;
  font:inherit;color:inherit;cursor:pointer;
}
.partner.partner-link{
  padding:22px 32px 24px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);
}
.room-open{background:#fff;}
.room-open:hover h3,.partner.partner-link:hover h3{color:var(--terra);}
.partner .people{display:block;font-family:var(--serif);font-size:1rem;color:var(--ink-soft);margin-top:4px;}

@media (max-width:860px){
  .modal-box{max-height:94vh;}
  .modal-media{aspect-ratio:16/10;max-height:32vh;}
  .modal-gallery{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;}
}

.modals{display:contents;}

/* --- menu mobile : lisibilité et confort de lecture -------------------- */
.drawer{background:var(--forest-deep);color:#fff;}
.drawer > a{
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--serif);font-size:clamp(1.5rem,6vw,2rem);line-height:1.15;
  padding:15px 0;border-bottom:1px solid rgba(255,255,255,.14);color:#fff;
}
.drawer > a::after{content:"→";font-family:var(--sans);font-size:.9rem;opacity:.45;}
.drawer .drawer-book{
  margin-top:22px;background:var(--terra);color:#fff;border-bottom:0;
  justify-content:center;font-size:1.15rem;padding:17px 0;
}
.drawer .drawer-book::after{content:none;}
.drawer .drawer-phone{font-family:var(--sans);font-size:1rem;letter-spacing:.06em;opacity:.8;}

/* =====================================================================
   Ancrage : où s'arrête la page quand on clique une entrée de menu
   ---------------------------------------------------------------------
   L'en-tête est fixe : sans marge d'ancrage, le titre de section passait
   dessous. On réserve la hauteur de l'en-tête plus une respiration ; le
   script complète en centrant les sections courtes dans la fenêtre.
   ===================================================================== */
:root{--anchor-gap:44px;}
section[id],[id].section,.terrace[id]{scroll-margin-top:calc(var(--head-h) + var(--anchor-gap));}
html{scroll-padding-top:calc(var(--head-h) + var(--anchor-gap));}

/* --- respirations remplaçant les styles en ligne ---------------------- */
.intro-body{margin-top:28px;max-width:74ch;}
.section-body{margin-top:28px;}
.terrace-body{margin-top:26px;}
.note--after-grid{margin-top:30px;}
.hosts-cta{margin-top:32px;}
.foot-lead{margin-top:20px;max-width:32ch;}
.foot-sep{display:inline;margin:0 6px;opacity:.5;}
.drawer-lang{margin-top:26px;}
.section--deep{background:var(--stone-deep);}
.section--error{padding-top:calc(var(--head-h) + 12vh);min-height:60svh;}

/* =====================================================================
   Réserver — bloc haut : le parcours à gauche, les chambres à droite
   ===================================================================== */
.book-split{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(36px,5vw,80px);align-items:start;
}
.book-guide .book-stay{margin-top:44px;padding-top:34px;border-top:1px solid var(--line);}
.book-stay-lead{
  font-family:var(--serif);font-size:1.5rem;line-height:1.32;letter-spacing:-.02em;
  margin:0 0 26px;max-width:34ch;
}
.stay-compact{list-style:none;margin:0;padding:0;}
.stay-compact li{
  display:grid;grid-template-columns:46px 1fr;gap:18px;
  padding:16px 0;border-bottom:1px solid var(--line);
}
.stay-compact li:first-child{border-top:1px solid var(--line);}
.stay-compact b{font-family:var(--serif);font-size:1.4rem;font-weight:400;color:var(--terra);line-height:1;}
.stay-compact h4{
  font-family:var(--serif);font-weight:400;font-size:1.18rem;line-height:1.25;
  letter-spacing:-.015em;margin:0 0 6px;
}
.stay-compact p{margin:0;font-size:.9rem;line-height:1.55;color:var(--ink-soft);}
.book-stay .note{margin-top:22px;}

/* les trois chambres, en vignettes cliquables */
.book-rooms{display:flex;flex-direction:column;gap:14px;}
.book-rooms > .eyebrow{margin-bottom:4px;}
.book-room{
  display:grid;grid-template-columns:132px 1fr;gap:20px;align-items:center;
  width:100%;text-align:left;background:#fff;border:1px solid var(--line);
  padding:14px;font:inherit;color:inherit;cursor:pointer;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.book-room:hover{border-color:var(--terra);}
.book-room.is-active{border-color:var(--forest);background:var(--paper-soft);}
.book-room-media{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone);}
.book-room-media img{width:100%;height:100%;object-fit:cover;}
.book-room-text{display:flex;flex-direction:column;gap:5px;padding-right:8px;}
.book-room-text strong{font-family:var(--serif);font-weight:400;font-size:1.5rem;letter-spacing:-.02em;line-height:1.12;}
.book-room-text em{
  font-style:normal;font-size:.68rem;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--terra);
}
.book-room-more{margin-top:6px;font-size:.72rem;letter-spacing:.1em;color:var(--ink-mute);}
.book-room.is-active .book-room-more{color:var(--forest);}
.book-rooms .note{margin-top:14px;font-size:1rem;}

/* =====================================================================
   Réserver — bloc bas : la sélection et le planning
   ===================================================================== */
.picker-grid{display:grid;grid-template-columns:minmax(280px,.62fr) 1.38fr;gap:clamp(28px,4vw,56px);align-items:start;}
.picker-side h3{font-size:1.9rem;margin:0 0 10px;}
.picker-lead{font-size:.94rem;margin-bottom:22px;}
.picker-actions{margin-top:26px;}
.picker-side .note{margin-top:16px;}
.cal-title{font-size:.86rem;}
.picker-main .calendar{margin-top:0;}
.picker-main .widget-frame{min-height:560px;}

/* =====================================================================
   Version multipages — portes d'entrée de l'accueil court
   ===================================================================== */
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;}
.door{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);transition:border-color .3s var(--ease);}
.door:hover{border-color:var(--terra);}
.door-media{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--stone);}
.door-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.door:hover .door-media img{transform:scale(1.03);}
.door-text{display:flex;flex-direction:column;gap:10px;padding:24px 24px 26px;flex:1;}
.door-text strong{font-family:var(--serif);font-weight:400;font-size:1.45rem;line-height:1.2;letter-spacing:-.02em;}
.door-text .more{margin-top:auto;padding-top:16px;align-self:flex-start;}

/* =====================================================================
   Page de choix de version
   ===================================================================== */
.chooser{position:relative;min-height:100svh;display:flex;align-items:center;background:var(--forest-deep);color:#fff;overflow:hidden;}
.chooser-media{position:absolute;inset:0;}
.chooser-media img{width:100%;height:100%;object-fit:cover;opacity:.5;}
.chooser-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,12,.72),rgba(8,18,12,.88));}
.chooser-inner{position:relative;z-index:2;width:100%;padding:70px 0;}
.chooser h1{font-size:clamp(2.6rem,5.6vw,5rem);line-height:.98;margin:0 0 26px;}
.chooser .eyebrow{color:var(--sand);}
.chooser-lead{max-width:60ch;color:rgba(255,255,255,.8);font-size:1.05rem;margin-bottom:48px;}
.chooser-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.chooser-card{
  display:flex;flex-direction:column;gap:14px;padding:34px 32px 30px;
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.05);
  transition:background .3s var(--ease),border-color .3s var(--ease);
}
.chooser-card:hover{background:rgba(255,255,255,.11);border-color:#fff;}
.chooser-num{font-family:var(--serif);font-size:1.1rem;color:var(--sand);}
.chooser-card strong{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.08;letter-spacing:-.025em;}
.chooser-body{color:rgba(255,255,255,.74);font-size:.95rem;line-height:1.6;}
.chooser-card .more{margin-top:14px;align-self:flex-start;}
.chooser-note{margin-top:38px;font-size:.85rem;color:rgba(255,255,255,.55);}
.chooser-note a{border-bottom:1px solid currentColor;}

/* =====================================================================
   Responsive des nouveaux blocs
   ===================================================================== */
@media (max-width:1080px){
  .picker-grid{grid-template-columns:1fr;}
  .picker-main{margin-top:8px;}
}
@media (max-width:980px){
  .book-split{grid-template-columns:1fr;gap:44px;}
  .chooser-grid{grid-template-columns:1fr;}
  .book-guide .book-stay{margin-top:36px;padding-top:28px;}
}
@media (max-width:640px){
  .book-room{grid-template-columns:104px 1fr;gap:16px;padding:12px;}
  .book-room-text strong{font-size:1.28rem;}
  .stay-compact li{grid-template-columns:38px 1fr;gap:14px;}
  .picker-main .widget-frame{min-height:520px;}
  .chooser-card{padding:26px 24px;}
}

/* Sélecteur : rappel de la version déjà consultée sur cet appareil. */
.chooser-num{display:flex;align-items:center;gap:12px;}
.chooser-num i{
  font-style:normal;font-family:var(--sans);font-size:.6rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6);
  border:1px solid rgba(255,255,255,.32);padding:3px 9px;
}
.chooser-card.is-last{border-color:rgba(255,255,255,.55);}

/* =====================================================================
   Fiches chambres : équipements en tableau, galerie cliquable
   ===================================================================== */


/* Galerie : chaque photo est un bouton qui ouvre la visionneuse. */
.gallery-item{
  display:block;padding:0;border:0;background:var(--stone);
  cursor:zoom-in;overflow:hidden;position:relative;
}
.gallery-item img{transition:transform .5s var(--ease);}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-item:focus-visible{outline:2px solid var(--terra);outline-offset:2px;}
.modal-media .gallery-item{width:100%;height:100%;}
.gallery-count{
  position:absolute;left:16px;bottom:16px;z-index:2;
  background:rgba(15,28,22,.72);color:#fff;font-size:.68rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:7px 12px;border-radius:2px;
  pointer-events:none;
}

/* Visionneuse plein écran */
.lightbox{
  position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;
  background:rgba(9,18,13,.94);padding:clamp(16px,4vw,56px);
}
.lightbox[hidden]{display:none;}
.lightbox img{max-width:100%;max-height:calc(100vh - 190px);object-fit:contain;display:block;}
.lightbox-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:20px;}
.lightbox-caption{color:rgba(255,255,255,.72);font-size:.85rem;letter-spacing:.06em;text-align:center;}
.lightbox-btn{
  position:absolute;z-index:2;width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.1);color:#fff;
  display:grid;place-items:center;cursor:pointer;font-size:1.6rem;line-height:1;
  transition:background .25s var(--ease);
}
.lightbox-btn:hover{background:rgba(255,255,255,.24);}
.lightbox-prev{left:clamp(10px,3vw,34px);}
.lightbox-next{right:clamp(10px,3vw,34px);}
.lightbox-close{top:clamp(10px,3vw,28px);right:clamp(10px,3vw,34px);}
@media (max-width:640px){
  .lightbox-btn{width:44px;height:44px;}
  .lightbox-prev{left:8px;}
  .lightbox-next{right:8px;}
  .lightbox img{max-height:calc(100vh - 210px);}
}

/* =====================================================================
   Contact : la carte centrée verticalement avec le texte
   ===================================================================== */
.split--middle{align-items:center;}
.contact-map{display:block;width:100%;border:1px solid var(--line);}

/* Photo d'hôtes manquante : un vide explicite plutôt qu'un vide silencieux. */
.photo-missing{
  display:grid;place-items:center;text-align:center;aspect-ratio:4/5;
  background:var(--stone);border:1px dashed var(--line);
  padding:28px;color:var(--ink-mute);font-family:var(--serif);font-style:italic;
  font-size:1.05rem;line-height:1.5;
}

/* Fenêtre des partenaires : bandeau photo puis texte, colonne bornée. */
.modal-body h2,.modal-body .prose,.modal-body .rule{max-width:820px;}

/* =====================================================================
   Fiche chambre — refonte
   ---------------------------------------------------------------------
   Objectif : découvrir la chambre et ses caractéristiques sans avoir à
   faire défiler quoi que ce soit. La photo occupe la gauche en 16/9, les
   vignettes en dessous changent l'image sur place, et la colonne de droite
   garde en permanence le nom, les caractéristiques et le bouton de
   réservation. Seule la description défile, dans sa propre zone, quand elle
   est plus longue que la place disponible.
   ===================================================================== */
.modal-box--room{
  grid-template-columns:minmax(0,1.32fr) minmax(330px,.68fr);
  grid-template-rows:minmax(0,1fr);
  width:min(1240px,100%);max-height:min(820px,92vh);
}

/* --- colonne gauche : la galerie -------------------------------------- */
.room-gallery{
  display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;
  background:var(--forest-deep);
}
.room-stage{position:relative;min-height:0;overflow:hidden;background:var(--forest-deep);}
.room-stage-btn{
  display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;
}
.room-stage-btn img{width:100%;height:100%;object-fit:cover;display:block;}
.room-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.34);
  background:rgba(15,28,22,.5);color:#fff;font-size:1.5rem;line-height:1;
  display:grid;place-items:center;cursor:pointer;
  transition:background .25s var(--ease);
}
.room-nav:hover{background:rgba(15,28,22,.8);}
.room-prev{left:16px;}
.room-next{right:16px;}
.room-counter{
  position:absolute;left:18px;bottom:18px;z-index:2;
  background:rgba(15,28,22,.72);color:#fff;font-size:.68rem;font-weight:700;
  letter-spacing:.14em;padding:7px 12px;border-radius:2px;pointer-events:none;
}
.room-thumbs{
  display:flex;gap:8px;padding:10px;background:var(--forest-deep);
  overflow-x:auto;scrollbar-width:thin;
}
.room-thumb{
  flex:0 0 108px;padding:0;border:2px solid transparent;background:none;
  cursor:pointer;opacity:.55;transition:opacity .25s var(--ease),border-color .25s var(--ease);
}
.room-thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;}
.room-thumb:hover{opacity:.85;}
.room-thumb.is-active{opacity:1;border-color:var(--sand);}

/* --- colonne droite : l'essentiel, toujours visible -------------------- */
.room-info{
  display:flex;flex-direction:column;min-height:0;
  padding:clamp(26px,2.6vw,40px);
}
.room-info h2{font-size:clamp(1.9rem,2.6vw,2.6rem);line-height:1.03;margin:0 0 18px;}
.room-info .eyebrow{margin-bottom:14px;}
.room-lede{
  flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding-right:10px;margin-bottom:4px;
}
.room-lede p{font-size:.97rem;line-height:1.68;max-width:none;}
.room-lede p:last-child{margin-bottom:0;}

.room-specs{
  flex:0 0 auto;margin:22px 0 0;padding:0;
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr;
}
.room-specs dt,.room-specs dd{
  margin:0;padding:10px 0;border-bottom:1px solid var(--line);
  font-size:.88rem;line-height:1.4;
}
.room-specs dt{
  padding-right:22px;font-size:.65rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-mute);white-space:nowrap;
}
.room-specs dd{color:var(--ink);}
.room-specs .spec-full{grid-column:1 / -1;color:var(--ink-soft);}

.room-notice{
  flex:0 0 auto;margin:16px 0 0;font-family:var(--serif);font-style:italic;
  font-size:.95rem;line-height:1.45;color:var(--ink-mute);
}
.room-info .modal-actions{flex:0 0 auto;margin-top:22px;}

/* --- écrans intermédiaires et mobiles --------------------------------- */
@media (max-width:1080px){
  .modal-box--room{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);}
  .room-thumb{flex:0 0 88px;}
}
@media (max-width:860px){
  /* En dessous, la colonne ne tient plus : on empile, et c'est la fenêtre
     entière qui défile. La photo reste en 16/9. */
  .modal-box--room{
    grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);
    max-height:94vh;
  }
  .room-gallery{grid-template-rows:auto auto;}
  .room-stage{aspect-ratio:16/9;}
  .room-info{overflow-y:auto;overscroll-behavior:contain;}
  .room-lede{flex:0 0 auto;overflow:visible;padding-right:0;}
  .room-nav{width:38px;height:38px;}
}
@media (max-width:560px){
  .room-specs{grid-template-columns:1fr;}
  .room-specs dt{padding-bottom:0;border-bottom:0;}
  .room-specs dd{padding-top:3px;}
  .room-thumb{flex:0 0 76px;}
}
