/* =====================================================================
   THÈME — POINT UNIQUE DE PERSONNALISATION
   Pour changer les COULEURS ou les POLICES de tout le site, tout se
   règle ci-dessous. Les pages et composants n'utilisent QUE ces
   variables : aucune couleur ni police n'est écrite « en dur » ailleurs.
   ===================================================================== */
:root {
    /* ---- COULEURS DE MARQUE (← à modifier ici) ---- */
    --myrtle:#1E3A2E;      /* vert maquis profond — couleur principale */
    --olive:#6B7A4A;       /* vert olivier */
    --lagon:#2E7D74;       /* bleu-vert mer */
    --amber:#C4612B;       /* terre cuite — accent chaud */
    --gold:#E0A93E;        /* or soleil — accent clair */
    --stone:#EDE8DB; --stone-deep:#E2DBC9; --paper:#F6F2E8;

    /* ---- Rôles dérivés (utilisés partout) ---- */
    --bg:var(--paper); --bg-alt:var(--stone); --ink:#1B2A22; --ink-soft:#4A5B4E;
    --ink-faint:#7A8578; --line:#D8D0BC; --card:#FBF8F0; --accent:var(--amber);
    --accent-2:var(--lagon); --brand:var(--myrtle);

    /* ---- Texte & voiles posés sur les photos (même teinte clair/sombre) ---- */
    --on-dark:#FBF6E9; --on-dark-soft:#F1EAD7;
    --on-dark-rgb:251,246,233; --scrim-rgb:12,20,15;

    /* ---- POLICES : 2 familles (← à remplacer ici) ---- */
    --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",Georgia,serif;
    --sans:"Avenir Next","Avenir","Segoe UI",Roboto,-apple-system,system-ui,sans-serif;

    /* ---- Mise en page ---- */
    --maxw:1280px; --pad:clamp(1.25rem,5vw,4rem);
  }
  @media (prefers-color-scheme: dark) {
    :root { --bg:#131A15; --bg-alt:#182018; --ink:#ECE6D6; --ink-soft:#B4BBA8;
      --ink-faint:#808A78; --line:#2A3529; --card:#1B241C; --brand:#EBE5D4;
      --accent:#E07A3E; --accent-2:#4FB3A6; }
  }
  :root[data-theme="light"]{ --bg:var(--paper); --bg-alt:var(--stone); --ink:#1B2A22; --ink-soft:#4A5B4E; --ink-faint:#7A8578; --line:#D8D0BC; --card:#FBF8F0; --brand:var(--myrtle); --accent:var(--amber); --accent-2:var(--lagon); }
  :root[data-theme="dark"]{ --bg:#131A15; --bg-alt:#182018; --ink:#ECE6D6; --ink-soft:#B4BBA8; --ink-faint:#808A78; --line:#2A3529; --card:#1B241C; --brand:#EBE5D4; --accent:#E07A3E; --accent-2:#4FB3A6; }

  *{box-sizing:border-box;} body{margin:0;}
  .page{background:var(--bg); color:var(--ink); font-family:var(--sans); font-size:1.0625rem; line-height:1.7; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad);}
  h1,h2,h3{font-family:var(--serif); font-weight:500; line-height:1.05; text-wrap:balance; margin:0;}
  p{margin:0;} a{color:inherit;} .it{font-style:italic;}
  img{display:block; max-width:100%;}
  .eyebrow{font-family:var(--sans); font-size:.72rem; text-transform:uppercase; letter-spacing:.22em; font-weight:600; color:var(--accent-2); display:inline-flex; align-items:center; gap:.7em;}
  .eyebrow::before{content:""; width:26px; height:1px; background:currentColor; opacity:.7;}

  /* Top bar */
  header.bar{position:static; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.5rem var(--pad); color:var(--myrtle); background:#faf1ec; box-shadow:0 2px 12px rgba(0,0,0,.1);}
  .brandmark{display:flex; align-items:center; gap:.7rem; text-decoration:none; color:inherit;}
  .brandmark .glyph{width:40px; height:40px; flex:none; display:grid; place-items:center; border:1.5px solid rgba(var(--on-dark-rgb),.6); border-radius:50%;}
  .brandmark .name{font-family:var(--serif); font-size:1.25rem; letter-spacing:.01em; line-height:1;}
  .brandmark .name small{display:block; font-family:var(--sans); font-size:.58rem; letter-spacing:.28em; text-transform:uppercase; opacity:.8; margin-top:.3rem;}
  nav.main{display:flex; align-items:center; gap:1.75rem;}
  nav.main a{text-decoration:none; font-size:.92rem; font-weight:500; opacity:.92; white-space:nowrap;}
  nav.main a:hover{opacity:1; text-decoration:underline; text-underline-offset:5px;}
  .bar-right{display:flex; align-items:center; gap:1.1rem;}
  .lang{font-size:.8rem; letter-spacing:.08em; opacity:.85;} .lang b{opacity:1;}
  .btn{font-family:var(--sans); font-weight:600; font-size:.9rem; border-radius:999px; padding:.7em 1.4em; text-decoration:none; display:inline-flex; align-items:center; gap:.5em; cursor:pointer; border:1.5px solid transparent; transition:transform .15s ease, background .2s ease, color .2s ease;}
  .btn:hover{transform:translateY(-2px);}
  .btn-solid{background:var(--accent); color:#fff;}
  .btn-ghost{border-color:rgba(var(--on-dark-rgb),.55); color:var(--on-dark);}
  .btn-ghost:hover{background:rgba(var(--on-dark-rgb),.12);}
  .btn-brand{background:var(--brand); color:var(--bg);}

  /* Hero */
  .hero{position:relative; min-height:94vh; display:flex; align-items:flex-end; isolation:isolate; overflow:hidden;}
  .hero .hero-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%; z-index:-2;}
  /* Poster = même recadrage que la vidéo (masque les bandes noires) → raccord parfait */
  .hero.has-video{background:#141b16;}
  .hero.has-video .hero-img{inset:auto; top:50%; left:50%; width:max(100vw,177.78vh); height:auto; aspect-ratio:16/9; object-position:center; transform:translate(-50%,-50%) scale(1.45); opacity:0; transition:opacity .8s ease;}
  .hero.has-video.show-poster .hero-img{opacity:1;}
  .hero-loader{display:none;}
  .hero.has-video .hero-loader{position:absolute; inset:0; display:grid; place-items:center; z-index:0; transition:opacity .4s ease;}
  .hero.has-video.is-playing .hero-loader, .hero.has-video.show-poster .hero-loader{opacity:0; visibility:hidden;}
  .hero-spin{width:46px; height:46px; border-radius:50%; border:3px solid rgba(var(--on-dark-rgb),.3); border-top-color:var(--on-dark); animation:hero-spin .9s linear infinite;}
  @keyframes hero-spin{to{transform:rotate(360deg);}}
  @media (prefers-reduced-motion:reduce){ .hero-spin{animation:none;} }
  .hero .scrim{position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(var(--scrim-rgb),.78) 0%, rgba(var(--scrim-rgb),.35) 38%, rgba(var(--scrim-rgb),.12) 64%, rgba(var(--scrim-rgb),.28) 100%);}
  .hero-inner{width:100%; padding-bottom:clamp(2.5rem,6vw,5rem); color:var(--on-dark);}
  .hero .kicker{color:var(--gold);}
  .hero h1{font-size:clamp(3.1rem,10vw,7.2rem); letter-spacing:-.01em; margin:.35em 0 .3em; text-shadow:0 2px 34px rgba(0,0,0,.45);}
  .hero .lede{max-width:34ch; font-size:clamp(1.05rem,2vw,1.3rem); line-height:1.6; color:var(--on-dark-soft); text-shadow:0 1px 16px rgba(0,0,0,.4);}
  .hero .loc{display:inline-flex; align-items:center; gap:.55em; margin-top:1.4rem; font-size:.95rem; letter-spacing:.04em; opacity:.95;}
  .hero .cta-row{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem;}
  /* Accueil : texte du hero remonté en haut à gauche (sous la barre) */
  .hero.hero-top{align-items:flex-start;}
  .hero.hero-top .hero-inner{padding-top:clamp(2.5rem,8vh,5rem); padding-bottom:0;}
  /* Logo du domaine dans l'en-tête, posé sur un écusson crème (même teinte que le logo) */
  .brandmark .brand-logo{height:clamp(59px,8.25vw,77px); width:auto; display:block; background:#faf1ec; border-radius:10px; padding:4px 11px;}
  .brand-words{display:flex; flex-direction:column; justify-content:center; line-height:1.15;}
  .brand-words .brand-region{font-family:var(--serif); font-size:1.08rem; letter-spacing:.01em;}
  .brand-words .brand-tagline{font-family:var(--sans); font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; opacity:.82; margin-top:.28rem;}
  /* Vidéo "à la place de la photo" : vignette + bouton lecture, iframe chargée au clic */
  .video-facade{position:relative; aspect-ratio:16/10; border-radius:2px; overflow:hidden; cursor:pointer; background:#1a1a1a;}
  .video-facade > img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.19,1,.22,1);}
  .video-facade:hover > img{transform:scale(1.04);}
  .video-facade .veil{position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.30),transparent 55%);}
  .video-facade .play-btn{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:2; width:70px; height:70px; border-radius:50%; background:rgba(255,255,255,.93); display:flex; align-items:center; justify-content:center; box-shadow:0 8px 30px rgba(0,0,0,.35); transition:transform .25s;}
  .video-facade:hover .play-btn{transform:translate(-50%,-50%) scale(1.08);}
  .video-facade .play-btn svg{margin-left:4px;}
  .video-facade .vlabel{position:absolute; left:16px; bottom:14px; z-index:2; color:#fff; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; text-shadow:0 1px 10px rgba(0,0,0,.5);}
  .video-facade iframe{position:absolute; inset:0; width:100%; height:100%; border:0; z-index:3;}
  /* ---- Réservation : code couleur des gîtes ---- */
  .ref-list a .dot{display:none;}
  .ref-legend{display:flex; gap:1.6rem; flex-wrap:wrap; font-size:.82rem; color:var(--ink-soft); margin-top:1.2rem;}
  .ref-legend span{display:inline-flex; align-items:center; gap:.5em;}
  .ref-legend .d{width:18px; height:18px; border-radius:5px; border:1px solid color-mix(in srgb,var(--myrtle) 25%,var(--line)); background:color-mix(in srgb,var(--myrtle) 15%,var(--card)); display:inline-block;}
  .ref-legend .d.full{background:var(--myrtle); border-color:var(--myrtle);}
  /* ---- Réservation : cartes infos (saison + GdF) ---- */
  .resa-info-grid{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin-top:2.4rem;}
  .resa-info-grid .info-card{background:var(--card,#fff); border:1px solid var(--line); border-radius:4px; padding:1.6rem 1.8rem;}
  .resa-info-grid .info-card h4{margin:0 0 .6rem; font-size:1.05rem;}
  .resa-info-grid .info-card p{margin:.3rem 0 0; color:var(--ink-soft); font-size:.92rem; line-height:1.7;}
  /* ---- Réservation : localisation (texte + carte + plan) ---- */
  .home-intro{padding-block:clamp(3.5rem,8vw,6rem);}
  .home-intro .wrap{max-width:760px; text-align:center;}
  .home-intro-h2{font-family:var(--serif); font-size:clamp(1.7rem,3.6vw,2.6rem); margin:0 0 1.2rem; color:var(--ink);}
  .home-intro .prose{color:var(--ink-soft); max-width:none;}
  .home-intro .prose p{margin:0 0 1rem;}
  .loc-intro{max-width:70ch; margin-top:1.6rem;}
  .loc-row{display:grid; grid-template-columns:1fr 1fr; gap:2.6rem; align-items:center; margin-top:2.4rem;}
  .plan-title{font-family:var(--serif); font-size:clamp(1.4rem,2.6vw,2rem); margin:2.8rem 0 1rem; text-align:center;}
  .loc-top{display:grid; grid-template-columns:1fr 1fr; gap:2.6rem; align-items:center; margin-top:2.2rem;}
  .loc-map{margin:0;}
  .loc-map a{display:block;}
  .loc-map img{width:100%; height:auto; display:block; border-radius:10px; border:1px solid var(--line);}
  .loc-text .prose{max-width:none;}
  .gps{margin-top:.9rem; font-size:.9rem; color:var(--ink-soft);}
  .gps a{color:var(--accent-2); text-decoration:none; font-variant-numeric:tabular-nums;}
  .gps a:hover{text-decoration:underline;}
  .travel-wide{margin-top:2.6rem;}
  .travel-cols{display:grid; grid-template-columns:1fr 1fr; gap:1.4rem 3rem;}
  .travel-list h4{margin:0 0 .6rem; font-size:1rem;}
  .travel-list ul{list-style:none; padding:0; margin:0;}
  .travel-list li{display:flex; justify-content:space-between; gap:1rem; padding:.5rem 0; border-bottom:1px solid var(--line); font-size:.92rem; color:var(--ink-soft);}
  .travel-list li b{color:var(--ink); text-align:right;}
  .travel-list .note{font-size:.78rem; color:var(--ink-faint); margin-top:.8rem;}
  .plan img{width:100%; height:auto; display:block; border-radius:6px; border:1px solid var(--line);}
  .plan figcaption{font-size:.82rem; color:var(--ink-faint); margin-top:.6rem; text-align:center;}
  .plan-wide{margin:2.8rem auto 0; max-width:1000px;}
  @media(max-width:820px){ .resa-info-grid,.loc-top,.loc-row,.travel-cols{grid-template-columns:1fr;} }
  /* Vidéo de fond du hero (YouTube). La photo hero.jpg reste dessous en secours. */
  .hero .hero-video{position:absolute; inset:0; z-index:-2; overflow:hidden; pointer-events:none; opacity:0; transition:opacity .9s ease;}
  .hero .hero-video.ready{opacity:1;}
  /* scale(1.45) : agrandit la vidéo pour rogner les bords noirs (letterbox) incrustés dans le film */
  .hero .hero-video iframe{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%) scale(1.45); width:max(100vw, 177.78vh); aspect-ratio:16 / 9; height:auto; border:0;}

  section{padding-block:clamp(4rem,9vw,7.5rem);}
  .section-head{max-width:60ch; margin-bottom:clamp(2rem,4vw,3.2rem);}
  .section-head h2{font-size:clamp(2rem,4.5vw,3.2rem); margin-top:.5rem;}
  .section-head p{color:var(--ink-soft); margin-top:1rem; max-width:52ch;}

  /* Story */
  .story{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,4.5rem); align-items:center;}
  .story .lead{font-family:var(--serif); font-size:clamp(1.35rem,2.4vw,1.9rem); line-height:1.4; color:var(--ink);}
  .story .lead .it{color:var(--olive);}
  .story .body{margin-top:1.4rem; color:var(--ink-soft);}
  .story-figure{border-radius:14px; overflow:hidden; border:1px solid var(--line); aspect-ratio:4/5;}
  .story-figure img{width:100%; height:100%; object-fit:cover;}
  .stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-top:2.6rem;}
  .stat{background:var(--card); padding:1.4rem 1.2rem;}
  .stat b{font-family:var(--serif); font-size:clamp(1.8rem,4vw,2.6rem); display:block; line-height:1; color:var(--brand);}
  .stat span{font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-faint); margin-top:.5rem; display:block;}

  /* Film band */
  .film{position:relative; min-height:70vh; display:flex; align-items:center; justify-content:center; text-align:center; isolation:isolate; color:var(--on-dark);}
  .film img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;}
  .film .veil{position:absolute; inset:0; z-index:-1; background:linear-gradient(to bottom, rgba(var(--scrim-rgb),.55), rgba(var(--scrim-rgb),.6));}
  .film .inner{padding:2rem;}
  .play{width:84px; height:84px; border-radius:50%; border:2px solid rgba(255,255,255,.8); background:rgba(255,255,255,.12); backdrop-filter:blur(3px); display:grid; place-items:center; margin:0 auto 1.6rem; cursor:pointer; transition:transform .2s ease, background .2s ease;}
  .play:hover{transform:scale(1.06); background:rgba(255,255,255,.22);}
  .film h2{font-size:clamp(2rem,5vw,3.4rem); margin-top:.3rem;}
  .film p{color:#EAE3D2; margin-top:.8rem;}

  /* Lodgings */
  .lodgings{background:var(--bg-alt);}
  .cards2{display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,3vw,2.4rem);}
  .lodge{background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease;}
  .lodge:hover{transform:translateY(-4px); box-shadow:0 22px 44px -28px rgba(20,30,20,.5);}
  .lodge .tile{aspect-ratio:16/10; position:relative; overflow:hidden;}
  .lodge .tile img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
  .lodge:hover .tile img{transform:scale(1.05);}
  .lodge .badge{position:absolute; top:1rem; left:1rem; z-index:2; background:rgba(20,30,22,.72); color:var(--on-dark); backdrop-filter:blur(4px); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; padding:.45em .9em; border-radius:999px; display:inline-flex; gap:.5em; align-items:center;}
  .lodge .content{padding:clamp(1.4rem,2.5vw,2rem); display:flex; flex-direction:column; gap:1rem; flex:1;}
  .lodge h3{font-size:1.7rem;}
  .lodge .sub{color:var(--ink-soft); font-size:.98rem; margin-top:.35rem;}
  .lodge ul{list-style:none; margin:0; padding:0; display:grid; gap:.55rem; font-size:.95rem; color:var(--ink-soft);}
  .lodge li{display:flex; gap:.6rem; align-items:flex-start;}
  .lodge li svg{flex:none; margin-top:.28em; color:var(--olive);}
  .lodge .foot{margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-top:1rem; border-top:1px solid var(--line);}
  .price small{display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-faint);}
  .price b{font-family:var(--serif); font-size:1.5rem; color:var(--brand);}
  .price b em{font-style:normal; font-size:.9rem; color:var(--ink-soft);}

  /* Split piscine */
  .split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center;}
  .split .media{border-radius:16px; overflow:hidden; border:1px solid var(--line); aspect-ratio:5/4;}
  .split .media img{width:100%; height:100%; object-fit:cover;}
  .feature-list{display:grid; gap:1.1rem; margin-top:1.8rem;}
  .feature{display:flex; gap:1rem; align-items:flex-start;}
  .feature .fi{flex:none; width:42px; height:42px; border-radius:10px; background:color-mix(in srgb, var(--accent-2) 14%, transparent); color:var(--accent-2); display:grid; place-items:center;}
  .feature h4{margin:0; font-family:var(--sans); font-size:1rem; font-weight:700;}
  .feature p{color:var(--ink-soft); font-size:.95rem; margin-top:.2rem;}

  /* Discover */
  .discover{background:var(--bg-alt);}
  .cards3{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.2rem,2.5vw,1.8rem);}
  .disc{position:relative; border-radius:16px; overflow:hidden; min-height:380px; display:flex; flex-direction:column; justify-content:flex-end; color:var(--on-dark); border:1px solid var(--line);}
  .disc img.bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform .5s ease;}
  .disc:hover img.bg{transform:scale(1.06);}
  .disc .veil{position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(var(--scrim-rgb),.85), rgba(var(--scrim-rgb),.08) 65%);}
  .disc .txt{position:relative; z-index:2; padding:1.5rem;}
  .disc h3{font-size:1.5rem;}
  .disc p{font-size:.9rem; color:#EAE3D2; margin-top:.4rem;}
  .disc .tag{font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:600;}

  /* Quote */
  .quote{text-align:center;}
  .quote blockquote{margin:0 auto; max-width:24ch; font-family:var(--serif); font-size:clamp(1.8rem,4vw,3rem); line-height:1.28;}
  .quote .stars{color:var(--gold); letter-spacing:.3em; font-size:1.1rem; margin-bottom:1.5rem;}
  .quote figcaption{margin-top:1.6rem; color:var(--ink-faint); font-size:.9rem; letter-spacing:.04em; text-transform:uppercase;}

  /* Booking */
  .booking{background:var(--myrtle); color:var(--paper);}  /* --myrtle = vert constant (ne bascule pas en dark) */
  .booking .wrap{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:center;}
  .booking h2{color:var(--paper); font-size:clamp(2rem,4.5vw,3.2rem);}
  .booking .eyebrow{color:var(--gold);}
  .booking p{color:color-mix(in srgb, var(--paper) 80%, transparent); margin-top:1rem; max-width:42ch;}
  .booking .cta-row{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem;}
  .contact-card{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:16px; padding:clamp(1.5rem,3vw,2.2rem);}
  .contact-card .row{display:flex; align-items:center; gap:.9rem; padding:.8rem 0; border-bottom:1px solid rgba(255,255,255,.12);}
  .contact-card .row:last-child{border-bottom:0;}
  .contact-card .ic{width:38px; height:38px; flex:none; border-radius:9px; background:rgba(255,255,255,.1); display:grid; place-items:center; color:var(--gold);}
  .contact-card .row small{display:block; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:color-mix(in srgb, var(--paper) 60%, transparent);}
  .contact-card .row b{font-family:var(--serif); font-size:1.15rem; font-weight:500;}
  .gf-badge{display:inline-flex; align-items:center; gap:.7rem; margin-top:1.6rem; font-size:.85rem; color:color-mix(in srgb, var(--paper) 80%, transparent);}
  .gf-badge .epis{color:var(--gold); letter-spacing:.1em;}

  .chapter-intro{max-width:72ch; margin:0 auto; text-align:center;}
  .chapter-intro .eyebrow{justify-content:center;}
  .chapter-intro .prose{margin-inline:auto;}
  .gallery-labels a{position:relative;}
  .gallery-labels .ph-label{position:absolute; left:0; right:0; bottom:0; padding:.7rem .8rem .55rem; font-family:var(--serif); font-size:1rem; color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.55); background:linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0)); pointer-events:none;}
  .hb-intro{padding-bottom:0;}
  .hb-intro .lead-para{max-width:70ch;}
  .hb-intro .services-note{max-width:70ch; margin-top:1.1rem; padding:.85rem 1.1rem; background:var(--bg-alt); border-left:3px solid var(--accent-2); border-radius:6px; font-size:.92rem; color:var(--ink-soft);}
  .opt-block{margin-top:1.4rem;}
  .opt-title{font-family:var(--sans); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 .4rem;}
  .opt-list{list-style:none; padding:0; margin:0;}
  .opt-list li{display:flex; justify-content:space-between; gap:1rem; padding:.34rem 0; border-bottom:1px dashed var(--line); font-size:.9rem; color:var(--ink-soft);}
  .opt-list li b{white-space:nowrap; color:var(--ink); font-variant-numeric:tabular-nums;}
  .opt-note{margin:.5rem 0 0; font-size:.78rem; color:var(--ink-faint); font-style:italic;}
  footer.site{background:var(--bg); border-top:1px solid var(--line); padding-block:3rem; color:var(--ink-soft);}
  footer.site .wrap{display:flex; flex-wrap:wrap; gap:1.5rem 3rem; justify-content:space-between; align-items:center;}
  footer.site .brandmark{color:var(--ink);}
  footer.site .brandmark .glyph{border-color:var(--line);}
  footer.site nav{display:flex; flex-wrap:wrap; gap:1.2rem; font-size:.9rem; flex:1; justify-content:center;}
  footer.site nav a{text-decoration:none; color:var(--ink-soft);}
  footer.site nav a:hover{color:var(--accent-2);}
  footer.site .legal{width:100%; font-size:.8rem; color:var(--ink-faint); border-top:1px solid var(--line); padding-top:1.5rem;}
  footer.site .credit{width:100%; margin-top:.7rem; font-size:.8rem; color:var(--ink-faint);}
  footer.site .credit a{display:inline-flex; align-items:center; gap:.4em; color:var(--ink-soft); text-decoration:none; font-weight:600;}
  footer.site .credit a:hover{color:var(--accent-2);}
  .kapsi-pepper{height:1.6em; width:auto; display:inline-block; vertical-align:-.35em;}
  @media (max-width:700px){
    footer.site .wrap{flex-direction:column; align-items:flex-start; gap:1.4rem;}
    footer.site nav{flex:none; width:100%; justify-content:flex-start; gap:.7rem 1.4rem;}
  }

  .reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:none;}

  @media (max-width:900px){
    nav.main, .bar-right, .brand-words{display:none;}
    .story, .split, .booking .wrap{grid-template-columns:1fr;}
    .cards2, .cards3{grid-template-columns:1fr;}
    .story-figure{order:-1; aspect-ratio:16/10;}
  }
  @media (min-width:561px) and (max-width:900px){ .cards3{grid-template-columns:1fr 1fr;} }
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1; transform:none; transition:none;}
    .btn:hover,.lodge:hover,.disc:hover img.bg,.lodge:hover .tile img{transform:none;}
  }

