/* =========================================
   MAIN LAYOUT — Alps Owners Club
   ========================================= */

body {
  font-family: var(--font-body);
  font-size: var(--text-body);
  color: var(--color-text-dark);
  background: var(--color-white);
  line-height: 1.6;
}

/* Transition de page vers galerie event */
body.page-exit {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.34s ease;
}

/* ── Navigation ── */
#main-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-nav);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem var(--space-md);
  transition: color var(--transition-smooth), transform 0.4s var(--ease-out);
}

#main-nav.nav-offscreen {
  transform: translateY(-110%);
}

.nav-logo img {
  height: 100px;
  width: auto;
  display: block;
  transition: filter 0.35s ease;
}

/* Logo en négatif blanc sur fond sombre (section glacier) */
#main-nav.nav-dark .nav-logo img {
  mix-blend-mode: normal;
  filter: brightness(0) invert(1);
}

.nav-links {
  display: flex;
  gap: var(--space-md);
  align-items: center;
}

.nav-links a {
  font-size: var(--text-label);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 500;
  transition: opacity var(--transition-fast);
}

.nav-links a:hover {
  opacity: 0.6;
}

/* Nav color driven by --nav-color (set by JS) */
#main-nav {
  --nav-color: #1a1a1a;
  color: var(--nav-color);
}

/* ── Scroll stage (provides scroll space for 3D section) ── */
#scroll-stage {
  height: 400vh;
  position: relative;
  z-index: var(--z-sections);
  pointer-events: none;
}

/* ── Shared section styles ── */
.section {
  position: relative;
  z-index: var(--z-sections);
  padding: var(--space-xl) var(--space-md);
}

.section-label {
  display: block;
  font-size: var(--text-label);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-brand);
  font-weight: 600;
  margin-bottom: var(--space-sm);
}

.section-title {
  font-family: var(--font-display);
  font-size: var(--text-h1);
  font-weight: 700;
  color: var(--color-white);
  line-height: 1.15;
  margin-bottom: var(--space-sm);
}

/* ── Gallery section ── */
.section-gallery {
  background: var(--color-glacier-lo);
  padding-bottom: 0;
  /* Force une couche de composition GPU au-dessus de l'overlay gradient (fix Android) */
  transform: translateZ(0);
}

.section-gallery .section-header {
  text-align: center;
  padding-bottom: var(--space-lg);
  max-width: 640px;
  margin: 0 auto;
}

.section-subtitle {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.95rem;
  line-height: 1.7;
  margin-top: var(--space-xs);
}

/* ── Upcoming section ── */
.section-upcoming {
  background: var(--color-glacier-lo);
  min-height: 65vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.upcoming-content {
  max-width: 620px;
  padding: 0 var(--space-md);
}

.upcoming-title {
  margin-bottom: var(--space-xs);
}

.upcoming-desc {
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 2vw, 1.3rem);
  color: var(--color-glacier-hi);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: var(--space-md);
}

.upcoming-text {
  color: rgba(255, 255, 255, 0.55);
  font-size: 1.15rem;
  line-height: 1.75;
  margin-bottom: var(--space-md);
}

.upcoming-actions {
  display: flex;
  gap: var(--space-sm);
  justify-content: center;
  flex-wrap: wrap;
}

.section-upcoming .btn-primary {
  font-size: 0.95rem;
  padding: 0.95rem 2.6rem;
}

/* ── Buttons ── */
.btn-primary {
  display: inline-block;
  padding: 0.8rem 2.2rem;
  background: var(--color-brand);
  color: var(--color-white);
  font-size: var(--text-small);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 500;
  border: 1px solid var(--color-brand);
  border-radius: var(--radius-sm);
  transition: background var(--transition-fast), color var(--transition-fast);
}

.btn-primary:hover {
  background: transparent;
  color: var(--color-brand);
}


/* ── Footer ── */
.footer {
  position: relative;
  z-index: var(--z-sections);
  background: var(--color-glacier-lo);
  padding: var(--space-lg) var(--space-md);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-md);
  text-align: center;
}

.footer-logo {
  height: 150px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: 0.85;
}

.footer-instagram {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  transition: color var(--transition-fast);
}

.footer-instagram:hover {
  color: var(--color-white);
}

.footer-email {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  transition: color var(--transition-fast);
}

.footer-email:hover {
  color: var(--color-white);
}

.footer-copy {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.22);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Panels cachés : ne pas intercepter les touches (ex: galerie) */
.panel:not(.panel-visible) {
  pointer-events: none;
}

/* ── Mobile ── */
@media (max-width: 767px) {
  #main-nav {
    padding: 1rem var(--space-sm);
  }

  .nav-logo img {
    height: 52px;
  }

  .nav-links {
    gap: 1.1rem;
  }

  .nav-links a {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
  }

  .section {
    padding: var(--space-lg) var(--space-sm);
  }

  .section-gallery {
    padding-top: var(--space-md);
  }
}
