/* ============ MEGAMENU (desktop) ============ */
.lpm{position:fixed;top:0;left:0;right:0;z-index:200;transition:background .45s var(--ease-out),box-shadow .45s var(--ease-out),padding .45s var(--ease-out);}
.lpm__bar{display:flex;align-items:center;gap:2rem;max-width:1360px;margin:0 auto;padding:1.5rem 2.5rem;transition:padding .45s var(--ease-out);}
/* Solide par défaut (pages sans hero) */
.lpm{background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--line-soft);}
.lpm .lpm__logo-main{color:var(--heading);}
.lpm .lpm__link{color:var(--muted);}
/* Sur hero : transparent tant que pas scrollé */
.lpm--over:not(.up){background:transparent;backdrop-filter:none;box-shadow:none;}
.lpm--over:not(.up) .lpm__logo-main{color:#fff;}
.lpm--over:not(.up) .lpm__link{color:rgba(255,255,255,.85);}
.lpm--over:not(.up) .lpm__toggle{border-color:rgba(255,255,255,.3);color:#fff;}
.lpm.up .lpm__bar{padding-top:1rem;padding-bottom:1rem;}

.lpm__logo{display:flex;flex-direction:column;gap:.05rem;flex-shrink:0;}
.lpm__logo-main{font-family:'Cormorant Garamond',serif;font-size:1.32rem;font-weight:500;letter-spacing:.06em;line-height:1;transition:color .4s;}
.lpm__logo-sub{font-size:.55rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ochre);font-weight:600;}
.lpm__nav{margin:0 auto;}
.lpm__list{display:flex;align-items:center;gap:.35rem;list-style:none;margin:0;padding:0;}
.lpm__item{position:relative;}
.lpm__link{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--muted);background:none;border:none;cursor:pointer;font-family:inherit;padding:.6rem .85rem;border-radius:6px;transition:color .2s,background .2s;position:relative;}
.lpm__link:hover{color:var(--blue);}
.lpm--over:not(.up) .lpm__link:hover{color:#fff;}
.lpm__item.active>.lpm__link{color:var(--blue);}
.lpm--over:not(.up) .lpm__item.active>.lpm__link{color:#fff;}
.lpm__item.active>.lpm__link::after{content:'';position:absolute;left:.85rem;right:.85rem;bottom:.3rem;height:1.5px;background:var(--ochre);border-radius:2px;}
.lpm__chev{display:inline-flex;width:13px;transition:transform .3s var(--ease-out);}
.lpm__chev svg{width:13px;height:13px;}
.lpm__item.has-mega:hover .lpm__chev,.lpm__item.has-mega:focus-within .lpm__chev{transform:rotate(180deg);}

/* Panneau megamenu */
.lpm__mega{position:absolute;top:calc(100% + .5rem);left:50%;transform:translateX(-50%) translateY(8px);min-width:340px;background:var(--bg);border:1px solid var(--line-soft);border-radius:14px;box-shadow:0 30px 70px -25px rgba(var(--shadow-color),.4);padding:.75rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s var(--ease-out),transform .25s var(--ease-out),visibility .25s;}
.lpm__item.has-mega:hover .lpm__mega,.lpm__item.has-mega:focus-within .lpm__mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.lpm__mega::before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:var(--bg);border-left:1px solid var(--line-soft);border-top:1px solid var(--line-soft);}
.lpm__mega-grid{display:grid;gap:.15rem;}
.lpm__mega-item{display:flex;align-items:center;gap:.9rem;padding:.85rem;border-radius:10px;transition:background .2s;}
.lpm__mega-item:hover{background:var(--surface);}
.lpm__mega-item.active{background:var(--surface-2);}
.lpm__mega-ic{flex-shrink:0;width:42px;height:42px;border-radius:11px;background:var(--sky);color:var(--blue);display:flex;align-items:center;justify-content:center;}
.lpm__mega-ic svg{width:20px;height:20px;}
.lpm__mega-txt{display:flex;flex-direction:column;}
.lpm__mega-txt strong{font-size:.92rem;color:var(--heading);font-weight:600;letter-spacing:.01em;}
.lpm__mega-txt small{font-size:.78rem;color:var(--muted);margin-top:.1rem;}

.lpm__actions{display:flex;align-items:center;gap:1rem;flex-shrink:0;}
.lpm__toggle{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;background:none;transition:background .25s,border-color .25s,transform .16s;}
.lpm__toggle:hover{background:var(--surface-2);}.lpm__toggle:active{transform:scale(.92);}
.lpm__toggle svg{width:17px;height:17px;}
.lpm__toggle .moon{display:none;}
[data-theme="dark"] .lpm__toggle .sun{display:none;}[data-theme="dark"] .lpm__toggle .moon{display:inline-flex;}
.lpm__book{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--blue);padding:.85rem 1.7rem;font-weight:600;border-radius:3px;transition:background .25s,transform .16s;white-space:nowrap;}
.lpm__book:hover{background:var(--blue-deep);color:#fff;}.lpm__book:active{transform:scale(.97);}

/* ============ BARRE D'ONGLETS MOBILE ============ */
.lpt{display:none;}
.lpd,.lpd-overlay{display:none;}

@media(max-width:900px){
  .lpm__nav,.lpm__book{display:none;}
  .lpm__bar{padding:1rem 1.25rem;}
  /* Barre d'onglets */
  .lpt{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:300;background:color-mix(in srgb,var(--bg) 96%,transparent);backdrop-filter:blur(18px);border-top:1px solid var(--line-soft);padding:.3rem .25rem calc(.3rem + env(safe-area-inset-bottom));justify-content:space-around;align-items:flex-end;box-shadow:0 -8px 30px -18px rgba(var(--shadow-color),.5);}
  .lpt__tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .25rem;color:var(--muted);font-size:.58rem;letter-spacing:.03em;background:none;border:none;font-family:inherit;cursor:pointer;transition:color .2s;}
  .lpt__tab svg{width:22px;height:22px;}
  .lpt__tab.active{color:var(--blue);}
  .lpt__cta{position:relative;color:#fff;}
  .lpt__cta-ic{width:52px;height:52px;margin-top:-22px;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px -8px rgba(14,76,142,.7);border:3px solid var(--bg);}
  .lpt__cta-ic svg{width:24px;height:24px;stroke:#fff;}
  .lpt__cta span:last-child{color:var(--blue);font-weight:600;}
  .lp-has-appbar{padding-bottom:74px;}
  /* Drawer plein */
  .lpd-overlay{display:block;position:fixed;inset:0;background:rgba(8,36,63,.5);z-index:340;opacity:0;pointer-events:none;transition:opacity .35s var(--ease-out);}
  .lpd-overlay.open{opacity:1;pointer-events:auto;}
  .lpd{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;z-index:350;max-height:82vh;background:var(--bg);border-radius:20px 20px 0 0;transform:translateY(100%);transition:transform .4s var(--ease-io);box-shadow:0 -20px 50px -20px rgba(0,0,0,.4);}
  .lpd.open{transform:translateY(0);}
  .lpd__head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line-soft);}
  .lpd__brand{font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:var(--heading);line-height:1.1;}
  .lpd__brand small{display:block;font-family:'Jost';font-size:.5rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ochre);margin-top:.15rem;}
  .lpd__close{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--text);display:flex;align-items:center;justify-content:center;}
  .lpd__close svg{width:18px;height:18px;}
  .lpd__body{overflow:auto;padding:1rem 1.25rem 2rem;}
  .lpd__group{margin-top:.5rem;}
  .lpd__group-title{display:block;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-text);font-weight:600;margin:1rem .75rem .35rem;}
  .lpd__link{display:flex;align-items:center;gap:.9rem;padding:.85rem .75rem;border-radius:10px;color:var(--text);font-size:.95rem;font-weight:500;}
  .lpd__link.active{background:var(--surface-2);color:var(--blue);}
  .lpd__ic{width:38px;height:38px;border-radius:10px;background:var(--sky);color:var(--blue);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .lpd__ic svg{width:19px;height:19px;}
  .lpd__book{display:block;text-align:center;margin-top:1.25rem;background:var(--blue);color:#fff;padding:1rem;border-radius:6px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;}
}
@media(max-width:360px){.lpt__tab span{display:none;}}


/* ===== Console de réservation premium (pages intérieures, desktop) ===== */
.lp-book{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;justify-content:center;padding:0 1rem 18px;pointer-events:none;}
.lp-book__form{pointer-events:auto;display:flex;align-items:stretch;background:var(--bg);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);border:1px solid var(--line-soft);border-radius:16px;box-shadow:0 26px 64px -26px rgba(var(--shadow-color),.55);overflow:hidden;position:relative;max-width:100%;}
.lp-book__form::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--ochre),transparent);}
.lp-book__brand{display:flex;flex-direction:column;justify-content:center;padding:.7rem 1.4rem;border-right:1px solid var(--line-soft);}
.lp-book__eyebrow{font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ochre);font-weight:600;}
.lp-book__title{font-family:'Cormorant Garamond',serif;font-size:1.18rem;font-weight:600;color:var(--heading);line-height:1.05;}
.lp-book__field{display:flex;flex-direction:column;gap:.1rem;padding:.6rem 1.25rem;border-right:1px solid var(--line-soft);cursor:pointer;}
.lp-book__label{font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;}
.lp-book__field input,.lp-book__field select{border:none;background:transparent;font-family:'Jost',sans-serif;font-size:.92rem;color:var(--text);outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;}
.lp-book__field input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer;}
.lp-book__btn{display:flex;align-items:center;gap:.5rem;background:var(--blue);color:#fff;border:none;padding:0 1.8rem;font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:background .25s var(--ease-out,ease);white-space:nowrap;}
.lp-book__btn:hover{background:var(--blue-deep);}
.lp-book__btn svg{width:18px;height:18px;}
@media(min-width:981px){body.lp-book-on{padding-bottom:104px;}}
@media(min-width:981px){.lp-book__close{display:none;}.lp-book-ovl{display:none;}.lp-book--sheet-only{display:none;}}
/* Mobile : la console devient une feuille (bottom sheet) ouverte depuis le dock */
@media(max-width:980px){
  .lp-book{padding:0;transform:translateY(115%);transition:transform .42s var(--ease-io,cubic-bezier(.77,0,.175,1));z-index:360;pointer-events:none;}
  .lp-book.is-open{transform:translateY(0);pointer-events:auto;}
  .lp-book__form{flex-direction:column;align-items:stretch;width:100%;max-width:100%;border-radius:18px 18px 0 0;box-shadow:0 -18px 50px -18px rgba(0,0,0,.5);}
  .lp-book__brand{border-right:none;border-bottom:1px solid var(--line-soft);align-items:center;text-align:center;padding:1.1rem 1rem;position:relative;}
  .lp-book__field{border-right:none;border-bottom:1px solid var(--line-soft);padding:.95rem 1.3rem;}
  .lp-book__field input,.lp-book__field select{font-size:1rem;}
  .lp-book__btn{padding:1.15rem;justify-content:center;font-size:.8rem;}
}
.lp-book-ovl{position:fixed;inset:0;background:rgba(6,26,47,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity .3s ease;z-index:355;}
.lp-book-ovl.is-open{opacity:1;}
.lp-book__close{position:absolute;top:.55rem;right:.7rem;background:none;border:none;color:var(--muted);cursor:pointer;padding:.25rem;line-height:0;}
.lp-book__close svg{width:22px;height:22px;}
body.lp-sheet-open{overflow:hidden;}
/* Glow doux pulsant sur le bouton Réserver du dock */
.lpt__cta .lpt__cta-ic{animation:lptGlow 2.6s ease-in-out infinite;}
@keyframes lptGlow{0%,100%{box-shadow:0 0 0 0 rgba(198,154,94,0);}50%{box-shadow:0 0 0 5px rgba(198,154,94,.25),0 0 16px 2px rgba(198,154,94,.55);}}
@media(prefers-reduced-motion:reduce){.lpt__cta .lpt__cta-ic{animation:none;}}


/* ===== Règle globale : une image de haut de page ne dépasse jamais la hauteur de l'écran ===== */
.hero,.page-hero,.pool-hero,.ess-hero,.evt-hero,.gal-hero,.lp-article__hero{max-height:100dvh!important;}
.hero,.pool-hero,.ess-hero,.evt-hero{min-height:min(640px,100dvh)!important;}


/* Fix megamenu : pont invisible couvrant le gap lien<->panneau (garde le :hover) */
.lpm__mega::after{content:"";position:absolute;top:-0.7rem;left:0;right:0;height:0.7rem;/* pont invisible megamenu */}


/* Mobile : pas de bouton jour/nuit (thème auto selon l'heure système) — toggle jour/nuit masqué sur mobile */
@media(max-width:980px){.lpm__toggle{display:none;}}


/* ===== Dark mode : lisibilité des accents (remap des couleurs sombres de marque) ===== */
/* Les tokens sont corrects en dark ; certains accents utilisent --blue/--text/--blue-ink en dur.
   On force ici des couleurs claires theme-aware, uniquement en dark, sans toucher le light.
   (h1 exclu : le em ocre du hero reste intact.) */
[data-theme="dark"] h2 em,
[data-theme="dark"] h3 em,
[data-theme="dark"] h4 em,
[data-theme="dark"] p em,
[data-theme="dark"] li em,
[data-theme="dark"] .r em{color:var(--accent-text)!important;}
[data-theme="dark"] .resto__hl strong,
[data-theme="dark"] .stat-box strong{color:var(--accent-text)!important;}
[data-theme="dark"] .lpd__link.active{color:var(--accent-text)!important;}
[data-theme="dark"] .menu-tab.active,
[data-theme="dark"] .menu-tab:hover{color:#fff!important;-webkit-text-fill-color:#fff!important;}
[data-theme="dark"] .btn--ghost{color:var(--text)!important;-webkit-text-fill-color:var(--text)!important;border-color:rgba(255,255,255,.32)!important;}


/* Dark : onglets & filtres actifs (evenements, galerie) — --blue illisible sur sombre */
[data-theme="dark"] .evt-tabs .active,
[data-theme="dark"] .filter-btn.active,
[data-theme="dark"] .filter-count{color:var(--accent-text)!important;-webkit-text-fill-color:var(--accent-text)!important;}
