
  :root{
    --forest:#1f3d2b;
    --forest-light:#2f5a3f;
    --forest-pale:#e7efe6;
    --terracotta:#a6532e;
    --terracotta-dark:#8c4423;
    --cream:#faf6ef;
    --stone:#efe9df;
    --stone-dark:#ddd4c2;
    --ink:#2b2620;
    --ink-soft:#5b544a;
    --gold:#b98d46;
    --radius:14px;
    --shadow: 0 10px 30px rgba(31,61,43,0.12);
    --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
    --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--sans);
    color:var(--ink);
    background:var(--cream);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit;}
  h1,h2,h3,h4{font-family:var(--serif); font-weight:600; line-height:1.15; color:var(--forest);}
  .container{max-width:1180px; margin:0 auto; padding:0 24px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--terracotta-dark); font-weight:700; margin-bottom:14px;
  }
  .eyebrow::before{content:""; width:22px; height:2px; background:var(--terracotta); display:inline-block;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:14px 26px; border-radius:999px; font-weight:600; font-size:0.95rem;
    text-decoration:none; cursor:pointer; border:2px solid transparent;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--terracotta); color:#fff; box-shadow:0 8px 20px rgba(192,105,62,0.35);}
  .btn-primary:hover{background:var(--terracotta-dark);}
  .btn-outline{border-color:rgba(255,255,255,0.55); color:#fff;}
  .btn-outline:hover{background:rgba(255,255,255,0.12);}
  .btn-dark{background:var(--forest); color:#fff;}
  .btn-dark:hover{background:var(--forest-light);}

  /* Header */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(250,246,239,0.92); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--stone-dark);
  }
  .nav-wrap{display:flex; align-items:center; justify-content:space-between; padding:16px 24px;}
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
  .brand-mark{
    width:38px; height:38px; border-radius:10px; background:var(--forest);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .brand-name{font-family:var(--serif); font-weight:700; font-size:1.15rem; color:var(--forest); line-height:1.1;}
  .brand-sub{font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);}
  nav ul{list-style:none; display:flex; gap:28px; align-items:center;}
  nav a{text-decoration:none; font-weight:500; font-size:0.95rem; color:var(--ink); position:relative;}
  nav a:hover{color:var(--terracotta-dark);}
  .nav-cta{display:flex; align-items:center; gap:14px;}
  .nav-phone{display:flex; align-items:center; gap:6px; font-weight:600; font-size:0.92rem; text-decoration:none; color:var(--forest);}
  .menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .menu-toggle span{display:block; width:24px; height:2px; background:var(--forest); margin:5px 0; border-radius:2px;}

  /* Hero */
  .hero{
    position:relative; overflow:hidden;
    background:
      linear-gradient(100deg, rgba(8,20,13,0.92) 0%, rgba(8,20,13,0.78) 32%, rgba(8,20,13,0.38) 62%, rgba(8,20,13,0.08) 88%),
      linear-gradient(0deg, rgba(8,20,13,0.6) 0%, rgba(8,20,13,0.05) 32%, rgba(8,20,13,0.05) 55%, rgba(8,20,13,0.4) 100%),
      url("hero-chalet-neige.jpg") center 30%/cover no-repeat;
    color:#fff; padding:72px 0 0;
  }
  .hero-inner{
    display:block;
    max-width:720px;
    padding-bottom:64px;
  }
  .hero h1{color:#fff; font-size:clamp(2.4rem, 4.6vw, 3.7rem); margin-bottom:18px; text-shadow:0 2px 24px rgba(0,0,0,0.25);}
  .hero-tagline{font-size:1.15rem; color:rgba(255,255,255,0.92); max-width:540px; margin-bottom:28px;}
  .hero-highlights{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:30px;}
  .hi-chip{
    display:flex; align-items:center; gap:9px; padding:10px 16px; border-radius:12px;
    background:rgba(255,255,255,0.14); backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,0.2);
    font-size:0.88rem; font-weight:600; color:#fff;
  }
  .hi-chip svg{width:18px; height:18px; stroke:#fff; flex-shrink:0;}
  .hero-badges{display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:22px;}
  .badge{
    font-size:0.8rem; color:rgba(255,255,255,0.78); display:flex; align-items:center; gap:6px;
  }
  .hero-actions{display:flex; flex-wrap:wrap; gap:14px; align-items:center;}
  .btn-primary.btn-lg{padding:17px 32px; font-size:1.02rem; box-shadow:0 12px 30px rgba(192,105,62,0.45);}
  .scroll-cue{
    position:absolute; left:50%; bottom:22px; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:6px;
    color:rgba(255,255,255,0.75); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase;
    text-decoration:none; animation:bounce 2.4s ease-in-out infinite;
  }
  .scroll-cue svg{width:16px; height:16px;}
  @keyframes bounce{0%,100%{transform:translate(-50%,0);} 50%{transform:translate(-50%,6px);}}
  .hero-art{position:relative; height:380px;}
  .mountain-scene{width:100%; height:100%;}

  .stats-bar{
    background:var(--stone); border-top:1px solid var(--stone-dark);
  }
  .stats-grid{
    display:grid; grid-template-columns:repeat(5,1fr); gap:0;
    text-align:center; padding:26px 0;
  }
  .stats-grid div{padding:8px 12px; border-right:1px solid var(--stone-dark);}
  .stats-grid div:last-child{border-right:none;}
  .stat-num{font-family:var(--serif); font-size:1.7rem; font-weight:700; color:var(--forest);}
  .stat-label{font-size:0.8rem; color:var(--ink-soft); margin-top:2px;}

  section{padding:88px 0;}
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head p{color:var(--ink-soft); font-size:1.05rem;}
  .alt-bg{background:var(--forest-pale);}

  /* Le chalet */
  .chalet-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start;}
  .chalet-text p{margin-bottom:16px; color:var(--ink-soft);}
  .room-list{list-style:none; margin-top:20px;}
  .room-list li{
    display:flex; gap:12px; padding:10px 0; border-bottom:1px solid var(--stone-dark);
    font-size:0.95rem; color:var(--ink);
  }
  .room-list li strong{color:var(--forest); min-width:118px; flex-shrink:0;}

  .photo-grid{display:grid; grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(3,140px); gap:14px;}
  .photo-grid .ph:first-child{grid-row:span 2;}
  .ph{
    position:relative; border-radius:var(--radius); overflow:hidden;
    background:repeating-linear-gradient(135deg, var(--stone) 0px, var(--stone) 14px, #e3dccb 14px, #e3dccb 28px);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
    border:1.5px dashed var(--stone-dark); color:var(--ink-soft); text-align:center; padding:10px;
  }
  .ph svg{width:28px; height:28px; opacity:0.55;}
  .ph span{font-size:0.78rem; font-weight:600; opacity:0.75;}

  /* Equipements */
  .equip-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .equip-card{
    background:#fff; border-radius:var(--radius); padding:28px; box-shadow:var(--shadow);
    border:1px solid var(--stone-dark);
  }
  .equip-icon{
    width:46px; height:46px; border-radius:12px; background:var(--forest-pale);
    display:flex; align-items:center; justify-content:center; margin-bottom:16px;
  }
  .equip-icon svg{width:24px; height:24px; stroke:var(--forest);}
  .equip-card h3{font-size:1.1rem; margin-bottom:12px;}
  .equip-card ul{list-style:none;}
  .equip-card li{
    font-size:0.92rem; color:var(--ink-soft); padding:5px 0 5px 22px; position:relative;
  }
  .equip-card li::before{
    content:"✓"; position:absolute; left:0; color:var(--terracotta); font-weight:700;
  }

  /* Environs */
  .env-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .env-card{
    background:#fff; border-radius:var(--radius); overflow:hidden; border:1px solid var(--stone-dark);
    box-shadow:var(--shadow); display:flex; flex-direction:column;
  }
  .env-top{
    height:96px; background:linear-gradient(135deg, var(--forest) 0%, var(--forest-light) 100%);
    display:flex; align-items:center; justify-content:space-between; padding:16px 20px;
  }
  .env-top svg{width:30px; height:30px; stroke:#fff; opacity:0.9;}
  .env-dist{color:#fff; font-size:0.78rem; font-weight:700; background:rgba(255,255,255,0.18); padding:5px 10px; border-radius:999px;}
  .env-body{padding:20px 22px 24px;}
  .env-body h3{font-size:1.02rem; margin-bottom:8px;}
  .env-body p{font-size:0.9rem; color:var(--ink-soft);}
  .env-source{margin-top:36px; font-size:0.82rem; color:var(--ink-soft);}
  .env-source a{color:var(--terracotta-dark); font-weight:600; text-decoration:none;}

  /* Tarifs */
  .pricing-wrap{display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px;}
  .pricing-card{
    background:var(--forest); color:#fff; border-radius:20px; padding:40px;
    display:flex; flex-direction:column; gap:20px; justify-content:center;
  }
  .pricing-card h3{color:#fff; font-size:1.5rem;}
  .pricing-card p{color:rgba(255,255,255,0.82); font-size:0.95rem;}
  .price-note{
    background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2);
    border-radius:12px; padding:16px 18px; font-size:0.88rem; color:rgba(255,255,255,0.9);
  }
  .conditions-list{list-style:none;}
  .conditions-list li{
    display:flex; justify-content:space-between; gap:16px; padding:14px 0;
    border-bottom:1px solid var(--stone-dark); font-size:0.93rem;
  }
  .conditions-list li span:first-child{color:var(--ink-soft);}
  .conditions-list li span:last-child{font-weight:700; color:var(--forest); text-align:right;}

  /* Association */
  .assoc-wrap{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
  .assoc-card{
    background:#fff; border-radius:var(--radius); padding:32px; box-shadow:var(--shadow);
    border:1px solid var(--stone-dark);
  }
  .assoc-card + .assoc-card{margin-top:20px;}
  .assoc-card h4{font-size:1rem; margin-bottom:8px;}
  .assoc-card p{font-size:0.92rem; color:var(--ink-soft);}

  /* Contact / footer */
  footer{background:var(--forest); color:rgba(255,255,255,0.85); padding:70px 0 30px;}
  .footer-grid{display:grid; grid-template-columns:1.1fr 0.9fr 0.9fr 1.1fr; gap:40px; margin-bottom:50px;}
  footer h4{color:#fff; font-size:1rem; margin-bottom:16px; font-family:var(--sans); font-weight:700;}
  footer p, footer a{color:rgba(255,255,255,0.72); font-size:0.9rem;}
  footer ul{list-style:none;}
  footer li{margin-bottom:10px;}
  footer a{text-decoration:none;}
  footer a:hover{color:#fff;}
  .footer-brand p{margin-top:14px; max-width:280px;}
  .map-embed{border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,0.15); height:180px;}
  .map-embed iframe{width:100%; height:100%; border:0;}
  .footer-bottom{
    border-top:1px solid rgba(255,255,255,0.15); padding-top:24px;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.82rem; color:rgba(255,255,255,0.55);
  }

  .sticky-cta{
    position:fixed; bottom:18px; left:50%; transform:translateX(-50%) translateY(120%); z-index:200;
    display:none; box-shadow:0 12px 28px rgba(0,0,0,0.25);
    transition:transform .3s ease; opacity:0; pointer-events:none;
  }
  .sticky-cta.is-visible{transform:translateX(-50%) translateY(0); opacity:1; pointer-events:auto;}

  @media (max-width:960px){
    nav ul, .nav-cta .nav-phone{display:none;}
    .menu-toggle{display:block;}
    .stats-grid{grid-template-columns:repeat(2,1fr); row-gap:18px;}
    .stats-grid div{border-right:none; border-bottom:1px solid var(--stone-dark);}
    .chalet-grid, .assoc-wrap, .pricing-wrap{grid-template-columns:1fr;}
    .equip-grid, .env-grid{grid-template-columns:1fr 1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .sticky-cta{display:inline-flex;}
    body{padding-bottom:70px;}
  }
  @media (max-width:600px){
    .equip-grid, .env-grid, .footer-grid{grid-template-columns:1fr;}
    .photo-grid{grid-template-rows:repeat(3,110px);}
    section{padding:60px 0;}
  }

  [data-reveal]{opacity:1; transform:none;}

/* Multi-page additions */
nav a.active{color:var(--terracotta-dark);}
nav a.active::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--terracotta);}
nav a{position:relative;}

/* En-tête retravaillé : plus de sous-titre "Luchon · Pyrénées", libellés
   multi-lignes (Réservation / Tarif) proprement centrés plutôt que collés à
   gauche quand ils passent sur deux lignes ; le numéro de téléphone ne passe
   plus jamais à la ligne (mot par mot) et reste sur une seule ligne propre. */
.brand{gap:12px;}
.brand-name{line-height:1.15;}
nav ul{row-gap:4px;}
nav a{text-align:center; display:block; line-height:1.3;}
.nav-phone{flex-shrink:0;}
.nav-phone-num{white-space:nowrap;}

/* Page d'accueil plus lumineuse (13/08/2026) : bandeau d'accueil moins
   sombre (le voile vert-noir très opaque masquait beaucoup la photo) et
   nouvelle galerie photo pour donner davantage envie de réserver.
   Voile retravaillé en dégradé radial centré (19/08/2026) : quand tout le
   contenu du héro a été centré (voir plus bas), l'ancien dégradé diagonal
   gauche→droite (pensé pour un texte aligné à gauche) laissait le texte
   sur une zone trop claire de la photo au centre. Le dégradé radial fonce
   la zone centrale où se trouve désormais le texte, tout en laissant les
   bords de la photo plus visibles. */
.hero{
  background:
    linear-gradient(0deg, rgba(22,42,29,0.42) 0%, rgba(22,42,29,0.08) 28%, rgba(22,42,29,0.08) 58%, rgba(22,42,29,0.32) 100%),
    radial-gradient(ellipse 70% 60% at 50% 42%, rgba(16,32,21,0.58) 0%, rgba(16,32,21,0.34) 48%, rgba(16,32,21,0.08) 78%),
    url("hero-chalet-neige.jpg") center 30%/cover no-repeat;
}

/* Titre d'accueil en deux tailles (19/08/2026) : "Bienvenue à Bellevue"
   nettement plus gros (l'accroche), le reste plus discret (le sous-texte)
   — demande explicite de l'utilisateur. Remplace la taille unique héritée
   de la règle de base ".hero h1" (voir BASE_CSS). Titre centré (19/08/2026,
   demande explicite) : text-align:center ci-dessous. */
.hero h1{display:flex; flex-direction:column; gap:10px; text-align:center;}
.hero-title-hook{font-size:clamp(3.4rem, 7.2vw, 5.6rem); line-height:1.05;}
.hero-title-sub{font-size:clamp(1.4rem, 2.4vw, 2rem); font-weight:600; line-height:1.35; color:rgba(255,255,255,0.94);}

/* Toute la zone héro centrée (19/08/2026, demande explicite : "centre
   toute la zone ou il y a la photo pour que ca soit beau") — le bloc de
   contenu (accroche, titre, texte, badges, boutons) est maintenant centré
   horizontalement au-dessus de la photo, au lieu d'être plaqué à gauche.
   Les rangées en "chips" (hero-highlights/actions/badges) sont aussi
   recentrées, et le texte d'intro (max-width fixe) est centré via
   margin:auto. */
.hero-inner{margin:0 auto; text-align:center; padding-bottom:92px;}
.hero-tagline{margin-left:auto; margin-right:auto;}
.hero-highlights, .hero-actions, .hero-badges{justify-content:center;}

.home-gallery{padding:64px 0;}
.gallery-grid{
  display:grid; grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:1fr 1fr;
  gap:10px; height:460px; border-radius:20px; overflow:hidden;
}
.gallery-item{position:relative; display:block; overflow:hidden; background:var(--stone);}
.gallery-item img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s ease;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(0deg, rgba(8,16,11,0.45) 0%, rgba(8,16,11,0) 42%);
}
.gallery-item-lg{grid-row:1 / 3;}
.gallery-caption{
  position:absolute; left:14px; bottom:12px; z-index:1; color:#fff;
  font-size:0.8rem; font-weight:700; letter-spacing:0.01em;
}
.gallery-item.img-fallback{background:linear-gradient(135deg, var(--stone) 0%, var(--stone-dark) 100%);}
.gallery-item.img-fallback img{display:none;}
.gallery-item.img-fallback::after{display:none;}
@media (max-width:820px){
  .gallery-grid{grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,180px); height:auto;}
  .gallery-item-lg{grid-column:1 / 3; grid-row:1;}
}
@media (max-width:520px){
  .gallery-grid{grid-template-columns:1fr; grid-template-rows:repeat(5,220px);}
  .gallery-item-lg{grid-column:1; grid-row:1;}
}

/* Vraies photos du chalet dans les encarts "photo à ajouter" de la page
   "Le chalet & équipements" (19/08/2026, photos envoyées par l'utilisateur) :
   on retire le style pointillé/hachuré réservé aux encarts vides, l'image
   remplit le cadre comme les autres photos du site. */
.ph.is-photo{border:none; background:none; padding:0;}
.ph.is-photo img{width:100%; height:100%; object-fit:cover; display:block;}

/* Petite galerie "Autres espaces du chalet" (19/08/2026) : 4 photos
   supplémentaires envoyées par l'utilisateur, affichées en cartes avec
   légende sous la page "Le chalet & équipements". */
.chalet-extra-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
}
.chalet-extra-item{margin:0;}
.chalet-extra-item img{
  width:100%; height:200px; object-fit:cover; display:block;
  border-radius:var(--radius);
}
.chalet-extra-item figcaption{
  margin-top:10px; font-size:0.86rem; color:var(--ink-soft); text-align:center;
}
@media (max-width:820px){
  .chalet-extra-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:520px){
  .chalet-extra-grid{grid-template-columns:1fr;}
  .chalet-extra-item img{height:240px;}
}

/* Cliquer sur une photo pour l'afficher en grand (19/08/2026, demande
   explicite) — indice visuel (curseur loupe) sur les photos concernées,
   plus la fenêtre plein écran elle-même (créée par assets/site.js). */
.zoomable-img{cursor:zoom-in;}
/* Le bouton flottant "Réserver le chalet" (position:fixed) peut, sur
   certains navigateurs, rester visible par-dessus la fenêtre plein écran
   même avec un z-index inférieur (bug de rendu constaté en test) — on le
   masque explicitement tant que la fenêtre plein écran est ouverte. */
.lightbox-locked .sticky-cta{display:none !important;}
.lightbox-overlay{
  position:fixed; inset:0; z-index:300; display:none;
  align-items:center; justify-content:center;
  background:rgba(10,16,12,0.92); padding:56px 20px;
}
.lightbox-overlay.is-open{display:flex;}
.lightbox-figure{margin:0; max-width:min(92vw,1200px); max-height:88vh; text-align:center;}
.lightbox-img{max-width:100%; max-height:80vh; border-radius:8px; display:block; margin:0 auto; box-shadow:0 20px 60px rgba(0,0,0,0.5);}
.lightbox-caption{color:rgba(255,255,255,0.88); font-size:0.9rem; margin-top:14px;}
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:fixed; background:rgba(255,255,255,0.12); color:#fff; border:none; border-radius:999px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{background:rgba(255,255,255,0.24);}
.lightbox-close{top:18px; right:18px; width:44px; height:44px; font-size:1.6rem; line-height:1;}
.lightbox-prev, .lightbox-next{top:50%; transform:translateY(-50%); width:52px; height:52px; font-size:2rem; line-height:1;}
.lightbox-prev{left:16px;}
.lightbox-next{right:16px;}
@media (max-width:640px){
  .lightbox-prev, .lightbox-next{width:42px; height:42px; font-size:1.6rem;}
  .lightbox-close{width:38px; height:38px; font-size:1.3rem;}
}

.nav-account:hover{color:var(--terracotta-dark);}
@media (max-width:1080px){
  .nav-account-label{display:none;}
}
@media (max-width:820px){
  .nav-account{display:none !important;}
}

.page-banner{
  background:linear-gradient(135deg, var(--forest) 0%, var(--forest-light) 100%);
  color:#fff; padding:64px 0 56px;
}
.breadcrumb{font-size:0.85rem; color:rgba(255,255,255,0.7); margin-bottom:14px;}
.breadcrumb a{color:rgba(255,255,255,0.85); text-decoration:none;}
.breadcrumb a:hover{color:#fff; text-decoration:underline;}
.page-banner h1{color:#fff; font-size:clamp(2rem, 3.6vw, 2.8rem); margin-bottom:12px;}
.page-banner p{color:rgba(255,255,255,0.85); font-size:1.05rem; max-width:600px;}

.explore-section{padding:88px 0;}
.explore-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.explore-card{
  background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius);
  padding:26px; text-decoration:none; color:var(--ink); box-shadow:var(--shadow);
  display:flex; flex-direction:column; gap:10px; transition:transform .15s ease;
}
.explore-card:hover{transform:translateY(-3px);}
.explore-card .equip-icon{margin-bottom:4px;}
.explore-card h3{font-size:1.08rem; color:var(--forest);}
.explore-card p{font-size:0.9rem; color:var(--ink-soft); flex-grow:1;}
.explore-card .go{font-size:0.85rem; font-weight:700; color:var(--terracotta-dark);}

.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
.contact-info-card{background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius); padding:32px; box-shadow:var(--shadow);}
.contact-info-card ul{list-style:none;}
.contact-info-card li{display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--stone-dark); font-size:0.95rem;}
.contact-info-card li:last-child{border-bottom:none;}
.contact-info-card li svg{width:20px; height:20px; stroke:var(--forest); flex-shrink:0; margin-top:2px;}
.contact-info-card a{color:var(--forest); text-decoration:none; font-weight:600;}
.contact-map{border-radius:var(--radius); overflow:hidden; border:1px solid var(--stone-dark); box-shadow:var(--shadow); height:100%; min-height:360px;}
.contact-map iframe{width:100%; height:100%; border:0; min-height:360px;}

