/* Shared responsive overrides. Loaded after each page stylesheet. */
@media(max-width:1023.98px){
  body.nav-menu-open{overflow:hidden}
  .header-inner{min-height:40px}
  .header-branding,.brand-link,.brand-text{min-width:0}
  .brand-link{max-width:100%}
  .brand-mark,.nav-toggle{flex:0 0 auto}
  .nav-toggle{display:inline-flex}
  .primary-nav{position:fixed;inset-inline:0;top:var(--header-height);display:block;max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain;transform:translateY(-120%);opacity:0;visibility:hidden;pointer-events:none;transition:transform var(--transition-base),opacity var(--transition-base),visibility 0s linear var(--transition-base);background:radial-gradient(circle at top,rgba(245,177,92,0.08),transparent 55%),rgba(5,6,9,0.98);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(15,23,42,0.9);z-index:30}
  .primary-nav.is-open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
  .nav-list{width:100%;max-width:var(--container-max-width);margin-inline:auto;flex-direction:column;align-items:stretch;padding:12px 20px calc(20px + env(safe-area-inset-bottom));gap:2px}
  .nav-link{width:100%;min-height:44px;justify-content:flex-start;padding:10px 4px}
  .nav-link::after{bottom:4px}
  .nav-cta{width:100%;padding-top:6px}
  .nav-cta .nav-link-cta{width:100%;justify-content:center}
}

@media(min-width:1024px){
  .primary-nav{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;background:none;border-bottom:none}
  .nav-list{gap:22px}
  .nav-toggle{display:none}
}

@media(max-width:767.98px){
  html{scroll-padding-top:var(--header-height)}
  body{overflow-x:clip}
  section{padding-block:var(--space-9)}
  .hero-main{padding-top:var(--space-10);padding-bottom:var(--space-10)}
  .hero-title,h1{font-size:clamp(1.95rem,9vw,2.25rem)}
  h2{font-size:clamp(1.6rem,7vw,1.875rem)}
  h3{font-size:clamp(1.25rem,5.5vw,1.5rem)}
  .hero-lead{line-height:1.6}
  .card{padding:var(--space-4);border-radius:var(--radius-md)}
  .cta-band{padding:var(--space-5) var(--space-4);border-radius:var(--radius-lg)}
  .btn{min-height:44px;max-width:100%;padding:10px 18px;white-space:normal;text-align:center;line-height:1.3}
  .hero-actions,.cta-actions,.formules-footer,.reservation-cta,.join-actions,.final-cta-actions,.contact-cta-actions,.formules-links,.deroulement-cta{width:100%;align-items:stretch;flex-direction:column}
  .hero-actions>.btn,.cta-actions>.btn,.formules-footer>.btn,.reservation-cta>.btn,.join-actions>.btn,.final-cta-actions>.btn,.contact-cta-actions>.btn,.contact-support-cta>.btn,.formules-links>.btn,.deroulement-cta>.btn,.faq-cta>.btn,.points-link-wrap>.btn{width:100%;min-width:0}
  .pill-embed,.tag,.chip,.badge-event-type,.badge-legal{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  .pill-embed,.badge-event-type{align-items:flex-start}
  .input,.select{min-height:44px}
  .faq-item{padding:var(--space-4)}
  .faq-item summary{align-items:flex-start}
  .faq-toggle{flex:0 0 auto}
  .section-final-cta,.section-cta-final{padding-bottom:var(--space-12)}
  .site-footer{padding-block:28px calc(32px + env(safe-area-inset-bottom))}
  .footer-brand,.footer-brand-text{min-width:0;max-width:100%}
  .footer-logo{flex:0 0 auto}
  .footer-site-tagline{white-space:normal;overflow-wrap:anywhere;line-height:1.45}
  .cookie-banner{max-height:85dvh;overflow-y:auto;overscroll-behavior:contain}
  .cookie-banner-inner{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
  .age-modal-overlay{padding:16px}
  .age-modal{max-height:calc(100dvh - 32px);overflow-y:auto;margin:0}
}

@media(max-width:479.98px){
  .site-header .container{padding-block:10px}
  .brand-mark{width:36px;height:36px}
  .brand-tagline{display:none}
  .brand-name{font-size:14px;letter-spacing:.06em}
  .nav-list{padding-inline:16px}
  .gallery-grid{grid-template-columns:minmax(0,1fr)}
  .section-public-target .card{padding:var(--space-4)}
  .footer-brand{align-items:flex-start}
  .footer-badges,.badge-legal{width:100%}
  .cookie-actions{display:grid;grid-template-columns:1fr;width:100%}
  .cookie-btn{width:100%}
  .age-modal-actions{flex-direction:column}
  .age-modal-actions .btn{width:100%;flex-basis:auto}
}

@media(max-width:359.98px){
  .container{padding-inline:12px}
  .card-bleed{margin-inline:0}
  .brand-mark{width:34px;height:34px}
  .brand-symbol{font-size:16px}
  .brand-name{font-size:13px}
  .nav-toggle{width:38px;height:38px}
  .btn{padding-inline:14px;font-size:.78rem;letter-spacing:.04em}
}

@media(hover:none){
  .card-hover:hover{transform:none}
  .gallery-item:hover img{transform:scale(1.02);filter:none}
}
