/* CŌRE Gastro Spot · Manual de marca v.01 */
:root{
  --negro:#0A0A0A; --carbon:#2A2724; --raton:#78736B; --claro:#C9C4BC; --crema:#E4DFD5; --blanco:#FFFFFF;
  --bg:var(--negro); --ink:var(--blanco); --rule:rgba(201,196,188,.16);
  --titular:"Jost","Futura","Century Gothic","Helvetica Neue",Arial,sans-serif;
  --cuerpo:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --datos:"Space Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --pad:clamp(1rem,4.5vw,4rem);
  --head:81px;
  color-scheme:dark;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
  background:var(--negro);
}
/* El sitio vive sobre negro en ambos modos: fondo preferente del manual */
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --bg:var(--negro); --ink:var(--blanco); } }
:root[data-theme="dark"]{ --bg:var(--negro); --ink:var(--blanco); }
*,*::before,*::after{ box-sizing:inherit; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--head) + 1rem); }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--cuerpo); font-weight:300; font-size:1rem; line-height:1.75; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img,video{ display:block; max-width:100%; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }
:focus-visible{ outline:1px solid var(--claro); outline-offset:4px; }
.skip{ position:absolute; left:-999px; top:0; background:var(--blanco); color:var(--negro); padding:.5rem 1rem; z-index:100; }
.skip:focus{ left:1rem; }

.mono{ font-family:var(--datos); font-weight:400; font-size:.7rem; line-height:1.6; letter-spacing:.2em; text-transform:uppercase; color:var(--raton); }
.titular{ font-family:var(--titular); font-weight:300; text-transform:uppercase; }
.u{ font-family:var(--cuerpo); font-weight:400; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; border-bottom:1px solid var(--raton); padding-bottom:4px; transition:border-color .3s; display:inline-block; }
.u:hover{ border-color:var(--blanco); }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:var(--titular); font-weight:300; font-size:.85rem; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; padding:1rem 2.2rem; border:1px solid var(--claro); background:transparent; cursor:pointer; transition:background .3s,color .3s,border-color .3s; }
.btn:hover{ background:var(--blanco); color:var(--negro); border-color:var(--blanco); }
.btn.solid{ background:var(--blanco); color:var(--negro); border-color:var(--blanco); }
.btn.solid:hover{ background:transparent; color:var(--blanco); }
.ph{ position:relative; background:radial-gradient(80% 80% at 45% 40%, #3a3632, var(--negro) 80%); }
.ph > .mono{ position:absolute; left:1rem; bottom:.9rem; }

/* ---------- Header ---------- */
.site-head{ position:sticky; top:0; z-index:40; background:rgba(10,10,10,.94); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-bottom:1px solid var(--rule); }
.bar{ display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:1rem; padding:1rem var(--pad); max-width:1680px; margin:0 auto; min-height:var(--head); }
.primary ul{ display:flex; align-items:center; list-style:none; margin:0; padding:0; }
.primary li{ line-height:1; }
.primary li + li{ border-left:1px solid var(--raton); }
.primary a{ display:block; font-family:var(--titular); font-weight:300; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; color:var(--claro); padding:.15rem .6rem; white-space:nowrap; transition:color .25s; }
.primary li:first-child a{ padding-left:0; }
.primary li:last-child a{ padding-right:0; }
.primary a:hover,.primary a[aria-current="page"]{ color:var(--blanco); }
.logo{ display:block; justify-self:center; }
.logo img{ height:48px; width:auto; }
.end{ justify-self:end; display:flex; align-items:center; gap:1.4rem; }
.lang{ background:none; border:0; padding:.4rem 0; cursor:pointer; font-family:var(--datos); font-size:.7rem; letter-spacing:.2em; color:var(--raton); }
.lang span[data-on="1"]{ color:var(--blanco); }
.reservas{ font-family:var(--titular); font-weight:300; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; border:1px solid var(--claro); padding:.6rem 1.3rem; transition:background .3s,color .3s; white-space:nowrap; }
.reservas:hover{ background:var(--blanco); color:var(--negro); border-color:var(--blanco); }

/* ---------- Home: intro (Lennox) ---------- */
.intro{ display:grid; grid-template-columns:5fr 7fr; min-height:calc(100svh - var(--head)); }
.intro .q{ display:flex; flex-direction:column; justify-content:center; padding:clamp(3rem,7vw,6rem) var(--pad); }
.latin{ font-family:var(--titular); font-weight:300; text-transform:uppercase; font-size:clamp(1.55rem,2.5vw,2.35rem); line-height:1.28; letter-spacing:.06em; margin:0 0 2.25rem; max-width:17ch; }
.q .tr{ color:var(--claro); max-width:34ch; margin:0 0 1.25rem; font-size:1rem; }
.media{ display:flex; flex-direction:column; padding:.5rem .5rem 0 0; }
.photos{ flex:1; display:grid; grid-template-columns:1fr 1fr; gap:.5rem; min-height:62vh; }
.photos img{ width:100%; height:100%; object-fit:cover; }
.media .more{ align-self:flex-end; margin:1.4rem var(--pad) 1.6rem; }

/* ---------- Home: video + menús ---------- */
.carta{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,6vw,6rem); align-items:center; max-width:1280px; margin:0 auto; padding:clamp(5rem,9vw,8rem) var(--pad); }
.vid{ justify-self:center; width:min(100%,430px); aspect-ratio:9/16; overflow:hidden; background:var(--carbon); position:relative; }
.vid video{ width:100%; height:100%; object-fit:cover; }
.vid-toggle{ position:absolute; right:.75rem; bottom:.75rem; background:rgba(10,10,10,.6); border:1px solid var(--rule); padding:.35rem .7rem; cursor:pointer; font-family:var(--datos); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--claro); }
h1,h2,h3{ font-family:var(--titular); font-weight:300; text-transform:uppercase; }
.sec-title{ font-size:clamp(1.9rem,3.6vw,2.9rem); line-height:1.08; letter-spacing:.04em; margin:.75rem 0 2.25rem; }
.item{ border-top:1px solid var(--rule); padding:1.9rem 0; }
.item:last-child{ border-bottom:1px solid var(--rule); }
.item h3{ font-size:1.3rem; letter-spacing:.08em; line-height:1.25; margin:0; }
.item .mono{ display:block; margin:.45rem 0 .9rem; }
.item p{ color:var(--claro); margin:0 0 1.1rem; max-width:52ch; }