/* Environs — bandeau photo + cartes photo */
.page-banner-photo{
  position:relative; background-size:cover; background-position:center; padding:0;
}
.page-banner-photo::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(31,61,43,0.90) 0%, rgba(58,107,74,0.80) 100%);
}
.page-banner-photo .container{position:relative; z-index:1; padding-top:64px; padding-bottom:56px;}
.page-banner-photo .banner-credit{
  position:relative; z-index:1; font-size:0.72rem; color:rgba(255,255,255,0.6);
  padding:0 0 14px; margin:0;
}

.env-photo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.env-photo-card{
  background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column;
}
.env-photo-wrap{position:relative; height:190px; background:var(--stone);}
.env-photo-wrap img{width:100%; height:100%; object-fit:cover; display:block;}
.env-photo-wrap.img-fallback{background:linear-gradient(135deg, var(--stone) 0%, var(--stone-dark) 100%);}
.env-photo-wrap.img-fallback img{display:none;}
.page-banner-photo.img-fallback{background-color:var(--forest);}
.env-photo-dist{
  position:absolute; top:12px; right:12px; background:rgba(31,61,43,0.88); color:#fff;
  font-size:0.74rem; font-weight:700; padding:4px 11px; border-radius:999px;
}
.env-photo-body{padding:20px 22px 22px; display:flex; flex-direction:column; gap:8px; flex-grow:1;}
.env-photo-body h3{font-size:1.05rem; color:var(--forest); margin:0;}
.env-photo-body p{font-size:0.88rem; color:var(--ink-soft); margin:0; line-height:1.5;}
.env-photo-credit{font-size:0.66rem; color:var(--ink-soft); opacity:0.75; margin-top:auto; padding-top:4px;}
.env-photo-card{cursor:pointer; transition:transform .15s ease, box-shadow .15s ease;}
.env-photo-card:hover, .env-photo-card:focus-visible{transform:translateY(-3px); box-shadow:0 14px 30px rgba(31,61,43,0.16);}
.env-photo-card:focus-visible{outline:2px solid var(--forest); outline-offset:2px;}
.env-photo-more{font-size:0.78rem; font-weight:700; color:var(--terracotta); margin-top:2px;}