/* ===================== PAGES INTÉRIEURES ===================== */

/* Page hero (bandeau compact) */
.page-hero{position:relative; min-height:64.4vh; display:flex; align-items:flex-end; isolation:isolate; color:var(--on-dark); background-size:cover; background-position:center 45%; background-repeat:no-repeat;}
.page-hero::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to top, rgba(var(--scrim-rgb),.82) 0%, rgba(var(--scrim-rgb),.35) 45%, rgba(var(--scrim-rgb),.28) 100%);}
.page-hero .inner{width:100%; padding-bottom:clamp(2.2rem,5vw,3.6rem);}
.page-hero h1{font-size:clamp(2.6rem,7vw,5rem); letter-spacing:-.01em; margin:.3em 0 0; text-shadow:0 2px 30px rgba(0,0,0,.4);}
.page-hero p.tagline{max-width:44ch; margin-top:.9rem; font-size:clamp(1.02rem,1.7vw,1.2rem); color:var(--on-dark-soft);}
/* Hero en triptyque (3 photos côte à côte) */
.page-hero.triptych{background:none;}
.page-hero .triptych-bg{position:absolute; inset:0; z-index:-2; display:grid; grid-template-columns:repeat(3,1fr); gap:2px;}
.page-hero .triptych-bg img{width:100%; height:100%; object-fit:cover; display:block;}
@media(max-width:700px){ .page-hero .triptych-bg{grid-template-columns:1fr 1fr;} .page-hero .triptych-bg img:nth-child(3){display:none;} }
.breadcrumb{display:flex; gap:.5rem; align-items:center; font-size:.82rem; letter-spacing:.04em; color:#E6DFCE;}
.breadcrumb a{text-decoration:none; opacity:.85;} .breadcrumb a:hover{opacity:1; text-decoration:underline; text-underline-offset:4px;}
.breadcrumb span{opacity:.6;}

/* Prose / rich text */
.prose{max-width:65ch; color:var(--ink-soft);}
.prose p+p{margin-top:1.1rem;}
.prose h3{font-size:clamp(1.5rem,3vw,2rem); color:var(--ink); margin:2rem 0 .6rem;}
.lead-para{font-family:var(--serif); font-size:clamp(1.3rem,2.3vw,1.8rem); line-height:1.42; color:var(--ink);}
.lead-para .it{color:var(--olive);}

/* Alternating media rows */
.mediarow{display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center;}
.mediarow+.mediarow{margin-top:clamp(3rem,6vw,5rem);}
.mediarow .media{border-radius:16px; overflow:hidden; border:1px solid var(--line); aspect-ratio:4/3;}
.mediarow .media img{width:100%; height:100%; object-fit:cover;}
.mediarow .media .video-facade{aspect-ratio:auto; height:100%; border-radius:inherit;}
.mediarow.reverse .txtcol{order:2;}
.mediarow.reverse .media{order:1;}

/* Gallery */
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:.9rem;}
.gallery a{display:block; border-radius:12px; overflow:hidden; border:1px solid var(--line); aspect-ratio:3/2; cursor:pointer;}
.gallery img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.gallery a:hover img{transform:scale(1.06);}
.gallery a.tall{aspect-ratio:auto; grid-row:span 2;}