/* ---------- Galería ---------- */
.gallery{ padding:0 .5rem; }
.gallery-head{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; flex-wrap:wrap; padding:0 var(--pad) 2rem; max-width:1280px; margin:0 auto; }
.gallery-head .sec-title{ margin:0; }
.reel{ --w:clamp(210px,24vw,330px); position:relative; }
.track{ position:relative; display:flex; gap:clamp(.75rem,2vw,1.5rem); list-style:none; margin:0; padding:clamp(1.5rem,3vw,2.75rem) calc(50% - var(--w) / 2); overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; }
.track::-webkit-scrollbar{ display:none; }
.track:focus-visible{ outline:1px solid var(--claro); outline-offset:-4px; }
.slide{ flex:0 0 var(--w); scroll-snap-align:center; transform:scale(.84); opacity:.4; transition:transform .7s cubic-bezier(.2,.7,.2,1), opacity .7s; }
.slide.is-active{ transform:scale(1.1); opacity:1; }
.slide button{ display:block; width:100%; border:0; padding:0; background:var(--carbon); cursor:pointer; }
.slide.is-active button{ cursor:zoom-in; }
.slide img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; }
.reel-nav{ display:flex; justify-content:center; align-items:center; gap:1.5rem; margin-top:.5rem; }
.reel-nav button{ background:none; border:1px solid var(--rule); width:44px; height:44px; color:var(--claro); cursor:pointer; transition:border-color .3s,color .3s; }
.reel-nav button:hover{ border-color:var(--claro); color:var(--blanco); }
.reel-count{ min-width:7ch; text-align:center; color:var(--claro); }