/* Fenêtre "en savoir plus" par activité */
.env-modal-backdrop{
  position:fixed; inset:0; background:rgba(20,30,24,0.55); display:none;
  align-items:flex-start; justify-content:center; padding:5vh 16px; z-index:200; overflow-y:auto;
}
.env-modal-backdrop.is-open{display:flex;}
.env-modal{
  background:#fff; border-radius:var(--radius); max-width:720px; width:100%;
  box-shadow:0 30px 70px rgba(0,0,0,0.35); overflow:hidden; margin-bottom:5vh;
}
.env-modal-photo{position:relative; height:220px; background:var(--stone);}
.env-modal-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.env-modal-photo.img-fallback{background:linear-gradient(135deg, var(--stone) 0%, var(--stone-dark) 100%);}
.env-modal-photo.img-fallback img{display:none;}
.env-modal-close{
  position:absolute; top:14px; right:14px; width:36px; height:36px; border-radius:50%;
  background:rgba(31,61,43,0.85); color:#fff; border:none; font-size:1.2rem; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.env-modal-close:hover{background:var(--forest);}
.env-modal-dist{
  position:absolute; bottom:14px; left:20px; background:rgba(31,61,43,0.88); color:#fff;
  font-size:0.78rem; font-weight:700; padding:5px 12px; border-radius:999px;
}
.env-modal-body{padding:26px 28px 30px;}
.env-modal-body h2{color:var(--forest); font-size:1.5rem; margin:0 0 14px;}
.env-modal-body p{font-size:0.93rem; line-height:1.65; color:var(--ink-soft); margin:0 0 12px;}
.env-modal-practical{
  background:var(--cream, #faf6ef); border:1px solid var(--stone-dark); border-radius:12px;
  padding:16px 18px; margin:18px 0; list-style:none;
}
.env-modal-practical li{font-size:0.85rem; color:var(--ink-soft); padding:5px 0 5px 22px; position:relative; line-height:1.5;}
.env-modal-practical li::before{content:"—"; position:absolute; left:0; color:var(--terracotta); font-weight:700;}
.env-modal-map-wrap{border-radius:12px; overflow:hidden; border:1px solid var(--stone-dark); height:260px; margin-top:6px; background:var(--stone);}
.env-modal-map-wrap iframe{width:100%; height:100%; border:0;}
.env-modal-links{display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:14px; font-size:0.85rem;}
.env-modal-links a{color:var(--forest); font-weight:700; text-decoration:none;}
.env-modal-links a:hover{text-decoration:underline;}
.env-modal-credit{font-size:0.66rem; color:var(--ink-soft); opacity:0.75; margin-top:16px;}
@media (max-width:640px){
  .env-modal-body{padding:20px 18px 24px;}
  .env-modal-photo{height:170px;}
}

/* Agenda / événements du secteur luchonnais */
.agenda-section{margin-top:64px; padding:48px 0 12px; border-top:3px solid var(--terracotta);}
.agenda-section > .agenda-heading{max-width:680px; margin-bottom:14px;}
.agenda-section .eyebrow{color:var(--terracotta-dark); font-size:0.88rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em;}
.agenda-section h2{color:var(--forest); font-size:2.3rem; margin:8px 0 16px; line-height:1.1;}
.agenda-note{
  background:var(--forest-pale); border:2px solid var(--terracotta); border-radius:14px;
  padding:20px 24px; font-size:1.02rem; color:var(--ink); line-height:1.65; margin:0 0 40px;
  font-weight:500;
}
.agenda-note a{color:var(--terracotta-dark); font-weight:700; text-decoration:underline;}
.agenda-note a:hover{color:var(--terracotta);}
.agenda-cats{display:flex; flex-direction:column; gap:52px;}
.agenda-cat-photo{
  position:relative; height:190px; border-radius:16px; overflow:hidden; margin-bottom:8px;
  background:var(--stone);
}
.agenda-cat-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.agenda-cat-photo::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(31,61,43,0) 35%, rgba(20,38,27,0.85) 100%);
}
.agenda-cat-photo h3{
  position:absolute; left:24px; right:24px; bottom:16px; color:#fff; font-size:1.6rem;
  margin:0; z-index:2; line-height:1.15;
}
.agenda-cat-photo.img-fallback{background:linear-gradient(135deg, var(--forest) 0%, var(--forest-light) 100%);}
.agenda-cat-photo.img-fallback img{display:none;}
.agenda-cat-credit{font-size:0.68rem; color:var(--ink-soft); opacity:0.75; margin:0 0 18px;}
.agenda-item{
  background:#fff; border:1px solid var(--stone-dark); border-radius:14px; padding:22px 24px;
  display:flex; flex-direction:column; gap:10px; box-shadow:var(--shadow);
  transition:transform .15s ease, box-shadow .15s ease;
}
.agenda-item:hover{transform:translateY(-3px); box-shadow:0 16px 34px rgba(31,61,43,0.18);}
.agenda-dates{
  align-self:flex-start; background:var(--terracotta); color:#fff; font-size:0.82rem; font-weight:700;
  padding:6px 14px; border-radius:999px; text-transform:uppercase; letter-spacing:0.03em;
}
.agenda-item h4{font-size:1.2rem; color:var(--forest); margin:0; line-height:1.3;}
.agenda-item .agenda-loc{font-size:0.92rem; color:var(--terracotta-dark); font-weight:700; margin:0;}
.agenda-item p.agenda-desc{font-size:0.95rem; color:var(--ink-soft); margin:0; line-height:1.6;}