/* Lodge detail block */
.lodge-detail{scroll-margin-top:90px;}
.lodge-detail+.lodge-detail{margin-top:clamp(3.5rem,7vw,6rem); padding-top:clamp(3.5rem,7vw,6rem); border-top:1px solid var(--line);}
.spec-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem 1.6rem; margin-top:1.4rem;}
.spec-grid li{list-style:none; display:flex; gap:.6rem; align-items:flex-start; color:var(--ink-soft); font-size:.96rem;}
.spec-grid svg{flex:none; margin-top:.28em; color:var(--olive);}
.priceline{display:flex; flex-wrap:wrap; align-items:baseline; gap:.6rem 1.2rem; margin-top:1.6rem; padding:1.1rem 1.3rem; background:var(--card); border:1px solid var(--line); border-radius:12px;}
.priceline b{font-family:var(--serif); font-size:1.7rem; color:var(--brand);}
.priceline .note{color:var(--ink-faint); font-size:.9rem;}

/* Services chips */
.chips{display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.4rem;}
.chip{font-size:.85rem; padding:.5em 1em; border-radius:999px; background:color-mix(in srgb,var(--accent-2) 12%,transparent); color:var(--accent-2); border:1px solid color-mix(in srgb,var(--accent-2) 26%,transparent);}

