@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fuentes/cormorant-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fuentes/cormorant-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fuentes/jost-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fuentes/jost-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fuentes/jost-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fuentes/jost-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* El Dorado Eventos. Marca leída de su web: Cormorant Garamond + Jost, dorado #b4975a, verde #445545. */
:root {
  --noche: #121310;
  --noche-2: #1c1d18;
  --verde: #354236;
  --verde-claro: #445545;
  --arena: #ede6da;
  --arena-2: #e3d9c8;
  --blanco: #fbf9f5;
  --tinta: #1d1e1a;
  --gris: #66655d;
  --oro: #b4975a;
  --oro-claro: #d9c49b;
  --redondeo: 18px;
  --redondeo-chico: 14px;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Jost", system-ui, -apple-system, sans-serif;
  --lado: clamp(16px, 5vw, 64px);
  --ancho: 1320px;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { font-family: var(--sans); color: var(--tinta); background: var(--blanco); font-size: 17px; line-height: 1.55; overflow-x: clip; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

h1, h2, h3, .t { font-family: var(--serif); font-weight: 600; line-height: 1.02; letter-spacing: -0.01em; }
h2 { font-size: clamp(2.3rem, 4.6vw + 1rem, 4.6rem); }
h3 { font-size: clamp(1.6rem, 1.4vw + 1.1rem, 2.2rem); }
.bajada { font-size: clamp(1rem, 0.3vw + 0.95rem, 1.2rem); color: var(--gris); max-width: 34em; }
.marco { width: 100%; max-width: var(--ancho); margin: 0 auto; padding: 0 var(--lado); }

/* botones */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 50px; padding: 0 1.4em;
  border-radius: 999px; font-weight: 500; font-size: 1rem; text-decoration: none; letter-spacing: .01em;
  transition: background .2s, color .2s, transform .2s; white-space: nowrap; }
.btn:active { transform: scale(.98); }
.btn-oro { background: var(--oro); color: #fff; }
.btn-oro:hover { background: #a2864b; }
.btn-claro { border: 1.5px solid rgba(255,255,255,.7); color: #fff; }
.btn-claro:hover { background: rgba(255,255,255,.12); }
.btn-oscuro { border: 1.5px solid var(--tinta); color: var(--tinta); }
.btn-oscuro:hover { background: var(--tinta); color: #fff; }
.flecha { text-decoration: none; font-weight: 500; border-bottom: 1.5px solid var(--oro); padding-bottom: 2px; display: inline-flex; min-height: 44px; align-items: center; }

/* cabecera: una línea */
.cab { position: fixed; inset: 0 0 auto 0; z-index: 50; height: 68px; display: flex; align-items: center;
  transition: background .3s, transform .35s; }
.cab .marco { display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: none; }
.cab .logo img { height: 46px; width: auto; }
.cab nav { display: flex; align-items: center; gap: 26px; }
.cab nav a { color: #fff; text-decoration: none; font-size: .95rem; letter-spacing: .02em; opacity: .9; }
.cab nav a:hover { opacity: 1; }
.cab nav .btn { min-height: 42px; opacity: 1; }
.cab.solida { background: rgba(18,19,16,.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.cab.oculta { transform: translateY(-100%); }
.barra { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: var(--oro); }
.menu-btn { display: none; width: 48px; height: 48px; color: #fff; align-items: center; justify-content: center; }
.menu-btn span, .menu-btn span::before, .menu-btn span::after { display: block; width: 24px; height: 2px; background: currentColor; position: relative; content: ""; transition: transform .25s; }
.menu-btn span::before { position: absolute; top: -7px; } .menu-btn span::after { position: absolute; top: 7px; }
.menu-abierto .menu-btn span { background: transparent; }
.menu-abierto .menu-btn span::before { transform: translateY(7px) rotate(45deg); }
.menu-abierto .menu-btn span::after { transform: translateY(-7px) rotate(-45deg); }
.menu-cel { position: fixed; inset: 0; z-index: 40; background: var(--noche); color: #fff; padding: 100px var(--lado) 40px; display: flex; flex-direction: column; gap: 6px; }
.menu-cel[hidden] { display: none; }
.menu-cel a { font-family: var(--serif); font-size: 2.3rem; font-weight: 600; text-decoration: none; min-height: 56px; display: flex; align-items: center; border-bottom: 1px solid rgba(255,255,255,.1); }
.menu-cel .btn { margin-top: 24px; font-family: var(--sans); font-size: 1.05rem; border: 0; }
.menu-abierto { overflow: hidden; }
.menu-abierto .cab { background: var(--noche); }

/* secciones: una pantalla */
.pant { min-height: 100svh; position: relative; }
main > section { scroll-margin-top: 0; }

/* ---------- hero ---------- */
.hero { height: 100svh; min-height: 560px; color: #fff; background: var(--noche); overflow: hidden; display: flex; align-items: flex-end; }
.hero-media { position: absolute; inset: 0; }
.hero-media video, .hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-media::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,11,9,.55) 0%, rgba(10,11,9,0) 22%, rgba(10,11,9,0) 42%, rgba(10,11,9,.78) 100%); }
.hero .marco, .ev-hero .marco { position: relative; z-index: 2; padding-bottom: clamp(28px, 7vh, 80px); max-width: none; }
.hero h1, .ev-hero h1 { font-size: clamp(2.9rem, 5.4vw + 1.2rem, 6.6rem); max-width: 11.5em; text-wrap: balance; }
.hero-dato { margin-top: 14px; font-size: clamp(1rem, .4vw + .95rem, 1.25rem); max-width: 32em; color: rgba(255,255,255,.88); }
.hero-acciones { display: flex; gap: 12px; margin-top: 24px; flex-wrap: wrap; }
.sol { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; font-size: .92rem; color: rgba(255,255,255,.85); }
.sol i { width: 10px; height: 10px; border-radius: 50%; background: var(--oro-claro); box-shadow: 0 0 0 4px rgba(217,196,155,.22); flex: none; }
.sol b { font-weight: 500; color: #fff; }

/* ---------- ¿qué festejás? ---------- */
.festejos { background: var(--arena); display: flex; flex-direction: column; justify-content: center; padding: clamp(72px, 10vh, 120px) 0 clamp(36px, 6vh, 80px); }
.festejos h2 { margin-bottom: clamp(18px, 3vh, 40px); }
.fest-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 1.6vw, 26px); }
.fest { text-decoration: none; display: flex; flex-direction: column; gap: 14px; }
.fest-foto { border-radius: var(--redondeo); overflow: hidden; height: min(52vh, 560px); background: var(--arena-2); }
.fest-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.fest:hover .fest-foto img { transform: scale(1.04); }
.fest h3 { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.fest h3::after { content: "→"; font-family: var(--sans); font-size: 1.2rem; color: var(--oro); transition: transform .3s; }
.fest:hover h3::after { transform: translateX(6px); }
.fest p { color: var(--gris); font-size: .95rem; line-height: 1.45; }

/* ---------- de la tarde a la noche (sello) ---------- */
.dia { --c: #4f5f3c; background: var(--c); color: #fff; transition: background-color .9s ease; }
.dia-pin { min-height: 100svh; display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(28px, 5vh, 60px); }
.dia-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: clamp(16px, 3vh, 36px); }
.dia-cab h2 { font-size: clamp(2.2rem, 4vw + 1rem, 4.4rem); }
.dia-pasos { display: flex; gap: 8px; }
.dia-pasos i { width: 28px; height: 3px; border-radius: 3px; background: rgba(255,255,255,.3); transition: background .4s; }
.dia-pasos i.on { background: #fff; }
.momentos { display: grid; }
.mom { display: grid; grid-template-columns: 1fr 1.35fr; gap: clamp(20px, 4vw, 70px); align-items: center; }
.mom-txt .n { font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.mom-txt h3 { font-size: clamp(2rem, 3.4vw + 1rem, 4.8rem); margin: 8px 0 12px; }
.mom-txt p { font-size: clamp(1rem, .5vw + .9rem, 1.4rem); color: rgba(255,255,255,.88); max-width: 26em; }
.mom-foto { border-radius: var(--redondeo); overflow: hidden; height: min(62vh, 640px); }
.mom-foto img { width: 100%; height: 100%; object-fit: cover; }
.cita { margin-top: 18px; display: grid; grid-template-columns: 44px 1fr; gap: 12px; align-items: start; max-width: 30em; }
.cita img, .cita .ini { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.cita p { font-size: clamp(.95rem, .3vw + .85rem, 1.1rem); }
.cita b { display: block; font-weight: 500; font-size: .9rem; margin-top: 4px; }
.estrellas { color: #f2b437; letter-spacing: 1px; font-size: .9rem; }
/* modo fijado: lo activa el JS */
.dia.fijo { height: 420svh; }
.dia.fijo .dia-pin { position: sticky; top: 0; height: 100svh; }
.dia.fijo .momentos > .mom { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s .6s; }
.dia.fijo .momentos > .mom.on { opacity: 1; visibility: visible; transition: opacity .6s ease; }
.dia.fijo .mom .mom-foto img { transform: scale(1.06); transition: transform 1.6s cubic-bezier(.2,.7,.2,1); }
.dia.fijo .mom.on .mom-foto img { transform: scale(1); }
.dia:not(.fijo) .momentos { gap: 56px; }

/* ---------- el lugar ---------- */
.lugar { background: var(--verde); color: #fff; display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.lugar-cab { display: grid; grid-template-columns: 1.1fr 1fr; gap: 30px; align-items: end; margin-bottom: clamp(18px, 3.5vh, 40px); }
.lugar-cab p { color: rgba(255,255,255,.82); font-size: clamp(1rem, .3vw + .95rem, 1.18rem); }
.lugar-cab .num { font-family: var(--serif); font-weight: 600; color: var(--oro-claro); }
.carril { display: flex; gap: clamp(12px, 1.4vw, 22px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 0 var(--lado); scroll-padding: 0 var(--lado); -webkit-overflow-scrolling: touch; }
.carril::-webkit-scrollbar { display: none; }
.esp { flex: 0 0 clamp(250px, 27vw, 400px); scroll-snap-align: start; text-decoration: none; }
.esp-foto { border-radius: var(--redondeo); overflow: hidden; height: min(44vh, 470px); background: rgba(255,255,255,.06); }
.esp-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.esp:hover .esp-foto img { transform: scale(1.04); }
.esp h3 { font-size: clamp(1.5rem, .8vw + 1.2rem, 2rem); margin: 14px 0 4px; }
.esp p { color: rgba(255,255,255,.78); font-size: .95rem; line-height: 1.45; }
.carril-nav { display: flex; justify-content: space-between; align-items: center; margin-top: clamp(16px, 3vh, 30px); }
.flechas { display: flex; gap: 10px; }
.flechas button { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid currentColor; opacity: .8; font-size: 1.1rem; }
.flechas button:hover { opacity: 1; }
.lugar .flecha { color: #fff; }

/* ---------- la gente ---------- */
.gente { background: var(--arena); display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.gente-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 5vw, 80px); align-items: center; }
.gente-foto { border-radius: var(--redondeo); overflow: hidden; height: min(70vh, 700px); }
.gente-foto img { width: 100%; height: 100%; object-fit: cover; }
.gente h2 { font-size: clamp(2rem, 3vw + 1rem, 3.8rem); }
.gente .bajada { margin: 14px 0 22px; }
.nombres { display: grid; gap: 14px; }

/* ---------- reseñas: como Google, en la caja de la marca ---------- */
.resenas { background: var(--blanco); display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.res-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: clamp(18px, 3.5vh, 36px); }
.nota { display: flex; align-items: center; gap: 14px; }
.nota .num { font-family: var(--serif); font-weight: 600; font-size: clamp(3rem, 3vw + 1.6rem, 4.6rem); line-height: 1; }
.nota small { display: block; color: var(--gris); font-size: .9rem; }
.res { flex: 0 0 clamp(290px, 30vw, 410px); scroll-snap-align: start; background: #fff; border: 1px solid #e7e1d6; border-radius: var(--redondeo-chico);
  padding: 22px 22px 18px; display: flex; flex-direction: column; gap: 10px; }
.res-top { display: grid; grid-template-columns: 46px 1fr; gap: 12px; align-items: center; }
.res-top img, .ini { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.ini { display: grid; place-items: center; color: #fff; font-weight: 500; font-size: 1.15rem; }
.res-top b { display: block; font-weight: 500; line-height: 1.2; }
.res-top small { color: var(--gris); font-size: .85rem; }
.res-txt { font-size: .97rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.res.abierta .res-txt { -webkit-line-clamp: unset; display: block; }
.res .leer { align-self: flex-start; color: var(--oro); font-weight: 500; font-size: .92rem; min-height: 40px; }
.res-tipo { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--oro); }
.resenas .carril { padding-bottom: 6px; }

/* ---------- pedí tu fecha ---------- */
.fecha { background: var(--noche); color: #fff; display: flex; flex-direction: column; justify-content: center; padding: clamp(84px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.fecha-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(24px, 5vw, 80px); align-items: start; }
.fecha h2 { font-size: clamp(2.3rem, 3.6vw + 1rem, 4.4rem); }
.fecha .bajada { color: rgba(255,255,255,.75); margin-top: 12px; }
.fecha-foto { margin-top: 26px; border-radius: var(--redondeo); overflow: hidden; height: min(38vh, 380px); }
.fecha-foto img { width: 100%; height: 100%; object-fit: cover; }
.form { display: grid; gap: clamp(14px, 2.2vh, 22px); }
.campo > span { display: block; font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; color: var(--oro-claro); margin-bottom: 8px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips button { min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1.5px solid rgba(255,255,255,.28); font-size: .95rem; transition: background .2s, border-color .2s, color .2s; }
.chips button:hover { border-color: rgba(255,255,255,.6); }
.chips button[aria-pressed="true"] { background: var(--oro); border-color: var(--oro); color: #fff; }
.fila { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.fecha-btn, .form input[type=text] { min-height: 48px; border-radius: 12px; border: 1.5px solid rgba(255,255,255,.28); background: rgba(255,255,255,.06);
  color: #fff; padding: 0 14px; font: inherit; font-size: 1rem; color-scheme: dark; }
.form input[type=text] { width: 100%; }
.form input:focus { outline: 2px solid var(--oro); outline-offset: 1px; }
.sol-dia { font-size: .95rem; color: var(--oro-claro); min-height: 1.5em; }
.sol-dia b { color: #fff; font-weight: 500; }
.mensaje { background: rgba(255,255,255,.06); border-radius: var(--redondeo-chico); padding: 14px 16px; font-size: .95rem; color: rgba(255,255,255,.9); border-left: 3px solid var(--oro); }
.mensaje small { display: block; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.55); margin-bottom: 4px; }
.form .btn { justify-self: start; }

/* ---------- cómo llegar ---------- */
.llegar { background: var(--arena); display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.llegar-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(24px, 5vw, 80px); align-items: center; }
.llegar h2 { font-size: clamp(2.2rem, 3vw + 1rem, 3.8rem); }
.dato-grande { font-family: var(--serif); font-weight: 600; font-size: clamp(2rem, 2vw + 1.2rem, 3rem); line-height: 1.05; margin-top: 18px; }
.dato-grande small { display: block; font-family: var(--sans); font-weight: 400; font-size: .95rem; color: var(--gris); margin-top: 4px; }
.llegar address { font-style: normal; margin: 18px 0 20px; font-size: 1.05rem; }
.mapa { border-radius: var(--redondeo); overflow: hidden; height: min(60vh, 560px); background: var(--arena-2); }
.mapa iframe { width: 100%; height: 100%; border: 0; filter: saturate(.85); }
.contacto-lista { display: grid; gap: 4px; margin-top: 8px; }
.contacto-lista a { text-decoration: none; min-height: 40px; display: inline-flex; align-items: center; }

/* ---------- pie ---------- */
.pie { background: var(--noche); color: rgba(255,255,255,.75); padding: 56px 0 40px; font-size: .95rem; }
.pie-grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 30px; }
.pie img { height: 54px; width: auto; margin-bottom: 14px; }
.pie a { text-decoration: none; display: inline-flex; min-height: 36px; align-items: center; }
.pie a:hover { color: #fff; }
.pie h4 { font-family: var(--sans); font-weight: 500; color: #fff; font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 8px; }
.pie-base { margin-top: 36px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.1); font-size: .82rem; color: rgba(255,255,255,.5); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* ---------- páginas de evento ---------- */
.ev-hero { height: 100svh; min-height: 560px; color: #fff; background: var(--noche); display: flex; align-items: flex-end; overflow: hidden; }
.ev-hero .hero-media img { object-position: var(--pos, 50% 50%); }
.ev-tipos { display: flex; flex-wrap: wrap; gap: 8px 10px; margin-top: 18px; max-width: 40em; }
.ev-tipos li { list-style: none; font-size: .9rem; padding: 6px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.4); }
.galeria { background: var(--blanco); display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.galeria .carril { align-items: stretch; }
.gal { flex: 0 0 auto; height: min(62vh, 620px); border-radius: var(--redondeo); overflow: hidden; scroll-snap-align: start; background: var(--arena); }
.gal img { height: 100%; width: auto; max-width: none; }
.galeria .flechas, .resenas .flechas { color: var(--tinta); }
.incluye { background: var(--arena); display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.incluye-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(24px, 5vw, 80px); align-items: center; }
.lista-inc { columns: 2; column-gap: 28px; margin-top: 22px; }
.lista-inc li { list-style: none; break-inside: avoid; padding: 10px 0 10px 22px; border-bottom: 1px solid rgba(0,0,0,.09); position: relative; font-size: 1rem; }
.lista-inc li::before { content: ""; position: absolute; left: 0; top: 1.05em; width: 8px; height: 8px; border-radius: 50%; background: var(--oro); }
.incluye-foto { border-radius: var(--redondeo); overflow: hidden; height: min(70vh, 680px); }
.incluye-foto img { width: 100%; height: 100%; object-fit: cover; }
.otros { background: var(--verde); color: #fff; padding: clamp(60px, 9vh, 100px) 0; }
.otros .fest p { color: rgba(255,255,255,.75); }
.otros .fest-foto { height: min(34vh, 340px); }

/* ---------- el lugar (página) ---------- */
.esp-sec { display: flex; flex-direction: column; justify-content: center; padding: clamp(84px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.esp-sec.claro { background: var(--blanco); } .esp-sec.arena { background: var(--arena); }
.esp-sec.oscuro { background: var(--noche); color: #fff; } .esp-sec.verde { background: var(--verde); color: #fff; }
.esp-sec.oscuro .bajada, .esp-sec.verde .bajada { color: rgba(255,255,255,.8); }
.esp-grid { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(24px, 5vw, 80px); align-items: center; }
.esp-grid.inv { grid-template-columns: 1.3fr 1fr; }
.esp-grid.inv .esp-fotos { order: -1; }
.esp-sec h2 { font-size: clamp(2.2rem, 3.4vw + 1rem, 4.2rem); }
.esp-sec .bajada { margin-top: 14px; }
.cifras { display: flex; gap: clamp(20px, 3vw, 44px); margin: 22px 0 6px; flex-wrap: wrap; }
.cifras div { font-family: var(--serif); font-weight: 600; font-size: clamp(2.2rem, 2vw + 1.4rem, 3.2rem); line-height: 1; }
.cifras small { display: block; font-family: var(--sans); font-weight: 400; font-size: .85rem; letter-spacing: .02em; opacity: .75; margin-top: 6px; }
.esp-fotos { display: grid; grid-template-columns: 1.5fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; height: min(70vh, 680px); }
.esp-fotos > div { border-radius: var(--redondeo); overflow: hidden; }
.esp-fotos > div:first-child { grid-row: 1 / 3; }
.esp-fotos img { width: 100%; height: 100%; object-fit: cover; }
.casas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 26px; }
.casa { text-decoration: none; }
.casa .esp-foto { height: min(40vh, 400px); }
.casa h3 { font-size: 1.8rem; margin: 12px 0 2px; }
.casa p { font-size: .92rem; color: var(--gris); }
.serv { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.serv li { list-style: none; font-size: .88rem; padding: 6px 13px; border-radius: 999px; border: 1px solid currentColor; opacity: .85; }

.e404 { min-height: 100svh; background: var(--noche); color: #fff; display: flex; align-items: center; }
.e404 h1 { font-size: clamp(2.6rem, 5vw + 1rem, 5rem); margin-bottom: 14px; }

/* ---------- entradas ---------- */
.js .rv { opacity: 0; transform: translateY(14px); transition: opacity .45s ease, transform .45s ease; transition-delay: calc(var(--d, 0) * 50ms); }
.js .rv.in { opacity: 1; transform: none; }

/* ---------- escritorio ancho ---------- */
@media (min-width: 1500px) { :root { --ancho: 1500px; } }

/* ---------- celular ---------- */
@media (max-width: 900px) {
  .cab nav { display: none; }
  .menu-btn { display: inline-flex; }
  .cab { height: 60px; }
  .cab .logo img { height: 38px; }
  .hero, .ev-hero { align-items: stretch; }
  .hero .marco, .ev-hero .marco { display: flex; flex-direction: column; justify-content: flex-end; padding-bottom: 26px; }
  .hero h1, .ev-hero h1 { font-size: clamp(2.3rem, 9.6vw, 3.4rem); }
  .otros .fest-grid { grid-template-columns: 1fr !important; }
  .hero-acciones .btn { flex: 1 1 auto; }
  .fest-grid { grid-template-columns: 1fr; gap: 12px; }
  .fest { display: grid; grid-template-columns: 38vw 1fr; gap: 16px; align-items: center; }
  .fest-foto { height: min(19svh, 170px); border-radius: var(--redondeo-chico); }
  .fest h3 { font-size: 1.75rem; }
  .fest p { font-size: .9rem; }
  .festejos { justify-content: center; }
  .dia-cab h2 { font-size: 2.1rem; }
  .mom { grid-template-columns: 1fr; gap: 16px; }
  .mom-foto { height: 40svh; order: -1; }
  .mom-txt h3 { font-size: 2.1rem; margin: 4px 0 8px; }
  .mom-txt p { font-size: 1rem; }
  .lugar-cab { grid-template-columns: 1fr; gap: 10px; }
  .esp { flex-basis: 76vw; }
  .esp-foto { height: 40svh; }
  .gente-grid { grid-template-columns: 1fr; gap: 18px; }
  .gente-foto { height: 34svh; order: -1; }
  .res { flex-basis: 84vw; }
  .res-cab { flex-direction: column; align-items: flex-start; gap: 10px; }
  .fecha-grid { grid-template-columns: 1fr; gap: 18px; }
  .fecha-foto { display: none; }
  .llegar-grid { grid-template-columns: 1fr; gap: 18px; }
  .mapa { height: 30svh; }
  .pie-grid { grid-template-columns: 1fr 1fr; }
  .pie-grid > div:first-child { grid-column: 1 / -1; }
  .flechas { display: none; }
  .gal { height: 52svh; }
  .incluye-grid, .esp-grid, .esp-grid.inv { grid-template-columns: 1fr; gap: 18px; }
  .incluye-foto { height: 30svh; order: -1; }
  .lista-inc { columns: 1; margin-top: 12px; }
  .lista-inc li { padding: 7px 0 7px 22px; font-size: .95rem; }
  .esp-fotos { height: 38svh; order: -1; }
  .esp-grid.inv .esp-fotos { order: -1; }
  .casas { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 18px calc(-1 * var(--lado)) 0; padding: 0 var(--lado); scrollbar-width: none; }
  .casa { flex: 0 0 70vw; scroll-snap-align: start; }
  .casa .esp-foto { height: 32svh; }
  .otros .fest-foto { height: min(17svh, 150px); }
}
/* iPhone con barras de Safari (~664 px) y SE (~553 px) */
@media (max-width: 900px) and (max-height: 740px) {
  .ev-tipos li { font-size: .8rem; padding: 4px 11px; }
  .hero h1, .ev-hero h1 { font-size: clamp(2.3rem, 9.6vw, 3.1rem); }
  .hero-dato { font-size: .95rem; margin-top: 10px; }
  .hero-acciones { margin-top: 16px; }
  .sol { margin-top: 12px; }
  .festejos, .lugar, .gente, .resenas, .fecha, .llegar, .galeria, .incluye, .esp-sec { padding-top: 72px; padding-bottom: 22px; }
  .fest-foto { height: 15svh; }
  .fest h3 { font-size: 1.5rem; }
  .festejos h2, .dia-cab h2 { font-size: 1.9rem; }
  .dia-pin { padding-top: 70px; padding-bottom: 18px; }
  .mom-foto { height: 34svh; }
  .mom-txt h3 { font-size: 1.8rem; }
  .mom-txt p { font-size: .95rem; }
  .cita { margin-top: 10px; }
  .esp-foto { height: 33svh; }
  .gente-foto { height: 26svh; }
  .gente h2 { font-size: 1.9rem; }
  .gente .bajada { margin: 8px 0 12px; font-size: .95rem; }
  .res-txt { -webkit-line-clamp: 4; }
  .fecha h2 { font-size: 2rem; }
  .form { gap: 11px; }
  .chips button { min-height: 44px; padding: 0 13px; font-size: .9rem; }
  .mapa { height: 24svh; }
  .gal { height: 46svh; }
  .incluye-foto, .esp-fotos { height: 26svh; }
  .esp-sec h2 { font-size: 2rem; }
}
@media (max-width: 900px) and (max-height: 600px) {
  .hero-dato { display: none; }
  .fest-foto { height: 13svh; }
  .fest p { display: none; }
  .mom-foto { height: 28svh; }
  .esp-foto { height: 28svh; }
  .gente-foto { height: 20svh; }
  .mapa { height: 20svh; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media (max-width: 900px) {
  .fecha .bajada { font-size: .95rem; margin-top: 8px; }
  .fecha h2 { font-size: 2.2rem; }
  .chips { gap: 6px; flex-wrap: nowrap; }
  .chips button { padding: 0 12px; font-size: .9rem; flex: 1 1 auto; }
  .fila { flex-wrap: nowrap; }
  .fila input[type=date] { flex: 1 1 auto; min-width: 0; }
  .fila .chips { flex: 0 0 auto; }
  .campo > span { margin-bottom: 6px; font-size: .76rem; }
  .form .btn { justify-self: stretch; }
  .mensaje { font-size: .88rem; padding: 10px 14px; }
}
@media (max-width: 900px) and (max-height: 740px) {
  .fecha .bajada { display: none; }
  .campo.nombre { display: none; }
}
.cab .logo { display: inline-flex; align-items: center; min-height: 48px; }
@media (max-width: 900px) {
  .campo.nombre { display: none; }
  .contacto-lista { grid-auto-flow: row; grid-template-columns: 1fr 1fr; column-gap: 12px; }
  .contacto-lista a:last-child { grid-column: 1 / -1; }
}
@media (max-width: 900px) and (max-height: 740px) {
  .mapa { height: 21svh; }
  .llegar address { margin: 10px 0 12px; }
  .dato-grande { margin-top: 10px; font-size: 1.8rem; }
}
@media (max-width: 900px) and (max-height: 600px) {
  .mensaje { display: none; }
  .lista-inc li { padding: 4px 0 4px 20px; font-size: .88rem; }
  .lista-inc li::before { top: .8em; }
  .incluye h2 { font-size: 1.8rem; }
  .fecha h2 { font-size: 1.8rem; }
  .llegar h2 { font-size: 1.7rem; }
}
@media (min-width: 901px) and (max-height: 780px) {
  .form { gap: 10px; }
  .fecha-foto { height: 30vh; }
  .chips button { min-height: 40px; }
}
.fecha-btn { position: relative; display: inline-flex; align-items: center; gap: 10px; min-width: 180px; cursor: pointer; color: rgba(255,255,255,.7); }
.fecha-btn::after { content: ""; width: 16px; height: 16px; margin-left: auto; border: 1.5px solid currentColor; border-radius: 3px; border-top-width: 4px; }
.fecha-btn.lleno { color: #fff; border-color: var(--oro); }
.fecha-btn input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; padding: 0; -webkit-appearance: none; appearance: none; }
.fecha-btn:focus-within { outline: 2px solid var(--oro); outline-offset: 1px; }
.ev-hero .hero-media::after { background: linear-gradient(180deg, rgba(10,11,9,.5) 0%, rgba(10,11,9,0) 20%, rgba(10,11,9,.1) 38%, rgba(10,11,9,.9) 78%, rgba(10,11,9,.94) 100%); }
@media (max-width: 900px) { .fecha-btn { flex: 1 1 auto; min-width: 0; } }
.lluvia { background: var(--arena); display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 11vh, 120px) 0 clamp(36px, 6vh, 70px); }
.lluvia h2 { font-size: clamp(2.2rem, 3.4vw + 1rem, 4.2rem); }
.lluvia-foto { border-radius: var(--redondeo); overflow: hidden; height: min(70vh, 680px); }
.lluvia-foto img { width: 100%; height: 100%; object-fit: cover; }
.lluvia .cita, .gente .cita, .citas-fila .cita { color: var(--tinta); }
.citas-fila { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 24px; }
.cita img, .cita .ini { flex: none; }
@media (max-width: 900px) {
  .lluvia-foto { height: 28svh; order: -1; }
  .citas-fila { grid-template-columns: 1fr; gap: 10px; margin-top: 14px; }
  .lluvia .cifras { margin: 12px 0 4px; }
  .lluvia .cifras div { font-size: 2rem; }
}
@media (max-width: 900px) and (max-height: 740px) {
  .lluvia-foto { height: 22svh; }
  .lluvia .bajada { font-size: .92rem; }
  .lluvia h2 { font-size: 2rem; }
  .citas-fila .cita:nth-child(2) { display: none; }
}
@media (max-width: 900px) and (max-height: 740px) { .gente .nombres .cita:nth-child(3) { display: none; } .gente .nombres { gap: 10px; } }
@media (max-width: 900px) {
  .gente-foto { height: 24svh; }
  .gente .cita p { font-size: .9rem; }
  .citas-fila .cita:nth-child(2) { display: none; }
}
@media (max-width: 900px) and (max-height: 600px) { .lluvia .cifras { display: none; } .gente-foto { height: 18svh; } }
@media (min-width: 901px) and (max-height: 780px) { .casa .esp-foto { height: 34vh; } .citas-fila { margin-top: 14px; } }
.horario { font-size: .92rem; color: var(--gris); margin-top: 6px; }
@media (max-width: 900px) { .gente .nombres .cita:nth-child(3) { display: none; } }
@media (max-width: 900px) and (max-height: 600px) { .llegar .horario, .llegar .dato-grande small { display: none; } .citas-fila { display: none; } .mapa { height: 18svh; } }
/* ---------- v2: crítica 1 ---------- */
h1, h2, h3, .cifras, .dato-grande, .nota .num { font-variant-numeric: lining-nums; }
.serv.oscuro li { border-color: rgba(0,0,0,.25); opacity: 1; }
.serv.grande { gap: 10px; margin-top: 22px; }
.serv.grande li { font-size: 1rem; padding: 9px 16px; background: rgba(255,255,255,.5); border-color: rgba(0,0,0,.12); }
.res .leer { min-height: 44px; }
.pie a { min-height: 44px; }
.cab .logo img { filter: drop-shadow(0 1px 8px rgba(0,0,0,.45)); }
.casas { scroll-padding: 0 var(--lado); }
.otros .fest-foto { height: min(42vh, 420px); }
@media (max-width: 900px) {
  .cab .logo img { height: 44px; }
  .gal { height: auto; width: auto; background: none; display: flex; align-items: center; }
  .gal img { width: auto; height: auto; max-width: 84vw; max-height: 56svh; border-radius: var(--redondeo); }
  .galeria .carril { align-items: center; }
  .dia.fijo { height: 340svh; }
  .dia-cab h2 { font-size: 1.75rem; white-space: nowrap; }
  .dia-cab { margin-bottom: 12px; }
  .mom-foto { height: 44svh; }
  .mom { gap: 12px; }
  .otros .fest { grid-template-columns: 1fr; }
  .otros .fest-foto { height: 22svh; }
  .otros .fest-grid { gap: 22px; }
  .serv.grande li { font-size: .9rem; padding: 7px 13px; }
  .serv.grande { gap: 7px; margin-top: 14px; }
  .incluye-foto { height: 26svh; }
}
@media (max-width: 900px) and (max-height: 740px) {
  .mom-foto { height: 36svh; }
  .dia-pin { padding-top: 66px; }
  .serv.grande li { font-size: .82rem; padding: 5px 11px; }
  .incluye-foto { height: 22svh; }
  .gal img { max-height: 50svh; }
}
@media (max-width: 900px) and (max-height: 600px) {
  .mom-foto { height: 30svh; }
  .mom .cita { display: none; }
  .hero h1, .ev-hero h1 { font-size: 2.1rem; }
  .ev-tipos { display: none; }
  .gente .bajada { display: none; }
}
@media (max-width: 900px) and (min-height: 741px) { .campo.nombre { display: block; } .fecha { padding-top: 76px; } .fecha .bajada { display: none; } }
@media (max-width: 900px) { .lluvia .nombres .cita:nth-child(2) { display: none; } .lluvia .flecha { margin-top: 0 !important; } }
@media (max-width: 900px) and (max-height: 740px) { .lluvia .serv { display: none; } }
@media (max-width: 900px) and (max-height: 600px) { .lluvia .nombres { display: none; } }
@media (max-width: 900px) { .contacto-lista { grid-template-columns: auto auto; justify-content: start; } .contacto-lista a { white-space: nowrap; } }