/* ---------- Descubre + Reservación (Fallow) ---------- */
.discover{ position:relative; min-height:max(620px, 92svh); display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; margin-top:clamp(4rem,8vw,6rem); padding:clamp(5rem,10vw,8rem) var(--pad); isolation:isolate; }
.discover-bg{ position:absolute; inset:0; z-index:-2; background:var(--negro); }
.discover-bg img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.04); transition:opacity 1.8s ease, transform 7s linear; }
.discover-bg img.on{ opacity:1; transform:scale(1.12); }
.discover::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(10,10,10,.82) 0%, rgba(10,10,10,.5) 40%, rgba(10,10,10,.55) 65%, rgba(10,10,10,.9) 100%); }
.discover-in{ max-width:1200px; }
.disc-kicker{ font-family:var(--titular); font-weight:300; font-size:clamp(1rem,1.6vw,1.25rem); letter-spacing:.32em; text-transform:uppercase; color:var(--claro); margin:0 0 1.25rem; }
.discover h2{ font-size:clamp(2.1rem,5.2vw,4.6rem); line-height:1.04; letter-spacing:.04em; margin:0; }
.discover h2 span{ display:block; }
.disc-res{ margin:clamp(3rem,6vw,4.5rem) auto 0; padding-top:clamp(2rem,4vw,2.75rem); border-top:1px solid rgba(201,196,188,.3); max-width:460px; }
.disc-res h3{ font-size:clamp(1rem,1.6vw,1.2rem); letter-spacing:.24em; margin:0 0 .75rem; }
.disc-res p{ color:var(--claro); margin:0 0 2rem; font-size:.95rem; }

/* ---------- Ubicación ---------- */
.place{ display:grid; grid-template-columns:5fr 7fr; background:var(--carbon); }
.place .info{ padding:clamp(3.5rem,7vw,6rem) var(--pad); }
.place .info .sec-title{ margin-bottom:2.5rem; }
.place dl{ margin:0; display:grid; gap:2rem; }
.place dt{ font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.14em; font-size:.95rem; margin-bottom:.5rem; }
.place dd{ margin:0; color:var(--claro); }
.hours{ font-family:var(--datos); font-size:.82rem; line-height:2; letter-spacing:.02em; }
.hours b{ font-weight:400; color:var(--blanco); display:inline-block; min-width:11.5ch; }
.place dd .u{ margin-top:.9rem; }
.social-list{ list-style:none; margin:0; padding:0; }
.social-list a{ text-decoration:none; border-bottom:1px solid transparent; }
.social-list a:hover{ border-color:var(--claro); }
.place-img{ min-height:420px; position:relative; }
.place-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 55%; }

/* ---------- Footer ---------- */
.site-foot{ border-top:1px solid var(--rule); padding:clamp(3.5rem,7vw,5rem) var(--pad) 2rem; }
.foot-grid{ display:grid; grid-template-columns:1fr auto 1fr; gap:2.5rem; align-items:start; max-width:1600px; margin:0 auto; }
.nl-cta{ background:none; border:0; padding:0; cursor:pointer; text-align:left; }
.nl-cta h2{ font-size:clamp(1.3rem,2.2vw,1.8rem); letter-spacing:.06em; line-height:1.15; margin:0 0 .6rem; border-bottom:1px solid var(--raton); display:inline-block; padding-bottom:.35rem; transition:border-color .3s; }
.nl-cta:hover h2{ border-color:var(--blanco); }
.nl-cta p{ margin:0; color:var(--claro); max-width:36ch; font-size:.9rem; }
.foot-logo img{ height:72px; width:auto; }
.foot-links{ justify-self:end; text-align:right; }
.foot-links ul{ list-style:none; margin:0 0 1.5rem; padding:0; }
.foot-links li a{ font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.16em; font-size:.8rem; text-decoration:none; color:var(--claro); line-height:2.2; }
.foot-links li a:hover{ color:var(--blanco); }
.icons{ display:flex; gap:1rem; justify-content:flex-end; }
.icons a{ width:18px; height:18px; display:inline-flex; color:var(--claro); }
.icons a:hover{ color:var(--blanco); }
.icons svg{ width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.3; }
.foot-bottom{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; max-width:1600px; margin:3.5rem auto 0; padding-top:1.5rem; border-top:1px solid var(--rule); }

