
*{box-sizing:border-box;margin:0;padding:0}
:root{--gold:#d4a843;--gold-light:#f0ca6a;--dark:#0e0e0a;--dark2:#1a1a14;--cream:#f8f4ec;--green-dark:#2d5518}
.cds-site{font-family:'Inter',sans-serif;color:#1a1a1a;background:#fff;min-width:320px}

/* NAVBAR */
.navbar{position:sticky;top:0;z-index:100;background:rgba(12,16,8,0.96);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;padding:0 1.6rem;height:100px;border-bottom:1px solid rgba(255,255,255,0.07)}
.navbar-brand{display:flex;align-items:center;gap:13px;text-decoration:none;padding-right:1.6rem;margin-right:0.5rem;border-right:1px solid rgba(255,255,255,0.14)}
.navbar-logo-img{width:92px;height:92px;object-fit:contain}
.navbar-logo{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:#fff;letter-spacing:0.02em;white-space:nowrap}
.navbar-logo span{color:var(--gold)}
.nav-links{display:flex;gap:0;list-style:none;align-items:center}
.nav-links li a{color:rgba(255,255,255,0.75);text-decoration:none;font-size:11px;font-weight:400;letter-spacing:0.07em;text-transform:uppercase;padding:0 10px;transition:color 0.2s;white-space:nowrap}
.nav-links li a:hover{color:var(--gold)}
.nav-right{display:flex;align-items:center;gap:10px}
.social-links{display:flex;gap:6px}
.social-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.7);font-size:14px;text-decoration:none;transition:all 0.2s}
.social-btn:hover{background:rgba(212,168,67,0.2);border-color:var(--gold);color:var(--gold)}
.social-btn.ig{color:#fff;background:linear-gradient(45deg,#f09433,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888);border-color:transparent}
.social-btn.ig:hover{filter:brightness(1.12);color:#fff}
.social-btn.fb{color:#fff;background:#1877f2;border-color:transparent}
.social-btn.fb:hover{filter:brightness(1.12);color:#fff}
.lang-switch{display:flex;gap:3px;background:rgba(255,255,255,0.07);border-radius:7px;padding:3px}
.lang-btn{background:none;border:none;color:rgba(255,255,255,0.6);font-size:11px;font-weight:600;letter-spacing:0.05em;padding:4px 9px;border-radius:5px;cursor:pointer;font-family:'Inter',sans-serif;transition:all 0.18s}
.lang-btn.active{background:var(--gold);color:#1a1100}
.lang-btn:hover:not(.active){color:#fff}
.nav-sep{width:1px;height:22px;background:rgba(255,255,255,0.1)}
.btn-reserver{background:var(--gold);color:#1a1100;border:none;font-size:11px;font-weight:600;padding:7px 16px;border-radius:4px;cursor:pointer;letter-spacing:0.06em;text-transform:uppercase;font-family:'Inter',sans-serif;transition:background 0.2s;white-space:nowrap}
.btn-reserver:hover{background:#e8be5a}

/* NAV SUBMENUS */
.nav-links li.has-sub{position:relative}
.nav-links li.has-sub>a::after{content:'⌄';font-size:9px;margin-left:4px;opacity:0.6;vertical-align:2px}
.subnav{display:none;position:absolute;top:100%;left:0;background:rgba(12,16,8,0.98);border:1px solid rgba(255,255,255,0.1);border-radius:8px;padding:6px;min-width:200px;list-style:none;box-shadow:0 14px 34px rgba(0,0,0,0.45);z-index:200}
.nav-links li.has-sub:hover .subnav{display:block}
.subnav li a{display:block;padding:9px 13px;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;color:rgba(255,255,255,0.75);border-radius:5px;white-space:nowrap}
.subnav li a:hover{background:rgba(212,168,67,0.16);color:var(--gold)}
/* WEBCAM LIVE */
.webcam-live-wrap{position:relative;height:210px;background:#16160f;overflow:hidden}
.webcam-img{width:100%;height:100%;object-fit:cover;display:block}
.webcam-live-wrap .live{position:absolute;top:14px;right:14px;z-index:2;background:#c0392b;color:#fff;font-size:10px;font-weight:700;letter-spacing:0.1em;padding:3px 10px;border-radius:20px;display:flex;align-items:center;gap:5px}
.webcam-live-wrap .live::before{content:'';width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block}
.wc-fallback{display:none;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:rgba(255,255,255,0.85);background:linear-gradient(135deg,#2d5518,#5a9838)}
.wc-fallback i{font-size:42px}.wc-fallback span{font-size:12px}
.webcam-live-wrap.wc-err .webcam-img{visibility:hidden}
.webcam-live-wrap.wc-err .wc-fallback{display:flex}

/* HERO */
.hero{position:relative;height:92vh;min-height:520px;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;transition:opacity 1.4s ease}
.hero-bg.ete{background-position:center 58%}
.hero-bg.automne{background-position:center 50%}
.hero-bg.hiver{background-position:center 42%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.83) 0%,rgba(0,0,0,0.28) 45%,rgba(0,0,0,0.04) 100%)}
.hero-content{position:relative;z-index:2;padding:0 3rem 5rem;max-width:780px}
.hero-saison-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(212,168,67,0.16);border:1px solid rgba(212,168,67,0.45);color:var(--gold-light);font-size:11px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;padding:5px 13px;border-radius:3px;margin-bottom:20px}
.hero-title{font-family:'Playfair Display',serif;font-size:clamp(36px,6vw,66px);font-weight:700;color:#fff;line-height:1.08;margin-bottom:14px;text-shadow:0 2px 28px rgba(0,0,0,0.55)}
.hero-title em{font-style:italic;color:var(--gold-light)}
.hero-subtitle{font-size:16px;font-weight:300;color:rgba(255,255,255,0.88);margin-bottom:28px;line-height:1.65;max-width:500px}
.hero-cta-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.btn-hero-reserver{background:var(--gold);color:#1a1100;border:none;font-size:14px;font-weight:600;padding:14px 32px;border-radius:4px;cursor:pointer;letter-spacing:0.07em;text-transform:uppercase;font-family:'Inter',sans-serif;transition:all 0.2s;box-shadow:0 4px 22px rgba(212,168,67,0.42)}
.btn-hero-reserver:hover{background:#e8be5a;transform:translateY(-1px)}
.btn-hero-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.42);font-size:13px;font-weight:400;padding:13px 24px;border-radius:4px;cursor:pointer;letter-spacing:0.05em;font-family:'Inter',sans-serif;transition:all 0.2s}
.btn-hero-ghost:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.75)}
.hero-altitude{position:absolute;top:50%;right:2.5rem;transform:translateY(-50%);z-index:2;text-align:right}
.hero-altitude .alt-number{font-family:'Playfair Display',serif;font-size:52px;font-weight:400;color:rgba(255,255,255,0.14);line-height:1;letter-spacing:-0.02em}
.hero-altitude .alt-label{font-size:10px;font-weight:500;color:rgba(255,255,255,0.28);letter-spacing:0.18em;text-transform:uppercase}
.season-toggle{position:absolute;top:1.6rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;gap:8px}
.season-btn{display:flex;align-items:center;gap:6px;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.25);color:rgba(255,255,255,0.75);font-size:12.5px;padding:9px 18px;border-radius:3px;cursor:pointer;font-family:'Inter',sans-serif;letter-spacing:0.07em;text-transform:uppercase;transition:all 0.25s;backdrop-filter:blur(6px)}
.season-btn.active{background:rgba(212,168,67,0.22);border-color:var(--gold);color:var(--gold-light)}
.season-btn:hover:not(.active){background:rgba(255,255,255,0.09);border-color:rgba(255,255,255,0.4);color:#fff}

/* QUICK INFO */
.quick-info{background:var(--dark2);padding:22px 2rem;display:flex;justify-content:center;gap:0;flex-wrap:wrap}
.qi-item{display:flex;align-items:center;gap:10px;padding:10px 26px;border-right:1px solid rgba(255,255,255,0.09)}
.qi-item:last-child{border-right:none}
.qi-icon{font-size:20px;color:var(--gold)}
.qi-text strong{display:block;font-size:13px;font-weight:500;color:#fff}
.qi-text span{font-size:11px;color:rgba(255,255,255,0.42);letter-spacing:0.03em}

/* SECTIONS */
.section{padding:80px 2rem}
.section-inner{max-width:1080px;margin:0 auto}
.section-eyebrow{font-size:11px;font-weight:500;color:var(--gold);letter-spacing:0.18em;text-transform:uppercase;margin-bottom:10px}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(26px,4vw,40px);font-weight:700;color:#1a1a14;line-height:1.2;margin-bottom:16px}
.section-lead{font-size:16px;color:#555;line-height:1.75;max-width:600px;margin-bottom:40px}

/* REVEAL */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.7s ease,transform 0.7s ease}
.reveal.revealed{opacity:1;transform:none}

/* HISTOIRE */
.histoire-section{background:var(--cream)}
.histoire-text{column-count:2;column-gap:48px;font-size:15px;line-height:1.85;color:#3a3428;text-align:justify}
.histoire-text p{margin-bottom:1.2em;break-inside:avoid}
.histoire-text p.year-marker{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--green-dark);break-before:column-avoid;margin-bottom:0.4em;break-inside:avoid}
.histoire-photo{margin:0 0 38px;border-radius:8px;overflow:hidden;box-shadow:0 8px 32px rgba(0,0,0,0.18)}
.histoire-photo img{width:100%;display:block}
.histoire-photo figcaption{background:var(--dark2);color:rgba(255,255,255,0.8);font-family:'Playfair Display',serif;font-style:italic;font-size:14px;text-align:center;padding:12px 20px}
.histoire-photo figcaption span{font-family:'Inter',sans-serif;font-style:normal;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.4)}
.histoire-author{font-size:13px;color:#888;font-style:italic;text-align:right;margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,0,0,0.1)}

/* MENU / CARTE */
.menu-section{background:#fff}
.menu-tabs{display:flex;gap:0;border-bottom:2px solid #e8e2d8;margin-bottom:44px;flex-wrap:wrap}
.menu-tab{background:none;border:none;padding:12px 24px;font-family:'Inter',sans-serif;font-size:12px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all 0.2s}
.menu-tab.active{color:var(--green-dark);border-bottom-color:var(--green-dark)}
.menu-tab:hover:not(.active){color:#444}
.menu-panel{display:none}
.menu-panel.active{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.menu-col-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:#1a1a14;margin-bottom:22px;padding-bottom:10px;border-bottom:1px solid #e0d8cc}
.menu-item{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;gap:12px}
.menu-item-name{font-size:14px;font-weight:600;color:#1a1a14}
.menu-item-desc{font-size:12px;color:#777;margin-top:3px;line-height:1.5}
.menu-item-price{font-size:14px;font-weight:600;color:var(--green-dark);white-space:nowrap;flex-shrink:0}
.menu-separator{border:none;border-top:1px solid #eee;margin:20px 0}
.menu-note{font-size:13px;color:#888;font-style:italic;margin-top:12px;line-height:1.6}
.fournisseurs{background:#f8f4ec;border-radius:8px;padding:18px 20px;margin-top:4px}
.fourn-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid #ece5d6;font-size:12.5px}
.fourn-row:last-child{border-bottom:none}
.fourn-k{color:var(--green-dark);font-weight:600;white-space:nowrap}
.fourn-v{color:#666;text-align:right}
.menu-extra{background:#f8f4ec;border-radius:8px;padding:20px 24px;margin-top:24px}
.menu-extra-title{font-size:12px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:#666;margin-bottom:14px}
.menu-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}
.menu-extra-item{font-size:13px;color:#444}
@media(max-width:720px){.menu-panel.active{grid-template-columns:1fr}.histoire-text{column-count:1}}

/* GALERIE PAYSAGES */
.galerie-section{background:#f5f2eb}
.gal-tabs{display:flex;gap:0;border-bottom:2px solid #e2dccf;margin:32px 0 28px;flex-wrap:wrap}
.gal-tab{background:none;border:none;padding:11px 20px;font-family:'Inter',sans-serif;font-size:12px;font-weight:500;letter-spacing:0.07em;text-transform:uppercase;color:#8a8270;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all 0.2s}
.gal-tab.active{color:var(--green-dark);border-bottom-color:var(--green-dark)}
.gal-tab:hover:not(.active){color:#4a4636}
.gal-panel{grid-template-columns:repeat(2,1fr);gap:12px}
.galt-cell{position:relative;margin:0;border-radius:10px;overflow:hidden;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,0.08);aspect-ratio:4/3}
.galt-cell.wide{grid-column:span 2;aspect-ratio:16/6}
.galt-cell img{width:100%;height:100%;object-fit:cover;transition:transform 0.55s ease}
.galt-cell:hover img{transform:scale(1.06)}
.galt-cell figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;font-size:12px;font-weight:500;color:#fff;letter-spacing:0.02em;background:linear-gradient(to top,rgba(0,0,0,0.72),transparent);text-shadow:0 1px 4px rgba(0,0,0,0.5)}
@media(max-width:680px){.galt-cell.wide{aspect-ratio:16/9}}

/* BOISSONS */
.boissons-section{background:#fff}
.boissons-tabs{display:flex;gap:0;border-bottom:2px solid #e8e2d8;margin-bottom:40px;flex-wrap:wrap}
.boissons-panel{display:none}
.boissons-panel.active{display:block}
.boissson-cols{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.b-category{margin-bottom:32px}
.b-category-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:#1a1a14;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid #e0d8cc}
.b-item{display:flex;justify-content:space-between;margin-bottom:10px;gap:12px}
.b-name{font-size:13px;color:#333}
.b-note{font-size:11px;color:#888;margin-top:2px}
.b-price{font-size:13px;font-weight:600;color:var(--green-dark);white-space:nowrap;flex-shrink:0}
.vin-badge{display:inline-block;width:16px;height:16px;border-radius:50%;border:1.5px solid #5a9440;color:#5a9440;font-size:8px;font-weight:700;text-align:center;line-height:14px;margin-left:4px;vertical-align:middle}
.vin-nature{display:inline-block;font-size:8px;background:#4a7030;color:#fff;padding:1px 4px;border-radius:2px;margin-left:4px;vertical-align:middle;letter-spacing:0.04em}
.vin-rouge{color:#c0392b}.vin-blanc{color:#8a7a30}.vin-rose{color:#d4688a}.vin-bulle{color:#5a6aaa}
.quote-vin{font-size:13px;font-style:italic;color:#888;text-align:center;margin-top:24px;padding-top:20px;border-top:1px solid #eee}

/* TARIFS */
.tarifs-section{background:var(--cream)}
.tarifs-intro{background:linear-gradient(135deg,#2d5518,#437a28);color:#fff;border-radius:10px;padding:24px 28px;margin-bottom:32px;font-size:14px;line-height:1.7}
.tarifs-intro strong{color:var(--gold-light)}
.tarifs-table{width:100%;border-collapse:collapse;font-size:13px}
.tarifs-table th{background:var(--dark2);color:#fff;padding:10px 14px;text-align:left;font-weight:500;letter-spacing:0.03em}
.tarifs-table td{padding:10px 14px;border-bottom:1px solid #e0d8cc}
.tarifs-table tr:last-child td{border-bottom:none}
.tarifs-table tr:nth-child(even) td{background:#f0ece4}
.tarifs-table-title{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:#1a1a14;margin:28px 0 14px}
.tarifs-note{font-size:12px;color:#888;margin-top:12px;line-height:1.7}
.tarifs-highlight{font-weight:600;color:var(--green-dark)}
.tarifs-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:20px}
.dortoir-photos{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
.dortoir-ph{height:180px;border-radius:10px;background:repeating-linear-gradient(45deg,#efe9dd,#efe9dd 12px,#e8e1d2 12px,#e8e1d2 24px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#a89a7e;border:1px dashed #cdbf a0}
.dortoir-ph{border:1px dashed #cdbfa0}
.dortoir-ph i{font-size:30px}
.dortoir-ph span{font-size:12px;letter-spacing:0.04em}
@media(max-width:680px){.dortoir-photos{grid-template-columns:1fr}}
@media(max-width:700px){.tarifs-grid{grid-template-columns:1fr}.boissson-cols{grid-template-columns:1fr}}

/* SAISONS */
.saisons-section{background:var(--dark2)}
.saisons-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:32px}
.saison-panel{border-radius:6px;overflow:hidden;padding:36px 28px;position:relative;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end}
.saison-panel.ete-print{background:linear-gradient(145deg,#2d5518 0%,#437a28 40%,#5a9838 70%,#70b048 100%)}
.saison-panel.automne{background:linear-gradient(145deg,#6b3a1a 0%,#a0531e 40%,#c8722a 70%,#e08c30 100%)}
.saison-panel.hiver{background:linear-gradient(145deg,#1a2535 0%,#1d3050 40%,#2a4068 70%,#3055 100%)}
.saison-panel::before{content:'';position:absolute;inset:0;opacity:0.08}
.saison-icon{font-size:32px;margin-bottom:14px}
.saison-name{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:#fff;margin-bottom:8px}
.saison-dates{font-size:11px;color:rgba(255,255,255,0.55);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:12px}
.saison-desc{font-size:13px;color:rgba(255,255,255,0.8);line-height:1.65}
@media(max-width:680px){.saisons-grid{grid-template-columns:1fr}}

/* ITINERAIRES */
.itineraires-section{background:#fff}
.itineraires-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:32px}
.itin-card{background:#f8f4ec;border-radius:10px;overflow:hidden;position:relative;box-shadow:0 2px 12px rgba(0,0,0,0.05);display:flex;flex-direction:column}
.itin-map{position:relative;height:230px;background:#dde3d8;overflow:hidden;border-bottom:3px solid var(--gold)}
.itin-map iframe{width:100%;height:100%;border:0;filter:saturate(1.05)}
.itin-map img{width:100%;height:100%;object-fit:cover;object-position:center}
.itin-access{font-size:12px;color:#6a6452;background:#fff;border-left:3px solid var(--gold);padding:8px 12px;margin-top:12px;border-radius:0 4px 4px 0;line-height:1.6}
.acces-rapide{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0 8px}
.ar-card{background:#f8f4ec;border:1px solid #ece4d4;border-radius:10px;padding:20px 22px}
.ar-head{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;color:#1a1a14;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ar-head i{color:var(--gold);font-size:20px}
.ar-time{font-family:'Inter',sans-serif;font-size:11px;font-weight:600;color:#8a6820;background:rgba(212,168,67,0.15);padding:2px 9px;border-radius:20px;margin-left:auto}
.ar-card p{font-size:13px;color:#555;line-height:1.6;margin-bottom:14px}
.ar-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#fff;background:var(--green-dark);padding:9px 16px;border-radius:6px;text-decoration:none;transition:background 0.2s}
.ar-btn:hover{background:#3a6b20}
@media(max-width:680px){.acces-rapide{grid-template-columns:1fr}}
.itin-body{padding:24px 26px}
.itin-title{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:#1a1a14;margin-bottom:10px}
.itin-meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.itin-badge{display:flex;align-items:center;gap:5px;font-size:11px;color:#666;background:rgba(0,0,0,0.06);padding:4px 10px;border-radius:4px}
.itin-desc{font-size:13px;color:#555;line-height:1.7}
.itin-warning{font-size:12px;color:#b05010;background:#fff3e8;border-left:3px solid #d4854a;padding:8px 12px;margin-top:12px;border-radius:0 4px 4px 0}
.itin-links{display:flex;gap:10px;margin-top:18px}
.itin-link{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;text-decoration:none;padding:8px 16px;border-radius:6px;transition:all 0.2s;border:1px solid #d8cfc0;color:#5a5040;background:#fff}
.itin-link:hover{border-color:var(--gold);color:#1a1a14}
.itin-link.primary{background:var(--green-dark);color:#fff;border-color:var(--green-dark)}
.itin-link.primary:hover{background:#3a6b20;color:#fff}
.itin-subtitle{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:#1a1a14;margin:8px 0 20px;display:flex;align-items:center;gap:10px}
.itin-subtitle i{color:var(--gold);font-size:22px}
.itin-badge.accent{background:rgba(212,168,67,0.16);color:#8a6820;font-weight:600}
.winter-box{margin-top:44px;background:linear-gradient(135deg,#1a2535,#26405f);border-radius:12px;padding:32px 34px;color:rgba(255,255,255,0.85)}
.winter-box-head{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:#fff;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.winter-box-head i{color:#9ec9f0}
.winter-box p{font-size:14px;line-height:1.75;margin-bottom:12px}
.winter-box .winter-warn{color:#f0c060;font-size:13px;margin-top:6px;margin-bottom:0}
@media(max-width:680px){.itineraires-grid{grid-template-columns:1fr}}

/* WEBCAM */
.webcam-section{background:#f5f2eb}
.webcam-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}
.webcam-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 14px rgba(0,0,0,0.08);text-decoration:none;display:block;transition:transform 0.25s,box-shadow 0.25s}
.webcam-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,0.14)}
.webcam-preview{height:200px;background:linear-gradient(135deg,#2d5518,#5a9838);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;position:relative}
.webcam-preview i{font-size:46px;opacity:0.9;margin-bottom:8px}
.webcam-preview .live{position:absolute;top:14px;right:14px;background:#c0392b;color:#fff;font-size:10px;font-weight:700;letter-spacing:0.1em;padding:3px 10px;border-radius:20px;display:flex;align-items:center;gap:5px}
.webcam-preview .live::before{content:'';width:7px;height:7px;border-radius:50%;background:#fff;display:inline-block}
.webcam-body{padding:20px 24px}
.webcam-body h4{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:#1a1a14;margin-bottom:6px}
.webcam-body p{font-size:13px;color:#666;line-height:1.6}
.webcam-body .wc-cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;font-weight:600;color:var(--green-dark);letter-spacing:0.03em;text-transform:uppercase}
@media(max-width:600px){.webcam-grid{grid-template-columns:1fr}}

/* EVENEMENTS */
.evenements-section{background:var(--cream)}
.events-list{display:flex;flex-direction:column;gap:20px;margin-top:32px}
.event-row{display:flex;align-items:flex-start;gap:20px;background:#fff;border-radius:8px;padding:22px;box-shadow:0 1px 6px rgba(0,0,0,0.06)}
.event-date-box{background:var(--dark2);color:#fff;border-radius:6px;padding:12px 16px;text-align:center;min-width:68px;flex-shrink:0}
.event-date-box .day{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--gold-light);line-height:1}
.event-date-box .month{font-size:10px;text-transform:uppercase;letter-spacing:0.1em;color:rgba(255,255,255,0.5);margin-top:4px}
.event-info .event-title{font-size:15px;font-weight:600;color:#1a1a14;margin-bottom:6px}
.event-info .event-desc{font-size:13px;color:#666;line-height:1.65}
.event-tag{display:inline-block;font-size:10px;background:rgba(212,168,67,0.15);color:#8a6820;border-radius:3px;padding:2px 8px;margin-bottom:8px;letter-spacing:0.07em;font-weight:500}

/* INFOS PRATIQUES */
.infos-section{background:#13110d;color:#fff}
.infos-section .section-eyebrow{color:var(--gold)}
.infos-section .section-title{color:#fff}
.infos-section .section-lead{color:rgba(255,255,255,0.6)}
.infos-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px}
.info-card{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.09);border-radius:10px;padding:24px 26px}
.info-card.span2{grid-column:span 2}
.info-card h4{display:flex;align-items:center;gap:9px;font-family:'Inter',sans-serif;font-size:14px;font-weight:600;color:var(--gold-light);margin-bottom:14px;letter-spacing:0.02em}
.info-card h4 i{font-size:18px;color:var(--gold)}
.info-card ul{list-style:none;padding:0;margin:0}
.info-card li{font-size:13.5px;color:rgba(255,255,255,0.78);line-height:1.6;padding:6px 0 6px 20px;position:relative}
.info-card li::before{content:'';position:absolute;left:0;top:13px;width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:0.7}
.info-card li strong{color:#fff;font-weight:600}
.info-card p{font-size:13.5px;color:rgba(255,255,255,0.78);line-height:1.7}
.reglement-box{background:linear-gradient(135deg,rgba(212,168,67,0.1),rgba(212,168,67,0.03));border:1px solid rgba(212,168,67,0.25)}
.annulation-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.07);font-size:13.5px;color:rgba(255,255,255,0.8)}
.annulation-row:last-child{border-bottom:none}
.annulation-row .delay{font-weight:600;color:var(--gold-light);min-width:130px}
@media(max-width:680px){.infos-grid{grid-template-columns:1fr}.info-card.span2{grid-column:auto}}

/* ESCALADE */
.escalade-section{background:#14140f;color:#fff}
.escalade-section .section-eyebrow{color:var(--gold)}
.escalade-section .section-title{color:#fff}
.escalade-section .section-lead{color:rgba(255,255,255,0.62)}
.escalade-table-wrap{margin-top:28px;border-radius:12px;overflow:hidden;box-shadow:0 16px 44px rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.08)}
.escalade-table{width:100%;border-collapse:collapse;font-size:13px}
.escalade-table th{background:#23231a;color:var(--gold-light);text-align:left;padding:12px 14px;font-weight:500;letter-spacing:0.05em;font-size:10.5px;text-transform:uppercase}
.escalade-table td{padding:12px 14px;border-top:1px solid rgba(255,255,255,0.07);color:rgba(255,255,255,0.85);vertical-align:top}
.escalade-table tr:nth-child(even) td{background:rgba(255,255,255,0.025)}
.esc-secteur{font-family:'Playfair Display',serif;font-size:15px;font-weight:600;color:#fff;white-space:nowrap}
.esc-approche{color:rgba(255,255,255,0.6);white-space:nowrap}
.esc-grade{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600}
.esc-grade.min{background:rgba(90,158,58,0.18);color:#8fd06a;border:1px solid rgba(90,158,58,0.5)}
.esc-grade.max{background:rgba(192,57,43,0.18);color:#e8917d;border:1px solid rgba(192,57,43,0.5)}
.esc-note{font-size:12px;color:rgba(255,255,255,0.6);line-height:1.55;max-width:360px}
.escalade-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}
.esc-summary-card{background:linear-gradient(145deg,rgba(212,168,67,0.1),rgba(255,255,255,0.03));border:1px solid rgba(212,168,67,0.25);border-radius:12px;padding:26px 28px;box-shadow:0 12px 36px rgba(0,0,0,0.42)}
.esc-summary-card h4{font-family:'Playfair Display',serif;font-size:17px;color:#fff;margin-bottom:10px}
.esc-summary-card p{font-size:13px;color:rgba(255,255,255,0.7);line-height:1.65}
.esc-big{font-family:'Playfair Display',serif;font-size:36px;font-weight:700;color:var(--gold-light);margin-bottom:4px}
.esc-topo-badge{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:12px;font-weight:600;color:var(--gold-light);background:rgba(212,168,67,0.12);border:1px solid rgba(212,168,67,0.3);padding:6px 12px;border-radius:20px}
@media(max-width:680px){.escalade-summary{grid-template-columns:1fr}.escalade-table{font-size:12px}.esc-note{max-width:none}}
/* ITIN piéton + relief + lightbox */
.pied-banner{background:linear-gradient(135deg,#2d5518,#437a28);color:#fff;border-radius:10px;padding:15px 20px;margin:22px 0 4px;font-size:14px;display:flex;align-items:center;gap:13px;line-height:1.55}
.pied-banner i{font-size:26px;color:var(--gold-light);flex-shrink:0}
.pied-banner strong{color:var(--gold-light)}
.itin-map{cursor:zoom-in}
.itin-map-hint{position:absolute;bottom:9px;right:9px;background:rgba(0,0,0,0.62);color:#fff;font-size:11px;padding:4px 9px;border-radius:5px;display:flex;align-items:center;gap:5px;pointer-events:none;backdrop-filter:blur(2px)}
.itin-link.primary{box-shadow:0 4px 14px rgba(45,85,24,0.4);transition:transform .18s,box-shadow .18s}
.itin-link.primary:hover{transform:translateY(-2px);box-shadow:0 7px 20px rgba(45,85,24,0.5)}
.ar-btn{box-shadow:0 4px 14px rgba(45,85,24,0.32);transition:transform .18s,box-shadow .18s}
.ar-btn:hover{transform:translateY(-2px)}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,0.93);z-index:2000;display:none;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lightbox.on{display:flex}
.lightbox img{max-width:96vw;max-height:86vh;border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,0.7)}
.lb-cap{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:#fff;font-size:14px;font-family:'Playfair Display',serif;font-style:italic;padding:0 20px}
.lb-close{position:absolute;top:16px;right:26px;color:#fff;font-size:32px;cursor:pointer;background:none;border:none;line-height:1}

/* ========================= FOOTER =========================
   Structure compacte : identité | navigation (liste sur 2
   colonnes) | contact — soit 4 colonnes visuelles — puis barre
   inférieure. Priorité à une hauteur réduite.
   Icônes : SVG en ligne (cf. footer.php), aucune ressource externe.
   Contrastes : tous les textes visent >= 4.5:1 sur --dark (#0e0e0a).
   ---------------------------------------------------------- */
.footer{background:var(--dark);padding:44px 2rem 22px;color:rgba(255,255,255,0.72)}
.footer-inner{max-width:1080px;margin:0 auto}
.footer .cds-ico{display:block;flex-shrink:0}

/* --- La grille principale ---
   minmax(0,…) empêche tout débordement horizontal si un contenu
   long (e-mail, nom composé) refuse de se couper. */
.footer-cols{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.5fr) minmax(0,1.1fr);gap:44px;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,0.08)}
.footer-col{min-width:0}
.footer-col-title{font-size:11px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-bottom:14px}

/* --- Colonne identité --- */
.footer-id{display:flex;flex-direction:column;gap:16px}
.footer-id-head{display:flex;align-items:center;gap:14px;min-width:0}
.footer-logo-img{width:64px;height:64px;object-fit:contain;flex-shrink:0}
.footer-brand{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:#fff;margin-bottom:5px}
.footer-brand span{color:var(--gold)}
.footer-tagline{font-size:12.5px;color:rgba(255,255,255,0.62);line-height:1.55}

/* Réseaux sociaux + contacts rapides : cible tactile de 44x44 px minimum. */
.footer-social{display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.16);color:rgba(255,255,255,0.82);text-decoration:none;transition:background 0.2s,border-color 0.2s,color 0.2s}
.footer-social a:hover{background:rgba(212,168,67,0.2);border-color:var(--gold);color:var(--gold)}
.footer-social a.ig{background:linear-gradient(45deg,#f09433,#dc2743 50%,#bc1888);color:#fff;border-color:transparent}
.footer-social a.fb{background:#1877f2;color:#fff;border-color:transparent}
.footer-social a.ig:hover,.footer-social a.fb:hover{filter:brightness(1.12);color:#fff}

/* --- Colonne navigation : la liste se répartit sur 2 colonnes --- */
.footer-links{list-style:none}
.footer-links li{margin-bottom:8px}
.footer-links a{display:inline-block;color:rgba(255,255,255,0.74);text-decoration:none;font-size:13px;line-height:1.45;transition:color 0.2s}
.footer-links a:hover{color:var(--gold)}
.footer-nav-list{columns:2;column-gap:28px}
.footer-nav-list li{break-inside:avoid}
.footer-nav-list a.is-primary{color:var(--gold);font-weight:600}
.footer-nav-list a.is-primary:hover{color:var(--gold-light)}

/* Sous-groupe juridique : filet fin, texte plus petit, sur une ligne
   fluide pour ne pas rallonger la colonne. */
.footer-subcol-title{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.10);font-size:10.5px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.5)}
.footer-legal-list{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 18px}
.footer-legal-list li{margin-bottom:0}
.footer-legal-list a{font-size:12.5px;color:rgba(255,255,255,0.64)}

/* --- Colonne contact : un bloc autonome par contact --- */
.footer-contact{list-style:none}
.footer-contact-item{display:flex;align-items:flex-start;gap:11px;margin-bottom:13px}
.footer-contact-item:last-child{margin-bottom:0}
/* height = line-height de la 1re ligne de texte : icône alignée dessus. */
.footer-contact-ico{flex:0 0 auto;display:flex;align-items:center;height:19px;color:var(--gold)}
.footer-contact-body{min-width:0;display:flex;flex-direction:column;gap:1px;font-size:13px;line-height:1.45}
.footer-contact-label{font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.55)}
.footer-contact-value{color:rgba(255,255,255,0.78)}
/* Nom et fonction restent sur la même ligne tant que la largeur le permet. */
.footer-contact-name{color:rgba(255,255,255,0.9);font-weight:500}
.footer-contact-role{color:rgba(255,255,255,0.6);font-weight:400}
.footer-tel,.footer-mail{color:rgba(255,255,255,0.78);text-decoration:none;transition:color 0.2s}
.footer-tel:hover,.footer-mail:hover{color:var(--gold)}
/* Un numéro de téléphone ne doit jamais se couper en fin de ligne. */
.footer-tel{white-space:nowrap}
/* L'e-mail, lui, peut se couper plutôt que déborder sur très petit écran. */
.footer-mail{overflow-wrap:anywhere}

/* --- Barre inférieure --- */
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding-top:18px}
.footer-copy,.footer-open{font-size:12px;color:rgba(255,255,255,0.55)}

/* Focus clavier visible sur tous les liens du pied de page. */
.footer a:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}

/* --- Responsive --- */
/* Tablette : identité en bandeau (marque à gauche, réseaux à droite),
   navigation et contact côte à côte en dessous. */
@media(max-width:940px){
  .footer-cols{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px}
  .footer-id{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,0.08)}
}
/* Mobile : tout en pile ; la liste de navigation garde ses 2 colonnes
   (libellés courts) pour ne pas doubler la hauteur. */
@media(max-width:620px){
  .footer{padding:36px 1.25rem 20px}
  .footer-cols{grid-template-columns:minmax(0,1fr);gap:28px}
  .footer-id{flex-direction:column;align-items:flex-start}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:6px}
}

/* ===== MULTI-PAGES ===== */
.page-hero{background:linear-gradient(180deg,var(--dark),var(--dark2));padding:110px 24px 70px;text-align:center}
.page-hero h1{font-family:'Playfair Display',serif;color:var(--cream);font-size:clamp(2rem,5vw,3.2rem);font-weight:500}
.page-hero .ph-sub{color:var(--gold);letter-spacing:.25em;text-transform:uppercase;font-size:.78rem;margin-bottom:14px}
.page-hero a.ph-back{color:rgba(248,244,236,.6);font-size:.85rem;text-decoration:none;display:inline-block;margin-top:18px}
.page-hero a.ph-back:hover{color:var(--gold)}
.home-cards{max-width:1200px;margin:0 auto;padding:80px 24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px}
.home-card{position:relative;border-radius:14px;overflow:hidden;display:block;text-decoration:none;aspect-ratio:4/3;background:var(--dark2)}
.home-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.home-card:hover img{transform:scale(1.05)}
.home-card .hc-ol{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,14,10,0) 30%,rgba(14,14,10,.92));display:flex;flex-direction:column;justify-content:flex-end;padding:22px}
.home-card h3{font-family:'Playfair Display',serif;color:var(--cream);font-size:1.45rem;font-weight:500;margin-bottom:6px}
.home-card p{color:rgba(248,244,236,.75);font-size:.9rem;line-height:1.45}
.home-card .hc-go{color:var(--gold);font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;margin-top:10px}
.home-intro{text-align:center;max-width:760px;margin:70px auto 0;padding:0 24px}
.home-intro h2{font-family:'Playfair Display',serif;font-size:2rem;font-weight:500;color:#1a1a1a}
.home-intro p{color:#555;margin-top:14px;line-height:1.7}

/* Toggle saisons centré — ajustement mobile */
@media (max-width:640px){
  .season-toggle{top:1rem;width:calc(100% - 2rem);justify-content:center;flex-wrap:wrap;gap:6px}
  .season-btn{font-size:11px;padding:7px 12px}
}

/* =====================================================================
 * RESPONSIVE — Correctifs anti-débordement horizontal mobile
 * (Ajout ciblé — ne touche pas aux règles au-dessus.)
 *
 * Cause principale identifiée : la .navbar est en flex horizontal sans
 * media query et pèse ~600px de contenu ; sur ≤ 900px elle débordait.
 * Autres causes : tableaux non scrollables, hero-content padding,
 * absence de garde-fou global sur les médias.
 * ===================================================================== */

/* -- Garde-fou global : plus rien ne peut créer un scroll horizontal. --
   `overflow-x: clip` préféré à `hidden` (ne casse pas position:sticky
   des éléments enfants). Fallback `hidden` pour navigateurs anciens. */
html, body { overflow-x: hidden; overflow-x: clip; max-width: 100vw; }

/* -- Médias fluides par défaut (image insérée manuellement, etc.) -- */
img, video, iframe, embed, object, svg {
    max-width: 100%;
    height: auto;
}
/* Note : les .hero-bg utilisent background-image, pas <img>, donc OK. */

/* -- Tableaux : rendre scrollable horizontalement plutôt que déborder -- */
.tarifs-table { table-layout: fixed; width: 100%; }
.tarifs-table th, .tarifs-table td { word-wrap: break-word; overflow-wrap: anywhere; }

/* ---------- Burger menu : cachés sur desktop, visibles ≤ 900px ---------- */
.nav-toggle { display: none; }
.nav-backdrop { display: none; }

/* ---------- Tablette et téléphone (≤ 900px) ---------- */
@media (max-width: 900px) {
    /* Layout mobile de la navbar :
       [burger] [brand] .................. [lang] [Réserver]
       Les nav-links deviennent un tiroir plein-écran affiché sur clic burger. */
    .navbar {
        height: auto;
        min-height: 64px;
        padding: 10px 12px;
        gap: 8px;
        flex-wrap: nowrap;
        justify-content: space-between;
    }

    /* Bouton burger visible sur mobile. */
    .nav-toggle {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 40px;
        height: 40px;
        padding: 0;
        border: 0;
        background: transparent;
        cursor: pointer;
        flex-shrink: 0;
    }
    .nav-toggle-bar {
        display: block;
        width: 22px;
        height: 2px;
        background: #fff;
        border-radius: 2px;
        transition: transform .25s ease, opacity .2s ease;
    }
    /* Animation croix quand ouvert. */
    .navbar.is-open .nav-toggle-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .navbar.is-open .nav-toggle-bar:nth-child(2) { opacity: 0; }
    .navbar.is-open .nav-toggle-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

    /* Brand : au milieu, prend la place restante. */
    .navbar-brand {
        padding-right: 0;
        margin-right: 0;
        border-right: none;
        flex: 1 1 auto;
        min-width: 0;
        justify-content: flex-start;
    }
    .navbar-logo-img { width: 44px; height: 44px; }
    .navbar-logo    { font-size: 14px; }

    /* Nav-links : cachés par défaut, deviennent un tiroir quand navbar.is-open. */
    .nav-links {
        position: fixed;
        top: 64px; /* juste sous la navbar */
        left: 0;
        right: 0;
        max-height: calc(100vh - 64px);
        overflow-y: auto;
        background: rgba(12, 16, 8, 0.98);
        backdrop-filter: blur(14px);
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        padding: 12px 0 24px;
        margin: 0;
        list-style: none;
        transform: translateY(-8px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s;
        z-index: 99;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
    .navbar.is-open .nav-links {
        opacity: 1;
        transform: translateY(0);
        visibility: visible;
        pointer-events: auto;
        transition: opacity .22s ease, transform .22s ease, visibility 0s;
    }
    .nav-links li { list-style: none; border-top: 1px solid rgba(255, 255, 255, 0.05); }
    .nav-links li:first-child { border-top: 0; }
    .nav-links li a {
        display: block;
        padding: 14px 22px;
        font-size: 13px;
        color: rgba(255, 255, 255, 0.9);
        letter-spacing: 0.08em;
        text-transform: uppercase;
        white-space: normal;
    }
    /* Sous-menus : toujours affichés en accordéon indenté sur mobile. */
    .nav-links li.has-sub > a::after { content: ''; }
    .subnav {
        display: block !important;
        position: static;
        background: rgba(255, 255, 255, 0.03);
        border: 0;
        border-radius: 0;
        box-shadow: none;
        padding: 4px 0 8px;
        min-width: 0;
        list-style: none;
    }
    .subnav li { border-top: 0; }
    .subnav li a {
        padding: 10px 22px 10px 40px;
        font-size: 11.5px;
        color: rgba(255, 255, 255, 0.65);
        text-transform: none;
        letter-spacing: 0.04em;
    }
    .subnav li a:hover, .subnav li a:focus { color: var(--gold); background: rgba(212, 168, 67, 0.08); }

    /* Right side : lang + Réserver alignés à droite. Sociaux cachés (dans le tiroir on peut les ajouter plus tard). */
    .nav-right {
        gap: 8px;
        margin-left: auto;
        flex-shrink: 0;
    }
    .social-links, .nav-sep { display: none; }
    .lang-switch { margin-right: 0; padding: 2px; }
    .lang-btn { font-size: 10px; padding: 3px 6px; }
    .btn-reserver { font-size: 10.5px; padding: 7px 12px; }

    /* Backdrop dim derrière le tiroir. */
    .nav-backdrop {
        display: block;
        position: fixed;
        inset: 64px 0 0 0;
        background: rgba(0, 0, 0, 0.35);
        opacity: 0;
        visibility: hidden;
        transition: opacity .22s ease, visibility 0s linear .22s;
        z-index: 98;
    }
    .navbar.is-open ~ .nav-backdrop {
        opacity: 1;
        visibility: visible;
        transition: opacity .22s ease, visibility 0s;
    }
    /* Empêche le scroll du body quand le tiroir est ouvert. */
    body.cds-nav-open { overflow: hidden; }

    /* Table escalade : scroll interne au lieu de déborder son parent. */
    .escalade-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .escalade-table { min-width: 520px; }
}

/* ---------- Téléphone (≤ 640px) ---------- */
@media (max-width: 640px) {
    /* Hero : réduit le padding intérieur qui étranglait le contenu. */
    .hero-content { padding: 0 1.25rem 3rem; }
    .hero-altitude { display: none; }         /* décoratif, on gagne de la place */
    .hero-title { word-wrap: break-word; overflow-wrap: anywhere; }

    /* Bandeau infos rapides sous le hero. */
    .quick-info { padding: 16px 1rem; gap: 4px; }
    .qi-item { padding: 8px 12px; border-right: none; }

    /* Cartes accueil en une seule colonne. */
    .home-cards { grid-template-columns: 1fr; padding: 40px 16px; gap: 20px; }
    .home-intro { padding: 0 16px; margin-top: 40px; }
}

/* ---------- Très petits écrans (≤ 380px) ---------- */
@media (max-width: 380px) {
    .navbar-logo-img { width: 38px; height: 38px; }
    .navbar-logo    { font-size: 12px; }
    .btn-reserver   { font-size: 10px; padding: 6px 10px; }
    .nav-toggle     { width: 36px; height: 36px; }
    .lang-btn       { font-size: 9.5px; padding: 3px 5px; }
}
/* ============================ FIN RESPONSIVE ============================ */

/* ======================= PAGES LÉGALES =======================
   Habillage du contenu saisi dans l'éditeur WordPress, aux
   couleurs du thème : Playfair pour les titres, Inter pour le
   texte, doré pour les accents.

   On style ici les balises produites par l'éditeur (h2, h3, p,
   ul, ol, table…) plutôt que des classes maison : le gardien
   écrit normalement dans WordPress, la mise en forme suit. */

.legal-body{max-width:780px;font-family:'Inter',sans-serif;font-size:15px;color:#3a3a34;line-height:1.8}

.legal-body h2{font-family:'Playfair Display',serif;font-size:clamp(20px,2.6vw,25px);font-weight:700;
  color:#1a1a14;line-height:1.3;margin:46px 0 16px;padding-bottom:10px;
  border-bottom:1px solid rgba(212,168,67,0.32)}
.legal-body h3{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:#1a1a14;
  margin:34px 0 12px}
.legal-body h4,.legal-body h5,.legal-body h6{font-family:'Inter',sans-serif;font-size:14px;font-weight:600;
  color:#1a1a14;letter-spacing:0.01em;margin:26px 0 8px}
.legal-body > :first-child{margin-top:0}

.legal-body p{margin:0 0 16px}
.legal-body a{color:#a07a1e;text-decoration:none;border-bottom:1px solid rgba(212,168,67,0.45);
  transition:color 0.18s,border-color 0.18s}
.legal-body a:hover{color:var(--gold);border-bottom-color:var(--gold)}
.legal-body strong,.legal-body b{color:#1a1a14;font-weight:600}
.legal-body em{color:#4a4438}
.legal-body hr{border:none;border-top:1px solid rgba(0,0,0,0.09);margin:36px 0}

/* Listes : puce dorée, y compris pour les listes de l'éditeur. */
.legal-body ul{list-style:none;padding:0;margin:0 0 18px}
.legal-body ul li{position:relative;padding:5px 0 5px 20px}
.legal-body ul li::before{content:'';position:absolute;left:0;top:14px;width:6px;height:6px;
  border-radius:50%;background:var(--gold);opacity:0.75}
.legal-body ol{padding-left:20px;margin:0 0 18px}
.legal-body ol li{padding:5px 0;padding-left:4px}
.legal-body ol li::marker{color:var(--gold);font-weight:600}
.legal-body li > ul,.legal-body li > ol{margin:6px 0 2px}

/* Citation : utilisée pour mettre en avant une clause. */
.legal-body blockquote{background:rgba(212,168,67,0.09);border-left:3px solid var(--gold);
  border-radius:0 8px 8px 0;padding:16px 20px;margin:0 0 26px;font-size:14.5px;line-height:1.7;
  color:#4a4438;font-style:normal}
.legal-body blockquote p:last-child{margin-bottom:0}

/* Tableaux (barème de tarifs, délais d'annulation…). */
.legal-body table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:14px}
.legal-body th{text-align:left;background:var(--cream);color:#1a1a14;font-weight:600;
  padding:10px 14px;border-bottom:2px solid rgba(212,168,67,0.4)}
.legal-body td{padding:10px 14px;border-bottom:1px solid rgba(0,0,0,0.07);color:#3a3a34}
.legal-body tr:last-child td{border-bottom:none}

/* Images et intégrations insérées depuis l'éditeur. */
.legal-body img{max-width:100%;height:auto;border-radius:8px}
.legal-body figure{margin:0 0 24px}
.legal-body figcaption{font-size:12.5px;color:#8a8375;margin-top:7px}

/* Date de dernière modification, sous le titre. */
.legal-updated{font-size:12px;color:#8a8375;letter-spacing:0.04em;margin-bottom:30px}

/* Navigation entre les pages légales, en pied de contenu. */
.legal-nav{display:flex;flex-wrap:wrap;gap:10px;max-width:780px;margin-top:52px;padding-top:26px;
  border-top:1px solid rgba(0,0,0,0.08)}
.legal-nav a{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;
  color:#5a5448;text-decoration:none;background:var(--cream);border:1px solid rgba(0,0,0,0.07);
  border-radius:7px;padding:9px 15px;transition:all 0.18s}
.legal-nav a:hover{border-color:var(--gold);color:#1a1a14;background:rgba(212,168,67,0.1)}
.legal-nav a i{color:var(--gold);font-size:15px}
.legal-nav a[aria-current="page"]{background:rgba(212,168,67,0.16);border-color:var(--gold);color:#1a1a14}

@media(max-width:620px){
  .legal-body{font-size:14.5px}
  .legal-body table{display:block;overflow-x:auto}
}
/* ===================== FIN PAGES LÉGALES ===================== */

/* Les liens juridiques vivent désormais dans la colonne Navigation du pied
   de page (.footer-legal-list, voir le bloc FOOTER plus haut). */
