html.lenis { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto; }

body { overflow-x: hidden; }

/* header state: transparent over hero -> solid once scrolled */
#site-header.scrolled {
  background: rgba(247, 243, 234, 0.92);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 0 rgba(0,0,0,0.05);
}
#site-header.scrolled .nav-logo,
#site-header.scrolled .nav-link a { color: #3F4A34; }
#site-header.scrolled #menu-icon { color: #3F4A34; }
#site-header.scrolled .nav-link a[href*="wa.me"] {
  border-color: #3F4A34; color: #3F4A34;
}
#site-header.scrolled .nav-link a[href*="wa.me"]:hover {
  background: #3F4A34; color: #F7F3EA;
}

#mobile-menu.open { opacity: 1; pointer-events: auto; }
.mobile-link { opacity: 0.9; transition: opacity .2s; }
.mobile-link:hover { opacity: 1; }

/* scroll-cue dot bob */
.scroll-dot { animation: bob 1.8s ease-in-out infinite; }
@keyframes bob {
  0%, 100% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(8px); opacity: .4; }
}

/* fade-up on scroll */
.fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s cubic-bezier(.16,.8,.24,1), transform .9s cubic-bezier(.16,.8,.24,1);
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* whatsapp pulse */
.whatsapp-btn {
  position: relative;
  box-shadow: 0 0 0 0 rgba(166,135,95,0.55);
  animation: pulse 2.6s ease-out infinite;
}
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(166,135,95,0.45); }
  70%  { box-shadow: 0 0 0 16px rgba(166,135,95,0); }
  100% { box-shadow: 0 0 0 0 rgba(166,135,95,0); }
}

#gallery-modal.open { opacity: 1; pointer-events: auto; }

/* service card hover lift */
.service-card { transition: transform .5s ease, box-shadow .5s ease; }
.service-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(42,40,34,0.18); }

/* map: muted premium tone, full color on hover */
.map-frame iframe {
  filter: grayscale(0.85) contrast(1.05) brightness(0.97);
  transition: filter .6s ease;
}
.map-frame:hover iframe { filter: grayscale(0); }

[hidden] { display: none !important; }
:focus-visible { outline: 2px solid #A6875F; outline-offset: 3px; }

/* vídeo de portada: aparece con fundido y "respira" en el salto del bucle */
#hero-video { opacity: 0; transition: opacity .8s ease; }
#hero-video.listo { opacity: 1; }
#hero-video.listo.fin { opacity: .55; transition-duration: .45s; }

/* abierto / cerrado */
.estado::before {
  content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px;
  border-radius: 50%; background: #c9826b; vertical-align: 1px;
}
.estado.abierto::before { background: #9fcf8a; box-shadow: 0 0 0 4px rgba(159,207,138,.2); }
.estado-claro { color: #3F4A34; }

/* de temporada: fila deslizable en móvil, 4 columnas en escritorio */
.temporada {
  display: grid; grid-auto-flow: column; grid-auto-columns: 70%;
  gap: 16px; padding: 0 24px 8px; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.temporada::-webkit-scrollbar { display: none; }
@media (min-width: 768px) {
  .temporada { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); max-width: 80rem; margin: 0 auto; padding: 0 48px; overflow: visible; }
}
.flor { margin: 0; scroll-snap-align: start; }
.flor img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; display: block; }
.flor figcaption { font-family: "Cormorant Garamond", serif; font-size: 1.6rem; color: #3F4A34; margin-top: 12px; }

/* preguntas frecuentes */
.faq details { border-bottom: 1px solid rgba(42,40,34,.12); }
.faq summary {
  list-style: none; cursor: pointer; padding: 22px 36px 22px 0; position: relative;
  font-family: "Cormorant Garamond", serif; font-size: 1.5rem; color: #3F4A34;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  font-family: "Jost", sans-serif; font-weight: 300; font-size: 1.6rem; color: #A6875F; transition: transform .3s ease;
}
.faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq details p { padding: 0 0 22px; color: rgba(42,40,34,.75); line-height: 1.7; max-width: 60ch; }

/* barra de acciones fija en móvil */
.barra-movil {
  position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 60; display: grid; grid-template-columns: repeat(3, 1fr);
  background: rgba(247,243,234,.94); backdrop-filter: blur(10px);
  border: 1px solid rgba(63,74,52,.15); border-radius: 999px; padding: 6px;
  box-shadow: 0 10px 30px rgba(42,40,34,.15);
}
.barra-movil a {
  text-align: center; padding: 11px 4px; border-radius: 999px; font-size: 13px;
  letter-spacing: .06em; color: #3F4A34; text-decoration: none;
}
.barra-movil a.destacado { background: #3F4A34; color: #F7F3EA; }
@media (max-width: 767px) { footer { padding-bottom: 96px; } }

@media (prefers-reduced-motion: reduce) {
  .fade-up { transition: none; opacity: 1; transform: none; }
  .scroll-dot, .whatsapp-btn { animation: none; }
  #hero-video.listo.fin { opacity: 1; }
}