/* Avis clients — page d'accueil (14/08/2026) */
.reviews-section{padding:72px 0;}
.reviews-google-card{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  background:var(--forest); color:#fff; border-radius:18px; padding:28px 32px; margin:32px 0;
}
.reviews-google-card h3{margin:0 0 6px; font-size:1.25rem; color:#fff;}
.reviews-google-card p{margin:0; color:rgba(255,255,255,0.82); font-size:0.94rem; max-width:520px;}
.btn-outline-dark{
  border:1.5px solid rgba(255,255,255,0.6); color:#fff; background:transparent;
  padding:11px 22px; border-radius:999px; font-weight:700; font-size:0.92rem;
  white-space:nowrap; transition:background .15s ease;
}
.btn-outline-dark:hover{background:rgba(255,255,255,0.12);}
.reviews-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:20px; margin-bottom:36px;
}
.review-card{
  background:#fff; border:1px solid var(--stone-dark); border-radius:14px; padding:22px 24px;
  box-shadow:var(--shadow); display:flex; flex-direction:column; gap:10px;
}
.review-card-stars{color:var(--gold); font-size:1.05rem; letter-spacing:2px;}
.review-card-stars span{opacity:0.28;}
.review-card-stars span.is-filled{opacity:1;}
.review-card-comment{margin:0; color:var(--ink); font-size:0.96rem; line-height:1.6; flex:1;}
.review-card-author{margin:0; font-size:0.85rem; font-weight:700; color:var(--forest);}
.review-card-author span{font-weight:400; color:var(--ink-soft);}
.reviews-form-card{
  background:var(--stone); border:1px solid var(--stone-dark); border-radius:18px;
  padding:30px 32px; max-width:640px;
}
.reviews-form-card h3{margin:0 0 18px; font-size:1.2rem; color:var(--forest);}
.review-stars-input{display:flex; gap:6px; margin-bottom:18px;}
.review-star-input{
  background:none; border:none; font-size:1.7rem; line-height:1; cursor:pointer; padding:0;
  color:var(--stone-dark); transition:color .1s ease;
}
.review-star-input.is-filled{color:var(--gold);}
.review-form-row{margin-bottom:14px;}
.review-form-row label{display:block; font-size:0.82rem; font-weight:600; margin-bottom:5px; color:var(--ink);}
.review-form-row input, .review-form-row textarea{
  width:100%; border:1px solid var(--stone-dark); border-radius:8px; padding:10px 12px;
  font-family:'Inter',sans-serif; font-size:0.9rem; box-sizing:border-box; background:#fff;
}
.review-form-feedback{margin:12px 0 0; font-size:0.88rem; font-weight:600;}
.review-form-feedback.is-success{color:var(--forest);}
.review-form-feedback.is-error{color:var(--terracotta-dark);}

/* Retour d'expérience — onglet admin regroupant Avis (public) et Retour
   client (privé) dans deux espaces bien distincts (18/08/2026) */
.experience-intro{color:var(--ink-soft); font-size:0.9rem; max-width:720px; margin:0 0 18px;}
.experience-block{margin-bottom:22px;}
.experience-block:last-child{margin-bottom:0;}
.experience-tag{
  display:inline-block; font-size:0.68rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
  padding:3px 9px; border-radius:999px; vertical-align:middle; margin-left:8px;
}
.experience-tag-public{background:rgba(184,141,70,0.16); color:var(--terracotta-dark);}
.experience-tag-private{background:rgba(31,61,43,0.1); color:var(--forest);}

/* Retour d'amélioration — onglet de l'espace abonnés (18/08/2026) */
.amelioration-item{
  background:#fff; border:1px solid var(--stone-dark); border-radius:14px;
  padding:20px 22px; margin-bottom:16px;
}
.amelioration-item-head{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:6px;}
.amelioration-item-head h4{margin:0; font-size:1.02rem; color:var(--forest);}
.amelioration-item-dates{color:var(--ink-soft); font-size:0.86rem; margin:0 0 14px;}
.amelioration-already{color:var(--forest); font-weight:600; font-size:0.9rem; margin:0;}
.amelioration-item form .review-stars-input{margin-bottom:12px;}
.amelioration-item form .review-form-row{margin-bottom:10px;}

/* Retour client — page privée liée depuis l'e-mail post-séjour (14/08/2026) */
.feedback-page{padding:56px 0 80px;}
.feedback-page .reviews-form-card{margin:0 auto; max-width:560px;}
.feedback-recap{
  background:#fff; border:1px solid var(--stone-dark); border-radius:12px;
  padding:14px 18px; margin-bottom:20px; font-size:0.9rem; color:var(--ink-soft);
}
.feedback-recap strong{color:var(--forest);}
.feedback-state{text-align:center; padding:20px 0; color:var(--ink-soft); font-size:0.95rem;}
.feedback-state.is-success{color:var(--forest); font-weight:600;}
.feedback-state.is-error{color:var(--terracotta-dark); font-weight:600;}

@media (max-width:960px){
  .explore-grid{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .env-photo-grid{grid-template-columns:1fr 1fr;}
  .agenda-section h2{font-size:1.9rem;}
}
@media (max-width:600px){
  .explore-grid{grid-template-columns:1fr;}
  .env-photo-grid{grid-template-columns:1fr;}
  .reviews-google-card{flex-direction:column; align-items:flex-start;}
}

/* ===== Réservation — widget type Airbnb ===== */
.booking-layout{
  display:grid; grid-template-columns:1.4fr 1fr; gap:36px; align-items:start;
}
@media (max-width: 900px){
  .booking-layout{grid-template-columns:1fr;}
}

.booking-card{
  background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:28px;
}

/* Calendar */
.cal-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;}
.cal-head h3{font-family:'Fraunces',Georgia,serif; font-size:1.3rem; margin:0;}
.cal-nav{display:flex; gap:8px;}
.cal-nav button{
  width:36px; height:36px; border-radius:50%; border:1px solid var(--stone-dark);
  background:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center;
  color:var(--forest); transition:background .15s ease;
}
.cal-nav button:hover{background:var(--stone);}
.cal-nav button:disabled{opacity:0.35; cursor:not-allowed;}