/* ---------- Diálogos ---------- */
dialog{ border:1px solid var(--rule); background:var(--negro); color:var(--blanco); padding:0; width:calc(100% - 2rem); max-height:calc(100svh - 2rem); }
dialog::backdrop{ background:rgba(10,10,10,.78); }
dialog[open]{ animation:rise .5s ease; }
@keyframes rise{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.x{ position:absolute; top:.6rem; right:.8rem; width:40px; height:40px; background:none; border:0; font-size:1.6rem; line-height:1; color:var(--claro); cursor:pointer; }
.x:hover{ color:var(--blanco); }
.dlg-in{ padding:clamp(2rem,4vw,3rem); }
.cartelera{ max-width:620px; }
.cartelera h2{ font-size:clamp(1.5rem,3vw,2.1rem); letter-spacing:.05em; line-height:1.1; margin:.5rem 0 1.25rem; }
.cartelera h2:focus{ outline:none; }
.ev{ list-style:none; margin:0; padding:0; }
.ev li{ display:grid; grid-template-columns:9.5rem 1fr; gap:1.25rem; padding:1rem 0; border-top:1px solid var(--rule); }
.ev li:last-child{ border-bottom:1px solid var(--rule); }
.ev .mono{ color:var(--claro); padding-top:.3rem; }
.ev h3{ font-size:1.1rem; letter-spacing:.08em; margin:0 0 .3rem; }
.ev p{ margin:0 0 .4rem; color:var(--claro); font-size:.92rem; }
.ev .u{ font-size:.7rem; }
.ev .meta{ display:block; color:var(--blanco); margin:0 0 .75rem; }
.dlg-foot{ display:flex; gap:2rem; flex-wrap:wrap; margin-top:1.75rem; }
.newsletter{ max-width:520px; }
.newsletter h2{ font-size:clamp(1.5rem,3vw,2rem); letter-spacing:.05em; line-height:1.15; margin:0 0 1rem; padding-right:2rem; }
.newsletter .lede{ color:var(--claro); margin:0 0 1.75rem; font-size:.95rem; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:0 1.25rem; }
.field{ display:block; margin-bottom:1.15rem; }
.field span{ display:block; font-family:var(--datos); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--raton); }
.field input{ width:100%; border:0; border-bottom:1px solid var(--raton); background:transparent; color:var(--blanco); font:inherit; font-size:1rem; padding:.45rem 0; border-radius:0; }
.field input:focus{ outline:none; border-color:var(--blanco); }
.optin{ display:flex; gap:.75rem; align-items:flex-start; font-size:.84rem; color:var(--claro); margin:.75rem 0 1.75rem; cursor:pointer; }
.optin input{ margin-top:.3rem; accent-color:var(--claro); width:16px; height:16px; flex:none; }
.newsletter .btn{ width:100%; }
.msg{ min-height:1.5em; margin:1rem 0 0; font-size:.85rem; color:var(--claro); }
.lightbox{ max-width:min(92vw,980px); background:transparent; border:0; }
.lightbox img{ max-height:86svh; width:auto; margin:0 auto; }
.lightbox .x{ position:fixed; top:1rem; right:1rem; }
.lb-nav{ display:flex; justify-content:center; gap:1rem; margin-top:1rem; }
.lb-nav button{ background:none; border:1px solid var(--rule); width:44px; height:44px; cursor:pointer; color:var(--claro); }

