/* =========================================================
   Entrepalmas · propuesta web
   Celular: @media (max-width: 639px) · Compu: @media (min-width: 960px)
   ========================================================= */

@font-face { font-family: "Boska"; src: url("fonts/boska-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Boska"; src: url("fonts/boska-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Boska"; src: url("fonts/boska-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("fonts/switzer-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Switzer"; src: url("fonts/switzer-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }

:root {
  --bosque: #142019;
  --bosque-2: #1b2a21;
  --hueso: #f1eee6;
  --hueso-2: #e7e3d7;
  --tinta: #17201a;
  --tinta-suave: #4a564d;
  --claro-suave: #b9c0b5;
  --ambar: #e3a048;
  --ambar-oscuro: #8a520e;

  --fuente-titulos: "Boska", Georgia, serif;
  --fuente-texto: "Switzer", system-ui, sans-serif;

  --ease-out: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);

  --margen: clamp(1rem, 4vw, 3.5rem);
  --seccion: clamp(5rem, 14vh, 10rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

body {
  margin: 0;
  background: var(--hueso);
  color: var(--tinta);
  font-family: var(--fuente-texto);
  font-size: 1.0625rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, p, figure, ul { margin: 0; }
ul { padding: 0; list-style: none; }
em { font-style: italic; font-weight: 400; }

.contenedor { width: 100%; max-width: 1440px; margin: 0 auto; padding: 0 var(--margen); }

.saltar {
  position: fixed; top: -100px; left: 1rem; z-index: 200;
  background: var(--ambar); color: var(--bosque); padding: .6rem 1rem; text-decoration: none;
}
.saltar:focus { top: 1rem; }

:focus-visible { outline: 2px solid var(--ambar); outline-offset: 3px; }

/* ---------- Tipografía ---------- */
.titulo {
  font-family: var(--fuente-titulos);
  font-weight: 500;
  font-size: clamp(2.6rem, 6vw, 5.25rem);
  line-height: 1;
  letter-spacing: -0.02em;
}
/* Las máscaras de SplitText recortan: un poco de aire para el "¿", las letras que bajan y la inclinación de las cursivas. */
.palabra-t-mask, .letra-t-mask { padding: 0 .06em .16em; margin: 0 -.06em -.16em; }
.titulo em { color: var(--ambar-oscuro); }
[data-tema="oscuro"] .titulo em { color: var(--ambar); }

/* ---------- Botones ----------
   Rectangulares, igual que las fotos (un solo sistema de esquinas).
   Al pasar el cursor, el relleno sube como cortina y el texto rueda. */
.boton {
  --relleno: var(--hueso);
  --texto-hover: var(--bosque);
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3.1rem; padding: .8rem 1.7rem;
  border-radius: 0; border: 1px solid transparent;
  font-family: var(--fuente-texto); font-weight: 500; font-size: .95rem; line-height: 1.1; letter-spacing: .02em;
  text-decoration: none; white-space: nowrap;
  transition: color .5s var(--ease-out), border-color .5s var(--ease-out), transform .15s ease;
}
.boton::before {
  content: ""; position: absolute; inset: -1px; z-index: -1;
  background: var(--relleno);
  transform: scaleY(0); transform-origin: 50% 100%;
  transition: transform .55s var(--ease-in-out);
}
.boton:focus-visible { color: var(--texto-hover); }
.boton:focus-visible::before { transform: scaleY(1); }
@media (hover: hover) {
  .boton:hover { color: var(--texto-hover); }
  .boton:hover::before { transform: scaleY(1); }
}
.boton:active { transform: scale(.98); }
.boton .rodar { line-height: 1.35; }
.boton--ambar, .boton--cabecera { border-width: 0; padding: calc(.8rem + 1px) calc(1.7rem + 1px); }
.boton--ambar { background: var(--ambar); color: var(--bosque); }
.boton--vidrio {
  color: var(--hueso); border-color: rgba(241, 238, 230, .6);
  background: rgba(20, 32, 25, .28); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.boton--vidrio:focus-visible { border-color: var(--hueso); }
@media (hover: hover) { .boton--vidrio:hover { border-color: var(--hueso); } .boton--linea:hover { border-color: var(--ambar); } }
.boton--linea { --relleno: var(--ambar); color: var(--hueso); border-color: rgba(241, 238, 230, .45); }
.boton--linea:focus-visible { border-color: var(--ambar); }

/* ---------- Cortina de entrada ---------- */
.cortina {
  position: fixed; inset: 0; z-index: 100;
  display: flex; pointer-events: none;
  animation: cortina-fuera 0s 4s forwards; /* respaldo si el JS no corre */
}
.cortina__tronco { flex: 1; height: 100%; background: var(--bosque); margin-right: -1px; }
.cortina__marca {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem;
  color: var(--hueso); text-align: center;
}
.cortina__nombre { font-family: var(--fuente-titulos); font-style: italic; font-weight: 400; font-size: clamp(3rem, 9vw, 7rem); line-height: 1; }
.cortina__lugar { font-size: .78rem; letter-spacing: .32em; text-transform: uppercase; color: var(--claro-suave); }
@keyframes cortina-fuera { to { visibility: hidden; opacity: 0; } }

/* ---------- Cabecera ---------- */
.cabecera {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; gap: 2rem;
  padding: 1.1rem var(--margen);
  color: var(--hueso);
  transition: color .4s ease, background-color .4s ease, transform .5s var(--ease-out), -webkit-backdrop-filter .4s ease, backdrop-filter .4s ease;
}
.cabecera--solida { background: rgba(20, 32, 25, .82); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.cabecera--clara { color: var(--tinta); }
.cabecera--clara.cabecera--solida { background: rgba(241, 238, 230, .86); }
.cabecera--oculta { transform: translateY(-110%); }

.marca { display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1; margin-right: auto; }
.marca__nombre { font-family: var(--fuente-titulos); font-style: italic; font-size: 1.7rem; }
.marca__lugar { font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; margin-top: .3rem; opacity: .8; }

.nav { display: flex; gap: 2rem; }
.nav__link { text-decoration: none; font-size: .95rem; }

.cabecera .boton--cabecera { background: var(--ambar); color: var(--bosque); min-height: 2.6rem; padding: calc(.55rem + 1px) calc(1.2rem + 1px); font-size: .88rem; }
.cabecera--clara .boton--cabecera { --relleno: var(--ambar); background: var(--bosque); color: var(--hueso); }

/* texto que rueda al pasar el cursor */
.rodar { display: inline-block; position: relative; overflow: hidden; vertical-align: bottom; }
.rodar__in { display: inline-block; transition: transform .55s var(--ease-out); }
.rodar__in::after { content: attr(data-texto); position: absolute; left: 0; top: 100%; }
a:focus-visible .rodar__in { transform: translateY(-100%); }
@media (hover: hover) { a:hover .rodar__in, button[data-rodar]:hover .rodar__in { transform: translateY(-100%); } }
button[data-rodar]:focus-visible .rodar__in { transform: translateY(-100%); }

.menu-boton {
  display: none; align-items: center; gap: .7rem;
  background: none; border: 0; color: inherit; font: inherit; font-size: .95rem; cursor: pointer; padding: .5rem 0;
}
.menu-boton__lineas { position: relative; width: 22px; height: 10px; }
.menu-boton__lineas span { position: absolute; left: 0; right: 0; height: 1.5px; background: currentColor; transition: transform .45s var(--ease-in-out), top .45s var(--ease-in-out); }
.menu-boton__lineas span:first-child { top: 0; }
.menu-boton__lineas span:last-child { top: 8px; }
.menu-boton[aria-expanded="true"] .menu-boton__lineas span:first-child { top: 4px; transform: rotate(45deg); }
.menu-boton[aria-expanded="true"] .menu-boton__lineas span:last-child { top: 4px; transform: rotate(-45deg); }

.menu {
  position: fixed; inset: 0; z-index: 45;
  background: var(--bosque); color: var(--hueso);
  display: flex; flex-direction: column; justify-content: center; gap: 2.5rem;
  padding: 6rem var(--margen) 3rem;
}
.menu[hidden] { display: none; }
.menu__nav { display: flex; flex-direction: column; gap: .4rem; }
.menu__link { font-family: var(--fuente-titulos); font-size: clamp(2.4rem, 11vw, 3.5rem); line-height: 1.15; text-decoration: none; }
.menu .boton { align-self: flex-start; }

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: 100svh; overflow: hidden;
  display: grid; align-items: end;
  background: var(--bosque); color: var(--hueso);
}
.hero__fondo { position: absolute; inset: 0; will-change: transform; transform-origin: 50% 70%; }
.hero__fondo picture, .visita__recorte picture { display: block; width: 100%; height: 100%; }
.hero__fondo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }
.hero__velo {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, rgba(14, 22, 17, .82) 0%, rgba(14, 22, 17, .35) 42%, rgba(14, 22, 17, 0) 65%),
    linear-gradient(to bottom, rgba(14, 22, 17, .45) 0%, rgba(14, 22, 17, 0) 22%);
}
.hero__contenido { position: relative; padding: 0 var(--margen) clamp(2.5rem, 9vh, 6rem); max-width: 1440px; width: 100%; margin: 0 auto; }
.hero__titulo {
  font-family: var(--fuente-titulos); font-weight: 500;
  font-size: clamp(3.4rem, 10vw, 9.5rem); line-height: .92; letter-spacing: -0.03em;
}
.hero__titulo em { color: var(--ambar); }
.hero__texto { margin-top: 1.4rem; max-width: 30rem; font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: #e4e1d6; }
.hero__botones { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }

/* ---------- Marcos de imagen ---------- */
.marco { position: relative; overflow: hidden; }
.marco img { width: 100%; height: 100%; object-fit: cover; }
[data-parallax="img"] { transform: scale(1.18); will-change: transform; }
.pie { margin-top: .9rem; font-size: .9rem; color: var(--tinta-suave); }

/* ---------- Manifiesto ---------- */
.manifiesto { padding: var(--seccion) 0; }
.manifiesto__grid { display: grid; gap: 3rem; }
.manifiesto__texto {
  font-family: var(--fuente-titulos); font-weight: 400;
  font-size: clamp(1.9rem, 3.6vw, 3.4rem); line-height: 1.15; letter-spacing: -0.01em;
}
.manifiesto__texto .palabra { transition: none; }
.manifiesto__foto--alta .marco { aspect-ratio: 4 / 5; }
.manifiesto__foto--ancha .marco { aspect-ratio: 3 / 2; }

/* ---------- Un día ---------- */
.dia { background: var(--bosque); color: var(--hueso); }
.dia__pin { position: relative; }
.dia__pista { display: flex; flex-direction: column; gap: 3.5rem; padding: var(--seccion) var(--margen); }
.dia__intro { max-width: 30rem; }
.dia__lead { margin-top: 1.4rem; color: var(--claro-suave); font-size: 1.15rem; }
.momento__foto { aspect-ratio: 3 / 2; }
.momento--alto .momento__foto { aspect-ratio: 3 / 4; }
.momento--cuadro .momento__foto { aspect-ratio: 1 / 1; }
.momento__titulo { margin-top: 1.1rem; font-family: var(--fuente-titulos); font-weight: 500; font-size: 1.9rem; line-height: 1.1; }
.momento__texto { margin-top: .35rem; color: var(--claro-suave); }
.dia__barra { display: none; }

/* ---------- Espacios (pantalla completa) ---------- */
.espacios { position: relative; height: 100svh; min-height: 620px; overflow: hidden; background: var(--bosque); color: var(--hueso); }
.espacios__fondos, .espacio { position: absolute; inset: 0; }
.espacios__fondos { z-index: 0; }
.espacios::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(to bottom, rgba(14, 22, 17, .68) 0%, rgba(14, 22, 17, 0) 42%);
}
.espacio { visibility: hidden; }
.espacio.is-activo { visibility: visible; z-index: 1; }
.espacio img { width: 100%; height: 100%; object-fit: cover; }
.espacio__velo {
  position: absolute; inset: 0;
  background:
    linear-gradient(to top, rgba(14, 22, 17, .85) 0%, rgba(14, 22, 17, .2) 45%, rgba(14, 22, 17, 0) 60%),
    linear-gradient(to bottom, rgba(14, 22, 17, .6) 0%, rgba(14, 22, 17, 0) 35%);
}
.espacio__info { position: absolute; left: var(--margen); bottom: clamp(6.5rem, 14vh, 8.5rem); max-width: 34rem; padding-right: var(--margen); }
.espacio__nombre { font-family: var(--fuente-titulos); font-weight: 500; font-size: clamp(2.3rem, 4.6vw, 4.2rem); line-height: 1; letter-spacing: -0.02em; }
.espacio__texto { margin-top: 1rem; font-size: 1.1rem; color: #e4e1d6; max-width: 26rem; }

.espacios__cabeza { position: absolute; z-index: 3; top: clamp(5.5rem, 13vh, 8rem); left: var(--margen); max-width: 30rem; }
.espacios__lead { margin-top: 1rem; color: #e4e1d6; text-shadow: 0 1px 14px rgba(14, 22, 17, .6); }

.espacios__lista { display: none; }
.espacios__tab {
  position: relative; display: block; width: 100%;
  background: none; border: 0; padding: .35rem 0 .35rem 2.6rem; cursor: pointer;
  font-family: var(--fuente-titulos); font-size: clamp(1.5rem, 2.1vw, 2.1rem); line-height: 1.15; text-align: left;
  color: rgba(241, 238, 230, .72); text-shadow: 0 1px 14px rgba(14, 22, 17, .45); transition: color .4s ease;
}
.espacios__tab::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 1.8rem; height: 1px; background: var(--ambar);
  transform: scaleX(0); transform-origin: left center; transition: transform .6s var(--ease-in-out);
}
@media (hover: hover) { .espacios__tab:hover { color: rgba(241, 238, 230, .9); } }
.espacios__tab[aria-selected="true"] { color: var(--hueso); }
.espacios__tab[aria-selected="true"]::before { transform: scaleX(1); }

.espacios__control {
  position: absolute; z-index: 3; left: var(--margen); right: var(--margen); bottom: clamp(1.8rem, 5vh, 3rem);
  display: flex; align-items: center; gap: 1rem;
}
.espacios__num { font-size: .85rem; font-variant-numeric: tabular-nums; min-width: 1ch; text-align: center; }
.espacios__barra { position: relative; flex: 1; height: 1px; background: rgba(241, 238, 230, .3); overflow: hidden; }
.espacios__barra span { position: absolute; inset: 0; background: var(--ambar); transform: scaleX(.25); transform-origin: left center; }
.espacios__flecha {
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0; margin: 0 -.85rem;
  background: none; border: 0; color: rgba(241, 238, 230, .8); cursor: pointer;
  transition: color .3s ease;
}
.espacios__flecha svg { width: .95rem; height: .95rem; transition: transform .4s var(--ease-out); }
@media (hover: hover) {
  .espacios__flecha:hover { color: var(--ambar); }
  [data-espacios-prev]:hover svg { transform: translateX(-4px); }
  [data-espacios-next]:hover svg { transform: translateX(4px); }
}
.espacios__flecha:active { color: var(--ambar); }

/* ---------- Eventos ---------- */
.eventos { background: var(--bosque-2); color: var(--hueso); padding: var(--seccion) 0; }
.eventos__titulo { margin-bottom: 3.5rem; }
.eventos__respuesta { display: none; }
.eventos__lista { display: grid; gap: 4.5rem; }
.evento { display: grid; gap: 1.6rem; }
.evento__nombre { font-family: var(--fuente-titulos); font-weight: 500; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.05; }
.evento__texto p { margin-top: .9rem; color: var(--claro-suave); max-width: 30rem; }
.evento__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.8rem; margin-top: 1.6rem; }

/* Enlace "Ver paquete": texto con flecha, para no competir con WhatsApp */
.enlace-paquete {
  display: inline-flex; align-items: center; gap: .6rem; min-height: 2.75rem; padding: 0;
  background: none; border: 0; color: var(--hueso); cursor: pointer;
  font-family: var(--fuente-texto); font-weight: 500; font-size: .95rem; letter-spacing: .02em;
}
.enlace-paquete::after { content: "→"; color: var(--ambar); transition: transform .45s var(--ease-out); }
@media (hover: hover) { .enlace-paquete:hover::after { transform: translateX(5px); } }
.enlace-paquete:focus-visible::after { transform: translateX(5px); }

/* ---------- Panel de paquete (dialog) ---------- */
.paquete {
  position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none;
  margin: 0; padding: 0; border: 0; background: transparent; color: var(--tinta); overflow: hidden;
}
.paquete::backdrop { background: transparent; }
.paquete__fondo { position: absolute; inset: 0; background: rgba(14, 22, 17, .62); }
.paquete__panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(560px, 44vw);
  background: var(--hueso); overflow-y: auto; overscroll-behavior: contain;
  box-shadow: -24px 0 60px rgba(14, 22, 17, .35);
}
.paquete__cerrar {
  position: absolute; top: 1rem; right: 1rem; z-index: 2;
  display: grid; place-items: center; width: 2.75rem; height: 2.75rem; padding: 0;
  background: var(--hueso); border: 0; color: var(--bosque); cursor: pointer;
}
.paquete__cerrar svg { width: 1.15rem; height: 1.15rem; transition: transform .45s var(--ease-out); }
@media (hover: hover) { .paquete__cerrar:hover svg { transform: rotate(90deg); } }
.paquete__foto { aspect-ratio: 4 / 3; overflow: hidden; }
@media (min-width: 640px) { .paquete__foto { aspect-ratio: 16 / 10; } }
.paquete__foto img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.paquete__cuerpo { padding: 2rem clamp(1.4rem, 3vw, 2.6rem) 2.5rem; }
.paquete__titulo { font-family: var(--fuente-titulos); font-weight: 500; font-size: clamp(2rem, 3vw, 2.7rem); line-height: 1.05; letter-spacing: -0.02em; }
.paquete__intro { margin-top: .9rem; color: var(--tinta-suave); }
.paquete__datos { margin: 2rem 0 0; border-top: 1px solid rgba(23, 32, 26, .16); }
.paquete__datos div { display: flex; justify-content: space-between; gap: 1.5rem; padding: .85rem 0; border-bottom: 1px solid rgba(23, 32, 26, .16); }
.paquete__datos dt { font-weight: 500; }
.paquete__datos dd { margin: 0; color: var(--tinta-suave); font-style: italic; text-align: right; }
.paquete__boton { margin-top: 2rem; --relleno: var(--bosque); --texto-hover: var(--hueso); }
.evento--boda .evento__foto { aspect-ratio: 4 / 5; }
.evento--quince .evento__foto { aspect-ratio: 9 / 14; max-width: 360px; }
.evento--empresa .evento__foto { aspect-ratio: 4 / 3; }

/* ---------- Galería ---------- */
.galeria { padding: var(--seccion) 0 calc(var(--seccion) * .7); overflow: hidden; }
.galeria__titulo { margin-bottom: 3.5rem; }
.galeria__columnas { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.galeria__col { display: contents; }
.galeria__creditos { margin-top: 2.5rem; font-size: .85rem; color: var(--tinta-suave); }

/* ---------- Proveedores ---------- */
.proveedores { padding: 0 0 var(--seccion); }
.proveedores__titulo { text-align: center; font-size: .9rem; font-weight: 500; color: var(--tinta-suave); margin-bottom: 1.6rem; padding: 0 var(--margen); }
.cinta { display: flex; overflow: hidden; border-top: 1px solid rgba(23, 32, 26, .15); border-bottom: 1px solid rgba(23, 32, 26, .15); }
.cinta__lista { display: flex; flex-shrink: 0; gap: 3rem; padding: 1.4rem 1.5rem; animation: cinta 45s linear infinite; }
.cinta__lista li { font-family: var(--fuente-titulos); font-style: italic; font-size: clamp(1.4rem, 2.4vw, 2.1rem); white-space: nowrap; }
.cinta:hover .cinta__lista { animation-play-state: paused; }
@keyframes cinta { to { transform: translateX(-100%); } }

/* ---------- Visita ---------- */
.visita { position: relative; min-height: 100svh; display: grid; place-items: center; background: var(--bosque); color: var(--hueso); overflow: hidden; }
.visita__recorte { position: absolute; inset: 0; will-change: clip-path; }
.visita__recorte img { width: 100%; height: 100%; object-fit: cover; }
.visita__velo { position: absolute; inset: 0; background: rgba(14, 22, 17, .55); pointer-events: none; }
.visita__contenido { position: relative; text-align: center; padding: 6rem var(--margen); max-width: 46rem; }
.visita__titulo { font-size: clamp(3rem, 8vw, 7rem); }
.visita__texto { margin: 1.4rem auto 0; max-width: 26rem; font-size: 1.15rem; color: #e4e1d6; }
.visita__botones { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; margin-top: 2.2rem; }
.visita__lugar { margin-top: 1.8rem; font-size: .9rem; letter-spacing: .04em; color: #d6d3c7; }

/* ---------- Pie ---------- */
.pie-pagina { background: var(--bosque); color: var(--hueso); padding: 3rem var(--margen) 2rem; }
.pie-pagina__fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; max-width: 1440px; margin: 0 auto; }
.pie-pagina__redes { display: flex; gap: 1.8rem; }
.pie-pagina__redes a { text-decoration: none; }
.pie-pagina__fila--legal { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(241, 238, 230, .14); font-size: .85rem; color: var(--claro-suave); }
.pie-pagina__zenit { color: rgba(255, 255, 255, .46); font-size: 12px; letter-spacing: .06em; }
.marca--pie { margin-right: 0; }
.marca--pie .marca__nombre { font-size: 2.2rem; }

/* ---------- Solo celular ---------- */
@media (max-width: 639px) {
  .cabecera { padding: .9rem var(--margen); gap: .9rem; }
  .nav { display: none; }
  .cabecera .boton--cabecera { min-height: 2.4rem; padding: .45rem .85rem; font-size: .82rem; letter-spacing: .01em; }
  .menu-boton { display: inline-flex; padding: .6rem 0 .6rem .3rem; }
  .menu-boton__texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .marca__nombre { font-size: 1.5rem; }
  .hero__contenido { padding-bottom: 6.5rem; }
  .hero__botones .boton { flex: 1 1 auto; }
  .dia__pista { gap: 3rem; }
  .evento--quince .evento__foto { max-width: 62%; }
  .galeria__col:last-child figure:last-child { grid-column: 1 / -1; }
  .paquete__panel { width: 100%; box-shadow: none; }
  .visita__botones .boton { flex: 1 1 100%; }
  .pie-pagina__fila { flex-direction: column; align-items: flex-start; }
}

/* ---------- Tablet (entre celular y compu) ---------- */
@media (min-width: 640px) and (max-width: 959px) {
  .nav { display: none; }
  .menu-boton { display: inline-flex; }
  .cabecera { gap: 1.2rem; }
  .galeria__columnas { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Solo compu ---------- */
@media (min-width: 960px) {
  .manifiesto__grid { grid-template-columns: repeat(12, 1fr); column-gap: 2rem; row-gap: 0; align-items: start; }
  .manifiesto__texto { grid-column: 1 / 9; grid-row: 1; }
  .manifiesto__foto--alta { grid-column: 9 / 13; grid-row: 1 / 3; margin-top: 8rem; }
  .manifiesto__foto--ancha { grid-column: 2 / 8; grid-row: 2; margin-top: 5rem; }

  .dia__pin { height: 100vh; overflow: hidden; }
  .dia__pista { flex-direction: row; align-items: center; gap: 6vw; height: 100%; width: max-content; padding: 0 8vw 0 var(--margen); }
  .dia__intro { width: 30vw; flex-shrink: 0; }
  .momento { flex-shrink: 0; }
  .momento__foto { height: 56vh; width: auto; }
  .momento:nth-of-type(even) { align-self: flex-start; margin-top: 12vh; }
  .momento:nth-of-type(odd) { align-self: flex-end; margin-bottom: 10vh; }
  .dia__barra { display: block; position: absolute; left: var(--margen); right: var(--margen); bottom: 4vh; height: 1px; background: rgba(241, 238, 230, .18); }
  .dia__barra span { display: block; height: 100%; width: 100%; background: var(--ambar); transform: scaleX(0); transform-origin: left center; }

  .espacios::after { background: linear-gradient(to bottom, rgba(14, 22, 17, .68) 0%, rgba(14, 22, 17, 0) 42%), linear-gradient(to left, rgba(14, 22, 17, .8) 0%, rgba(14, 22, 17, .5) 30%, rgba(14, 22, 17, 0) 55%); }
  .espacios__lista { display: block; position: absolute; z-index: 3; right: var(--margen); top: 50%; transform: translateY(-50%); width: min(26rem, 34vw); }
  .espacios__control { left: auto; width: min(26rem, 34vw); }
  .espacio__info { bottom: clamp(3rem, 9vh, 5.5rem); }

  .eventos__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 5rem; }
  .eventos__fijo { position: sticky; top: 24vh; }
  .eventos__titulo { margin-bottom: 0; }
  .eventos__lista { gap: 10rem; padding-top: 2rem; }
  .evento--boda { grid-template-columns: 7fr 5fr; gap: 2.5rem; align-items: end; }
  .evento--quince { grid-template-columns: 5fr 6fr; gap: 2.5rem; align-items: end; }
  .evento--quince .evento__foto { max-width: none; }
  /* Solo cuando el JS guía la sección: la respuesta aparece y los eventos que no están en foco se apagan. */
  .eventos.is-guiado .eventos__respuesta {
    display: flex; align-items: center; gap: 1.2rem; margin-top: 2.4rem;
    font-family: var(--fuente-titulos); font-style: italic; font-size: clamp(1.7rem, 2.5vw, 2.4rem); color: var(--hueso);
  }
  .eventos__raya { width: 2.6rem; height: 1px; background: var(--ambar); flex-shrink: 0; }
  .eventos__ventana { display: inline-block; overflow: hidden; line-height: 1.35; }
  .eventos__ventana span { display: inline-block; }
  .eventos.is-guiado .evento { opacity: .38; transition: opacity .7s ease; }
  .eventos.is-guiado .evento.is-activo { opacity: 1; }

  .galeria__columnas { grid-template-columns: repeat(3, 1fr); gap: 1.4rem; align-items: start; }
  .galeria__col { display: flex; flex-direction: column; gap: 1.4rem; }
  .galeria__col:nth-child(2) { margin-top: 8rem; }
}

/* ---------- Menos movimiento ---------- */
@media (prefers-reduced-motion: reduce) {
  .cortina { display: none; }
  .cinta__lista { animation: none; }
  .cinta { flex-wrap: wrap; justify-content: center; }
  .cinta__lista[aria-hidden="true"] { display: none; }
  .cinta__lista { flex-wrap: wrap; justify-content: center; row-gap: .6rem; }
  [data-parallax="img"] { transform: none; }
  .boton, .boton::before, .rodar__in, .cabecera { transition: none; }
  .eventos__respuesta { display: none !important; }
  .boton:active { transform: none; }
}