/* Reservation / contact */
.reserve-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,3.5rem);}
.ref-block{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:clamp(1.4rem,3vw,2rem); margin-top:1.4rem;}
.ref-block h4{margin:0 0 .3rem; font-family:var(--sans); font-weight:700;}
.ref-list{display:flex; flex-wrap:wrap; gap:.55rem; margin-top:.9rem;}
.ref-list a{font-variant-numeric:tabular-nums; text-decoration:none; font-weight:600; font-size:.9rem; padding:.5em .9em; border-radius:8px; background:color-mix(in srgb,var(--myrtle) 15%,var(--card)); border:1px solid color-mix(in srgb,var(--myrtle) 25%,var(--line)); color:var(--ink);}
.ref-list a.central{background:var(--myrtle); border-color:var(--myrtle); color:#fff;}
.ref-list a:hover{border-color:var(--myrtle); box-shadow:0 2px 10px rgba(30,58,46,.18);}
.ref-list a.central:hover{background:#17402d;}
.contact-solid{background:var(--myrtle); color:var(--paper); border:0;}
.contact-solid .row{border-color:rgba(255,255,255,.14);}
.contact-solid .row b{color:var(--paper);} .contact-solid .row small{color:color-mix(in srgb,var(--paper) 60%,transparent);}
.contact-solid .ic{background:rgba(255,255,255,.1); color:var(--gold);}

/* CTA strip */
.cta-strip{background:var(--bg-alt); text-align:center;}
.cta-strip .wrap{display:flex; flex-direction:column; align-items:center; gap:1.2rem;}
.cta-strip h2{font-size:clamp(1.8rem,4vw,2.8rem);}
.cta-strip .cta-row{display:flex; flex-wrap:wrap; gap:.9rem; justify-content:center;}

/* Lightbox */
.lb{position:fixed; inset:0; z-index:100; background:rgba(10,16,12,.92); display:none; align-items:center; justify-content:center; padding:3vw;}
.lb.open{display:flex;}
.lb img{max-width:94vw; max-height:88vh; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.5);}
.lb .close{position:absolute; top:1.2rem; right:1.4rem; width:46px; height:46px; border-radius:50%; border:1.5px solid rgba(255,255,255,.5); background:transparent; color:#fff; font-size:1.4rem; cursor:pointer; display:grid; place-items:center;}
.lb .nav{position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; border:1.5px solid rgba(255,255,255,.4); background:rgba(0,0,0,.2); color:#fff; font-size:1.6rem; cursor:pointer;}
.lb .prev{left:2vw;} .lb .next{right:2vw;}

/* Sub nav (anchors within page) */
.subnav{background:var(--bg); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30;}
.subnav .wrap{display:flex; gap:1.6rem; padding-block:1rem; overflow-x:auto;}
.subnav a{white-space:nowrap; text-decoration:none; font-size:.9rem; font-weight:600; color:var(--ink-soft);}
.subnav a:hover{color:var(--accent-2);}

@media (max-width:900px){
  .mediarow{grid-template-columns:1fr;}
  .mediarow.reverse .txtcol, .mediarow.reverse .media{order:0;}
  .reserve-grid{grid-template-columns:1fr;}
  .gallery{grid-template-columns:1fr 1fr;}
  .spec-grid{grid-template-columns:1fr;}
}

/* Bouton outline (pages intérieures) */
.btn-outline{border-color:var(--line); color:var(--ink); background:transparent;}
.btn-outline:hover{border-color:var(--accent-2); color:var(--accent-2);}

/* Formulaire */
.field{display:flex; flex-direction:column; gap:.4rem;}
.field>span{font-size:.8rem; font-weight:600; letter-spacing:.03em; color:var(--ink-soft);}
.field input, .field select, .field textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink); background:var(--card);
  border:1px solid var(--line); border-radius:10px; padding:.7em .85em; width:100%; resize:vertical;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--accent-2); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-2) 22%,transparent);
}
@media (max-width:560px){ .ff-row{grid-template-columns:1fr !important;} }