/* ---------- CŌRE Privé ---------- */
.prive{ max-width:760px; }
.manifesto{ text-align:center; padding-bottom:clamp(3.5rem,7vw,5rem); }
.manifesto h2{ font-size:clamp(1.5rem,3.2vw,2.3rem); letter-spacing:.05em; line-height:1.2; margin:1rem 0 1.5rem; }
.manifesto p{ color:var(--claro); margin:0 auto 1.25rem; max-width:56ch; }
.manifesto .m-lead{ color:var(--blanco); font-size:1.1rem; }
.manifesto h3{ font-size:.95rem; letter-spacing:.24em; margin:2.75rem 0 1.25rem; }
.manifesto .cx-list{ text-align:left; max-width:44ch; margin:0 auto 2.25rem; }
.manifesto .m-note{ font-family:var(--datos); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--blanco); }
.m-sign{ font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.28em; color:var(--blanco) !important; margin-top:2.25rem !important; }
.apply{ border-top:1px solid var(--rule); padding:clamp(3rem,6vw,4.5rem) 0 clamp(4rem,8vw,6rem); }
.apply h2{ font-size:clamp(1.2rem,2.4vw,1.6rem); letter-spacing:.12em; text-align:center; margin:0 0 2.5rem; }
.apply fieldset{ border:0; border-top:1px solid var(--rule); margin:0; padding:1.75rem 0 1rem; }
.apply legend{ display:flex; gap:1rem; align-items:baseline; font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.16em; font-size:.9rem; padding:0 1rem 0 0; }
.apply legend .mono{ color:var(--raton); }
.field select, .field textarea{ width:100%; border:0; border-bottom:1px solid var(--raton); background:transparent; color:var(--blanco); font:inherit; font-size:1rem; padding:.45rem 0; border-radius:0; }
.field select{ appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--claro) 50%),linear-gradient(135deg,var(--claro) 50%,transparent 50%); background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%; background-size:5px 5px; background-repeat:no-repeat; padding-right:1.5rem; }
.field select option{ background:var(--negro); color:var(--blanco); }
.field textarea{ resize:vertical; min-height:6rem; }
.field input[type="date"]{ color-scheme:dark; min-height:2.4rem; }
.field select:focus, .field textarea:focus{ outline:none; border-color:var(--blanco); }
.field input::placeholder, .field textarea::placeholder{ color:var(--raton); }
.chips{ display:flex; flex-wrap:wrap; gap:.6rem; padding:.25rem 0 .75rem; }
.chip{ cursor:pointer; }
.chip input{ position:absolute; opacity:0; pointer-events:none; }
.chip span{ display:inline-block; padding:.5rem .95rem; border:1px solid var(--rule); font-size:.85rem; color:var(--claro); transition:border-color .2s, background .2s, color .2s; }
.chip input:checked + span{ border-color:var(--blanco); background:var(--blanco); color:var(--negro); }
.chip input:focus-visible + span{ outline:1px solid var(--claro); outline-offset:3px; }
.fs-help{ color:var(--claro); font-size:.88rem; margin:0 0 1.25rem; }
.apply .optin{ margin:1rem 0; }
.apply .btn{ width:100%; margin-top:1.25rem; }

/* ---------- Subpáginas ---------- */
.cx-lede{ font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.14em; font-size:clamp(.95rem,1.6vw,1.15rem); color:var(--blanco); max-width:none; }
.cx-block{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:1rem 3rem; padding:2.5rem 0; border-top:1px solid var(--rule); }
.cx-block:last-child{ border-bottom:1px solid var(--rule); }
.cx-block h2{ font-size:1rem; letter-spacing:.2em; line-height:1.5; margin:0; }
.cx-lead{ margin:0; font-size:1.1rem; color:var(--blanco); }
.cx-list{ list-style:none; margin:0; padding:0; }
.cx-list li{ color:var(--claro); padding:0 0 1rem 1.5rem; position:relative; }
.cx-list li:last-child{ padding-bottom:0; }
.cx-list li::before{ content:""; position:absolute; left:0; top:.85em; width:.6rem; height:1px; background:var(--raton); }
.cx-note{ margin:0 auto 2rem; color:var(--claro); }
@media (max-width:640px){ .cx-block{ grid-template-columns:1fr; } }

.page-head{ text-align:center; padding:clamp(4.5rem,9vw,7.5rem) var(--pad) clamp(2.5rem,5vw,4rem); }
.page-head h1{ font-size:clamp(2.3rem,6vw,4.6rem); letter-spacing:.05em; line-height:1.04; margin:1rem 0 0; }
.page-head .lede{ color:var(--claro); max-width:48ch; margin:1.5rem auto 0; }
.narrow{ max-width:860px; margin:0 auto; padding:0 var(--pad); }
.menu-list{ list-style:none; margin:0; padding:0; }
.menu-list li{ display:grid; grid-template-columns:1fr auto; gap:.5rem 2rem; align-items:baseline; padding:2.1rem 0; border-top:1px solid var(--rule); }
.menu-list li:last-child{ border-bottom:1px solid var(--rule); }
.menu-list h2{ font-size:clamp(1.4rem,2.6vw,1.9rem); letter-spacing:.06em; line-height:1.15; margin:0; }
.menu-list .mono{ display:block; margin-top:.5rem; }
.menu-list p{ grid-column:1 / -1; margin:.4rem 0 0; color:var(--claro); max-width:60ch; }
.menu-list .act{ grid-row:1; grid-column:2; }
.pending{ font-family:var(--datos); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--raton); }
.note{ text-align:center; margin:2.5rem auto 0; max-width:52ch; color:var(--raton); font-size:.85rem; }
.cta-band{ text-align:center; padding:clamp(4.5rem,9vw,7rem) var(--pad); }

