html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', system-ui, sans-serif; color: #1a1a2e; }
h1, h2, h3 { font-family: 'DM Serif Display', Georgia, serif; }

/* Hero parallax */
.hero-bg {
  background: linear-gradient(to bottom, rgba(26,26,46,0.15) 0%, rgba(26,26,46,0.55) 100%),
              image-set(
          url('/assets/images/photos/exterieur/IMG_0577.avif') type('image/avif'),
          url('/assets/images/photos/exterieur/IMG_0577.jpeg') type('image/jpeg')
        ) center/cover no-repeat;
  min-height: 85vh;
}

/* Horizontal scroll gallery */
.scroll-gallery { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.scroll-gallery::-webkit-scrollbar { display: none; }
.scroll-gallery > * { scroll-snap-align: start; }

/* Lightbox */
#lightbox2 { display: none; position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.92); align-items: center; justify-content: center; }
#lightbox2.open { display: flex; }
#lightbox2 img { max-height: 90vh; max-width: 90vw; object-fit: contain; border-radius: 6px; }

/* Alternating sections fade-in */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.7s ease, transform 0.7s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Gold underline */
.gold-line::after { content: ''; display: block; width: 60px; height: 3px; background: #C8A45C; margin-top: 16px; }
.gold-line-center::after { content: ''; display: block; width: 60px; height: 3px; background: #C8A45C; margin: 16px auto 0; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* FAQ accordion */
.faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.faq-answer.open { max-height: 800px; }

/* Skip link */
.skip-link {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.skip-link:focus,
.skip-link:focus-visible {
  position: fixed;
  top: 1rem;
  left: 1rem;
  width: auto;
  height: auto;
  padding: 0.75rem 1.25rem;
  background: #fff;
  color: #1a1a2e;
  font-weight: 600;
  border: 2px solid #C8A45C;
  border-radius: 0.5rem;
  z-index: 10000;
  overflow: visible;
}

/* Focus-visible fallback */
:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Map facade focus ring */
.map-facade:focus-visible {
  outline: 3px solid #C8A45C;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(200, 164, 92, 0.2);
}

/* Form validation */
.field-error { border-color: #f59e0b !important; }
.error-msg { color: #ffffff; font-size: 11px; margin-top: 3px; display: block; }