/* Focus clavier visible partout */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.gallery a:focus-visible{ outline:2px solid var(--accent-2); outline-offset:3px; }

/* ===================== HELPERS TYPO / MISE EN FORME =====================
   Regroupe les réglages qui traînaient en style="" dans les pages, pour
   qu'un futur changement de taille/espacement se fasse aussi ici. */
.eyebrow.kicker{color:var(--gold);}                 /* œil-de-bœuf doré sur photo */
h2.h2{font-size:clamp(1.85rem,4vw,2.7rem); margin-top:.5rem;}  /* titre de section courant */
.sub{color:var(--ink-soft);}
.txtcol .prose{margin-top:1rem;}
.txtcol .sub{margin-top:.4rem;}
.btn.mt, .chips.mt, .prose.mt{margin-top:1.4rem;}   /* respiration après un bloc */

/* Fenêtre vidéo (film Vimeo, chargé au clic) */
.lb-video{padding:3vw;}
.lb-frame{width:min(92vw,1160px); aspect-ratio:16/9; max-height:86vh;}
.lb-frame iframe{width:100%; height:100%; border:0; border-radius:10px; box-shadow:0 20px 60px rgba(0,0,0,.5);}

/* ===================== MENU MOBILE (hamburger) ===================== */
.burger{display:none; width:44px; height:44px; padding:0; border:0; background:transparent; color:var(--myrtle); cursor:pointer; flex-direction:column; align-items:center; justify-content:center; gap:5px; -webkit-appearance:none; appearance:none;}
.burger span{display:block; width:24px; height:2px; background:currentColor; border-radius:2px; transition:transform .25s ease, opacity .2s ease;}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-nav{position:fixed; inset:0; z-index:40; background:var(--myrtle); color:var(--on-dark);
  display:flex; flex-direction:column; justify-content:center; gap:1.3rem; padding:var(--pad);
  transform:translateX(100%); visibility:hidden; transition:transform .32s cubic-bezier(.4,0,.2,1), visibility 0s .32s;}
