/* ============================================
   CAMPEMENT QUENUM — Feuille de style principale
   ============================================ */

/* --- Variables de couleurs --- */
:root {
  --vert-fonce: #1a5c1a;
  --vert-moyen: #2d7a2d;
  --vert-clair: #4a9e4a;
  --vert-pale: #e8f5e8;
  --or: #e07b39;
  --or-clair: #fce5d0;
  --creme: #f5f0e6;
  --creme-fonce: #ede6d8;
  --blanc: #ffffff;
  --texte: #1a1a1a;
  --texte-gris: #5a5a5a;
  --ombre: 0 4px 20px rgba(0,0,0,0.08);
  --ombre-forte: 0 8px 40px rgba(0,0,0,0.15);
}

/* --- Reset de base --- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Montserrat', Arial, sans-serif;
  background-color: var(--creme);
  color: var(--texte);
  overflow-x: hidden;
}

/* --- Typographie --- */
h1, h2, h3 {
  font-family: 'Playfair Display', Georgia, serif;
}

p, a, li, label, input, select, textarea, button {
  font-family: 'Montserrat', Arial, sans-serif;
}

/* ============================================
   NAVIGATION — BLANC PROFESSIONNEL + MEGA MENUS
   ============================================ */
nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  background: rgba(5, 39, 17, 0.97);
  padding: 0 clamp(28px, 3.2vw, 56px);
  display: grid;
  grid-template-columns: minmax(250px, 1fr) auto minmax(250px, 1fr);
  align-items: center;
  justify-content: space-between;
  height: 75px;
  box-shadow: 0 8px 28px rgba(0, 20, 7, 0.24);
  border-bottom: 1px solid rgba(176, 210, 178, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

nav .logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex-shrink: 0;
  justify-self: start;
}

nav .logo-img {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 20%;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.12);
}

nav .logo-texte {
  font-family: 'Montserrat', sans-serif;
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 1.15px;
  text-transform: uppercase;
}

nav .logo-texte span {
  font-family: 'Montserrat', sans-serif;
  color: #ffffff;
  display: inline;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 1.15px;
  text-transform: uppercase;
}

/* Signature de marque identique au footer */
nav .logo-signature { gap: 13px; }
nav .logo-signature .logo-img {
  width: 54px;
  height: 54px;
  padding: 3px;
  object-fit: contain;
  object-position: center;
  background: #fffaf0;
  box-shadow: 0 0 0 1px rgba(255,255,255,.2);
}
nav .logo-signature .logo-texte {
  display: grid;
  gap: 2px;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
}
nav .logo-signature .logo-texte strong {
  color: #fffdf7;
  font: 700 20px/1.05 'Playfair Display', Georgia, serif;
  white-space: nowrap;
}
nav .logo-signature .logo-texte small {
  color: #f1aa73;
  font: 700 7px/1.3 'Montserrat', sans-serif;
  letter-spacing: 1.25px;
  text-transform: uppercase;
  white-space: nowrap;
}

/* --- Liens de navigation --- */
.nav-liens {
  list-style: none;
  display: flex;
  gap: 8px;
  align-items: center;
  margin: 0;
  padding: 0;
  justify-self: center;
}

.nav-liens > li {
  position: relative;
}

.nav-liens > li > a {
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255,255,255,0.82);
  text-decoration: none;
  padding: 12px 15px;
  border-radius: 6px;
  transition: color 0.2s, background 0.2s;
  display: block;
  white-space: nowrap;
}

.nav-liens > li > a:hover {
  color: white;
  background: rgba(255,255,255,0.08);
}

.nav-liens > li > a:focus-visible,
.nav-tel:focus-visible {
  outline: 2px solid #f1a255;
  outline-offset: 3px;
}

.nav-liens > li > a.active {
  color: var(--or);
  font-weight: 700;
  background: transparent;
}

.nav-liens > li > a.active::after {
  content: '';
  position: absolute;
  left: 15px;
  right: 15px;
  bottom: 4px;
  height: 2px;
  border-radius: 2px;
  background: var(--or);
}

/* --- Bouton téléphone --- */
.nav-tel {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #176d2d;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
  color: white;
  text-decoration: none;
  font-size: 12.5px;
  padding: 9px 18px;
  border-radius: 50px;
  transition: background 0.2s, transform 0.2s;
  white-space: nowrap;
  flex-shrink: 0;
  justify-self: end;
}

.nav-tel:hover {
  background: #1c7c35;
  transform: translateY(-1px);
}

/* ============================================
   MEGA MENUS DÉROULANTS
   ============================================ */
.has-dropdown {
  position: relative;
}

/* Mega-menu : caché par défaut via visibility + opacity */
.mega-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15), 0 4px 20px rgba(0,0,0,0.08);
  padding: 28px 30px;
  min-width: 480px;
  display: flex;
  gap: 30px;
  z-index: 2000;
  border: 1px solid rgba(0,0,0,0.06);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}

.mega-menu::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -10px;
  height: 12px;
}

.has-dropdown:hover .mega-menu,
.has-dropdown:focus-within .mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.mega-col {
  flex: 1;
  min-width: 190px;
}

.mega-col h4 {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: var(--or);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--or-clair);
}

.mega-col a {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #444;
  text-decoration: none;
  padding: 7px 10px;
  border-radius: 8px;
  transition: background 0.15s, color 0.15s;
  line-height: 1.4;
}

.mega-col a i {
  width: 16px;
  text-align: center;
  font-size: 13px;
  flex-shrink: 0;
}