.cal-months{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
@media (max-width: 640px){ .cal-months{grid-template-columns:1fr;} }

.cal-month-name{
  font-family:'Inter',sans-serif; font-weight:700; font-size:0.95rem; text-align:center;
  margin-bottom:10px; color:var(--ink);
}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:3px;}
.cal-dow{font-size:0.72rem; text-align:center; color:var(--ink-soft); font-weight:600; padding-bottom:4px;}
.cal-day{
  position:relative; aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  font-size:0.85rem; border-radius:8px; cursor:pointer; color:var(--ink);
  background:transparent; border:none; font-family:'Inter',sans-serif;
}
.cal-day.is-empty{cursor:default;}
.cal-day.is-past, .cal-day.is-blocked{
  color:var(--stone-dark); cursor:not-allowed; text-decoration:line-through; opacity:0.55;
}
.cal-day.is-no-checkin{position:relative;}
.cal-day.is-no-checkin::after{
  content:""; position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
  width:4px; height:4px; border-radius:50%; background:var(--terracotta);
}
.cal-day:not(.is-past):not(.is-blocked):not(.is-empty):not(.is-selected-start):not(.is-selected-end):hover{background:var(--stone);}
.cal-day.is-selected-start, .cal-day.is-selected-end{
  background:var(--forest); color:#fff; font-weight:700;
}
.cal-day.is-in-range{background:rgba(31,61,43,0.14);}
.cal-legend{display:flex; gap:18px; margin-top:16px; font-size:0.78rem; color:var(--ink-soft); flex-wrap:wrap;}
.cal-legend span{display:inline-flex; align-items:center; gap:6px;}
.cal-legend i{width:12px; height:12px; border-radius:3px; display:inline-block;}
.leg-free{background:#fff; border:1px solid var(--stone-dark);}
.leg-blocked{background:var(--stone-dark); opacity:0.6;}
.leg-selected{background:var(--forest);}

.booking-note{
  margin-top:16px; padding:12px 14px; background:var(--stone); border-radius:10px;
  font-size:0.85rem; color:var(--ink-soft); border-left:3px solid var(--gold);
}

/* Summary / sticky sidebar */
.booking-summary{
  background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:28px; position:sticky; top:100px;
}
.booking-summary h3{font-family:'Fraunces',Georgia,serif; font-size:1.25rem; margin:0 0 4px;}
.booking-dates{font-size:0.95rem; color:var(--ink-soft); margin-bottom:18px;}
.guest-stepper{
  display:flex; align-items:center; justify-content:space-between; margin-bottom:18px;
  padding:12px 14px; border:1px solid var(--stone-dark); border-radius:10px;
}
.guest-stepper button{
  width:30px; height:30px; border-radius:50%; border:1px solid var(--stone-dark); background:#fff;
  cursor:pointer; font-size:1.1rem; line-height:1; color:var(--forest);
}
.guest-stepper button:disabled{opacity:0.35; cursor:not-allowed;}
.price-lines{border-top:1px solid var(--stone); margin-top:6px; padding-top:14px;}
.price-line{display:flex; justify-content:space-between; font-size:0.9rem; color:var(--ink-soft); padding:5px 0;}
.price-line.total{
  border-top:1px solid var(--stone-dark); margin-top:10px; padding-top:12px;
  font-size:1.05rem; font-weight:700; color:var(--ink);
}
.price-line.deposit{color:var(--terracotta-dark); font-weight:600;}
.booking-actions{display:flex; flex-direction:column; gap:10px; margin-top:20px;}
.booking-actions .btn{width:100%; justify-content:center;}
.booking-form{margin-top:18px; display:none; flex-direction:column; gap:12px;}
.booking-form.is-open{display:flex;}
.booking-form label{font-size:0.82rem; font-weight:600; color:var(--ink); display:block; margin-bottom:4px;}
.booking-form input, .booking-form textarea{
  width:100%; border:1px solid var(--stone-dark); border-radius:8px; padding:10px 12px;
  font-family:'Inter',sans-serif; font-size:0.92rem; box-sizing:border-box;
}
.booking-form textarea{resize:vertical; min-height:70px;}
.booking-empty-msg{color:var(--ink-soft); font-size:0.9rem; text-align:center; padding:20px 0;}

.booking-confirm{
  display:none; text-align:center; padding:20px 4px;
}
.booking-confirm.is-open{display:block;}
.booking-confirm .icon-ok{
  width:52px; height:52px; border-radius:50%; background:var(--forest); color:#fff;
  display:flex; align-items:center; justify-content:center; margin:0 auto 14px; font-size:1.5rem;
}
.booking-confirm .icon-ok.is-error{background:#c62828;}
.booking-confirm h3{font-family:'Fraunces',Georgia,serif; margin:0 0 8px;}
.booking-confirm p{color:var(--ink-soft); font-size:0.92rem;}
.booking-confirm .confirm-text{color:var(--ink-soft); font-size:0.92rem;}
.booking-confirm .confirm-text ol{text-align:left; max-width:440px; margin:8px auto; padding-left:22px;}
.booking-confirm .confirm-text li{margin:4px 0;}
.booking-confirm .confirm-text p{margin:8px 0;}

.rate-table{width:100%; border-collapse:collapse; margin-top:10px;}
.rate-table th, .rate-table td{text-align:left; padding:9px 6px; border-bottom:1px solid var(--stone); font-size:0.9rem;}
.rate-table th{color:var(--ink-soft); font-weight:600; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.04em;}

.demo-banner{
  background:linear-gradient(90deg, var(--gold), var(--terracotta));
  color:#fff; text-align:center; font-size:0.85rem; font-weight:600; padding:10px 16px;
}

/* ===== Connexion / Espace abonnés / Espace admin ===== */

.auth-wrap{
  min-height:calc(100vh - 74px); display:flex; align-items:center; justify-content:center;
  padding:60px 20px; background:linear-gradient(135deg, var(--forest) 0%, var(--forest-light) 100%);
}
.auth-card{
  background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:40px;
  width:100%; max-width:420px;
}
.auth-card h1{font-family:'Fraunces',Georgia,serif; font-size:1.7rem; margin:0 0 6px;}
.auth-card p.sub{color:var(--ink-soft); font-size:0.92rem; margin-bottom:26px;}
.auth-field{margin-bottom:16px;}
.auth-field label{display:block; font-size:0.85rem; font-weight:600; margin-bottom:6px;}
.auth-field input{
  width:100%; border:1px solid var(--stone-dark); border-radius:8px; padding:11px 13px;
  font-family:'Inter',sans-serif; font-size:0.95rem; box-sizing:border-box;
}
.auth-error{
  background:#fdecea; border:1px solid #f3b7ae; color:#8a2e22; border-radius:8px;
  padding:10px 13px; font-size:0.87rem; margin-bottom:16px; display:none;
}
.auth-error.is-visible{display:block;}
.auth-submit{width:100%; justify-content:center; margin-top:6px;}

/* Dashboard shell */
.dash-shell{background:var(--stone); min-height:calc(100vh - 74px);}
.dash-header{
  background:linear-gradient(135deg, var(--forest) 0%, var(--forest-light) 100%);
  color:#fff; padding:36px 0 28px;
}
.dash-header h1{color:#fff; font-size:1.8rem; margin:0 0 4px;}
.dash-header p{color:rgba(255,255,255,0.85); margin:0;}
.dash-header .logout-btn{
  background:rgba(255,255,255,0.15); border:1px solid rgba(255,255,255,0.4); color:#fff;
  padding:9px 18px; border-radius:999px; font-size:0.85rem; font-weight:600; cursor:pointer;
}
.dash-header .logout-btn:hover{background:rgba(255,255,255,0.25);}
.dash-top-row{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap;}

.dash-tabs{display:flex; gap:6px; margin:26px 0 0; flex-wrap:wrap;}
.dash-tab{
  background:#fff; border:1px solid var(--stone-dark); border-radius:999px; padding:9px 18px;
  font-size:0.88rem; font-weight:600; cursor:pointer; color:var(--ink-soft);
}
.dash-tab.is-active{background:var(--forest); color:#fff; border-color:var(--forest);}

.dash-panel{display:none; padding:32px 0 60px;}
.dash-panel.is-active{display:block;}

.dash-card{
  background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:26px; margin-bottom:22px;
}
.dash-card h2{font-family:'Fraunces',Georgia,serif; font-size:1.2rem; margin:0 0 16px;}

.data-table{width:100%; border-collapse:collapse;}
.data-table th, .data-table td{text-align:left; padding:10px 8px; border-bottom:1px solid var(--stone); font-size:0.88rem;}
.data-table th{color:var(--ink-soft); font-weight:600; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.03em;}
.data-table tr:last-child td{border-bottom:none;}
.data-table .actions{display:flex; gap:6px; flex-wrap:wrap;}

.badge{display:inline-block; padding:3px 10px; border-radius:999px; font-size:0.76rem; font-weight:700;}
.badge-pending{background:#fdf0dd; color:#93610f;}
.badge-confirmed{background:#e2f0e5; color:#1f3d2b;}
.badge-cancelled{background:#fdecea; color:#8a2e22;}
.badge-paid{background:#e2f0e5; color:#1f3d2b;}
.badge-failed{background:#fdecea; color:#8a2e22;}

.btn-sm{padding:7px 14px; font-size:0.8rem; border-radius:999px; border:1px solid var(--stone-dark); background:#fff; cursor:pointer; font-weight:600;}
.btn-sm.primary{background:var(--forest); color:#fff; border-color:var(--forest);}
.btn-sm.danger{background:#fdecea; color:#8a2e22; border-color:#f3b7ae;}

.form-row{display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:14px; margin-bottom:14px;}
.form-row label{display:block; font-size:0.82rem; font-weight:600; margin-bottom:5px;}
.form-row input, .form-row select, .form-row textarea{
  width:100%; border:1px solid var(--stone-dark); border-radius:8px; padding:9px 11px;
  font-family:'Inter',sans-serif; font-size:0.9rem; box-sizing:border-box;
}

.mini-cal{display:grid; grid-template-columns:repeat(7,1fr); gap:3px; max-width:340px;}
.mini-cal .cal-dow{font-size:0.68rem; text-align:center; color:var(--ink-soft); font-weight:600;}
.mini-cal button{
  aspect-ratio:1; border-radius:6px; border:1px solid var(--stone); background:#fff; cursor:pointer;
  font-size:0.78rem; font-family:'Inter',sans-serif;
}
.mini-cal button.is-blocked{background:var(--terracotta); color:#fff; border-color:var(--terracotta-dark);}
.mini-cal button.is-confirmed{background:var(--forest); color:#fff; border-color:var(--forest);}
.mini-cal button.is-pending{background:repeating-linear-gradient(45deg,#f2c14e 0,#f2c14e 5px,#fbe6a8 5px,#fbe6a8 10px); color:#4a3200; border-color:#c48a12; font-weight:700;}
.cal-legend{display:flex; flex-wrap:wrap; gap:8px 16px; font-size:0.78rem; color:var(--ink-soft); margin-top:12px; max-width:420px;}
.cal-legend span::before{content:''; display:inline-block; width:13px; height:13px; border-radius:3px; margin-right:6px; vertical-align:-2px; border:1px solid transparent;}
.cal-legend .lg-confirmed::before{background:var(--forest);}
.cal-legend .lg-pending::before{background:repeating-linear-gradient(45deg,#f2c14e 0,#f2c14e 3px,#fbe6a8 3px,#fbe6a8 6px); border-color:#c48a12;}
.cal-legend .lg-blocked::before{background:var(--terracotta);}
.mini-cal button.is-past{opacity:0.3; cursor:not-allowed;}
.mini-cal button.is-selected{outline:2px solid var(--forest); outline-offset:1px;}

.must-change-banner{
  background:#fdf0dd; border:1px solid #f0d19a; color:#7a5108; border-radius:10px;
  padding:14px 18px; margin-bottom:22px; font-size:0.88rem;
}

.empty-state{color:var(--ink-soft); font-size:0.9rem; padding:14px 0;}

.finance-stats{display:grid; grid-template-columns:repeat(auto-fit, minmax(150px,1fr)); gap:14px;}
.finance-stat{
  background:var(--stone); border-radius:10px; padding:14px 16px; display:flex; flex-direction:column; gap:4px;
}
.finance-stat-label{font-size:0.76rem; color:var(--ink-soft); font-weight:600; text-transform:uppercase; letter-spacing:0.03em;}
.finance-stat-value{font-family:'Fraunces',Georgia,serif; font-size:1.4rem; color:var(--forest);}

.role-select{border:1px solid var(--stone-dark); border-radius:8px; padding:5px 8px; font-family:'Inter',sans-serif; font-size:0.85rem;}

.badge-expense{background:#fdecea; color:#8a2e22;}
.badge-overdue{background:#fdecea; color:#8a2e22; margin-left:6px; font-size:0.7rem;}

.filter-bar{display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid var(--stone);}
.filter-bar > div{display:flex; flex-direction:column; gap:4px;}
.filter-bar label{font-size:0.76rem; font-weight:600; color:var(--ink-soft);}
.filter-bar select, .filter-bar input{border:1px solid var(--stone-dark); border-radius:8px; padding:7px 9px; font-family:'Inter',sans-serif; font-size:0.85rem;}
.filter-bar .filter-check{flex-direction:row; align-items:center; gap:6px; padding-bottom:8px;}

.modal-overlay{
  position:fixed; inset:0; background:rgba(31,61,43,0.55); display:flex;
  align-items:center; justify-content:center; z-index:300; padding:20px;
}
.modal-box{
  background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:28px;
  width:100%; max-width:680px; max-height:85vh; overflow-y:auto; position:relative;
}
.modal-close{
  position:absolute; top:14px; right:16px; background:none; border:none; font-size:1.5rem;
  cursor:pointer; color:var(--ink-soft); line-height:1;
}
.modal-box h2{font-family:'Fraunces',Georgia,serif; font-size:1.2rem; margin:0 0 16px;}

.invoice-print-btn{background:none; border:none; color:var(--forest); text-decoration:underline; cursor:pointer; font-size:0.8rem; font-weight:600; padding:0;}

.project-year-group{margin-bottom:26px;}
.project-year-group:last-child{margin-bottom:0;}
.project-year-group h3{font-family:'Fraunces',Georgia,serif; font-size:1.05rem; margin:0 0 12px; color:var(--forest); border-bottom:1px solid var(--stone); padding-bottom:6px;}
.project-card{border:1px solid var(--stone); border-radius:10px; padding:14px 16px; margin-bottom:12px; background:var(--stone);}
.project-card-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px;}
.project-card-head strong{flex:1; font-size:0.98rem;}
.project-notes-input{
  width:100%; border:1px solid var(--stone-dark); border-radius:8px; padding:9px 11px;
  font-family:'Inter',sans-serif; font-size:0.88rem; box-sizing:border-box; margin-bottom:8px; background:#fff;
}

.toast{
  position:fixed; bottom:24px; right:24px; background:var(--forest); color:#fff;
  padding:12px 20px; border-radius:10px; font-size:0.88rem; box-shadow:var(--shadow);
  opacity:0; transform:translateY(10px); transition:all .25s ease; pointer-events:none; z-index:50;
}
.toast.is-visible{opacity:1; transform:translateY(0);}
.toast.is-error{background:#8a2e22;}

@media (max-width:960px){
  nav ul.open{
    display:flex !important; flex-direction:column; position:absolute; top:72px; left:0; right:0;
    background:#faf6ef; padding:20px 24px; border-bottom:1px solid #ddd4c2; gap:16px; z-index:150;
  }
}


/* --- RGPD (audit 12/10/2026) : cartes chargées au clic --- */
.map-embed-gated{
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:8px;
  height:auto; min-height:180px; padding:16px; background:rgba(255,255,255,0.06);
}
.env-modal-map-wrap.map-embed-gated{
  min-height:0; height:auto; background:var(--stone); border-radius:12px; padding:14px;
}
.map-load-btn{
  border:1px solid currentColor; background:transparent; color:inherit; cursor:pointer;
  font-weight:600; font-size:0.9rem; padding:9px 16px; border-radius:999px;
  transition:background 0.15s ease;
}
.map-load-btn:hover{ background:rgba(0,0,0,0.06); }
.map-gate-note{ font-size:0.78rem; opacity:0.75; margin:0; }
#env-modal-map{ width:100%; height:220px; border:0; border-radius:10px; }

/* --- RGPD : consentement avis + aide sous formulaires --- */
.review-form-hint{ font-size:0.78rem; color:var(--ink-soft); margin:4px 0 0; }
.review-consent-row{ margin-top:4px; }
.review-consent-label{
  display:flex; align-items:flex-start; gap:10px; font-size:0.85rem; color:var(--ink-soft);
  cursor:pointer; line-height:1.4;
}
.review-consent-label input[type="checkbox"]{ margin-top:3px; flex-shrink:0; width:16px; height:16px; }
.review-moderation-note{ font-size:0.78rem; color:var(--ink-soft); margin:10px 0 0; }
.form-rgpd-note{ font-size:0.78rem; color:var(--ink-soft); margin:10px 0 14px; max-width:520px; }

/* --- Pages légales (mentions-legales.html, politique-confidentialite.html) --- */
.legal-content{ max-width:760px; padding-top:40px; padding-bottom:60px; }
.legal-content h2{ font-family:var(--serif); font-size:1.3rem; margin:32px 0 12px; color:var(--forest); }
.legal-content h2:first-child{ margin-top:0; }
.legal-content p{ color:var(--ink-soft); line-height:1.6; margin-bottom:14px; }
.legal-content ul{ margin:0 0 16px; padding-left:20px; color:var(--ink-soft); line-height:1.6; }
.legal-content li{ margin-bottom:8px; }
.legal-content a{ color:var(--forest); font-weight:600; }

/* ---- Bandeau cookies (consent.js) ---- */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;display:flex;justify-content:center;}
.cookie-banner[hidden]{display:none;}
.cookie-banner-inner{max-width:760px;width:100%;background:#fff;border:1px solid var(--stone-dark);border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.18);padding:20px 22px;}
.cookie-banner-title{font-family:var(--serif);font-weight:600;font-size:1.1rem;color:var(--forest);margin:0 0 6px;}
.cookie-banner-text{font-size:.9rem;color:var(--ink-soft);margin:0 0 14px;line-height:1.5;}
.cookie-banner-text a{color:var(--forest);text-decoration:underline;}
.cookie-banner-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.cookie-btn{font:inherit;font-weight:600;font-size:.92rem;padding:10px 22px;border-radius:999px;border:2px solid var(--forest);background:var(--forest);color:#fff;cursor:pointer;min-width:150px;}
.cookie-btn:hover{background:var(--forest-light);border-color:var(--forest-light);}
.cookie-btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px;}
@media (max-width:560px){.cookie-banner{left:8px;right:8px;bottom:8px;}.cookie-btn{flex:1;min-width:0;}}

/* --- Agenda : carrousel (roulement) --- */
.agenda-carousel{position:relative;}
.agenda-list{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  padding:8px 6px 22px; margin:0 -6px; scroll-padding-inline:6px; scrollbar-width:thin; scrollbar-color:var(--stone-dark) transparent;
  -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
}
.agenda-list:focus-visible{outline:3px solid var(--terracotta); outline-offset:4px; border-radius:14px;}
.agenda-list::-webkit-scrollbar{height:6px;}
.agenda-list::-webkit-scrollbar-thumb{background:var(--stone-dark); border-radius:3px;}
.agenda-list > .agenda-item{flex:0 0 calc((100% - 40px) / 3); scroll-snap-align:start; min-width:0; box-shadow:0 4px 14px rgba(31,61,43,0.08);}
.agenda-list > .agenda-item:hover{box-shadow:0 8px 20px rgba(31,61,43,0.14);}
.agenda-item-top{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
.agenda-item-top .agenda-dates{align-self:auto;}
.agenda-live{
  font-size:0.74rem; font-weight:700; color:var(--forest); background:var(--forest-pale);
  border:1px solid var(--forest); padding:4px 10px; border-radius:999px; text-transform:uppercase; letter-spacing:0.03em;
}
.agenda-nav{
  position:absolute; top:calc(50% - 6px); transform:translateY(-50%); z-index:3;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--stone-dark); background:#fff;
  color:var(--forest); font-size:1.6rem; line-height:1; cursor:pointer; box-shadow:var(--shadow);
  display:flex; align-items:center; justify-content:center; padding:0 0 3px;
  transition:opacity .15s ease, background .15s ease;
}
.agenda-nav[hidden]{display:none;}
.agenda-nav:hover:not(:disabled){background:var(--forest); color:#fff;}
.agenda-nav:focus-visible{outline:3px solid var(--terracotta); outline-offset:2px;}
.agenda-nav:disabled{opacity:0; pointer-events:none;}
.agenda-nav-prev{left:-18px;}
.agenda-nav-next{right:-18px;}
.agenda-empty{
  background:var(--forest-pale); border-radius:14px; padding:20px 24px; color:var(--ink); margin:0;
}
.agenda-empty a{color:var(--terracotta-dark); font-weight:700;}
@media (max-width:1000px){
  .agenda-list > .agenda-item{flex-basis:calc((100% - 20px) / 2);}
}
@media (max-width:700px){
  .agenda-list > .agenda-item{flex-basis:85%;}
  .agenda-nav{display:none;}
}
@media (prefers-reduced-motion: reduce){
  .agenda-list{scroll-behavior:auto;}
}

.period-row{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:10px 14px; border:1px solid var(--stone-dark); border-radius:10px; background:#fff; margin-bottom:8px; max-width:640px;}
.period-row .period-dates{font-weight:700; color:var(--forest);}
.period-row .period-reason{font-size:0.88rem; color:var(--ink-soft);}

/* Formulaire de contact (21/10/2026) */
.contact-form-card{max-width:720px; margin:0 auto; background:#fff; border:1px solid var(--stone); border-radius:16px; padding:28px 28px 24px; box-shadow:0 10px 30px rgba(31,61,43,0.08);}
.contact-form-card h2{font-family:'Fraunces',Georgia,serif; margin:0 0 6px; font-size:1.5rem; color:var(--forest);}
.contact-form-card > p{margin:0 0 18px; color:var(--ink-soft); font-size:0.95rem;}
.contact-form-card .cf-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 16px;}
.contact-form-card textarea{min-height:130px; resize:vertical;}
.contact-form-card .cf-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.contact-form-card .cf-note{font-size:0.78rem; color:var(--ink-soft); margin:10px 0 14px;}
.contact-form-card .cf-note a{color:var(--terracotta-dark);}
.contact-form-done{text-align:center; padding:12px 4px;}
.contact-form-done .icon-ok{width:52px; height:52px; border-radius:50%; background:var(--forest); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; font-size:1.5rem;}
.contact-form-done h3{font-family:'Fraunces',Georgia,serif; margin:0 0 8px;}
.contact-form-done p{color:var(--ink-soft); font-size:0.92rem; margin:0;}
@media (max-width:600px){.contact-form-card .cf-grid{grid-template-columns:1fr;}}

/* Assistant de chat (21/10/2026) */
.cb-chat-fab{position:fixed; right:18px; bottom:18px; z-index:60; display:flex; align-items:center; gap:8px; background:var(--forest); color:#fff; border:none; border-radius:999px; padding:12px 18px; font:600 0.92rem 'Inter',sans-serif; cursor:pointer; box-shadow:0 10px 26px rgba(31,61,43,0.35);}
.cb-chat-fab:hover{background:#17301f;}
.cb-chat-panel{position:fixed; right:18px; bottom:18px; z-index:61; width:360px; max-width:calc(100vw - 24px); height:520px; max-height:calc(100vh - 36px); background:#fff; border-radius:16px; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 18px 50px rgba(0,0,0,0.28); border:1px solid var(--stone);}
.cb-chat-panel[hidden]{display:none;}
.cb-chat-head{background:var(--forest); color:#fff; padding:14px 16px; display:flex; justify-content:space-between; align-items:center;}
.cb-chat-head strong{display:block; font-family:'Fraunces',Georgia,serif; font-size:1.05rem;}
.cb-chat-head small{opacity:0.8; font-size:0.75rem;}
.cb-chat-head button{background:none; border:none; color:#fff; font-size:1.6rem; line-height:1; cursor:pointer;}
.cb-chat-log{flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px; background:var(--cream, #faf6ef);}
.cb-msg{max-width:86%; padding:9px 13px; border-radius:14px; font-size:0.9rem; line-height:1.45; white-space:pre-wrap;}
.cb-bot{background:#fff; border:1px solid var(--stone); align-self:flex-start; border-bottom-left-radius:4px;}
.cb-user{background:var(--terracotta); color:#fff; align-self:flex-end; border-bottom-right-radius:4px;}
.cb-wait{opacity:0.6;}
.cb-err{background:#fdecea; border-color:#f5c6c0; color:#8a2e22;}
.cb-chat-chips{display:flex; flex-wrap:wrap; gap:6px; padding:0 14px 8px; background:var(--cream, #faf6ef);}
.cb-chat-chips:empty{display:none;}
.cb-chat-chips button{background:#fff; border:1px solid var(--forest); color:var(--forest); border-radius:999px; padding:6px 12px; font:500 0.8rem 'Inter',sans-serif; cursor:pointer;}
.cb-chat-chips button:hover{background:var(--forest); color:#fff;}
#cb-chat-form{display:flex; gap:8px; padding:10px 12px; border-top:1px solid var(--stone); background:#fff;}
#cb-chat-form input{flex:1; border:1px solid var(--stone-dark); border-radius:999px; padding:10px 14px; font:0.9rem 'Inter',sans-serif;}
#cb-chat-form button{background:var(--forest); color:#fff; border:none; border-radius:50%; width:40px; height:40px; cursor:pointer; font-size:1rem;}
.cb-chat-note{margin:0; padding:6px 14px 10px; font-size:0.7rem; color:var(--ink-soft); background:#fff;}
.cb-chat-note a{color:var(--terracotta-dark);}
@media (max-width:600px){.cb-chat-panel{left:auto; right:8px; bottom:8px; width:calc(100vw - 16px); height:70vh;}.cb-chat-fab span{display:none;} .cb-chat-fab{padding:14px;}}
/* Le bouton de chat attend que le bandeau cookies soit traité */
body:has(.cookie-banner:not([hidden])) .cb-chat-fab{display:none;}

/* ===== Ajouts du 22/10/2026 : langues, groupes, dernières disponibilités,
   organisation du séjour ===== */

/* Sélecteur de langue (en-tête) */
.lang-switch{display:flex; align-items:center; gap:2px; font-size:0.78rem; font-weight:700; letter-spacing:0.04em; padding-left:10px; border-left:1px solid var(--stone-dark);}
nav{margin:0 18px;}
.brand-name{white-space:nowrap;}
@media (max-width:1440px){ nav ul{gap:20px;} .nav-cta{gap:12px;} }
@media (max-width:1200px){ nav ul{gap:14px;} nav a{font-size:0.9rem;} }
@media (max-width:960px){ .lang-switch{border-left:none; padding-left:0;} nav{margin:0;} }
.lang-switch a{color:var(--ink-soft); text-decoration:none; padding:4px 6px; border-radius:6px;}
.lang-switch a:hover{color:var(--terracotta-dark); background:var(--stone);}
.lang-switch a[aria-current="true"]{color:var(--forest); background:var(--forest-pale);}
nav .nav-lang-mobile{display:none;}
@media (max-width:600px){
  .nav-cta > .lang-switch{display:none;}
  nav ul.open .nav-lang-mobile{display:flex; gap:6px; border-top:1px solid var(--stone-dark); padding-top:12px;}
  nav ul.open .nav-lang-mobile .lang-switch{border-left:none; padding-left:0; font-size:0.9rem;}
  nav ul.open .nav-lang-mobile a{display:inline-block;}
}

/* Page Groupes & événements */
.group-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
.group-card{
background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius);
box-shadow:var(--shadow); padding:28px; scroll-margin-top:96px;
}
.group-card h3{font-size:1.2rem; margin-bottom:6px;}
.group-card > p{color:var(--ink-soft); font-size:0.95rem; margin-bottom:12px;}
.group-card ul{list-style:none;}
.group-card li{font-size:0.92rem; color:var(--ink); padding:5px 0 5px 22px; position:relative;}
.group-card li::before{content:"✓"; position:absolute; left:0; color:var(--terracotta); font-weight:700;}
.group-facts{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.group-facts > div{background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius); padding:20px; text-align:center;}
.group-facts strong{display:block; font-family:var(--serif); font-size:1.5rem; color:var(--forest);}
.group-facts span{font-size:0.85rem; color:var(--ink-soft);}
.group-facts-note{margin-top:18px; color:var(--ink-soft); font-size:0.92rem;}
.group-facts-note a{color:var(--terracotta-dark); font-weight:600;}
.contact-form-card select{
width:100%; border:1px solid var(--stone-dark); border-radius:8px; padding:10px 12px;
font-family:'Inter',sans-serif; font-size:0.9rem; background:#fff;
}
@media (max-width:820px){ .group-grid{grid-template-columns:1fr;} .group-facts{grid-template-columns:1fr 1fr;} }

/* Dernières disponibilités */
.lastminute-section{padding:64px 0; background:var(--forest-pale);}
.lastminute-section[hidden]{display:none;}
.lastminute-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:16px;}
.lastminute-card{
display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid var(--stone-dark);
border-left:4px solid var(--terracotta); border-radius:var(--radius); padding:18px 20px;
text-decoration:none; color:var(--ink); box-shadow:var(--shadow); transition:transform .15s ease;
}
.lastminute-card:hover{transform:translateY(-3px);}
.lastminute-tag{align-self:flex-start; font-size:0.7rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--terracotta-dark); background:rgba(192,105,62,0.1); padding:3px 8px; border-radius:999px;}
.lastminute-dates{font-family:var(--serif); font-weight:600; color:var(--forest); font-size:1.05rem; line-height:1.3;}
.lastminute-nights{font-size:0.88rem; color:var(--ink-soft);}
.lastminute-go{font-size:0.85rem; font-weight:700; color:var(--terracotta-dark); margin-top:4px;}

/* « Comment réserver » (pages anglaise et espagnole) */
.how-book{display:grid; grid-template-columns:0.8fr 1.2fr; gap:32px; align-items:start;}
.how-book ol{padding-left:22px; margin-bottom:14px;}
.how-book li{margin-bottom:10px; color:var(--ink);}
.how-book p, .how-book a{color:var(--ink-soft);}
.how-book a{color:var(--terracotta-dark); font-weight:600;}
@media (max-width:820px){ .how-book{grid-template-columns:1fr;} }
.env-photo-card-static{cursor:default;}

/* Organisation du séjour (espace adhérent + groupe.html) */
.stay-page{padding:40px 0 70px;}
.sb-head{margin-bottom:8px;}
.sb-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:6px 0 4px;}
.sb-stats > div{background:var(--stone); border-radius:12px; padding:14px; text-align:center;}
.sb-stats strong{display:block; font-family:var(--serif); font-size:1.3rem; color:var(--forest);}
.sb-stats span{font-size:0.78rem; color:var(--ink-soft);}
.sb-msg{min-height:1.2em; font-size:0.88rem; font-weight:600; color:var(--forest); margin:6px 0;}
.sb-msg.is-error{color:var(--terracotta-dark);}
.sb-card{background:#fff; border:1px solid var(--stone-dark); border-radius:var(--radius); padding:22px; margin-bottom:18px;}
.sb-card h3{font-size:1.1rem; margin-bottom:6px;}
.sb-help{font-size:0.86rem; color:var(--ink-soft); margin-bottom:12px;}
.sb-inline{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:12px;}
.sb-inline input, .sb-inline select, .sb-pick select, .sb-assign select{
border:1px solid var(--stone-dark); border-radius:8px; padding:8px 10px; font-family:'Inter',sans-serif; font-size:0.9rem; background:#fff;
}
.sb-inline input{flex:1 1 180px; min-width:0;}
.sb-inline .sb-small{flex:0 1 140px;}
.sb-payer{display:flex; align-items:center; gap:6px; font-size:0.88rem; color:var(--ink-soft);}
.sb-chips{display:flex; flex-wrap:wrap; gap:8px;}
.sb-chip{display:inline-flex; align-items:center; gap:6px; background:var(--forest-pale); color:var(--forest); font-weight:600; font-size:0.88rem; padding:5px 6px 5px 12px; border-radius:999px;}
.sb-chip button, .sb-x{border:none; background:transparent; cursor:pointer; color:var(--ink-soft); font-size:1.1rem; line-height:1; padding:2px 6px; border-radius:999px;}
.sb-chip button:hover, .sb-x:hover{background:rgba(0,0,0,0.06); color:var(--terracotta-dark);}
.sb-empty{color:var(--ink-soft); font-size:0.88rem;}
.sb-rooms{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:14px;}
.sb-room{border:1px solid var(--stone-dark); border-radius:10px; padding:12px; background:var(--cream);}
.sb-room.is-over{border-color:var(--terracotta);}
.sb-room-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:4px;}
.sb-room-count{font-size:0.78rem; font-weight:700; color:var(--ink-soft);}
.sb-room-count.is-full{color:var(--forest);}
.sb-room.is-over .sb-room-count{color:var(--terracotta-dark);}
.sb-room-people{font-size:0.88rem;}
.sb-assign{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:8px;}
.sb-assign-row{display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:0.9rem; border-bottom:1px solid var(--stone); padding:4px 0;}
.sb-shop{list-style:none; margin-bottom:10px;}
.sb-shop li{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:6px 0; border-bottom:1px solid var(--stone); font-size:0.92rem;}
.sb-shop li label{display:flex; gap:8px; align-items:center; cursor:pointer;}
.sb-shop li.is-done span{text-decoration:line-through; color:var(--ink-soft);}
.sb-shop em{font-style:normal; color:var(--ink-soft);}
.sb-shop small{color:var(--ink-soft);}
.sb-expense{margin-bottom:14px;}
.sb-shares{display:flex; flex-wrap:wrap; gap:6px 14px; font-size:0.88rem; margin-bottom:10px; align-items:center;}
.sb-shares span{font-weight:600;}
.sb-table td, .sb-table th{font-size:0.86rem;}
.sb-balance{margin-top:14px; background:var(--forest-pale); border-radius:10px; padding:14px 16px;}
.sb-balance h4{font-size:0.98rem; margin-bottom:6px;}
.sb-balance ul{list-style:none;}
.sb-balance li{font-size:0.9rem; padding:3px 0;}
.sb-share{display:flex; flex-direction:column; gap:10px; background:var(--cream); border:1px dashed var(--stone-dark); border-radius:12px; padding:16px; margin-bottom:16px;}
.sb-share p{font-size:0.84rem; color:var(--ink-soft); margin:2px 0 0;}
.sb-share-row{display:flex; gap:8px; flex-wrap:wrap;}
.sb-share-row input{flex:1 1 260px; min-width:0; border:1px solid var(--stone-dark); border-radius:8px; padding:8px 10px; font-size:0.85rem; background:#fff;}
.sb-pick{display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-weight:600; font-size:0.92rem; margin-bottom:14px;}
.sb-privacy{font-size:0.8rem; color:var(--ink-soft); margin-top:8px;}
@media (max-width:820px){ .sb-rooms{grid-template-columns:1fr 1fr;} .sb-stats{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .sb-rooms{grid-template-columns:1fr;} .sb-table{display:block; overflow-x:auto;} }

/* Espace membres : pastille (21/10/2026) */
.nav-account{display:inline-flex; align-items:center; gap:6px; padding:7px 13px; border:1.5px solid currentColor; border-radius:999px; color:var(--forest); font-size:0.84rem; font-weight:600; line-height:1; letter-spacing:0.01em; white-space:nowrap; text-decoration:none; opacity:0.9; transition:background .2s, color .2s, border-color .2s, opacity .2s;}
.nav-account svg{flex:none; display:block; width:15px; height:15px;}
.nav-account-label{white-space:nowrap;}
.nav-account:hover{background:var(--forest); border-color:var(--forest); color:#fff; opacity:1;}
@media (max-width:1180px){.nav-account-label{display:none;} .nav-account{padding:9px; width:38px; height:38px; justify-content:center;}}
@media (max-width:820px){.nav-account{display:none !important;}}
header nav ul{gap:22px;}
header nav ul a{white-space:nowrap;}
.nav-cta{flex:none; gap:12px;}

/* FAQ pages groupes (21/10/2026) */
.faq{max-width:820px;margin:0}
.faq details{border:1px solid var(--stone-dark,#d9d3c7);border-radius:12px;padding:14px 18px;margin-bottom:10px;background:#fff}
.faq summary{cursor:pointer;font-weight:600}
.faq p{margin-top:8px;color:var(--ink-soft,#555)}

/* Zones du chalet : cartes cliquables + sections détaillées (21/10/2026) */
a.equip-card{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}
a.equip-card:hover,a.equip-card:focus-visible{transform:translateY(-3px);box-shadow:0 12px 28px rgba(31,61,43,.16)}
a.equip-card:focus-visible{outline:3px solid var(--terracotta-dark,#8c4423);outline-offset:2px}
.equip-more{display:inline-block;margin-top:12px;font-weight:600;font-size:.9rem;color:var(--terracotta-dark,#8c4423)}
a.hi-chip{text-decoration:none;cursor:pointer;transition:background .2s ease,transform .2s ease}
a.hi-chip:hover,a.hi-chip:focus-visible{background:rgba(255,255,255,.28);transform:translateY(-1px)}
.zone{display:grid;grid-template-columns:1fr 1.25fr;gap:36px;align-items:center;padding:34px 0;border-top:1px solid var(--stone-dark,#ddd4c2);scroll-margin-top:96px}
.zone:first-of-type{border-top:0}
.zone:nth-of-type(even) .zone-text{order:2}
.zone-text h3{font-size:1.5rem;margin-bottom:10px}
.zone-text p{color:var(--ink-soft,#5b544a);line-height:1.65}
.zone-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.zone-photos img{width:100%;height:190px;object-fit:cover;border-radius:12px;cursor:zoom-in;display:block}
.zone-photos img:first-child{grid-column:1/-1;height:280px}
.zone-photos-4 img:first-child{height:250px}
.zone-photos-4 img{height:150px}
.zone-back{margin-top:24px}
@media (max-width:820px){.zone{grid-template-columns:1fr;gap:18px}.zone:nth-of-type(even) .zone-text{order:0}.zone-photos img:first-child{height:220px}.zone-photos img{height:150px}}

/* Saisie directe du nombre de voyageurs (21/10/2026) */
.guest-input{width:54px;text-align:center;font:inherit;font-weight:600;color:var(--ink,#2b2620);border:1px solid var(--stone-dark,#ddd4c2);border-radius:8px;padding:6px 4px;background:#fff}
.guest-input:focus{outline:2px solid var(--forest-light,#2f5a3f);outline-offset:1px}
/* v20261021m */

/*bureau-pay*/
.badge-deposit{background:#e6eefb; color:#1f3a66;}
body.is-bureau [data-action="delete-member"],body.is-bureau [data-action="delete-doc"],body.is-bureau [data-action="delete-project"],body.is-bureau [data-action="delete-review"],body.is-bureau [data-action="delete-feedback"],body.is-bureau [data-action="save-rate"]{display:none !important;}
body.is-bureau #cc-rates-wrap input,body.is-bureau #cc-rates-wrap select{pointer-events:none; opacity:.6;}

/*fix-header-20261021*/
@media (max-width:1620px){nav ul{gap:16px;}nav a{font-size:0.9rem;}.nav-account-label{display:none;}.nav-cta{gap:10px;}}
@media (max-width:1300px){nav ul,.nav-cta .nav-phone{display:none;}.menu-toggle{display:block;}nav ul.open{display:flex !important;flex-direction:column;position:absolute;top:72px;left:0;right:0;background:#faf6ef;padding:20px 24px;border-bottom:1px solid #ddd4c2;gap:16px;z-index:150;}}
@media (max-width:480px){.nav-wrap{padding:12px 14px;}.brand-sub{display:none;}.brand-name{font-size:1.02rem;}.nav-cta{gap:8px;}.nav-cta .btn{padding:9px 14px;font-size:0.85rem;white-space:nowrap;}.brand{min-width:0;}}
.cb-chat-head button{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cb-chat-panel{max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);}
@media (max-width:600px){.cb-chat-panel{height:min(70vh,calc(100dvh - 16px));max-height:calc(100dvh - 16px);}}

/*mobile-account-20261024*/
nav .nav-account-mobile{display:none;}
nav ul.open .nav-account-mobile{display:block;}
nav ul.open .nav-account-mobile a{font-weight:700;color:var(--terracotta-dark);}
/*prix-masques-20261024*/
#bk-empty{display:block !important;}
#bk-price-lines,#bk-tax-note,#bk-pay-online-btn{display:none !important;}

/*contraste-20261024*/ .alt-bg .btn-outline-dark,.group-card .btn-outline-dark{border-color:var(--forest);color:var(--forest);} .alt-bg .btn-outline-dark:hover,.group-card .btn-outline-dark:hover{background:var(--forest-pale);color:var(--forest);} .contact-info-card a.btn-primary,.contact-info-card a.btn-primary:hover{color:#fff;}