.mobile-nav.open{transform:none; visibility:visible; transition:transform .32s cubic-bezier(.4,0,.2,1);}
.mobile-nav a{font-family:var(--serif); font-size:1.95rem; line-height:1.1; text-decoration:none; color:var(--on-dark); width:max-content;}
.m-close{position:absolute; top:.8rem; right:1rem; width:48px; height:48px; display:grid; place-items:center; border:0; background:transparent; color:var(--on-dark); font-size:2.6rem; line-height:1; cursor:pointer; padding:0;}
.mobile-nav a[aria-current="page"]{color:var(--gold);}
.mobile-nav .m-cta{font-family:var(--sans); font-size:.95rem; margin-top:1.1rem; width:max-content;}
.mobile-nav .m-lang{margin-top:1.6rem; font-size:.85rem; letter-spacing:.12em; color:color-mix(in srgb, var(--on-dark) 65%, transparent);}
.mobile-nav .m-lang b{color:var(--on-dark);}

@media (max-width:900px){
  header.bar{padding-block:.45rem;}
  .burger{display:flex;}
}
@media (prefers-reduced-motion:reduce){ .mobile-nav, .burger span{transition:none;} }

/* Sélecteur de langue */
.lang a{text-decoration:none; color:inherit; opacity:.6; transition:opacity .15s ease;}
.lang a:hover{opacity:.9;}
.lang a.on{opacity:1; font-weight:700;}
.m-lang a{text-decoration:none; color:var(--on-dark); opacity:.6;}
.m-lang a.on{opacity:1; font-weight:700; color:var(--gold);}

/* --- Correctifs hero mobile --- */
/* Œil-de-bœuf sur photo : pas de trait décoratif -> texte aligné à gauche avec le titre */
.eyebrow.kicker::before{ display:none; }

@media (max-width:900px){
  .hero.hero-top .hero-inner{ padding-top:2rem; }
}

/* Œil-de-bœuf posé sur une photo : en blanc (crème) pour la lisibilité */
.hero .kicker, .page-hero .kicker, .film .kicker{ color:var(--on-dark); }

/* Boutons : le libellé ne se coupe jamais sur 2 lignes */
.btn{ white-space:nowrap; }
/* Sur mobile, le pied des cartes hébergements s'empile (prix / bouton) */
@media (max-width:560px){
  .lodge .foot{ flex-direction:column; align-items:flex-start; }
}

/* Icône sociale dans le pied de page */
.foot-social{display:inline-flex; align-items:center; color:var(--ink-soft); transition:color .15s ease;}
.foot-social:hover{color:var(--accent);}