/* Icônes méga menu — couleurs nature multicolore */
.mega-col a i.fa-campground    { color: #2d7a2d; }
.mega-col a i.fa-house-chimney { color: #5a8a3a; }
.mega-col a i.fa-spa           { color: #4a9e8a; }
.mega-col a i.fa-people-group  { color: #4a7ab5; }
.mega-col a i.fa-heart         { color: #b56a7a; }
.mega-col a i.fa-champagne-glasses { color: #c4893a; }
.mega-col a i.fa-calendar      { color: #4a7ab5; }
.mega-col a i.fa-circle-check  { color: #3a9a3a; }
.mega-col a i.fa-star          { color: #c4893a; }
.mega-col a i.fa-circle-question { color: #7a7a9a; }
.mega-col a i.fa-leaf          { color: #2d7a2d; }
.mega-col a i.fa-seedling      { color: #5ab54a; }
.mega-col a i.fa-fish          { color: #4a8ab5; }
.mega-col a i.fa-person-biking { color: #c47a3a; }
.mega-col a i.fa-sun           { color: #c4a03a; }
.mega-col a i.fa-utensils      { color: #8a5a3a; }
.mega-col a i.fa-masks-theater { color: #7a5ab5; }
.mega-col a i.fa-music         { color: #7a5ab5; }
.mega-col a i.fa-water         { color: #4a9ab5; }

.mega-col a:hover {
  background: var(--vert-pale);
  color: var(--vert-fonce);
}

/* Séparateur vertical entre colonnes */
.mega-menu .mega-col:not(:last-child) {
  border-right: 1px solid #f0f0f0;
  padding-right: 25px;
  margin-right: 5px;
}

/* ============================================
   MENU MOBILE (BURGER)
   ============================================ */
.burger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  flex-direction: column;
  gap: 5px;
  padding: 5px;
  justify-self: end;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s ease;
}

.burger:hover,
.burger:focus-visible {
  background: rgba(255,255,255,0.1);
}

.burger span {
  display: block;
  width: 25px;
  height: 2px;
  background: #ffffff;
  border-radius: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

@media (max-width: 1180px) {
  nav {
    grid-template-columns: 1fr auto;
    padding: 0 28px;
  }
  .nav-liens,
  .nav-tel { display: none; }
  .burger { display: flex; }
}

.nav-mobile {
  display: none;
  position: fixed;
  top: 75px; left: 0; right: 0;
  background: rgba(250, 248, 240, 0.99);
  padding: 15px 20px 25px;
  z-index: 999;
  flex-direction: column;
  gap: 3px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.12);
  border-top: 1px solid rgba(18, 74, 35, 0.1);
  max-height: calc(100vh - 75px);
  overflow-y: auto;
}

.nav-mobile.ouvert {
  display: flex;
}

.nav-mobile > a {
  color: #333;
  text-decoration: none;
  font-size: 15px;
  padding: 12px 16px;
  border-radius: 10px;
  transition: background 0.2s;
  font-family: 'Montserrat', Arial, sans-serif;
}

.nav-mobile > a:hover,
.nav-mobile > a.active {
  background: var(--vert-pale);
  color: var(--vert-fonce);
  font-weight: bold;
}

/* Sous-sections mobiles */
.nav-mobile-section {
  margin-top: 4px;
}

.nav-mobile-section .nav-mobile-titre {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  color: #333;
  font-size: 15px;
  padding: 12px 16px;
  border-radius: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-family: 'Montserrat', Arial, sans-serif;
  font-weight: 500;
  transition: background 0.2s;
}

.nav-mobile-section .nav-mobile-titre:hover,
.nav-mobile-section .nav-mobile-titre.active {
  background: var(--vert-pale);
  color: var(--vert-fonce);
}

.nav-mobile-section .nav-mobile-titre:focus-visible {
  outline: 2px solid var(--vert-moyen);
  outline-offset: -2px;
}

.nav-mobile-section .nav-mobile-titre.active {
  font-weight: bold;
}

.nav-mobile-sous {
  display: none;
  padding: 6px 0 6px 16px;
  flex-direction: column;
  gap: 2px;
}

.nav-mobile-sous.ouvert {
  display: flex;
}

.nav-mobile-sous a {
  color: #555;
  text-decoration: none;
  font-size: 13px;
  padding: 8px 14px;
  border-radius: 8px;
  transition: background 0.15s;
  font-family: 'Montserrat', Arial, sans-serif;
}

.nav-mobile-sous a:hover {
  background: var(--vert-pale);
  color: var(--vert-fonce);
}

.nav-mobile-sous .sous-titre {
  font-size: 10px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--vert-moyen);
  padding: 8px 14px 4px;
}

.nav-mobile-tel {
  display: block;
  text-align: center;
  background: var(--vert-fonce);
  color: white !important;
  text-decoration: none;
  font-size: 14px;
  font-weight: bold;
  padding: 13px 16px;
  border-radius: 50px;
  margin-top: 12px;
  font-family: 'Montserrat', Arial, sans-serif;
}

/* ============================================
   HERO — DESIGN CENTRÉ PREMIUM
   ============================================ */
.hero {
  position: relative;
  min-height: 85vh;
  height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 0 !important;
}

/* ============================================
   HERO — RENDU MATIN (6h–20h)
   ============================================ */
.hero.matin .hero-bg {
  background:
    /* Disque solaire levant côté gauche */
    radial-gradient(ellipse 14% 18% at 22% 68%, rgba(255,230,80,0.95) 0%, rgba(255,190,40,0.6) 30%, transparent 65%),
    /* Couronne solaire */
    radial-gradient(ellipse 50% 42% at 22% 68%, rgba(255,160,40,0.5) 0%, rgba(255,120,20,0.2) 50%, transparent 72%),
    /* Ciel doré horizon gauche */
    radial-gradient(ellipse 65% 38% at 0% 62%, rgba(255,140,30,0.4) 0%, transparent 65%),
    /* Ciel bleu clair centre */
    radial-gradient(ellipse 60% 50% at 60% 20%, rgba(80,160,220,0.3) 0%, transparent 70%),
    /* Ciel bleu-azur */
    linear-gradient(180deg,
      #0d2a52 0%,
      #1a4a8a 12%,
      #2a6ab8 25%,
      #5090d0 36%,
      #f5a830 50%,
      #ff8820 56%,
      #d46010 62%,
      #2a5a18 70%,
      #1a4a12 82%,
      #0e2e0a 100%);
  z-index: 0;
}

.hero.matin .hero-bg::before {
  /* Pas d'étoiles le matin */
  opacity: 0;
}

.hero.matin .hero-bg::after {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 360' preserveAspectRatio='xMidYMax meet'%3E%3C!-- Sol --%3E%3Cpath d='M0 270 Q360 252 720 260 Q1080 270 1440 255 L1440 360 L0 360 Z' fill='%231a3a0e'/%3E%3C!-- Chemin --%3E%3Cpath d='M630 360 Q680 320 705 278 Q715 262 720 258 Q725 262 735 278 Q760 320 810 360 Z' fill='%23224a12' opacity='0.8'/%3E%3C!-- Braise tenue le matin --%3E%3Cellipse cx='720' cy='268' rx='20' ry='5' fill='%23c84010' opacity='0.3'/%3E%3Ccircle cx='720' cy='268' rx='4' ry='4' fill='%23e07b39' opacity='0.5'/%3E%3C!-- Fumee matin --%3E%3Cellipse cx='720' cy='258' rx='3' ry='8' fill='%23aaa' opacity='0.2'/%3E%3Cellipse cx='718' cy='245' rx='5' ry='10' fill='%23bbb' opacity='0.12'/%3E%3C!-- Tente gauche --%3E%3Cpolygon points='490,268 548,215 606,268' fill='%23224a14'/%3E%3Cpolygon points='505,268 548,222 591,268' fill='%232a5a1a'/%3E%3Cellipse cx='548' cy='262' rx='16' ry='21' fill='%231a3a0e'/%3E%3Crect x='490' y='266' width='116' height='5' rx='2' fill='%231a3a0e'/%3E%3C!-- Tente 2 --%3E%3Cpolygon points='395,272 432,238 469,272' fill='%231e4010'/%3E%3Cpolygon points='405,272 432,243 459,272' fill='%23224a14'/%3E%3Cellipse cx='432' cy='267' rx='12' ry='16' fill='%231a3a0e'/%3E%3C!-- Bungalow droite --%3E%3Crect x='830' y='224' width='118' height='48' rx='3' fill='%232a5a1a'/%3E%3Cpolygon points='818,226 889,182 960,226' fill='%231e4810'/%3E%3Crect x='876' y='238' width='24' height='34' rx='3' fill='%231a3a0e'/%3E%3Crect x='836' y='232' width='24' height='20' rx='2' fill='%231a3a0e'/%3E%3Crect x='910' y='232' width='24' height='20' rx='2' fill='%231a3a0e'/%3E%3C!-- Velo --%3E%3Ccircle cx='648' cy='262' r='16' fill='none' stroke='%23224a14' stroke-width='3'/%3E%3Ccircle cx='685' cy='262' r='16' fill='none' stroke='%23224a14' stroke-width='3'/%3E%3Cline x1='648' y1='262' x2='666' y2='244' stroke='%23224a14' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='685' y1='262' x2='666' y2='244' stroke='%23224a14' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='685' y1='262' x2='690' y2='243' stroke='%23224a14' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='687' y1='243' x2='696' y2='243' stroke='%23224a14' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='666' y1='244' x2='661' y2='238' stroke='%23224a14' stroke-width='2.5' stroke-linecap='round'/%3E%3Cline x1='658' y1='238' x2='665' y2='238' stroke='%23224a14' stroke-width='3' stroke-linecap='round'/%3E%3C!-- Oiseaux --%3E%3Cpath d='M300 80 Q308 74 316 80' stroke='%23ffffff' stroke-width='1.5' fill='none' opacity='0.5'/%3E%3Cpath d='M316 80 Q324 74 332 80' stroke='%23ffffff' stroke-width='1.5' fill='none' opacity='0.5'/%3E%3Cpath d='M420 60 Q427 55 434 60' stroke='%23ffffff' stroke-width='1.5' fill='none' opacity='0.45'/%3E%3Cpath d='M434 60 Q441 55 448 60' stroke='%23ffffff' stroke-width='1.5' fill='none' opacity='0.45'/%3E%3Cpath d='M500 95 Q506 90 512 95' stroke='%23ffffff' stroke-width='1.2' fill='none' opacity='0.4'/%3E%3C!-- Arbres gauche --%3E%3Cellipse cx='75' cy='200' rx='68' ry='84' fill='%231a3a0e'/%3E%3Cellipse cx='45' cy='232' rx='50' ry='64' fill='%231a3a0e'/%3E%3Cellipse cx='110' cy='218' rx='54' ry='70' fill='%23204a12'/%3E%3Crect x='68' y='272' width='14' height='70' fill='%231a3a0e'/%3E%3Cellipse cx='215' cy='178' rx='78' ry='98' fill='%23204a12'/%3E%3Cellipse cx='175' cy='212' rx='58' ry='75' fill='%231a3a0e'/%3E%3Cellipse cx='258' cy='198' rx='62' ry='80' fill='%23204a12'/%3E%3Crect x='208' y='268' width='16' height='75' fill='%231a3a0e'/%3E%3Cellipse cx='330' cy='230' rx='42' ry='52' fill='%23204a12'/%3E%3C!-- Arbres droite --%3E%3Cellipse cx='1115' cy='225' rx='40' ry='50' fill='%23204a12'/%3E%3Cellipse cx='1210' cy='195' rx='65' ry='82' fill='%231a3a0e'/%3E%3Cellipse cx='1175' cy='225' rx='50' ry='65' fill='%231a3a0e'/%3E%3Cellipse cx='1248' cy='212' rx='55' ry='72' fill='%23204a12'/%3E%3Crect x='1203' y='270' width='14' height='72' fill='%231a3a0e'/%3E%3Cellipse cx='1360' cy='182' rx='75' ry='94' fill='%23204a12'/%3E%3Cellipse cx='1322' cy='215' rx='56' ry='72' fill='%231a3a0e'/%3E%3Cellipse cx='1398' cy='200' rx='60' ry='78' fill='%23204a12'/%3E%3Crect x='1353' y='268' width='15' height='72' fill='%231a3a0e'/%3E%3Cellipse cx='1460' cy='200' rx='55' ry='70' fill='%231a3a0e'/%3E%3C!-- Sol avant --%3E%3Cpath d='M0 305 Q360 290 720 298 Q1080 308 1440 295 L1440 360 L0 360 Z' fill='%23122808' opacity='0.6'/%3E%3C/svg%3E") no-repeat bottom;
  background-size: 100% 100%;
}

.hero.matin .hero-titre,
.hero.matin .hero-accroche {
  text-shadow: 0 2px 20px rgba(0,0,0,0.4);
}

/* Fond forêt tropicale — lever de soleil matin */
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 14% 18% at 22% 68%, rgba(255,230,80,0.95) 0%, rgba(255,190,40,0.6) 30%, transparent 65%),
    radial-gradient(ellipse 50% 42% at 22% 68%, rgba(255,160,40,0.5) 0%, rgba(255,120,20,0.2) 50%, transparent 72%),
    radial-gradient(ellipse 65% 38% at 0% 62%, rgba(255,140,30,0.4) 0%, transparent 65%),
    radial-gradient(ellipse 60% 50% at 65% 20%, rgba(80,160,220,0.3) 0%, transparent 70%),
    linear-gradient(180deg,
      #0d2a52 0%,
      #1a4a8a 12%,
      #2a6ab8 25%,
      #5090d0 36%,
      #f5a830 50%,
      #ff8820 56%,
      #d46010 62%,
      #2a5a18 70%,
      #1a4a12 82%,
      #0e2e0a 100%);
  z-index: 0;
}

/* Pas d'étoiles le matin */
.hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
}

/* Scène illustrée matin : tentes, bungalow, vélo, fumée, oiseaux, arbres clairs */
.hero-bg::after { content: none; }

/* Photographies du campement selon l'heure locale d'Abidjan */
.hero.hero-matin .hero-bg,
.hero.hero-soir .hero-bg {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  transition: filter 0.6s ease-in-out;
}

.hero.hero-matin .hero-bg {
  background-image: url('images/hero-matin-soleil-logo-v34.jpg?v=85');
  filter: none;
}

.hero.hero-soir .hero-bg {
  background-image: url('images/hero-soir-lanternes-v46.jpg');
  filter: none;
}

/* Voile de contraste : conserve la photo tout en protégeant la lisibilité. */
.hero.hero-matin .hero-bg::before,
.hero.hero-soir .hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 1;
  background:
    radial-gradient(ellipse 38% 62% at 50% 43%, rgba(5, 18, 8, 0.42) 0%, rgba(5, 18, 8, 0.12) 68%, transparent 100%),
    linear-gradient(180deg, rgba(4, 16, 10, 0.12) 0%, rgba(4, 16, 10, 0.02) 45%, rgba(4, 16, 10, 0.22) 100%);
}

.hero.hero-soir .hero-bg::before {
  background:
    radial-gradient(ellipse 40% 58% at 50% 48%, rgba(2, 8, 14, 0.22) 0%, rgba(2, 8, 14, 0.07) 72%, transparent 100%),
    linear-gradient(180deg, rgba(1, 7, 15, 0.05) 0%, transparent 48%, rgba(1, 7, 12, 0.14) 100%);
}

/* L'ancienne scène SVG est conservée dans le HTML mais retirée du rendu. */
.hero.hero-matin .hero-scene,
.hero.hero-soir .hero-scene,
.hero.hero-matin .hero-particles,
.hero.hero-soir .hero-particles {
  display: none;
}

/* Scène illustrée hero inline SVG */
.hero-scene {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 58%;
  z-index: 1;
  pointer-events: none;
}

.hero-scene svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Particules dorées flottantes */
.hero-particles {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.hero-particles span {
  position: absolute;
  bottom: -10px;
  border-radius: 50%;
  background: var(--or);
  opacity: 0;
  animation: particule-monte linear infinite;
}

.hero-particles span:nth-child(1) { width:3px; height:3px; left:8%;  animation-duration:9s;  animation-delay:0s;   }
.hero-particles span:nth-child(2) { width:2px; height:2px; left:18%; animation-duration:12s; animation-delay:2s;   }
.hero-particles span:nth-child(3) { width:4px; height:4px; left:32%; animation-duration:8s;  animation-delay:1s;   }
.hero-particles span:nth-child(4) { width:2px; height:2px; left:52%; animation-duration:11s; animation-delay:3.5s; }
.hero-particles span:nth-child(5) { width:3px; height:3px; left:65%; animation-duration:10s; animation-delay:0.5s; }
.hero-particles span:nth-child(6) { width:5px; height:5px; left:75%; animation-duration:7s;  animation-delay:4s;   }
.hero-particles span:nth-child(7) { width:2px; height:2px; left:88%; animation-duration:13s; animation-delay:2s;   }
.hero-particles span:nth-child(8) { width:3px; height:3px; left:42%; animation-duration:9s;  animation-delay:6s;   }

@keyframes particule-monte {
  0%   { bottom: -10px; opacity: 0;   transform: translateX(0px)  scale(1);   }
  10%  { opacity: 0.7; }
  90%  { opacity: 0.15; }
  100% { bottom: 100%;  opacity: 0;   transform: translateX(15px) scale(0.4); }
}

/* Zone centrale */
.hero-centre {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 85px 40px 10px;
  transform: translateY(calc(-3vh - 12px));
}

/* Logo avec anneau doré animé */
.hero-logo-rond {
  position: relative;
  width: 124px;
  height: 124px;
  border-radius: 50%;
  border: 1px solid rgba(232, 166, 91, 0.9);
  padding: 7px;
  margin-bottom: 14px;
  flex-shrink: 0;
  animation: logo-pulse 4s ease-in-out infinite;
  background: rgba(5, 20, 12, 0.72);
  box-shadow:
    0 0 0 5px rgba(232, 166, 91, 0.12),
    0 18px 45px rgba(0, 0, 0, 0.48);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* Le médaillon devient un soleil le jour et une lune le soir. */
.hero-logo-rond::before,
.hero-logo-rond::after {
  content: '';
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  transition: opacity 0.6s ease, transform 0.6s ease, box-shadow 0.6s ease;
}

/* Rayons très fins derrière le logo, visibles uniquement le jour. */
.hero-logo-rond::before {
  inset: -16px;
  z-index: -2;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255, 184, 72, 0.7) 0deg 1.2deg,
    transparent 1.2deg 15deg
  );
  -webkit-mask: radial-gradient(circle, transparent 0 57%, #000 58% 64%, transparent 65%);
  mask: radial-gradient(circle, transparent 0 57%, #000 58% 64%, transparent 65%);
  opacity: 0;
}

/* Halo atmosphérique commun, placé derrière le médaillon. */
.hero-logo-rond::after {
  inset: -9px;
  z-index: -1;
  opacity: 0.9;
}

.hero.hero-matin .hero-logo-rond {
  width: 90px;
  height: 90px;
  top: -76px;
  left: clamp(140px, 18vw, 340px);
  border-color: #ffc45c;
  background: rgba(255, 250, 225, 0.99);
  animation: soleil-respire 5s ease-in-out infinite;
  box-shadow:
    0 0 0 3px rgba(255, 225, 151, 0.72),
    0 0 0 8px rgba(255, 178, 55, 0.2),
    0 0 34px 14px rgba(255, 198, 82, 0.42),
    0 0 88px 32px rgba(255, 149, 38, 0.24),
    0 18px 42px rgba(76, 43, 5, 0.28);
}

.hero.hero-matin .hero-logo-rond::before {
  inset: -24px;
  opacity: 0.95;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255, 193, 68, 1) 0deg 1.6deg,
    transparent 1.6deg 15deg
  );
  -webkit-mask: radial-gradient(circle, transparent 0 59%, #000 60% 100%);
  mask: radial-gradient(circle, transparent 0 59%, #000 60% 100%);
  filter: drop-shadow(0 0 5px rgba(255, 188, 64, 0.42));
  animation: rayons-tournent 60s linear infinite;
}

.hero.hero-matin .hero-logo-rond::after {
  inset: -15px;
  box-shadow:
    0 0 32px 13px rgba(255, 224, 145, 0.52),
    0 0 80px 30px rgba(255, 158, 39, 0.26);
}

.hero.hero-soir .hero-logo-rond {
  width: 92px;
  height: 92px;
  top: -102px;
  left: 0;
  border-color: rgba(235, 246, 255, 0.98);
  background: rgba(242, 247, 239, 0.98);
  animation: lune-respire 6s ease-in-out infinite;
  box-shadow:
    0 0 0 2px rgba(232, 244, 255, 0.38),
    0 0 30px 12px rgba(210, 232, 255, 0.4),
    0 0 92px 38px rgba(118, 173, 226, 0.3);
}

.hero.hero-soir .hero-logo-rond::before {
  opacity: 0;
}

.hero.hero-soir .hero-logo-rond::after {
  transform: scale(1);
  box-shadow:
    0 0 34px 12px rgba(230, 243, 255, 0.34),
    0 0 88px 34px rgba(120, 172, 226, 0.2);
}

@keyframes soleil-respire {
  0%, 100% {
    box-shadow: 0 0 0 3px rgba(255,225,151,0.7), 0 0 0 8px rgba(255,178,55,0.19), 0 0 34px 14px rgba(255,198,82,0.4), 0 0 88px 32px rgba(255,149,38,0.23), 0 18px 42px rgba(76,43,5,0.28);
  }
  50% {
    box-shadow: 0 0 0 4px rgba(255,232,174,0.76), 0 0 0 10px rgba(255,188,72,0.2), 0 0 46px 18px rgba(255,207,104,0.48), 0 0 108px 40px rgba(255,149,38,0.28), 0 20px 48px rgba(76,43,5,0.3);
  }
}

@keyframes lune-respire {
  0%, 100% {
    box-shadow: 0 0 0 2px rgba(232,244,255,0.36), 0 0 30px 12px rgba(210,232,255,0.38), 0 0 90px 36px rgba(118,173,226,0.27);
  }
  50% {
    box-shadow: 0 0 0 3px rgba(232,244,255,0.3), 0 0 40px 16px rgba(218,237,255,0.44), 0 0 112px 44px rgba(118,173,226,0.33);
  }
}

.hero.hero-soir .hero-logo-rond img {
  filter: brightness(1.04) contrast(1.04) drop-shadow(0 1px 1px rgba(255,255,255,0.45));
}

@keyframes rayons-tournent {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .hero.hero-matin .hero-logo-rond,
  .hero.hero-matin .hero-logo-rond::before,
  .hero.hero-soir .hero-logo-rond {
    animation: none;
  }
}

.hero-logo-rond img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: contain;
  display: block;
}

@keyframes logo-pulse {
  0%, 100% { box-shadow: 0 0 0 0px  rgba(224,123,57,0.3), 0 20px 50px rgba(0,0,0,0.5); }
  50%       { box-shadow: 0 0 0 10px rgba(224,123,57,0.08), 0 0 0 20px rgba(224,123,57,0.03), 0 20px 50px rgba(0,0,0,0.5); }
}

/* Séparateur doré */
.hero-separateur {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}

.hero.hero-soir .hero-separateur {
  margin-top: -14px;
}

.hero-separateur::before {
  content: '';
  width: 70px;
  height: 1px;
  background: linear-gradient(to right, transparent, #d8e7d3);
}

.hero-separateur::after {
  content: '';
  width: 70px;
  height: 1px;
  background: linear-gradient(to left, transparent, #d8e7d3);
}

.hero-separateur span {
  color: #d8e7d3;
  font-size: 12px;
  line-height: 1;
}

/* Badge localisation */
.hero-badge {
  font-family: 'Montserrat', sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 3.4px;
  text-transform: uppercase;
  color: #d8e7d3;
  margin-bottom: 13px;
  display: block;
  text-shadow: 0 2px 12px rgba(0,0,0,0.9), 0 0 18px rgba(0,0,0,0.55);
}

/* Titre principal */
.hero-titre {
  font-family: 'Playfair Display', serif;
  font-size: clamp(46px, 4vw, 58px);
  font-weight: 900;
  color: #fffdf5;
  line-height: 0.94;
  letter-spacing: 4.5px;
  text-transform: uppercase;
  margin-bottom: 2px;
  text-shadow: 0 3px 3px rgba(0,0,0,0.72), 0 8px 34px rgba(0,0,0,0.72);
}

.hero-titre em {
  display: block;
  font-family: 'Great Vibes', cursive;
  font-style: normal;
  font-size: clamp(54px, 4.7vw, 66px);
  color: #b8d4b2;
  letter-spacing: 2px;
  text-transform: none;
  font-weight: 400;
  line-height: 0.9;
  margin-top: 12px;
  -webkit-text-stroke: 0.55px rgba(24, 70, 38, 0.82);
  text-shadow:
    0 2px 2px rgba(5, 28, 14, 0.9),
    0 6px 18px rgba(8, 38, 20, 0.58);
}

/* Accroche */
.hero-accroche {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #fff4dc;
  margin-top: 18px;
  margin-bottom: 20px;
  text-shadow: 0 2px 3px rgba(0,0,0,0.88), 0 3px 16px rgba(0,0,0,0.82);
  display: flex;
  align-items: center;
  gap: 15px;
}

.hero-accroche::before,
.hero-accroche::after {
  content: '';
  width: 42px;
  height: 1px;
  flex: 0 0 42px;
  background: linear-gradient(90deg, transparent, rgba(216, 231, 211, 0.82));
}

.hero-accroche::after {
  background: linear-gradient(90deg, rgba(216, 231, 211, 0.82), transparent);
}

/* Boutons CTA */
.hero-ctas {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

.hero .btn-or {
  background: linear-gradient(135deg, #c45e20, #e07b39, #c45e20);
  color: #102615 !important;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  padding: 13px 32px;
  border-radius: 50px;
  text-decoration: none;
  box-shadow: 0 6px 30px rgba(224,123,57,0.35);
  transition: all 0.3s;
  display: inline-block;
}

.hero .btn-or:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 40px rgba(224,123,57,0.5);
}


/* ---- BARRE DE RÉSERVATION RAPIDE ---- */
/* Wrapper flottant entre hero et section suivante */
.hero-barre-wrapper {
  position: relative;
  z-index: 10;
  max-width: 1200px;
  margin: -34px auto 0;
  padding: 0 40px;
}

/* Barre réservation */
.hero-barre {
  position: relative;
  width: 100%;
}

/* Badge "Consultez les disponibilités" */
.barre-badge {
  display: inline-block;
  background: #4a9e5a;
  color: white;
  font-family: 'Great Vibes', cursive;
  font-size: 27px;
  padding: 11px 28px 13px;
  border-radius: 60px;
  position: absolute;
  top: -25px;
  left: 28px;
  z-index: 5;
  box-shadow: 0 6px 20px rgba(74,158,90,0.35);
  letter-spacing: 0.5px;
  line-height: 1;
  transform: rotate(-1.5deg);
}

/* Corps blanc de la barre */
.barre-corps {
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.13);
  padding: 34px 28px 24px;
  border: 1px solid #e8e8e8;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 26px;
}

.barre-champs {
  min-width: 0;
  display: grid;
  grid-template-columns: 1.45fr 1px 1fr 1px 1fr 1px 0.95fr;
  align-items: start;
  gap: 0;
}

.barre-separateur {
  width: 1px;
  height: 44px;
  background: #dfe9df;
  align-self: end;
  margin-bottom: 2px;
}

.barre-champ {
  min-width: 0;
  padding: 0 17px;
}

.barre-champ:first-child { padding-left: 0; }

.barre-champ label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--vert-fonce);
  margin-bottom: 8px;
}

.barre-champ input,
.barre-champ select {
  font-family: 'Montserrat', sans-serif;
  width: 100%;
  padding: 10px 0;
  border: none;
  border-bottom: 2px solid #e0e0e0;
  border-radius: 0;
  font-size: 14px;
  color: var(--texte);
  background: transparent;
  transition: border-color 0.2s;
  outline: none;
  cursor: pointer;
}

.barre-champ input:focus,
.barre-champ select:focus {
  border-bottom-color: var(--vert-moyen);
  outline: none;
}

/* Pied avec bouton aligné à droite */
.barre-footer {
  display: flex;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  border: 0;
}

.barre-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--vert-fonce);
  color: white;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 14px 28px;
  border-radius: 50px;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.25s;
  box-shadow: 0 4px 20px rgba(26,92,26,0.3);
}

.barre-btn:hover {
  background: var(--vert-moyen);
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(26,92,26,0.45);
}

/* Responsive hero */
@media (max-width: 980px) {
  .barre-corps { grid-template-columns: 1fr; gap: 18px; }
  .barre-champs { grid-template-columns: 1fr 1fr; gap: 18px 24px; }
  .barre-separateur { display: none; }
  .barre-champ { padding: 0; }
  .barre-footer { justify-content: flex-end; }
}

@media (max-width: 768px) {
  .hero { min-height: 78vh; height: 78vh; }
  .hero.hero-matin .hero-bg,
  .hero.hero-soir .hero-bg { background-position: 52% center; }
  .hero-centre { padding: 85px 22px 24px; transform: translateY(calc(-2vh - 8px)); }
  .hero-logo-rond { display: block; width: 88px; height: 88px; padding: 5px; margin-bottom: 10px; }
  .hero.hero-matin .hero-logo-rond { width: 66px; height: 66px; top: -46px; left: 12vw; }
  .hero.hero-soir .hero-logo-rond {
    width: 68px;
    height: 68px;
    top: -62px;
    left: 0;
  }
  .hero-titre { font-size: 40px; letter-spacing: 2.5px; }
  .hero-titre em { font-size: 43px; margin-top: 8px; }
  .hero-badge { letter-spacing: 2px; }
  .hero-accroche { font-size: 9px; letter-spacing: 2.5px; margin-top: 13px; gap: 8px; }
  .hero-accroche::before,
  .hero-accroche::after { width: 20px; flex-basis: 20px; }
  .hero-scroll { display: none; }
  .hero-barre-wrapper { margin-top: -38px; padding: 0 16px; }
  .hero-barre { padding: 0; }
  .barre-badge { top: -20px; left: 18px; font-size: 23px; padding: 10px 22px 12px; }
  .barre-corps { padding: 38px 22px 22px; }
  .barre-champs { grid-template-columns: 1fr; }
  .barre-separateur { display: none; }
  .barre-champ { padding: 0; margin-bottom: 16px; }
  .barre-btn { width: 100%; justify-content: center; }
}

/* ============================================
   BOUTONS
   ============================================ */
.btn {
  display: inline-block;
  padding: 14px 35px;
  border-radius: 50px;
  font-size: 15px;
  font-weight: bold;
  text-decoration: none;
  transition: all 0.25s;
  cursor: pointer;
  border: none;
}

.btn-blanc {
  background: white;
  color: var(--vert-fonce);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(0,0,0,0.15);
}

.btn-blanc:hover {
  background: var(--creme);
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(0,0,0,0.2);
}

.btn-contour {
  border: 2px solid rgba(255,255,255,0.7);
  color: white;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  backdrop-filter: blur(4px);
  background: rgba(255,255,255,0.08);
}

.btn-contour:hover {
  background: white;
  color: var(--vert-fonce);
  border-color: white;
  transform: translateY(-2px);
}

.btn-or {
  background: linear-gradient(135deg, #c45e20, var(--or), #c45e20);
  color: white;
  box-shadow: 0 4px 20px rgba(224,123,57,0.35);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.btn-or:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(224,123,57,0.45);
}

.btn-vert {
  background: linear-gradient(135deg, var(--vert-fonce), var(--vert-moyen));
  color: white;
  box-shadow: 0 4px 20px rgba(26,92,26,0.3);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  letter-spacing: 0.5px;
}

.btn-vert:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(26,92,26,0.4);
}

.btn-vert-contour {
  background: transparent;
  color: var(--vert-fonce);
  border: 2px solid var(--vert-fonce);
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
}

.btn-vert-contour:hover {
  background: var(--vert-fonce);
  color: white;
}

/* ============================================
   SECTIONS GÉNÉRALES
   ============================================ */
section {
  padding: 80px 40px;
}

.container {
  max-width: 1100px;
  margin: 0 auto;
}

.titre-section {
  text-align: center;
  margin-bottom: 55px;
}

.label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 4px;
  color: var(--or);
  margin-bottom: 10px;
}

.titre-section .label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 4px;
  color: var(--or);
  margin-bottom: 10px;
}

.titre-section h2 {
  font-family: 'Playfair Display', serif;
  font-size: 46px;
  font-weight: 900;
  color: var(--vert-fonce);
  margin-bottom: 14px;
  line-height: 1.1;
}

.titre-section .filet {
  width: 50px;
  height: 3px;
  background: linear-gradient(to right, var(--or), transparent);
  border-radius: 2px;
  margin: 0 auto 16px;
}

.titre-section p {
  color: var(--texte-gris);
  font-size: 15px;
  line-height: 1.7;
  max-width: 550px;
  margin: 0 auto;
}

/* Sur fond vert */
.titre-section.clair .label { color: #a8d5a8; }
.titre-section.clair h2 { color: white; }
.titre-section.clair .filet { background: #a8d5a8; }
.titre-section.clair p { color: #c5e5c5; }

/* ============================================
   GRILLES DE CARTES
   ============================================ */
.grille-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 25px;
}

.grille-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  align-items: center;
}

.carte {
  background: white;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 2px 20px rgba(0,0,0,0.06);
  transition: transform 0.3s, box-shadow 0.3s;
  border: 1px solid rgba(0,0,0,0.04);
  display: flex;
  flex-direction: column;
}

.carte:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(0,0,0,0.12);
}

.carte-header {
  background: linear-gradient(135deg, var(--vert-pale), #d4ebd4);
  padding: 38px 25px;
  text-align: center;
  position: relative;
}

.carte-header .emoji {
  font-size: 44px;
  display: block;
  margin-bottom: 12px;
  color: var(--vert-fonce);
  line-height: 1;
}

.carte-header .emoji i {
  font-size: 44px;
  color: var(--vert-fonce);
}

.carte-header h3 {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  color: var(--vert-fonce);
  font-weight: bold;
}

.carte-body {
  padding: 25px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.carte-body p {
  color: var(--texte-gris);
  font-size: 14px;
  line-height: 1.7;
  margin-bottom: 18px;
}

.carte-body ul {
  list-style: none;
  margin-bottom: 20px;
  flex: 1;
}

.carte-body ul li {
  font-size: 13px;
  color: var(--texte);
  padding: 5px 0;
  border-bottom: 1px solid #f0f0f0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.carte-body ul li::before {
  content: '✓';
  color: var(--vert-moyen);
  font-weight: bold;
  font-size: 15px;
}

.carte-prix {
  font-size: 15px;
  font-weight: bold;
  color: var(--vert-fonce);
  margin-bottom: 15px !important;
}

.badge {
  display: inline-block;
  font-size: 11px;
  font-weight: bold;
  padding: 4px 12px;
  border-radius: 50px;
  color: white;
  margin-bottom: 10px;
}

/* ============================================
   SECTION FOND VERT
   ============================================ */
.bg-vert {
  background: var(--vert-fonce);
}

.bg-creme {
  background: var(--creme);
}

.bg-creme-fonce {
  background: var(--creme-fonce);
}

/* ============================================
   PAGE HEADER (bannière sous-pages)
   ============================================ */
.page-header {
  padding: 130px 40px 80px;
  text-align: center;
  background: linear-gradient(150deg, #0a2a0a 0%, #1a5c1a 60%, #2d7a2d 100%);
  position: relative;
  overflow: hidden;
}

.page-header::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60px;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,30 Q720,60 1440,30 L1440,60 L0,60 Z' fill='%23f5f0e6'/%3E%3C/svg%3E") no-repeat bottom;
  background-size: cover;
}

.page-header .label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 4px;
  color: var(--or);
  margin-bottom: 12px;
}

.page-header h1 {
  font-family: 'Playfair Display', serif;
  font-size: 58px;
  font-weight: 900;
  color: white;
  letter-spacing: 1px;
}

.page-header p {
  color: #c5e5c5;
  font-size: 15px;
  margin-top: 12px;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.6;
}

/* ============================================
   FORMULAIRES
   ============================================ */
.formulaire {
  background: white;
  border-radius: 24px;
  padding: 40px;
  box-shadow: var(--ombre);
}

.formulaire h2 {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  color: var(--vert-fonce);
  margin-bottom: 25px;
}

.liste-formules-attente { list-style: none; margin: 0; padding: 0; }
.liste-formules-attente li { display: flex; align-items: center; gap: 14px; padding: 13px 0; border-bottom: 1px solid #f0f0f0; }
.liste-formules-attente li:last-child { border-bottom: none; }
.liste-formules-attente i { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%; background: var(--vert-pale); color: var(--vert-fonce); font-size: 13px; }
.liste-formules-attente span { flex: 1; font-family: 'Montserrat', sans-serif; font-size: 14px; color: var(--texte); }
.liste-formules-attente em { font-style: normal; padding: 4px 10px; border-radius: 20px; background: var(--or-clair); color: #a35a1e; font: 700 9px/1 'Montserrat', sans-serif; letter-spacing: .8px; text-transform: uppercase; white-space: nowrap; }

.piege-robot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.erreur-envoi {
  background: #fdecea;
  border: 1.5px solid rgba(200,40,40,0.25);
  color: #b91c1c;
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 13px;
  margin-bottom: 20px;
}

.champ {
  margin-bottom: 20px;
}

.champ label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #666;
  margin-bottom: 6px;
}

.champ input,
.champ select,
.champ textarea {
  font-family: 'Montserrat', sans-serif;
  width: 100%;
  padding: 13px 16px;
  border: 1.5px solid #e8e8e8;
  border-radius: 12px;
  font-size: 14px;
  color: var(--texte);
  background: #fafafa;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
}

.champ input:focus,
.champ select:focus,
.champ textarea:focus {
  border-color: var(--vert-moyen);
  box-shadow: 0 0 0 3px rgba(45,122,45,0.1);
  background: white;
}

.champ textarea {
  resize: none;
  height: 130px;
}

.ligne-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.ligne-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 15px;
}

.btn-submit {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: linear-gradient(135deg, var(--vert-fonce), var(--vert-moyen));
  border-radius: 50px;
  padding: 17px;
  width: 100%;
  color: white;
  font-size: 15px;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 4px 20px rgba(26,92,26,0.3);
}

.btn-submit:hover {
  box-shadow: 0 8px 30px rgba(26,92,26,0.4);
  transform: translateY(-2px);
}

/* ============================================
   SECTION À PROPOS (accueil)
   ============================================ */
.chiffres {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.chiffre-carte {
  background: white;
  border-radius: 20px;
  padding: 30px;
  text-align: center;
  box-shadow: var(--ombre);
}

.chiffre-carte .valeur {
  font-family: 'Playfair Display', serif;
  font-size: 44px;
  font-weight: 900;
  color: var(--vert-fonce);
  display: block;
}

.chiffre-carte .etiquette {
  font-size: 13px;
  color: var(--texte-gris);
  margin-top: 4px;
}

/* ============================================
   TÉMOIGNAGES
   ============================================ */
.etoiles {
  color: #f5a623;
  font-size: 18px;
  margin-bottom: 15px;
}

.temoignage-auteur {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}

.temoignage-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--vert-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--vert-fonce);
  font-weight: bold;
  font-size: 16px;
}

/* ============================================
   GALERIE
   ============================================ */
.galerie-grille {
  columns: 3;
  gap: 15px;
}

.galerie-item {
  break-inside: avoid;
  margin-bottom: 15px;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}

.galerie-item img {
  width: 100%;
  display: block;
  transition: transform 0.4s;
}

.galerie-item:hover img {
  transform: scale(1.05);
}

.galerie-placeholder {
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  text-align: center;
  padding: 30px 15px;
  cursor: pointer;
  transition: filter 0.3s;
  margin-bottom: 15px;
  break-inside: avoid;
}

.galerie-placeholder:hover {
  filter: brightness(1.1);
}

.galerie-placeholder .emoji-ph {
  font-size: 48px;
  margin-bottom: 10px;
  display: block;
}

.galerie-placeholder span:last-child {
  font-size: 13px;
  opacity: 0.85;
}

/* ============================================
   CONTACT
   ============================================ */
.info-contact {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: white;
  border-radius: 16px;
  padding: 20px;
  box-shadow: var(--ombre);
  margin-bottom: 15px;
}

.info-contact .icone {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: var(--vert-pale);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.info-contact .titre {
  font-size: 12px;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--vert-fonce);
  margin-bottom: 4px;
}

.info-contact p {
  font-size: 14px;
  color: var(--texte-gris);
  line-height: 1.5;
}

/* ============================================
   FOOTER
   ============================================ */
footer {
  position: relative;
  color: white;
  padding: 60px 40px 30px;
  overflow: hidden;
  background:
    radial-gradient(ellipse 18% 22% at 50% 38%, rgba(255,220,100,0.4) 0%, rgba(255,160,40,0.2) 35%, transparent 70%),
    radial-gradient(ellipse 55% 45% at 50% 38%, rgba(224,123,57,0.3) 0%, transparent 65%),
    radial-gradient(ellipse 40% 25% at 50% 100%, rgba(180,70,10,0.25) 0%, transparent 60%),
    linear-gradient(180deg,
      #050d14 0%,
      #091525 10%,
      #0f1e14 22%,
      #6b2d08 38%,
      #8a3a0a 44%,
      #2a4a12 54%,
      #163616 70%,
      #0e2810 100%);
}

/* Scène illustrée footer */
footer::before {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 55%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 220' preserveAspectRatio='xMidYMax meet'%3E%3Cpath d='M0 150 Q360 135 720 142 Q1080 150 1440 138 L1440 220 L0 220 Z' fill='%230a1806'/%3E%3Cellipse cx='720' cy='148' rx='28' ry='6' fill='%23c84010' opacity='0.5'/%3E%3Cpath d='M715 144 Q711 132 716 123 Q719 130 722 121 Q726 131 729 140 Q723 136 720 142 Q717 136 715 144Z' fill='%23e07b39'/%3E%3Cpath d='M717 139 Q714 129 716 122 Q718 128 719 138Z' fill='%23ffcc60' opacity='0.9'/%3E%3Cpath d='M723 139 Q726 129 723 122 Q725 129 726 138Z' fill='%23ffcc60' opacity='0.9'/%3E%3Cline x1='705' y1='152' x2='735' y2='143' stroke='%233a1a08' stroke-width='4' stroke-linecap='round'/%3E%3Cline x1='735' y1='152' x2='705' y2='143' stroke='%23301508' stroke-width='4' stroke-linecap='round'/%3E%3Ccircle cx='750' cy='140' r='6' fill='%230c1a08'/%3E%3Cpath d='M746 146 Q743 154 746 160 Q752 163 757 160 Q760 154 756 146Z' fill='%230c1a08'/%3E%3Cpolygon points='560,152 605,112 650,152' fill='%23122a0c'/%3E%3Cpolygon points='572,152 605,118 638,152' fill='%23163410'/%3E%3Cellipse cx='605' cy='147' rx='12' ry='15' fill='%230a1806'/%3E%3Crect x='830' y='116' width='90' height='38' rx='3' fill='%23163410'/%3E%3Cpolygon points='822,118 875,84 928,118' fill='%230f2209'/%3E%3Crect x='861' y='127' width='18' height='27' rx='2' fill='%230a1806'/%3E%3Crect x='836' y='122' width='18' height='16' rx='2' fill='%230a1806'/%3E%3Crect x='837' y='123' width='16' height='14' rx='2' fill='%23c84010' opacity='0.18'/%3E%3Crect x='897' y='122' width='18' height='16' rx='2' fill='%230a1806'/%3E%3Crect x='898' y='123' width='16' height='14' rx='2' fill='%23c84010' opacity='0.18'/%3E%3Cellipse cx='75' cy='105' rx='60' ry='75' fill='%230a1806'/%3E%3Cellipse cx='45' cy='130' rx='44' ry='56' fill='%230a1806'/%3E%3Cellipse cx='108' cy='118' rx='48' ry='62' fill='%230d2009'/%3E%3Crect x='68' y='160' width='12' height='60' fill='%230a1806'/%3E%3Cellipse cx='205' cy='88' rx='70' ry='88' fill='%230d2009'/%3E%3Cellipse cx='168' cy='116' rx='52' ry='68' fill='%230a1806'/%3E%3Cellipse cx='244' cy='104' rx='56' ry='72' fill='%230d2009'/%3E%3Crect x='198' y='168' width='14' height='68' fill='%230a1806'/%3E%3Cellipse cx='1250' cy='95' rx='68' ry='85' fill='%230d2009'/%3E%3Cellipse cx='1215' cy='122' rx='52' ry='66' fill='%230a1806'/%3E%3Cellipse cx='1288' cy='110' rx='56' ry='72' fill='%230d2009'/%3E%3Crect x='1243' y='172' width='14' height='68' fill='%230a1806'/%3E%3Cellipse cx='1380' cy='108' rx='58' ry='72' fill='%230a1806'/%3E%3Cellipse cx='1350' cy='130' rx='46' ry='58' fill='%230a1806'/%3E%3Cellipse cx='1410' cy='120' rx='50' ry='64' fill='%230d2009'/%3E%3Crect x='1374' y='172' width='12' height='60' fill='%230a1806'/%3E%3Cpath d='M0 175 Q360 162 720 168 Q1080 175 1440 164 L1440 220 L0 220 Z' fill='%23071205' opacity='0.55'/%3E%3C/svg%3E") no-repeat bottom;
  background-size: 100% 100%;
  z-index: 0;
  pointer-events: none;
}

footer > * {
  position: relative;
  z-index: 1;
}

.footer-grille {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 40px;
  max-width: 1100px;
  margin: 0 auto 40px;
}

.footer-grille h4 {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--or);
  margin-bottom: 18px;
}

.footer-grille h3 {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  color: white;
  margin-bottom: 14px;
}

.footer-grille p, .footer-grille a {
  font-size: 13px;
  color: #a8d5a8;
  line-height: 1.8;
  text-decoration: none;
  display: block;
}

.footer-grille a:hover {
  color: white;
}

.footer-bas {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: 25px;
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.footer-bas p {
  font-size: 12px;
  color: #6aad6a;
}

.footer-coordonnee { display: flex !important; align-items: center; gap: 9px; }
.footer-coordonnee svg, .footer-signature svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-coordonnee a { display: inline; color: inherit; }
.footer-signature { display: flex; align-items: center; gap: 6px; }

/* Footer narratif : la scène reste présente, le contenu redevient prioritaire */
.footer-narratif { padding: 46px 40px 24px; background-color: #0b2711; }
.footer-narratif::before { opacity: .82; }
.footer-narratif::after { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(180deg,rgba(1,17,10,.22),transparent 34%,rgba(2,20,7,.08) 65%,rgba(2,15,5,.2)); }
.footer-narratif .footer-grille { grid-template-columns: minmax(320px,1.65fr) minmax(150px,.7fr) minmax(270px,1fr); gap: clamp(44px,6vw,90px); max-width: 1160px; margin-bottom: 26px; }
.footer-narratif .footer-grille nav {
  position: static;
  inset: auto;
  z-index: auto;
  display: block;
  width: auto;
  height: auto;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.footer-narratif .footer-grille nav a { width: max-content; margin-bottom: 4px; }
.footer-narratif .footer-grille nav a[aria-current="page"] { color: white; }
.footer-narratif .footer-grille nav a[aria-current="page"]::after { content: ''; display: inline-block; width: 16px; height: 1px; margin: 0 0 3px 8px; background: #f09a5b; }
.footer-identite-logo { display: inline-flex !important; align-items: center; gap: 18px; color: white !important; }
.footer-identite-logo img { width: 76px; height: 76px; padding: 4px; object-fit: contain; background: #fffaf0; border-radius: 50%; }
.footer-identite-logo span { display: grid; gap: 2px; }
.footer-identite-logo strong { color: #fffdf7; font: 700 29px/1.05 'Playfair Display',serif; }
.footer-identite-logo small { color: #f1aa73; font: 700 9px/1.3 'Montserrat',sans-serif; letter-spacing: 1.55px; text-transform: uppercase; }
.footer-identite > p { max-width: 430px; margin-top: 18px; color: #c4d8c6; }
.footer-narratif .footer-grille h4 { color: #f09a5b; }
.footer-narratif .footer-grille p,
.footer-narratif .footer-grille a { color: #c4d8c6; }
.footer-narratif .footer-grille a:hover { color: white; }
.footer-disponibilite { margin: 2px 0 9px; color: #f0c29e !important; font: 600 8px/1.4 'Montserrat',sans-serif !important; letter-spacing: 1px; text-transform: uppercase; }
.footer-action-whatsapp { display: inline-flex !important; align-items: center; gap: 8px; width: max-content; margin-top: 2px; padding: 9px 13px; color: white !important; background: #0e4926; border: 1px solid rgba(226,243,228,.42); border-radius: 3px; box-shadow: 0 6px 16px rgba(0,0,0,.12); font: 700 9px/1 'Montserrat',sans-serif; }
.footer-action-whatsapp svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-narratif a:focus-visible { outline: 2px solid #f3ae78; outline-offset: 4px; }
.footer-contact-narratif { min-width: 0; }
.footer-contact-narratif a { overflow-wrap: anywhere; }
.footer-narratif .footer-bas { position: relative; max-width: 1160px; padding-top: 18px; border-top: 0; }
.footer-narratif .footer-bas::before { content: ''; position: absolute; top: 0; right: 0; left: 0; height: 1px; background: linear-gradient(90deg,rgba(255,255,255,.13) 0 45%,transparent 45% 55%,rgba(255,255,255,.13) 55% 100%); }
.footer-narratif .footer-bas p { color: #8fb895; }

@media (max-width: 768px) {
  .footer-narratif .footer-grille { grid-template-columns: 1fr 1fr; gap: 34px 28px; }
  .footer-identite { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .footer-narratif { padding: 42px 20px 24px; }
  .footer-narratif .footer-grille { grid-template-columns: 1fr; gap: 28px; margin-bottom: 30px; }
  .footer-identite { grid-column: auto; }
  .footer-identite-logo { gap: 12px; }
  .footer-identite-logo img { width: 58px; height: 58px; padding: 3px; }
  .footer-identite-logo strong { font-size: 21px; }
  .footer-identite-logo small { font-size: 7px; letter-spacing: 1.1px; }
  .footer-narratif .footer-bas { align-items: flex-start; text-align: left; }
}

/* Séjours — page éditoriale d'avant-ouverture */
.page-sejours-pro { background: #f4efe4; }
.page-sejours-pro main { overflow: hidden; }
.page-sejours-pro .btn-orange, .page-activites-pro .btn-orange { color: #fff; background: #cf6d2a; border-color: #cf6d2a; box-shadow: 0 12px 28px rgba(151,70,21,.18); }
.page-sejours-pro .btn-orange:hover, .page-activites-pro .btn-orange:hover { color: #fff; background: #b9591c; border-color: #b9591c; transform: translateY(-2px); }
.sejours-hero {
  display: grid; grid-template-columns: minmax(0, .94fr) minmax(430px, 1.06fr);
  min-height: 690px; background: #f4efe4;
}
.sejours-hero-texte { display: flex; flex-direction: column; justify-content: center; padding: 90px max(42px, calc((100vw - 1160px)/2)) 82px max(42px, calc((100vw - 1160px)/2)); }
.sejours-surtitre { margin: 0 0 18px; color: #7a5c3a; font: 700 10px/1.2 'Montserrat',sans-serif; letter-spacing: 3px; text-transform: uppercase; }
.sejours-hero h1, .sejours-section-entete h2, .sejours-formules h2, .sejours-demarche h2, .sejours-cta h2 { margin: 0; color: #145823; font: 700 clamp(46px,5vw,76px)/.98 'Playfair Display',serif; letter-spacing: -2.5px; }
.sejours-intro { max-width: 570px; margin: 30px 0 0; color: #5d685e; font: 400 15px/1.8 'Montserrat',sans-serif; }
.sejours-hero-actions { display: flex; align-items: center; gap: 27px; margin-top: 34px; }
.sejours-hero-actions .btn { padding: 16px 21px; font-size: 10px; letter-spacing: 1px; }
.sejours-lien { color: #174f24; font: 600 10px/1.4 'Montserrat',sans-serif; border-bottom: 1px solid rgba(23,79,36,.35); padding-bottom: 5px; }
.sejours-lien span { margin-left: 8px; color: #174f24; }
.sejours-statut { display: flex; align-items: center; gap: 9px; margin: 38px 0 0; color: #6c766e; font: 600 9px/1.4 'Montserrat',sans-serif; letter-spacing: .7px; text-transform: uppercase; }
.sejours-statut span { width: 7px; height: 7px; background: #cf6d2a; border-radius: 50%; box-shadow: 0 0 0 5px rgba(207,109,42,.12); }
.sejours-hero-visuel { position: relative; min-height: 690px; background: #163f23; }
.sejours-hero-visuel::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,rgba(17,54,29,.2),transparent 45%),linear-gradient(0deg,rgba(7,31,17,.44),transparent 55%); pointer-events: none; }
.sejours-photo-principale { position: absolute; inset: 0; margin: 0; }
.sejours-photo-principale img { width: 100%; height: 100%; object-fit: cover; object-position: center 46%; }
.sejours-photo-principale figcaption { position: absolute; z-index: 2; right: 32px; bottom: 26px; color: white; font: italic 400 18px/1 'Playfair Display',serif; }
.sejours-photo-secondaire { position: absolute; z-index: 2; left: -62px; bottom: 45px; width: 190px; height: 250px; margin: 0; padding: 7px; background: #fffdf8; box-shadow: 0 18px 44px rgba(16,44,24,.25); transform: rotate(-2deg); }
.sejours-photo-secondaire img { width: 100%; height: 100%; object-fit: cover; }

.sejours-experience { padding: 110px max(28px,calc((100vw - 1160px)/2)); background: #fffdf8; }
.sejours-section-entete { display: grid; grid-template-columns: 1fr .72fr; align-items: end; gap: 80px; margin-bottom: 50px; }
.sejours-section-entete h2, .sejours-formules h2, .sejours-demarche h2 { font-size: clamp(40px,4vw,59px); }
.sejours-section-entete > p { max-width: 450px; margin: 0 0 3px; color: #687269; font: 400 13px/1.75 'Montserrat',sans-serif; }
.sejours-recit-photos { display: grid; grid-template-columns: 1.25fr .9fr .9fr; gap: 14px; }
.sejours-recit { position: relative; height: 370px; margin: 0; overflow: hidden; background: #173e22; }
.sejours-recit img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.sejours-recit::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent,rgba(4,26,13,.82)); }
.sejours-recit:hover img { transform: scale(1.025); }
.sejours-recit figcaption { position: absolute; z-index: 2; left: 24px; right: 20px; bottom: 22px; display: grid; color: white; }
.sejours-recit figcaption span { color: #d6dfd8; font: 700 9px/1 'Montserrat',sans-serif; letter-spacing: 2px; }
.sejours-recit figcaption strong { margin: 7px 0 3px; font: 700 25px/1.1 'Playfair Display',serif; }
.sejours-recit figcaption small { color: #d6dfd8; font: 500 9px/1.4 'Montserrat',sans-serif; }

.sejours-formules { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(55px,8vw,120px); padding: 110px max(28px,calc((100vw - 1160px)/2)); background: #f4efe4; }
.sejours-formules-intro { position: sticky; top: 130px; align-self: start; }
.sejours-formules-intro > p:last-child { max-width: 390px; margin: 27px 0 0; color: #687269; font: 400 12px/1.75 'Montserrat',sans-serif; }
.sejours-liste { border-top: 1px solid #cfbea6; }
.sejours-liste article { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 18px; min-height: 108px; padding: 17px 3px; border-bottom: 1px solid #cfbea6; }
.sejours-liste svg { width: 42px; height: 42px; padding: 9px; box-sizing: border-box; border-radius: 50%; background: rgba(23,97,39,.08); fill: none; stroke: #176127; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.sejours-liste h3 { margin: 0 0 5px; color: #183c22; font: 700 20px/1.2 'Playfair Display',serif; }
.sejours-liste p { margin: 0; color: #565f57; font: 400 12px/1.55 'Montserrat',sans-serif; }
.sejours-liste article > span { margin-left: 15px; padding: 7px 10px; color: #7a4d2b; background: #eee2d2; font: 700 9px/1 'Montserrat',sans-serif; letter-spacing: 1.2px; text-transform: uppercase; white-space: nowrap; }

.sejours-demarche { padding: 95px max(28px,calc((100vw - 1160px)/2)); color: white; background: #0b3a1e; }
.sejours-demarche > div { margin-bottom: 44px; }
.sejours-demarche h2 { color: white; }
.sejours-demarche .sejours-surtitre, .activites-cta .sejours-surtitre { color: #d9a668; }
.sejours-demarche ol { display: grid; grid-template-columns: repeat(3,1fr); gap: 42px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.sejours-demarche li { display: grid; grid-template-columns: 64px 1fr; align-items: start; gap: 18px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.25); }
.sejours-demarche li > span { color: #e88948; font: 700 44px/1 'Playfair Display',serif; opacity: .6; }
.sejours-demarche strong { display: block; margin-top: 4px; font: 700 19px/1.3 'Playfair Display',serif; }
.sejours-demarche li p { margin: 8px 0 0; color: #b9cbbd; font: 400 12px/1.6 'Montserrat',sans-serif; }

.sejours-cta { display: grid; grid-template-columns: 1fr .72fr; align-items: center; gap: 80px; padding: 95px max(28px,calc((100vw - 1160px)/2)); background: #e9ddcb; }
.sejours-cta h2 { font-size: clamp(40px,4vw,58px); }
.sejours-cta > div:last-child p { max-width: 430px; margin: 0 0 23px; color: #5f695f; font: 400 12px/1.7 'Montserrat',sans-serif; }
.sejours-cta .btn { display: inline-flex; align-items: center; gap: 9px; }
.sejours-cta .btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; }

@media (max-width: 950px) {
  .sejours-hero { grid-template-columns: 1fr; }
  .sejours-hero-texte { min-height: auto; padding: 85px max(28px,calc((100vw - 720px)/2)) 75px; }
  .sejours-hero-visuel { min-height: 580px; }
  .sejours-photo-secondaire { left: 28px; bottom: 30px; }
  .sejours-section-entete, .sejours-formules, .sejours-cta { grid-template-columns: 1fr; gap: 40px; }
  .sejours-formules-intro { position: static; }
  .sejours-recit-photos { grid-template-columns: 1fr 1fr; }
  .sejours-recit.grand { grid-column: 1/-1; }
}
@media (max-width: 620px) {
  .sejours-hero-texte { padding: 65px 22px 58px; }
  .sejours-hero h1 { font-size: 48px; letter-spacing: -1.5px; }
  .sejours-hero-actions { align-items: flex-start; flex-direction: column; }
  .sejours-hero-actions .btn { width: 100%; text-align: center; }
  .sejours-hero-visuel { min-height: 500px; }
  .sejours-photo-secondaire { width: 130px; height: 175px; }
  .sejours-experience, .sejours-formules, .sejours-demarche, .sejours-cta { padding: 72px 20px; }
  .sejours-section-entete { gap: 25px; }
  .sejours-section-entete h2, .sejours-formules h2, .sejours-demarche h2, .sejours-cta h2 { font-size: 40px; letter-spacing: -1px; }
  .sejours-recit-photos { grid-template-columns: 1fr; }
  .sejours-recit.grand { grid-column: auto; }
  .sejours-recit { height: 300px; }
  .sejours-liste article { grid-template-columns: 42px 1fr; }
  .sejours-liste article > span { grid-column: 2; width: max-content; margin: -8px 0 0; }
  .sejours-demarche ol { grid-template-columns: 1fr; gap: 27px; }
}

/* Activités — hero et CTA alignés sur le nouveau système visuel */
.page-activites-pro main { overflow: hidden; }

.activites-hero-pro {
  display: grid; grid-template-columns: minmax(0, .94fr) minmax(400px, 1.06fr);
  min-height: 620px; background: #f4efe4;
}
.activites-hero-pro-texte { display: flex; flex-direction: column; justify-content: center; padding: 90px max(42px, calc((100vw - 1160px)/2)) 82px max(42px, calc((100vw - 1160px)/2)); }
.activites-hero-pro-texte .sejours-surtitre { margin-bottom: 18px; }
.activites-hero-pro-texte h1 { margin: 0; color: #145823; font: 700 clamp(46px,5vw,72px)/.98 'Playfair Display',serif; letter-spacing: -2.5px; }
.activites-hero-pro-texte h1 em { font-style: italic; }
.activites-hero-pro-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.activites-hero-pro-pills span { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; color: #145823; background: rgba(23,79,36,.08); border-radius: 30px; font: 600 10px/1 'Montserrat',sans-serif; letter-spacing: .3px; }
.activites-hero-pro-pills i { color: #145823; font-size: 11px; }
.activites-hero-visuel { position: relative; min-height: 620px; background: #163f23; }
.activites-hero-visuel::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,rgba(17,54,29,.2),transparent 45%),linear-gradient(0deg,rgba(7,31,17,.44),transparent 55%); pointer-events: none; }
.activites-photo-principale { position: absolute; inset: 0; margin: 0; }
.activites-photo-principale img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.activites-photo-principale figcaption { position: absolute; z-index: 2; right: 32px; bottom: 26px; color: white; font: italic 400 18px/1 'Playfair Display',serif; }
.activites-photo-secondaire { position: absolute; z-index: 2; left: -62px; bottom: 45px; width: 190px; height: 250px; margin: 0; padding: 7px; background: #fffdf8; box-shadow: 0 18px 44px rgba(16,44,24,.25); transform: rotate(-2deg); }
.activites-photo-secondaire img { width: 100%; height: 100%; object-fit: cover; }

.activite-icone-badge { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0; }
.activite-icone-badge i { font-size: 17px; }

.activites-cta { display: grid; grid-template-columns: 1fr .72fr; align-items: center; gap: 80px; padding: 90px max(28px,calc((100vw - 1160px)/2)); background: #0b3a1e; color: white; }
.activites-cta h2 { margin: 0; color: white; font: 700 clamp(36px,4vw,52px)/1.05 'Playfair Display',serif; letter-spacing: -1.5px; }
.activites-cta > div:last-child p { max-width: 400px; margin: 0 0 20px; color: #b9cbbd; font: 400 13px/1.7 'Montserrat',sans-serif; }
.activites-cta .btn { display: inline-flex; align-items: center; gap: 9px; }
.activites-cta .btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; }

@media (max-width: 900px) {
  .activites-hero-pro, .activites-cta { grid-template-columns: 1fr; gap: 40px; }
  .activites-hero-pro-texte { min-height: auto; padding: 85px max(28px,calc((100vw - 720px)/2)) 75px; }
  .activites-hero-visuel { min-height: 480px; }
  .activites-photo-secondaire { left: 28px; bottom: 30px; }
}
@media (max-width: 768px) {
  .activites-hero-pro-texte { padding: 65px 22px 58px; }
  .activites-hero-pro-texte h1 { font-size: 44px; letter-spacing: -1.2px; }
  .activites-cta { padding: 68px 22px; }
}
@media (max-width: 520px) {
  .activites-photo-secondaire { width: 130px; height: 175px; }
}

.reseaux {
  display: flex;
  gap: 10px;
  margin-top: 15px;
}

.reseaux a {
  font-size: 12px !important;
  border: 1px solid #2d7a2d;
  padding: 5px 12px !important;
  border-radius: 50px;
  color: #a8d5a8 !important;
  transition: all 0.2s;
}

.reseaux a:hover {
  background: #2d7a2d;
  color: white !important;
}

/* ============================================
   CTA SECTION
   ============================================ */
.cta-section {
  background: linear-gradient(135deg, #1a5c1a, #2d7a2d);
  text-align: center;
  padding: 80px 40px;
}

.cta-section h2 {
  font-family: 'Playfair Display', serif;
  font-size: 46px;
  font-weight: 900;
  color: white;
  margin-bottom: 15px;
}

.cta-section p {
  font-family: 'Montserrat', sans-serif;
  color: #c5e5c5;
  font-size: 15px;
  margin-bottom: 35px;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.cta-boutons {
  display: flex;
  gap: 15px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ============================================
   CONFIRMATION (réservation envoyée)
   ============================================ */
.confirmation {
  display: none;
  text-align: center;
  padding: 50px 20px;
}

.confirmation .emoji-ok {
  font-size: 70px;
  display: block;
  margin-bottom: 20px;
}

.confirmation h3 {
  font-family: 'Playfair Display', serif;
  font-size: 30px;
  color: var(--vert-fonce);
  margin-bottom: 10px;
}

.confirmation p {
  color: var(--texte-gris);
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 25px;
}

/* ============================================
   RESPONSIVE MOBILE
   ============================================ */
@media (max-width: 768px) {
  section { padding: 60px 20px; }

  nav { padding: 0 18px; height: 65px; }
  nav .logo-img { width: 44px; height: 44px; }
  nav .logo-texte,
  nav .logo-texte span { font-size: 15px; letter-spacing: 0.8px; }
  .nav-liens { display: none; }
  .nav-tel { display: none; }
  .burger { display: flex; }
  .nav-mobile {
    top: 65px;
    max-height: calc(100vh - 65px);
    padding: 12px 16px 24px;
  }

  .hero h1 { font-size: 38px; letter-spacing: 2px; }
  .hero .tagline { font-size: 16px; }

  .grille-3 { grid-template-columns: 1fr; }
  .grille-2 { grid-template-columns: 1fr; }

  .chiffres { grid-template-columns: 1fr 1fr; }

  .galerie-grille { columns: 2; }

  .footer-grille { grid-template-columns: 1fr; gap: 25px; }
  .footer-bas { flex-direction: column; gap: 8px; text-align: center; }

  .ligne-2 { grid-template-columns: 1fr; }
  .ligne-3 { grid-template-columns: 1fr; }

  .page-header h1 { font-size: 36px; }

  .titre-section h2 { font-size: 32px; }
}

/* ============================================
   À PROPOS — ÉDITORIAL
   ============================================ */
.section-ardoise { padding: 60px 40px; background: #1c2b1e; background-image: radial-gradient(circle at 15% 20%, rgba(255,255,255,.03), transparent 40%), radial-gradient(circle at 85% 80%, rgba(255,255,255,.03), transparent 40%); }
.ardoise-label { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--or); font: 700 11px 'Montserrat', sans-serif; letter-spacing: 2px; text-transform: uppercase; }
.ardoise-titre { margin: 0 0 30px; color: #fdfbf3; font-size: clamp(28px, 3vw, 38px); }
.ardoise-liste { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 4px 40px; }
.ardoise-item { display: flex; align-items: baseline; gap: 12px; padding: 14px 0; border-bottom: 1px dashed rgba(253,251,243,.2); }
.ardoise-item .nom { flex: 1; color: #fdfbf3; font: 700 16px 'Playfair Display', serif; }
.ardoise-item .desc { display: block; margin-top: 3px; color: #a8b8ab; font: 400 12px 'Montserrat', sans-serif; }
.ardoise-item .prix { color: var(--or); font: 700 14px 'Montserrat', sans-serif; white-space: nowrap; }

.section-annonces { padding: 60px 40px; }
.section-annonces .label { display: block; margin-bottom: 8px; }
.section-annonces h2 { margin: 0 0 30px; color: var(--vert-fonce); font-size: clamp(30px, 3vw, 40px); }
.annonces-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 22px; }
.annonce-carte { display: flex; flex-direction: column; overflow: hidden; background: white; border-radius: 18px; box-shadow: 0 4px 20px rgba(0,0,0,0.06); text-decoration: none; color: inherit; transition: transform .25s, box-shadow .25s; }
.annonce-carte:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(0,0,0,0.1); }
.annonce-carte img { width: 100%; height: 170px; object-fit: cover; display: block; }
.annonce-carte .contenu { padding: 20px 22px 24px; }
.annonce-carte h3 { margin: 0 0 8px; color: var(--vert-fonce); font-size: 19px; }
.annonce-carte p { margin: 0; color: #5d685e; font-size: 13px; line-height: 1.6; }

.section-apropos {
  position: relative;
  padding: 72px 40px 82px;
  background:
    radial-gradient(circle at 82% 28%, rgba(74, 158, 90, 0.07), transparent 30%),
    linear-gradient(180deg, #f7f2e8 0%, #f4eee3 100%);
  overflow: hidden;
}

.section-apropos::before {
  content: '';
  position: absolute;
  width: 440px;
  height: 440px;
  right: -190px;
  top: -190px;
  border: 1px solid rgba(43, 105, 55, 0.1);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(43, 105, 55, 0.025), 0 0 0 140px rgba(43, 105, 55, 0.018);
  pointer-events: none;
}

.section-apropos .container {
  position: relative;
  z-index: 1;
}

.apropos-grille {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
  gap: clamp(52px, 6vw, 92px);
  align-items: center;
}

.apropos-texte { max-width: 660px; }

.apropos-texte .label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #51705a;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2.2px;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.apropos-texte .label::before {
  content: '';
  width: 28px;
  height: 1.5px;
  background: var(--or);
  border-radius: 2px;
}

.apropos-texte h2 {
  font-size: clamp(40px, 3.5vw, 52px);
  font-weight: 900;
  color: var(--vert-fonce);
  line-height: 1.06;
  margin-bottom: 0;
  text-wrap: balance;
}

.apropos-texte h2 em {
  font-family: 'Great Vibes', cursive;
  font-style: normal;
  font-weight: 400;
  color: var(--or);
  font-size: 1.34em;
  line-height: 1;
}

.apropos-ligne-deco {
  width: 56px;
  height: 3px;
  background: var(--or);
  margin: 22px 0 26px;
  border-radius: 2px;
}

.apropos-texte p {
  color: #525b54;
  line-height: 1.78;
  font-size: 15.5px;
  margin-bottom: 16px;
  max-width: 620px;
}

.apropos-citation {
  position: relative;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 18px;
  color: var(--vert-fonce);
  border-left: 3px solid var(--or);
  padding: 18px 24px 18px 52px;
  margin: 24px 0 26px;
  line-height: 1.55;
  max-width: 540px;
  background: rgba(255, 255, 255, 0.48);
  border-radius: 0 14px 14px 0;
}

.apropos-citation::before {
  content: '“';
  position: absolute;
  left: 18px;
  top: 4px;
  color: rgba(224, 123, 57, 0.72);
  font-family: Georgia, serif;
  font-size: 48px;
  font-style: normal;
  line-height: 1;
}

.apropos-texte .btn-vert-contour {
  background: var(--vert-fonce);
  color: white;
  border-color: var(--vert-fonce);
  box-shadow: 0 12px 28px rgba(18, 79, 32, 0.2);
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.apropos-texte .btn-vert-contour:hover {
  background: #236f35;
  border-color: #236f35;
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(18, 79, 32, 0.26);
}

.apropos-photo {
  position: relative;
  margin: 0;
  min-height: 510px;
  border-radius: 28px;
  overflow: hidden;
  background: #dce6d8;
  border: 1px solid rgba(255, 255, 255, 0.72);
  box-shadow: 0 30px 68px rgba(31, 60, 34, 0.2), 0 0 0 8px rgba(255,255,255,0.25);
}

.apropos-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 54%, rgba(4, 28, 13, 0.48) 100%);
}

.apropos-photo img {
  width: 100%;
  height: 100%;
  min-height: 510px;
  display: block;
  object-fit: cover;
  object-position: center;
  transition: transform 0.6s ease;
}

.apropos-photo:hover img { transform: scale(1.025); }

.apropos-badge {
  position: absolute;
  z-index: 2;
  top: 22px;
  left: 22px;
  display: flex;
  align-items: center;
  gap: 13px;
  background: rgba(247, 242, 232, 0.94);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 16px;
  padding: 12px 20px 12px 14px;
  box-shadow: 0 16px 32px rgba(18, 40, 20, 0.24);
}

.apropos-badge-icone {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--vert-fonce);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

.apropos-badge-texte {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.apropos-badge-nombre {
  font-family: 'Playfair Display', serif;
  font-weight: 900;
  font-size: 18px;
  color: var(--vert-fonce);
}

.apropos-badge-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: #6a7a6d;
}

.apropos-photo figcaption {
  position: absolute;
  z-index: 1;
  left: 22px;
  right: 22px;
  bottom: 22px;
  color: white;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 19px;
  line-height: 1.35;
  text-shadow: 0 2px 12px rgba(0,0,0,0.35);
  padding: 17px 19px 18px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 15px;
  background: rgba(5, 40, 18, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.16);
}

.apropos-photo figcaption span {
  display: block;
  margin-bottom: 8px;
  color: #dfeeda;
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2.2px;
  text-transform: uppercase;
}

.apropos-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.apropos-stat {
  min-height: 166px;
  padding: 30px 26px;
  border: 1px solid rgba(33, 95, 47, 0.12);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 14px 34px rgba(48, 71, 41, 0.07);
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.apropos-stat:hover {
  transform: translateY(-3px);
  border-color: rgba(33, 95, 47, 0.22);
  box-shadow: 0 18px 42px rgba(48, 71, 41, 0.11);
}

.stat-nombre {
  font-family: 'Playfair Display', serif;
  font-size: 48px;
  font-weight: 900;
  color: var(--vert-fonce);
  line-height: 1;
  margin-bottom: 8px;
}

.stat-barre {
  width: 28px;
  height: 2px;
  background: var(--or);
  margin-bottom: 8px;
  border-radius: 2px;
}

.stat-label {
  font-size: 12.5px;
  color: #687168;
  font-weight: 600;
  font-family: 'Montserrat', sans-serif;
}

/* ============================================
   SÉJOURS — LAYOUT ÉDITORIAL
   ============================================ */
.section-sejours { padding: 80px 40px; }

.sejours-entete {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 40px;
  flex-wrap: wrap;
  gap: 15px;
}

.lien-voir-tout {
  color: rgba(255,255,255,0.7);
  font-size: 13px;
  font-family: 'Montserrat', sans-serif;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,0.3);
  padding: 9px 22px;
  border-radius: 50px;
  transition: all 0.2s;
  white-space: nowrap;
}

.lien-voir-tout:hover {
  background: rgba(255,255,255,0.1);
  color: white;
}

.sejours-layout {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 24px;
  align-items: start;
}

.sejour-featured {
  background: white;
  border-radius: 24px;
  padding: 40px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.12);
}

.sejour-featured-badge {
  position: absolute;
  top: 24px;
  right: 24px;
  background: var(--or);
  color: white;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 50px;
  font-family: 'Montserrat', sans-serif;
}

.sejour-icon-top {
  font-size: 40px;
  color: var(--vert-fonce);
}

.sejour-featured h3 {
  font-size: 30px;
  color: var(--vert-fonce);
  margin: 0;
}

.sejour-featured p {
  color: #666;
  font-size: 14px;
  line-height: 1.8;
  margin: 0;
}

.sejour-featured-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0;
}

.sejour-featured-tags li {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--vert-fonce);
  background: var(--vert-pale);
  padding: 5px 14px;
  border-radius: 50px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
}

.sejour-featured-tags li i {
  font-size: 10px;
  color: var(--vert-moyen);
}

.sejour-featured-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 20px;
  border-top: 1px solid #f0f0f0;
  margin-top: auto;
}

.sejour-prix {
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  font-weight: 900;
  color: var(--vert-fonce);
}

.sejour-prix span {
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  color: #666;
  font-weight: 400;
}

.sejours-secondaires {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sejour-mini {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 16px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  transition: background 0.2s;
}

.sejour-mini:hover { background: rgba(255,255,255,0.18); }

.sejour-mini > i {
  font-size: 26px;
  color: var(--or);
  flex-shrink: 0;
  width: 32px;
  text-align: center;
}

.sejour-mini h4 {
  font-size: 15px;
  color: white;
  margin: 0 0 2px;
  font-family: 'Playfair Display', serif;
}

.sejour-mini p {
  font-size: 12px;
  color: rgba(255,255,255,0.6);
  margin: 0 0 3px;
}

.sejour-mini span {
  font-size: 11px;
  color: var(--or);
  font-weight: 600;
  font-family: 'Montserrat', sans-serif;
}

.sejour-mini-arrow {
  margin-left: auto;
  color: rgba(255,255,255,0.4);
  font-size: 18px;
  flex-shrink: 0;
}

.sejour-voir-plus {
  background: rgba(255,255,255,0.05);
  border: 1px dashed rgba(255,255,255,0.2);
  border-radius: 16px;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.sejour-voir-plus span {
  color: rgba(255,255,255,0.5);
  font-size: 13px;
  font-family: 'Montserrat', sans-serif;
}

/* ============================================
   ACTIVITÉS — LISTE ÉDITORIALE
   ============================================ */
.section-activites { padding: 90px 40px; }

.activites-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 50px;
  gap: 30px;
  flex-wrap: wrap;
}

.activites-header h2 {
  font-size: 46px;
  color: var(--vert-fonce);
  margin: 6px 0 0;
}

.activites-intro {
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 18px;
  color: #666;
  line-height: 1.6;
  text-align: right;
  margin: 0;
}

.activites-liste {
  display: flex;
  flex-direction: column;
}

.activite-ligne {
  display: grid;
  grid-template-columns: 60px 1fr auto auto auto;
  align-items: center;
  gap: 24px;
  padding: 26px 0;
  border-bottom: 1px solid #e2d9cc;
  text-decoration: none;
  transition: background 0.2s, padding 0.2s;
  border-radius: 8px;
  cursor: pointer;
}

.activite-ligne:first-child { border-top: 1px solid #e2d9cc; }

.activite-ligne:hover {
  background: white;
  padding: 26px 20px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  border-bottom-color: transparent;
  border-top-color: transparent;
}

.activite-num {
  font-family: 'Playfair Display', serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--or);
  letter-spacing: 1px;
  flex-shrink: 0;
}

.activite-contenu h3 {
  font-family: 'Playfair Display', serif;
  font-size: 22px;
  color: var(--vert-fonce);
  margin: 0 0 4px;
  font-weight: 700;
  transition: color 0.2s;
}

.activite-contenu {
  min-width: 0;
}

.activite-ligne:hover .activite-contenu h3 {
  color: var(--vert-moyen);
}

.activite-contenu p {
  font-size: 13px;
  color: #666;
  margin: 0;
  font-family: 'Montserrat', sans-serif;
}

.activite-tag {
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #666;
  white-space: nowrap;
}

.activite-icone-ligne {
  font-size: 20px;
  width: 24px;
  text-align: center;
  flex-shrink: 0;
}

.activite-fleche {
  font-size: 18px;
  color: #ccc;
  flex-shrink: 0;
  transition: color 0.2s, transform 0.2s;
  display: inline-block;
}

.activite-ligne:hover .activite-fleche {
  color: var(--vert-moyen);
  transform: translateX(4px);
}

.activite-details {
  display: flex;
  gap: 20px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.activite-details span {
  font-size: 11px;
  color: #666;
  font-weight: 500;
  letter-spacing: 0.3px;
}

.activite-details span i {
  margin-right: 4px;
  color: var(--or);
}

/* ============================================
   HERO ACTIVITÉS — ÉDITORIAL SPLIT
   ============================================ */
.activites-hero {
  position: relative;
  min-height: 72vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  padding: 0 !important;
  margin-top: 75px;
}

.activites-hero-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 70% at 10% 80%, rgba(45,122,45,0.4) 0%, transparent 55%),
    radial-gradient(ellipse 50% 50% at 85% 15%, rgba(26,92,26,0.45) 0%, transparent 55%),
    linear-gradient(155deg, #071a07 0%, #0d2e0d 50%, #173717 100%);
  z-index: 0;
}

.activites-hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 32px 32px;
}

.activites-hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 60px;
  padding-top: 80px;
  padding-bottom: 100px;
}

.activites-hero-texte {
  max-width: 560px;
}

.activites-hero-titre {
  font-family: 'Playfair Display', serif;
  font-size: 64px;
  font-weight: 900;
  color: white;
  line-height: 1.1;
  margin: 12px 0 20px;
}

.activites-hero-titre em {
  font-family: 'Great Vibes', cursive;
  font-weight: 400;
  font-size: 80px;
  color: var(--or);
  font-style: normal;
  display: block;
  line-height: 1;
  margin-top: 4px;
}

.activites-hero-desc {
  color: rgba(255,255,255,0.7);
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 28px;
  max-width: 460px;
}

.activites-hero-pills {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}

.activites-hero-pills span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.85);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  padding: 7px 14px;
  border-radius: 50px;
  backdrop-filter: blur(4px);
}

.activites-hero-pills span i {
  color: var(--or);
}

/* Bloc droite */
.activites-hero-droite {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

.activites-hero-grand-chiffre {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 20px;
  padding: 32px 40px;
  backdrop-filter: blur(8px);
  text-align: center;
}

.hero-chiffre {
  font-family: 'Playfair Display', serif;
  font-size: 88px;
  font-weight: 900;
  color: var(--or);
  line-height: 1;
}

.hero-chiffre-label {
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: rgba(255,255,255,0.5);
  margin-top: 6px;
  line-height: 1.5;
}

.activites-hero-cats {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.activite-cat-bloc {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  padding: 12px 18px;
  backdrop-filter: blur(4px);
}

.activite-cat-bloc i {
  color: var(--or);
  font-size: 14px;
  width: 16px;
}

.activite-cat-bloc span {
  color: rgba(255,255,255,0.7);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Vague de transition */
.activites-hero-vague {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 70px;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 1440 70' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0,35 Q360,70 720,35 Q1080,0 1440,35 L1440,70 L0,70 Z' fill='%23f5f0e6'/%3E%3C/svg%3E") no-repeat bottom;
  background-size: cover;
  z-index: 2;
}

/* ============================================
   CTA — ÉDITORIAL ASYMÉTRIQUE
   ============================================ */
.cta-section {
  position: relative;
}

.cta-pattern {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  z-index: 1;
}

.cta-contenu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 50px;
  flex-wrap: wrap;
}

.cta-texte { flex: 1; min-width: 280px; }

.cta-em {
  font-family: 'Great Vibes', cursive;
  font-style: normal;
  font-weight: 400;
  color: var(--or);
  font-size: 0.8em;
  display: block;
  line-height: 1.1;
}

.cta-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-start;
  flex-shrink: 0;
}

.cta-tel {
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 0;
  font-family: 'Montserrat', sans-serif;
}

/* ============================================
   RESPONSIVE NOUVELLES SECTIONS
   ============================================ */
@media (max-width: 900px) {
  .apropos-grille { grid-template-columns: 1fr; gap: 40px; }
  .sejours-layout { grid-template-columns: 1fr; }
  .activites-magazine { grid-template-columns: 1fr 1fr; }
  .activite-grande { grid-column: span 2; }
}

@media (max-width: 768px) {
  .section-apropos, .section-sejours, .section-activites { padding: 60px 20px; }
  .activites-magazine { grid-template-columns: 1fr; }
  .activite-grande { grid-column: span 1; }
  .activite-ligne { grid-template-columns: 30px minmax(0, 1fr) 58px 20px 18px; gap: 8px; }
  .activite-contenu h3 { font-size: 18px; }
  .activite-contenu p { font-size: 11px; line-height: 1.4; }
  .activite-tag { font-size: 8px; letter-spacing: 1px; }
  .cta-contenu { flex-direction: column; }
  .cta-texte h2 { text-align: center !important; }
  .cta-texte p { text-align: center !important; }
  .cta-actions { align-items: center; width: 100%; }
}

@media (max-width: 560px) {
  .apropos-texte h2 { font-size: 38px; }
  .apropos-citation { font-size: 17px; }
  .apropos-photo,
  .apropos-photo img { min-height: 390px; }
  .apropos-photo { border-radius: 20px; }
  .apropos-photo figcaption { left: 20px; right: 20px; bottom: 20px; font-size: 17px; }
  .apropos-badge { top: 16px; left: 16px; padding: 9px 16px 9px 10px; gap: 10px; }
  .apropos-badge-icone { width: 30px; height: 30px; font-size: 12px; }
  .apropos-badge-nombre { font-size: 15px; }
  .apropos-badge-label { font-size: 9px; }
}

/* ============================================
   ACCUEIL — SÉJOURS & ACTIVITÉS PHOTOGRAPHIQUES
   ============================================ */
.section-sejours { padding: 84px 40px 88px; }

.sejours-layout {
  grid-template-columns: minmax(0, 1.75fr) minmax(300px, 0.85fr);
  gap: 28px;
  align-items: stretch;
}

.sejour-featured {
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(330px, 1.05fr);
  min-height: 455px;
  padding: 0;
  gap: 0;
  overflow: hidden;
  border-radius: 24px;
}

.sejour-featured-photo {
  position: relative;
  min-height: 455px;
  margin: 0;
  overflow: hidden;
}

.sejour-featured-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 58%, rgba(5,36,16,0.25) 100%);
}

.sejour-featured-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 58% center;
  transition: transform 0.65s ease;
}

.sejour-featured:hover .sejour-featured-photo img { transform: scale(1.035); }

.sejour-featured-badge {
  z-index: 1;
  top: 22px;
  right: auto;
  left: 22px;
  background: rgba(224,123,57,0.94);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.sejour-featured-contenu {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  padding: 38px;
}

.sejour-kicker {
  color: #5c765f;
  font-family: 'Montserrat', sans-serif;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.7px;
  text-transform: uppercase;
}

.sejour-featured-contenu h3 { font-size: 34px; }
.sejour-featured-contenu p { line-height: 1.72; }
.sejour-featured-footer { gap: 18px; }
.sejour-prix { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 7px; }
.sejour-prix small { width: 100%; margin-bottom: 4px; color: #758078; font: 600 9px 'Montserrat', sans-serif; letter-spacing: 1.3px; text-transform: uppercase; }

.sejours-secondaires { gap: 14px; }

.sejour-mini {
  flex: 1;
  min-height: 132px;
  padding: 14px;
  gap: 15px;
  background: rgba(255,255,255,0.11);
  border-color: rgba(255,255,255,0.2);
}

.sejour-mini > img {
  width: 88px;
  height: 88px;
  flex: 0 0 88px;
  border-radius: 12px;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,0.18);
}

.sejour-mini h4 { font-size: 17px; margin-bottom: 5px; }
.sejour-mini p { color: rgba(255,255,255,0.72); line-height: 1.45; }
.sejour-mini span { color: #f39a55; }
.sejour-mini:hover { background: rgba(255,255,255,0.17); transform: translateY(-2px); }
.sejour-mini-arrow { color: rgba(255,255,255,0.68); }

.section-activites { padding: 84px 40px 88px; }
.activites-header { margin-bottom: 38px; }

.activites-showcase {
  display: grid;
  grid-template-columns: 1.18fr 0.82fr;
  grid-template-rows: 245px 245px;
  gap: 18px;
}

.activite-photo {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 22px;
  color: white;
  text-decoration: none;
  box-shadow: 0 18px 42px rgba(39,54,35,0.14);
}

.activite-photo-grande { grid-row: 1 / span 2; }
.activite-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 34%, rgba(3,29,12,0.84) 100%); }
.activite-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 0.65s ease; }
.activite-photo:hover img { transform: scale(1.045); }
.activite-photo-contenu { position: absolute; z-index: 1; left: 26px; right: 26px; bottom: 24px; }
.activite-photo-contenu span { display: block; margin-bottom: 7px; color: #e0ebd9; font: 700 9px 'Montserrat', sans-serif; letter-spacing: 1.8px; text-transform: uppercase; }
.activite-photo-contenu h3 { margin: 0 0 6px; color: white; font-size: 27px; }
.activite-photo-grande .activite-photo-contenu h3 { font-size: 34px; }
.activite-photo-contenu p { margin: 0; color: rgba(255,255,255,0.78); font-size: 12px; line-height: 1.5; }

.activites-compactes { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.activites-compactes a { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 16px; padding: 18px 20px; color: var(--vert-fonce); text-decoration: none; border: 1px solid #e3dbce; border-radius: 15px; background: rgba(255,255,255,0.48); transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.activites-compactes a:hover { transform: translateY(-2px); background: white; box-shadow: 0 12px 28px rgba(45,62,39,.09); }
.activites-compactes a > span { color: var(--or); font: 700 12px 'Montserrat', sans-serif; }
.activites-compactes strong { display: block; margin-bottom: 3px; font: 700 17px 'Playfair Display', serif; }
.activites-compactes small { color: #687168; font: 500 11px 'Montserrat', sans-serif; }
.activites-compactes b { color: #53735a; font: 700 10px 'Montserrat', sans-serif; text-transform: uppercase; letter-spacing: 1px; }

@media (max-width: 980px) {
  .sejours-layout { grid-template-columns: 1fr; }
  .sejours-secondaires { display: grid; grid-template-columns: repeat(3, 1fr); }
  .sejour-mini { min-width: 0; flex-direction: column; align-items: flex-start; }
  .sejour-mini-arrow { display: none; }
}

@media (max-width: 768px) {
  .sejour-featured { grid-template-columns: 1fr; }
  .sejour-featured-photo { min-height: 300px; }
  .sejour-featured-contenu { padding: 28px 24px; }
  .sejour-featured-footer { align-items: flex-start; flex-direction: column; }
  .sejour-featured-footer .btn { width: 100%; text-align: center; }
  .sejours-secondaires { grid-template-columns: 1fr; }
  .sejour-mini { min-height: 0; flex-direction: row; align-items: center; }
  .activites-header { align-items: flex-start; }
  .activites-intro { text-align: left; }
  .activites-showcase { grid-template-columns: 1fr; grid-template-rows: repeat(3, 290px); }
  .activite-photo-grande { grid-row: auto; }
  .activites-compactes { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .section-sejours, .section-activites { padding: 64px 18px; }
  .sejour-featured-photo { min-height: 250px; }
  .sejour-mini > img { width: 72px; height: 72px; flex-basis: 72px; }
  .activites-showcase { grid-template-rows: repeat(3, 250px); }
  .activites-compactes a { grid-template-columns: 32px 1fr; }
  .activites-compactes b { display: none; }
}

/* Photos documentaires — conserve les visuels existants du site */
.section-camp-reel {
  padding: 84px 40px 78px;
  background: #ffffff;
}

@media (max-width: 768px) {
  .section-camp-reel { padding: 62px 20px 58px; }
}

/* ============================================
   LA TABLE — ACCUEIL & PAGE MENU
   ============================================ */
.section-table-accueil { padding: 86px 40px; background: #f0e8dc; }
.table-accueil-grille { display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(48px, 6vw, 90px); }
.table-accueil-photo { position: relative; margin: 0; height: 500px; overflow: hidden; border-radius: 28px; box-shadow: 0 28px 62px rgba(44,39,25,.2); }
.table-accueil-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 62%, rgba(8,35,15,.58)); }
.table-accueil-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .7s ease; }
.table-accueil-photo:hover img { transform: scale(1.035); }
.table-accueil-photo span { position: absolute; z-index: 1; left: 24px; bottom: 22px; color: white; font: 700 9px 'Montserrat',sans-serif; letter-spacing: 2px; text-transform: uppercase; }
.table-accueil-contenu .label { color: var(--or); letter-spacing: 2px; }
.table-accueil-contenu h2 { margin: 12px 0 22px; color: var(--vert-fonce); font-size: clamp(38px,4vw,54px); line-height: 1.06; }
.table-accueil-contenu p { max-width: 520px; color: #566057; font-size: 15px; line-height: 1.8; }
.table-specialites { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 30px; }
.table-specialites span { padding: 7px 13px; color: var(--vert-fonce); background: rgba(255,255,255,.6); border: 1px solid rgba(26,92,26,.1); border-radius: 30px; font: 600 11px 'Montserrat',sans-serif; }

.table-hero { position: relative; height: 62vh; min-height: 520px; margin-top: 75px; overflow: hidden; display: flex; align-items: flex-end; }
.table-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 78%; }
.table-hero-voile { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,27,11,.86) 0%, rgba(3,27,11,.4) 55%, rgba(3,27,11,.12) 100%), linear-gradient(180deg, transparent 45%, rgba(3,27,11,.6)); }
.table-hero-contenu { position: relative; z-index: 1; width: 100%; padding-bottom: 72px; color: white; }
.table-hero-contenu span { font: 700 10px 'Montserrat',sans-serif; letter-spacing: 3px; text-transform: uppercase; color: #dcebd8; text-shadow: 0 2px 8px rgba(0,0,0,.55); }
.table-hero-contenu h1 { margin: 10px 0 12px; font-size: clamp(52px,7vw,86px); line-height: 1; text-shadow: 0 3px 3px rgba(0,0,0,.72), 0 8px 34px rgba(0,0,0,.72); }
.table-hero-contenu p { max-width: 620px; margin: 0; color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.7; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
.page-menu {
  position: relative;
  padding: 86px 40px;
  background:
    radial-gradient(circle at 88% 10%, rgba(224,123,57,0.07), transparent 32%),
    radial-gradient(circle at 6% 92%, rgba(26,92,26,0.06), transparent 38%),
    linear-gradient(180deg, #f7f2e8 0%, #f2ebde 100%);
  overflow: hidden;
}
.page-menu::before {
  content: '';
  position: absolute;
  width: 400px;
  height: 400px;
  right: -160px;
  top: -160px;
  border: 1px solid rgba(43,105,55,0.09);
  border-radius: 50%;
  box-shadow: 0 0 0 64px rgba(43,105,55,0.022), 0 0 0 128px rgba(43,105,55,0.016);
  pointer-events: none;
}
.page-menu > .container { position: relative; z-index: 1; }
.menu-intro { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 42px; }
.menu-intro h2 { margin: 8px 0 0; color: var(--vert-fonce); font-size: 42px; }
.menu-intro > p { max-width: 500px; margin: 0; color: #647067; font-size: 13px; line-height: 1.7; }
.menu-signatures { margin: 0 0 38px; padding: 30px; background: var(--vert-fonce); border-radius: 28px; box-shadow: 0 25px 56px rgba(25,61,29,.16); }
.menu-signatures-entete { display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; margin-bottom: 24px; color: white; }
.menu-signatures-entete span { color: #f29a5d; font: 800 9px 'Montserrat',sans-serif; letter-spacing: 2.2px; text-transform: uppercase; }
.menu-signatures-entete h2 { margin: 6px 0 0; color: white; font-size: clamp(28px,3vw,39px); }
.menu-signatures-entete p { max-width: 430px; margin: 0; color: rgba(255,255,255,.7); font: 500 12px/1.65 'Montserrat',sans-serif; }
.menu-signatures-grille { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 13px; }
.plat-signature { position: relative; min-height: 350px; overflow: hidden; border-radius: 19px; background: #102d18; isolation: isolate; }
.plat-signature img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.75,.25,1); }
.plat-signature:last-child img { object-position: center 55%; }
.plat-signature-voile { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(3,24,9,.03) 24%, rgba(3,24,9,.9) 100%); }
.plat-signature-contenu { position: absolute; inset: auto 20px 19px; color: white; }
.plat-signature-contenu span { display: inline-flex; margin-bottom: 7px; padding: 5px 9px; color: #153b1d; background: #f4e8d7; border-radius: 999px; font: 800 8px 'Montserrat',sans-serif; letter-spacing: 1px; text-transform: uppercase; }
.plat-signature-contenu h3 { margin: 0 0 2px; color: white; font-size: 26px; line-height: 1.1; }
.plat-signature-contenu p { margin: 0 0 11px; color: rgba(255,255,255,.76); font: 500 10px/1.4 'Montserrat',sans-serif; }
.plat-signature-contenu b { color: #ffc18f; font: 800 11px 'Montserrat',sans-serif; letter-spacing: .35px; }
.plat-signature:hover img { transform: scale(1.045); }
.menu-raccourcis { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 30px; }
.menu-raccourcis a { padding: 9px 15px; color: var(--vert-fonce); background: rgba(255,255,255,.62); border: 1px solid rgba(26,92,26,.17); border-radius: 999px; font: 700 10px 'Montserrat',sans-serif; text-decoration: none; transition: color .2s ease, background .2s ease, transform .2s ease; }
.menu-raccourcis a:hover { color: white; background: var(--vert-fonce); transform: translateY(-2px); }
.menu-grille { display: block; }
.menu-plats-groupes { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.menu-sous-groupe { min-width: 0; }
.menu-sous-groupe + .menu-sous-groupe { padding-left: 34px; border-left: 1px solid #e5dac8; }
.menu-sous-groupe h4 { margin: 0 0 8px; color: #dd732e; font: 800 10px 'Montserrat',sans-serif; letter-spacing: 1.7px; text-transform: uppercase; }
.menu-groupe-photos { display: grid; grid-template-columns: 1fr; gap: 9px; margin: 15px 0 16px; }
.menu-groupe-photos-double { grid-template-columns: 1fr 1fr; }
.menu-groupe-photos figure { position: relative; min-width: 0; height: 175px; margin: 0; overflow: hidden; border-radius: 14px; background: #d8ddcf; }
.menu-groupe-photos figure::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(180deg,transparent,rgba(4,28,10,.75)); pointer-events: none; }
.menu-groupe-photos img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .55s ease; }
.menu-groupe-photos figure:hover img { transform: scale(1.045); }
.menu-groupe-photos figcaption { position: absolute; z-index: 1; right: 12px; bottom: 11px; left: 12px; display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; color: white; font: 700 11px 'Montserrat',sans-serif; }
.menu-groupe-photos figcaption strong { color: white; font: 700 18px 'Playfair Display',serif; }
.menu-groupe-photos figcaption span { color: #ffd2ad; text-align: right; font: 700 8px 'Montserrat',sans-serif; letter-spacing: .4px; text-transform: uppercase; }
.menu-item-signature { margin: 2px -10px; padding-right: 10px !important; padding-left: 10px !important; background: #f4eadc; border-radius: 9px; border-bottom-color: transparent !important; }
.menu-boissons-entete { display: grid; grid-template-columns: minmax(220px,.8fr) 1.2fr; align-items: end; gap: 30px; margin: 54px 0 24px; padding-top: 32px; border-top: 1px solid rgba(26,92,26,.13); }
.menu-boissons-entete span { grid-column: 1; color: var(--or); font: 800 9px 'Montserrat',sans-serif; letter-spacing: 2.2px; text-transform: uppercase; }
.menu-boissons-entete h2 { grid-column: 1; margin: 6px 0 0; color: var(--vert-fonce); font-size: 34px; line-height: 1.05; }
.menu-boissons-entete p { grid-column: 2; grid-row: 1 / span 2; max-width: 470px; margin: 0 0 3px auto; color: #647067; font: 500 12px/1.65 'Montserrat',sans-serif; }
.menu-boissons-zone { display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 22px; }
.menu-boissons-colonne { display: grid; gap: 22px; }
.menu-boissons-colonne .menu-categorie { margin: 0; }
.menu-boissons-simple { margin: 0; }
.menu-boissons-photos { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; margin: -3px 0 25px; }
.menu-boissons-photos figure { position: relative; height: 138px; margin: 0; overflow: hidden; border-radius: 12px; background: #dce0d5; }
.menu-boissons-photos figure::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(180deg,transparent,rgba(3,27,11,.78)); }
.menu-boissons-photos img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .5s ease; }
.menu-boissons-photos figure:hover img { transform: scale(1.04); }
.menu-boissons-photos figcaption { position: absolute; z-index: 1; right: 10px; bottom: 9px; left: 10px; color: white; font: 700 9px 'Montserrat',sans-serif; }
.menu-boissons-listes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px; }
.menu-liste-colonne + .menu-liste-colonne { padding-left: 30px; border-left: 1px solid #e5dac8; }
.menu-liste-colonne h4 { margin: 0 0 8px; color: #dd732e; font: 800 10px 'Montserrat',sans-serif; letter-spacing: 1.6px; text-transform: uppercase; }
.menu-boissons-listes .menu-items span { font-size: 11px; }
.menu-boissons-listes .menu-items b { font-size: 11.5px; }
.menu-devise { margin: 18px 0 0; padding-top: 13px; color: #798078; border-top: 1px solid #e7dfd3; text-align: right; font: 500 8.5px 'Montserrat',sans-serif; }
.menu-categorie { scroll-margin-top: 110px; break-inside: avoid; margin-bottom: 22px; padding: 26px; background: rgba(255,255,255,.78); border: 1px solid #e4dbcd; border-radius: 20px; box-shadow: 0 14px 34px rgba(55,62,43,.07); transition: transform .25s ease, box-shadow .25s ease; }
.menu-categorie:hover { transform: translateY(-3px); box-shadow: 0 19px 42px rgba(55,62,43,.1); }
.menu-categorie-phare { border-color: rgba(224,123,57,.32); box-shadow: 0 18px 42px rgba(55,62,43,.1); }
.menu-categorie h3 { display: flex; align-items: center; gap: 13px; margin: 0 0 20px; padding-bottom: 14px; color: var(--vert-fonce); font-size: 21px; letter-spacing: .6px; text-transform: uppercase; border-bottom: 2px solid rgba(224,123,57,.55); }
.menu-categorie h3 svg { box-sizing: border-box; flex: 0 0 38px; width: 38px; height: 38px; padding: 8px; color: white; background: var(--vert-fonce); border-radius: 50%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.menu-photos { display: flex; gap: 10px; margin: -6px 0 18px; }
.menu-photos figure { flex: 1; margin: 0; border-radius: 14px; overflow: hidden; background: #e7e0d5; }
.menu-photos img { width: 100%; height: 150px; object-fit: cover; display: block; transition: transform .55s ease; }
.menu-photos figure:hover img, .menu-photo:hover img { transform: scale(1.04); }
.menu-photo { margin: -6px 0 18px; border-radius: 14px; overflow: hidden; }
.menu-photo img { width: 100%; height: 170px; object-fit: cover; display: block; transition: transform .55s ease; }
.menu-produits-photo { position: relative; height: 190px; margin: -4px 0 18px; overflow: hidden; border-radius: 14px; background: #dbe0d4; }
.menu-produits-photo::after { content: ''; position: absolute; inset: 48% 0 0; background: linear-gradient(180deg,transparent,rgba(3,27,11,.82)); pointer-events: none; }
.menu-produits-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .55s ease; }
.menu-produits-photo-soir img { object-position: center 55%; }
.menu-produits-photo:hover img { transform: scale(1.04); }
.menu-produits-photo figcaption { position: absolute; z-index: 1; right: 13px; bottom: 12px; left: 13px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: white; font: 700 9px 'Montserrat',sans-serif; letter-spacing: .25px; }
.menu-produits-photo figcaption i { width: 3px; height: 3px; background: #f29a5d; border-radius: 50%; }
.menu-items { display: grid; gap: 0; }
.menu-items > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 14px; padding: 12px 0; border-bottom: 1px dotted #d9cdb8; }
.menu-items > div:last-child { border-bottom: 0; }
.menu-items span { color: #2d372f; font: 500 13px/1.4 'Montserrat',sans-serif; letter-spacing: .3px; text-transform: uppercase; }
.menu-items b { color: var(--vert-fonce); text-align: right; white-space: nowrap; font: 700 13.5px 'Montserrat',sans-serif; letter-spacing: .2px; }
.menu-contact { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 42px; padding: 30px 34px; color: white; background: var(--vert-fonce); border-radius: 22px; }
.menu-contact span { color: #bcd2bd; font: 700 9px 'Montserrat',sans-serif; letter-spacing: 2px; text-transform: uppercase; }
.menu-contact h2 { margin: 6px 0 0; font-size: 27px; }
.menu-contact p { margin: 7px 0 0; color: rgba(255,255,255,.7); font: 500 11px/1.5 'Montserrat',sans-serif; }
.menu-contact > div:last-child { display: flex; gap: 12px; }
.menu-contact .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.menu-contact .btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.menu-contact .btn-vert-contour { color: white; border-color: rgba(255,255,255,.55); }
.menu-note { margin: 20px 0 0; color: #7a817b; text-align: center; font: 500 10px/1.6 'Montserrat',sans-serif; }
.menu-note strong { color: var(--vert-fonce); }

@media (max-width: 900px) {
  .table-accueil-grille { grid-template-columns: 1fr; }
  .table-accueil-photo { height: 440px; }
  .menu-intro { align-items: flex-start; flex-direction: column; }
  .menu-signatures-grille { grid-template-columns: 1fr 1fr; }
  .plat-signature-grand { grid-column: 1 / -1; min-height: 390px; }
  .menu-plats-groupes { grid-template-columns: 1fr; gap: 26px; }
  .menu-sous-groupe + .menu-sous-groupe { padding: 26px 0 0; border-top: 1px solid #e5dac8; border-left: 0; }
  .menu-boissons-photos { grid-template-columns: 1fr 1fr; }
  .menu-boissons-listes { grid-template-columns: 1fr 1fr; }
  .menu-liste-colonne:nth-child(3) { grid-column: 1 / -1; padding: 24px 0 0; border-top: 1px solid #e5dac8; border-left: 0; }
}
@media (max-width: 768px) {
  .section-table-accueil, .page-menu { padding: 64px 20px; }
  .table-hero { min-height: 480px; margin-top: 65px; }
  .table-hero-contenu { padding: 0 20px 50px; }
  .table-accueil-photo { height: 360px; }
  .menu-contact { align-items: flex-start; flex-direction: column; }
  .menu-boissons-entete { grid-template-columns: 1fr; gap: 8px; }
  .menu-boissons-entete p { grid-column: 1; grid-row: auto; margin: 8px 0 0; }
  .menu-boissons-zone { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .table-accueil-photo { height: 300px; border-radius: 20px; }
  .table-accueil-contenu h2 { font-size: 36px; }
  .menu-signatures { margin-right: -2px; margin-left: -2px; padding: 20px 14px 14px; border-radius: 22px; }
  .menu-signatures-entete { align-items: flex-start; flex-direction: column; gap: 10px; }
  .menu-signatures-entete p { font-size: 11px; }
  .menu-signatures-grille { grid-template-columns: 1fr; }
  .plat-signature, .plat-signature-grand { grid-column: auto; min-height: 285px; }
  .plat-signature-contenu { inset: auto 16px 16px; }
  .plat-signature-contenu h3 { font-size: 24px; }
  .menu-raccourcis { flex-wrap: nowrap; margin-right: -20px; padding-right: 20px; overflow-x: auto; scrollbar-width: none; }
  .menu-raccourcis::-webkit-scrollbar { display: none; }
  .menu-raccourcis a { flex: 0 0 auto; }
  .menu-categorie { padding: 21px 18px; }
  .menu-categorie:hover { transform: none; }
  .menu-categorie h3 { font-size: 19px; }
  .menu-items > div { grid-template-columns: minmax(0,1fr) auto; gap: 10px; }
  .menu-items span { font-size: 11.5px; }
  .menu-items b { font-size: 12px; }
  .menu-photos img { height: 125px; }
  .menu-produits-photo { height: 165px; }
  .menu-produits-photo figcaption { font-size: 8px; }
  .menu-boissons-photos { gap: 7px; }
  .menu-boissons-photos figure { height: 105px; }
  .menu-boissons-photos figcaption { right: 7px; bottom: 7px; left: 7px; font-size: 7.5px; }
  .menu-boissons-listes { grid-template-columns: 1fr; gap: 22px; }
  .menu-liste-colonne + .menu-liste-colonne, .menu-liste-colonne:nth-child(3) { grid-column: auto; padding: 22px 0 0; border-top: 1px solid #e5dac8; border-left: 0; }
  .menu-groupe-photos figure { height: 150px; }
  .menu-groupe-photos figcaption { align-items: flex-start; flex-direction: column; gap: 3px; }
  .menu-groupe-photos figcaption strong { font-size: 16px; }
  .menu-groupe-photos figcaption span { text-align: left; }
  .menu-contact { padding: 25px 22px; }
  .menu-contact > div:last-child { width: 100%; flex-direction: column; }
  .menu-contact .btn { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .menu-categorie, .menu-photos img, .menu-photo img, .menu-raccourcis a, .plat-signature img, .menu-groupe-photos img, .menu-produits-photo img, .menu-boissons-photos img { transition: none; }
}

/* Carte éditoriale — sobre, authentique et intemporelle */
.page-menu { background: #f6f1e7; }
.menu-categorie {
  padding: clamp(24px,3vw,38px);
  background: #fffdf8;
  border: 1px solid #ddd4c5;
  border-radius: 8px;
  box-shadow: 0 12px 30px rgba(45,52,38,.055);
  transition: none;
}
.menu-categorie:hover { transform: none; box-shadow: 0 12px 30px rgba(45,52,38,.055); }
.menu-categorie h3 { margin-bottom: 26px; padding-bottom: 18px; border-bottom: 1px solid #cdbda7; font-size: 24px; letter-spacing: .2px; text-transform: none; }
.menu-categorie h3 svg { width: 31px; height: 31px; flex-basis: 31px; padding: 5px; color: var(--vert-fonce); background: transparent; border: 1px solid rgba(26,92,26,.45); }
.menu-sous-groupe h4, .menu-liste-colonne h4 { color: #8c5b38; font-size: 9px; letter-spacing: 2px; }

.menu-liste-colonne h5 {
  margin: 24px 0 8px;
  padding-top: 18px;
  color: #8c5b38;
  border-top: 1px solid #d8cbb8;
  font: 800 9px 'Montserrat', sans-serif;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.menu-items > div { min-height: 43px; padding: 11px 0; border-bottom: 1px solid #e7dfd3; }
.menu-items span { color: #313832; font-size: 12px; letter-spacing: .05px; text-transform: none; }
.menu-items b { color: #174f20; font-size: 12px; font-variant-numeric: tabular-nums; }
.menu-item-signature { margin: 0; padding-right: 8px !important; padding-left: 8px !important; background: #f5eee3; border-radius: 3px; }
.menu-photo-authentique { position: relative; height: 205px; margin: 15px 0 17px; overflow: hidden; border-radius: 4px; background: #ded8cd; }
.menu-photo-authentique::after, .menu-bar-authentique::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(180deg,transparent,rgba(4,25,10,.7)); }
.menu-photo-authentique img { width: 100%; height: 100%; display: block; object-fit: cover; }
.menu-photo-authentique:first-of-type img { object-position: center 55%; }
.menu-photo-authentique figcaption { position: absolute; z-index: 1; right: 14px; bottom: 12px; left: 14px; color: white; font: 600 9px 'Montserrat',sans-serif; letter-spacing: .8px; text-transform: uppercase; }
.menu-bar-authentique { position: relative; height: 245px; margin: -4px 0 27px; overflow: hidden; border-radius: 4px; background: #ded8cd; }
.menu-bar-authentique img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 47%; }
.menu-bar-authentique figcaption { position: absolute; z-index: 1; right: 18px; bottom: 16px; left: 18px; display: flex; align-items: flex-end; justify-content: space-between; gap: 15px; color: white; }
.menu-bar-authentique figcaption span { font: 700 20px 'Playfair Display',serif; }
.menu-bar-authentique figcaption small { font: 600 8px 'Montserrat',sans-serif; letter-spacing: 1.2px; text-transform: uppercase; }
.menu-boissons-simple { margin: 0; }
.menu-boissons-listes { gap: 38px; }
.menu-liste-colonne + .menu-liste-colonne { padding-left: 38px; }
.menu-boissons-entete { margin: 28px 0 18px; padding-top: 20px; }
.menu-intro,
.menu-boissons-entete {
  display: block;
  max-width: 820px;
}
.menu-intro {
  margin-bottom: 26px;
  padding-bottom: 22px;
  border-bottom: 1px solid #d8cdbd;
}
.menu-intro h2,
.menu-boissons-entete h2 {
  margin-top: 7px;
  font-size: clamp(32px, 3.4vw, 46px);
  line-height: 1.05;
}
.menu-intro > p,
.menu-boissons-entete p {
  max-width: 610px;
  margin: 12px 0 0;
  color: #667068;
  font: 500 12px/1.7 'Montserrat', sans-serif;
}
.menu-boissons-entete {
  position: relative;
  margin: 30px 0 20px;
  padding: 22px 0 0 22px;
  border-top: 1px solid #d8cdbd;
}
.menu-boissons-entete::before {
  content: '';
  position: absolute;
  top: 22px;
  bottom: 2px;
  left: 0;
  width: 2px;
  background: var(--or);
}
.menu-boissons-entete span,
.menu-boissons-entete h2,
.menu-boissons-entete p {
  grid-column: auto;
  grid-row: auto;
}
.menu-contact { border-radius: 6px; box-shadow: 0 14px 30px rgba(18,62,25,.1); }
.menu-contact .btn { border-radius: 4px; }

@media (max-width: 900px) {
  .menu-photo-authentique { height: 240px; }
  .menu-bar-authentique { height: 220px; }
}

@media (max-width: 520px) {
  .menu-categorie { padding: 23px 17px; border-radius: 6px; }
  .menu-categorie h3 { font-size: 21px; }
  .menu-photo-authentique { height: 175px; }
  .menu-bar-authentique { height: 180px; }
  .menu-bar-authentique figcaption { align-items: flex-start; flex-direction: column; gap: 3px; }
  .menu-bar-authentique figcaption span { font-size: 18px; }
  .menu-intro { padding-bottom: 18px; }
  .menu-boissons-entete { margin-top: 22px; padding: 18px 0 0 15px; }
  .menu-boissons-entete::before { top: 18px; }
  .menu-intro h2,
  .menu-boissons-entete h2 {
    max-width: 100%;
    font-size: 29px;
    line-height: 1.12;
    letter-spacing: -.5px;
    overflow-wrap: normal;
  }
  .menu-intro > p,
  .menu-boissons-entete p { font-size: 11px; }
}

/* État éditorial avant l'ouverture des réservations */
.barre-bientot {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding: 30px 28px 24px;
}

.barre-bientot-icone {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: 50%;
  color: var(--vert-fonce);
  background: var(--vert-pale);
  font-size: 20px;
}

.barre-bientot-texte span {
  display: block;
  margin-bottom: 4px;
  color: var(--or);
  font: 700 9px 'Montserrat', sans-serif;
  letter-spacing: 1.8px;
  text-transform: uppercase;
}

.barre-bientot-texte h3 {
  margin: 0 0 4px;
  color: var(--vert-fonce);
  font: 700 20px 'Playfair Display', serif;
}

.barre-bientot-texte p {
  margin: 0;
  color: #657067;
  font: 500 11.5px/1.5 'Montserrat', sans-serif;
}

.sejour-statut {
  max-width: 180px;
  color: var(--vert-fonce);
  font-size: 19px;
  line-height: 1.15;
}

.sejour-mini span {
  letter-spacing: 0.5px;
  text-transform: uppercase;
  font-size: 9px;
}

@media (max-width: 768px) {
  .barre-bientot {
    grid-template-columns: auto 1fr;
    padding: 42px 22px 22px;
  }
  .barre-bientot .barre-btn {
    grid-column: 1 / -1;
  }
}

@media (max-width: 520px) {
  .barre-bientot { grid-template-columns: 1fr; gap: 14px; }
  .barre-bientot-icone { width: 46px; height: 46px; }
  .barre-bientot .barre-btn { grid-column: auto; }
}

/* Campement en vrai — composition éditoriale v61 */
.camp-reel-nouveau {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(560px, 1.28fr);
  align-items: center;
  gap: clamp(48px, 6vw, 92px);
}

.camp-reel-contenu { position: relative; z-index: 2; }
.camp-reel-contenu .label {
  display: block;
  margin-bottom: 14px;
  color: var(--or);
  font: 700 10px 'Montserrat', sans-serif;
  letter-spacing: 2.4px;
  text-transform: uppercase;
}

.camp-reel-contenu h2 {
  margin: 0 0 22px;
  color: var(--vert-fonce);
  font-size: clamp(46px, 5vw, 70px);
  line-height: .96;
  letter-spacing: -1.8px;
}

.camp-reel-contenu p {
  max-width: 440px;
  margin: 0;
  color: #58635a;
  font-size: 14px;
  line-height: 1.8;
}

.camp-reel-sticker {
  position: absolute;
  top: -48px;
  right: 4px;
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 16px;
  color: #fff;
  background: var(--or);
  border-radius: 4px 18px 18px 18px;
  box-shadow: 0 9px 22px rgba(224,111,39,.22);
  font: 800 9px 'Montserrat', sans-serif;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  transform: rotate(2.5deg);
}

.camp-reel-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 22px;
  margin-top: 30px;
}

.camp-reel-lien {
  position: relative;
  color: var(--vert-fonce);
  font: 700 11px 'Montserrat', sans-serif;
  text-decoration: none;
}
.camp-reel-lien::after {
  content: '';
  position: absolute;
  left: 0;
  right: 18px;
  bottom: -5px;
  height: 1px;
  background: currentColor;
  transform-origin: left;
  transition: transform .25s ease;
}
.camp-reel-lien:hover::after { transform: scaleX(.55); }

.camp-reel-photos {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: 270px 235px;
  gap: 12px;
  min-width: 0;
}

.camp-photo {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 4px solid rgba(255,255,255,.8);
  border-radius: 22px;
  background: #dbe1d4;
  box-shadow: 0 18px 42px rgba(43,54,35,.13);
}
.camp-photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.2,.75,.25,1);
}
.camp-photo::after {
  content: '';
  position: absolute;
  inset: 52% 0 0;
  background: linear-gradient(180deg, transparent, rgba(7,35,16,.42));
  pointer-events: none;
}
.camp-photo:hover img { transform: scale(1.045); }
.camp-photo figcaption {
  position: absolute;
  z-index: 2;
  left: 14px;
  bottom: 13px;
  padding: 7px 11px;
  color: var(--vert-fonce);
  background: #fffaf0;
  border-radius: 12px 12px 12px 3px;
  box-shadow: 0 5px 14px rgba(20,35,19,.18);
  font: 700 9px 'Montserrat', sans-serif;
  letter-spacing: .25px;
}
.camp-photo-principale { grid-column: 1 / span 8; grid-row: 1; }
.camp-photo-detente { grid-column: 9 / -1; grid-row: 1; transform: translateY(18px) rotate(1deg); }
.camp-photo-cuisine { grid-column: 1 / span 4; grid-row: 2; transform: translateY(-5px) rotate(-1deg); }
.camp-photo-bar { grid-column: 5 / -1; grid-row: 2; transform: translateY(8px); }
.camp-photo-cuisine figcaption { background: #e57831; color: white; }
.camp-photo-detente figcaption { background: #dcefdc; }

@media (max-width: 1050px) {
  .camp-reel-nouveau { grid-template-columns: .8fr 1.2fr; gap: 38px; }
  .camp-reel-photos { grid-template-rows: 235px 205px; }
  .camp-reel-contenu h2 { font-size: 50px; }
}

@media (max-width: 850px) {
  .camp-reel-nouveau { grid-template-columns: 1fr; gap: 40px; }
  .camp-reel-contenu { max-width: 620px; }
  .camp-reel-sticker { position: static; width: max-content; margin-bottom: 20px; }
  .camp-reel-contenu h2 br { display: none; }
  .camp-reel-photos { grid-template-rows: 270px 220px; }
}

@media (max-width: 580px) {
  .section-camp-reel { padding: 68px 18px 62px; }
  .camp-reel-contenu h2 { font-size: 43px; letter-spacing: -1px; }
  .camp-reel-contenu p { font-size: 13px; }
  .camp-reel-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .camp-reel-actions .btn { width: 100%; text-align: center; }
  .camp-reel-photos {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 230px 175px 190px;
    gap: 8px;
  }
  .camp-photo { border-width: 3px; border-radius: 17px; }
  .camp-photo-principale { grid-column: 1 / -1; grid-row: 1; }
  .camp-photo-detente { grid-column: 1; grid-row: 2; transform: rotate(1deg); }
  .camp-photo-cuisine { grid-column: 2; grid-row: 2; transform: rotate(-1deg); }
  .camp-photo-bar { grid-column: 1 / -1; grid-row: 3; transform: none; }
  .camp-photo figcaption { left: 9px; bottom: 9px; padding: 6px 8px; font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .camp-photo img, .camp-reel-lien::after { transition: none; }
}

/* Footer éditorial — page La Table */
.footer-premium {
  padding: 58px 40px 24px;
  color: #f7f1e5;
  background: #082d17;
}
.footer-premium::before { display: none; }
.footer-premium-inner {
  display: grid;
  grid-template-columns: minmax(300px, 1.7fr) minmax(140px, .65fr) minmax(250px, 1fr);
  gap: clamp(42px, 7vw, 105px);
  max-width: 1160px;
  margin: 0 auto 48px;
}
.footer-logo { display: inline-flex !important; align-items: center; gap: 15px; color: white !important; }
.footer-logo img { width: 58px; height: 58px; padding: 4px; object-fit: contain; background: #fffdf7; border-radius: 50%; }
.footer-logo span { display: grid; gap: 3px; }
.footer-logo strong { font: 700 22px/1.1 'Playfair Display', serif; }
.footer-logo small { color: #dc8b52; font: 700 8px/1.3 'Montserrat', sans-serif; letter-spacing: 1.8px; text-transform: uppercase; }
.footer-marque > p { max-width: 390px; margin: 22px 0; color: #b7c9bb; font: 400 12px/1.75 'Montserrat', sans-serif; }
.footer-premium h4 { margin: 5px 0 20px; color: #dc8b52; font: 700 9px/1.2 'Montserrat', sans-serif; letter-spacing: 2.4px; text-transform: uppercase; }
.footer-navigation a { width: max-content; margin-bottom: 8px; color: #cfdbd1; font: 500 12px/1.5 'Montserrat', sans-serif; }
.footer-navigation a[aria-current="page"] { color: white; }
.footer-navigation a[aria-current="page"]::after { content: ''; display: inline-block; width: 18px; height: 1px; margin: 0 0 3px 8px; background: #dc8b52; }
.footer-contact { min-width: 0; }
.footer-contact a { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 16px; color: #cfdbd1; font: 500 11px/1.6 'Montserrat', sans-serif; overflow-wrap: anywhere; }
.footer-contact svg, .footer-whatsapp svg, .footer-premium-bas svg { width: 17px; height: 17px; flex: 0 0 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.footer-contact a:hover, .footer-navigation a:hover { color: white; }
.footer-whatsapp { display: inline-flex !important; align-items: center; gap: 9px; width: max-content; padding: 11px 14px; color: white !important; border: 1px solid rgba(255,255,255,.25); border-radius: 3px; font: 600 10px/1 'Montserrat', sans-serif; }
.footer-whatsapp .footer-arrow { width: 14px; height: 14px; margin-left: 7px; transition: transform .2s ease; }
.footer-whatsapp:hover .footer-arrow { transform: translateX(3px); }
.footer-premium-bas { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1160px; margin: 0 auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); }
.footer-premium-bas p { display: flex; align-items: center; gap: 7px; margin: 0; color: #8fac94; font: 500 9px/1.5 'Montserrat', sans-serif; letter-spacing: .2px; }
.footer-premium-bas svg { width: 14px; height: 14px; }
@media (max-width: 800px) {
  .footer-premium { padding: 46px 24px 22px; }
  .footer-premium-inner { grid-template-columns: 1fr 1fr; gap: 38px 28px; }
  .footer-marque { grid-column: 1 / -1; }
}
@media (max-width: 520px) {
  .footer-premium { padding: 40px 20px 20px; }
  .footer-premium-inner { grid-template-columns: 1fr; gap: 32px; margin-bottom: 34px; }
  .footer-marque { grid-column: auto; }
  .footer-logo strong { font-size: 20px; }
  .footer-premium-bas { align-items: flex-start; flex-direction: column; gap: 8px; }
}