.story{ display:grid; grid-template-columns:minmax(0,340px) minmax(0,62ch); justify-content:center; gap:clamp(2.5rem,6vw,6rem); max-width:1280px; margin:0 auto; padding:0 var(--pad) clamp(5rem,9vw,8rem); align-items:start; }
.story figure{ margin:0; position:sticky; top:calc(var(--head) + 2rem); }
.story figure img{ width:100%; height:auto; }
.story figcaption{ margin-top:.9rem; }
.story h2{ font-size:clamp(1.5rem,2.8vw,2.1rem); letter-spacing:.05em; margin:0 0 2rem; }
.story-text{ max-width:62ch; }
.story-text p{ color:var(--claro); margin:0 0 1.4rem; }
.story-text p.lead{ color:var(--blanco); font-size:1.12rem; }
.story-text p.close{ color:var(--blanco); font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.06em; font-size:1.2rem; line-height:1.5; margin:2.25rem 0; }
.story-text p.follow{ font-style:italic; border-top:1px solid var(--rule); padding-top:1.75rem; }
.story-pair{ display:grid; grid-template-columns:1fr 1fr; gap:.5rem; max-width:680px; margin:0 auto; padding:0 var(--pad); }
.story-pair img{ width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; }

.xmas-hero{ max-width:1280px; margin:0 auto; padding:0 var(--pad); }
.xmas-hero img{ width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.xmas-imgs{ display:grid; grid-template-columns:1fr 1.6fr; gap:.5rem; padding:0 .5rem; }
.xmas-imgs img{ width:100%; height:100%; aspect-ratio:auto; object-fit:cover; max-height:640px; }
.xmas-body{ text-align:center; max-width:62ch; margin:0 auto; padding:clamp(3.5rem,7vw,5.5rem) var(--pad) 0; }
.xmas-body h2{ font-size:clamp(1.3rem,2.4vw,1.8rem); letter-spacing:.06em; margin:0 0 1.5rem; }
.xmas-body p{ color:var(--claro); }
.price{ font-family:var(--datos); font-size:.85rem; letter-spacing:.14em; text-transform:uppercase; color:var(--blanco); margin:2rem 0 2.5rem; }
.xmas-body .btn{ width:100%; max-width:520px; }
.casa{ background:var(--carbon); margin-top:clamp(4rem,8vw,6rem); padding:clamp(4rem,8vw,6rem) var(--pad); text-align:center; }
.casa h2{ font-size:clamp(1.8rem,3.6vw,2.8rem); letter-spacing:.05em; margin:.75rem 0 1rem; }
.casa p{ color:var(--claro); max-width:52ch; margin:0 auto 2rem; }
.casa .casa-note{ margin:-1rem auto 2.25rem; }
.casa .casa-what{ font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.14em; font-size:.85rem; line-height:1.9; color:var(--blanco); max-width:60ch; }
.tiers{ max-width:1180px; margin:clamp(2.5rem,5vw,3.5rem) auto clamp(2.5rem,5vw,3.25rem); }
.tiers h3{ font-size:.95rem; letter-spacing:.24em; margin:0 0 1.75rem; }
.tier-list{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.tier-list li{ position:relative; display:flex; flex-direction:column; align-items:center; gap:.55rem; padding:1.9rem .9rem 1.6rem; text-align:center; transition:opacity .3s; }
.tier-list li + li{ border-left:1px solid var(--rule); }
.tier-list h4{ font-family:var(--titular); font-weight:300; text-transform:uppercase; letter-spacing:.12em; font-size:.82rem; line-height:1.45; margin:0; color:var(--blanco); }
.tier-dates{ color:var(--claro); }
.tier-sub{ font-size:.75rem; line-height:1.45; color:var(--claro); }
.tier-pct{ font-family:var(--titular); font-weight:300; font-size:clamp(2rem,3.2vw,2.75rem); line-height:1; letter-spacing:.02em; color:var(--blanco); margin-top:auto; padding-top:.5rem; }
.tier-pct.tier-word{ font-size:.95rem; letter-spacing:.16em; text-transform:uppercase; padding-bottom:.6rem; }
.tier-now{ display:none; position:absolute; top:-1px; left:0; right:0; border-top:1px solid var(--blanco); padding-top:.45rem; color:var(--blanco); font-size:.6rem; }
.tier-list li.is-now{ background:rgba(255,255,255,.05); padding-top:2.5rem; }
.tier-list li.is-now .tier-now{ display:block; }
.tier-list li.is-past{ opacity:.38; }
@media (max-width:900px){
  .tier-list{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .tier-list li:nth-child(4){ border-left:0; }
  .tier-list li:nth-child(n+4){ border-top:1px solid var(--rule); }
}
@media (max-width:520px){
  .tier-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tier-list li:nth-child(4){ border-left:1px solid var(--rule); }
  .tier-list li:nth-child(odd){ border-left:0; }
  .tier-list li:nth-child(n+3){ border-top:1px solid var(--rule); }
}
.casa-btns{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

.events-page li{ grid-template-columns:12rem 1fr auto; }
.events-page .act{ grid-row:auto; grid-column:auto; }

@media (max-width:1360px){
  /* El menú pasa a una segunda fila, siempre visible */
  :root{ --head:118px; }
  .bar{ row-gap:.85rem; padding-bottom:.85rem; }
  .bar > .primary{ grid-column:1 / -1; grid-row:2; justify-self:center; border-top:1px solid var(--rule); padding-top:.85rem; width:100%; }
  .primary ul{ justify-content:center; }
  .logo{ grid-column:2; grid-row:1; }
  .end{ grid-column:3; grid-row:1; }
}
@media (max-width:900px){
  .intro,.carta,.place,.story{ grid-template-columns:1fr; }
  .intro{ min-height:0; }
  .media{ padding:0 .5rem; }
  .photos{ min-height:0; }
  .photos img{ height:auto; aspect-ratio:3/4; }
  .media .more{ align-self:flex-start; margin:1.5rem var(--pad) 0; }
  .vid{ width:min(100%,380px); }
  .place-img{ min-height:320px; order:-1; }
  .foot-grid{ grid-template-columns:1fr; text-align:left; }
  .foot-logo{ order:-1; }
  .foot-links{ justify-self:start; text-align:left; }
  .icons{ justify-content:flex-start; }
  .story figure{ position:static; max-width:360px; }
  .events-page li{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  :root{ --head:104px; }
  .bar{ grid-template-columns:1fr auto; column-gap:.5rem; row-gap:.6rem; padding:.7rem var(--pad) .7rem; }
  .logo{ grid-column:1; justify-self:start; }
  .end{ grid-column:2; }
  .bar > .primary{ padding-top:.65rem; }
  .primary a{ font-size:.62rem; letter-spacing:.1em; padding:.1rem .55rem; }
  /* Dos filas centradas: 3 + 3 */
  .primary ul{ flex-wrap:wrap; justify-content:center; row-gap:.6rem; }
  .primary ul::after{ content:""; flex-basis:100%; height:0; order:2; }
  .primary li:nth-child(n+4){ order:3; }
  .primary li:nth-child(4){ border-left:0; }
  .primary li:nth-child(4) a{ padding-left:0; }
  .primary li:nth-child(3) a{ padding-right:0; }
  .logo img{ height:34px; }
  .end{ gap:.9rem; }
  .reservas{ padding:.5rem .8rem; font-size:.7rem; letter-spacing:.14em; }
  .reel{ --w:62vw; }
  .ev li{ grid-template-columns:1fr; gap:.4rem; }
  .row2{ grid-template-columns:1fr; }
  .menu-list li{ grid-template-columns:1fr; }
  .menu-list .act{ grid-row:auto; grid-column:1; }
  .xmas-imgs{ grid-template-columns:1fr; }
  .story-pair{ grid-template-columns:1fr 1fr; }
}
@media (max-width:380px){
  .primary a{ padding:.1rem .42rem; letter-spacing:.08em; }
}
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  dialog[open]{ animation:none; }
  *{ transition:none !important; }
  .track{ scroll-behavior:auto; }
}
