/* ==========================================================================
   Home · concepto «Mitad y mitad»: el disco partido del logo (lavanda | turquesa),
   la barra que lo cruza y el disco que rueda hasta cargarse en ella.
   ========================================================================== */

/* --- Hero partido --- */
.hero {
  display: grid;
  grid-template-columns: 55% 45%;
  grid-template-rows: 1fr auto;
  min-height: max(640px, min(100svh, 940px));
  background: linear-gradient(90deg, var(--lav) 55%, var(--tq) 55%);
  border-bottom: 3px solid var(--ink);
}
.hero__copy {
  padding: calc(var(--header-h) + 72px) var(--gutter) 48px;
  display: flex; flex-direction: column; justify-content: center; gap: 26px;
  align-items: flex-start;
}
.hero__title {
  font-family: var(--display); font-weight: 900;
  font-size: clamp(2.6rem, 6.2vw, 6.4rem);
  line-height: .95; letter-spacing: -0.03em; word-spacing: .1em;
  max-width: 10.5ch; text-wrap: balance;
}
.hero__lead { max-width: 44ch; font-size: clamp(1.02rem, 1.3vw, 1.2rem); font-weight: 600; }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.hero__stage {
  position: relative; display: flex; align-items: flex-end; justify-content: center;
  padding: calc(var(--header-h) + 48px) var(--gutter) 0;
  border-left: 3px solid var(--ink);
}
.hero__disc {
  width: min(100%, 62svh, 560px); aspect-ratio: 1;
  border-radius: 50%; overflow: hidden;
  border: 10px solid var(--ink);
  background: var(--ink);
  margin-bottom: -10px;
  position: relative; z-index: 2;
}
.hero__img { width: 100%; height: 100%; object-fit: cover; }
.hero__tag {
  position: absolute; top: calc(var(--header-h) + 40px); right: var(--gutter);
  display: grid; text-align: right;
  font-family: var(--display); font-weight: 900; font-size: clamp(.8rem, 1.1vw, 1rem);
  letter-spacing: .3em; text-transform: uppercase; line-height: 1.5;
}
.hero .daybar { z-index: 3; }

.js .hero__title, .js .hero__lead, .js .hero__actions, .js .hero .kicker {
  animation: rise .9s var(--ease) both;
}
.js .hero .kicker { animation-delay: .05s; }
.js .hero__title { animation-delay: .15s; }
.js .hero__lead { animation-delay: .3s; }
.js .hero__actions { animation-delay: .42s; }
.js .hero__disc, .js .intro__disc { animation: roll-in 1.5s var(--ease-roll) .25s both; }
.js .daybar__bar, .js .intro__bar { animation: bar-in 1s var(--ease) both; }
@keyframes rise { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes roll-in { from { transform: translateX(110%) rotate(240deg); } to { transform: none; } }
@keyframes bar-in { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.intro__bar { transform-origin: left; }

@media (max-width: 899px) {
  .hero { grid-template-columns: 1fr; grid-template-rows: auto auto auto; background: none; min-height: 0; }
  .hero__copy { background: var(--lav); padding: calc(var(--header-h) + 48px) var(--gutter) 40px; }
  .hero__stage { background: var(--tq); border-left: 0; border-top: 3px solid var(--ink); padding: 56px var(--gutter) 0; }
  .hero__disc { width: min(82vw, 420px); }
  .hero__tag { top: 18px; left: var(--gutter); right: var(--gutter); display: flex; justify-content: center; gap: .6em; font-size: .7rem; letter-spacing: .24em; }
  .hero .daybar { background: var(--tq); }
}

/* --- Cinta de disciplinas --- */
.ticker {
  display: flex; overflow: hidden;
  background: var(--ink); color: var(--white);
  padding: 22px 0;
  position: relative; z-index: 1;
}
.ticker__track {
  display: flex; flex: none; align-items: center;
  animation: ticker 28s linear infinite;
}
.ticker li {
  font-family: var(--display); font-weight: 800;
  font-size: clamp(1.4rem, 3vw, 2.4rem); line-height: 1.2;
  padding: 0 .55em; display: flex; align-items: center; gap: 1.1em; white-space: nowrap;
}
.ticker li:nth-child(odd) { color: var(--tq); }
.ticker li:nth-child(even) { color: var(--lav); }
.ticker li::after {
  content: ""; width: .7em; height: .7em; border-radius: 50%;
  background: linear-gradient(90deg, var(--lav) 50%, var(--tq) 50%);
}
@keyframes ticker { to { transform: translateX(-100%); } }
@media (hover: hover) { .ticker:hover .ticker__track { animation-play-state: paused; } }

/* --- Discos en la barra (disciplinas) --- */
.plates { padding: clamp(72px, 10vw, 140px) 0 clamp(64px, 8vw, 110px); overflow: hidden; }
.plates__head { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: end; margin-bottom: 56px; }
.plates__lead { max-width: 46ch; font-size: 1.1rem; }
.plates__bar { position: relative; --slot: clamp(220px, 21vw, 290px); }
.plates__rod {
  position: absolute; left: 0; right: 0; top: calc(var(--slot) / 2 - var(--bar) / 2);
  height: var(--bar); background: var(--ink);
}
.plates__list {
  position: relative;
  display: flex; justify-content: center; gap: clamp(16px, 2.4vw, 40px);
  padding: 0 var(--gutter);
}
.plate { width: var(--slot); flex: none; }
.plate__link { display: grid; text-decoration: none; }
.plate__disc {
  width: calc(var(--slot) * var(--s, 1)); aspect-ratio: 1; margin: calc(var(--slot) * (1 - var(--s, 1)) / 2) auto;
  border-radius: 50%; overflow: hidden; position: relative;
  border: 12px solid var(--tq); box-shadow: 0 0 0 3px var(--ink);
  transition: transform .6s var(--ease-roll), border-color .3s;
}
.plate:nth-child(even) .plate__disc { border-color: var(--lav); }
.plate--0 { --s: 1; } .plate--1 { --s: .86; } .plate--2 { --s: .93; } .plate--3 { --s: .8; }
.plate__img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.plate__n {
  justify-self: start; margin-top: 8px;
  font-family: var(--display); font-weight: 800; font-size: .8rem;
  border: 2px solid var(--ink); border-radius: 999px; padding: .1em .7em;
}
.plate__name { font-family: var(--display); font-weight: 800; font-size: clamp(1.25rem, 1.8vw, 1.6rem); margin-top: 10px; }
.plate__short { font-size: .97rem; margin-top: 6px; }
/* Efectos solo con ratón: en táctil el :hover se queda «pegado» tras el toque */
.plate__link:focus-visible .plate__disc { transform: translateY(-14px) rotate(-12deg); }
@media (hover: hover) {
  .plate__link:hover .plate__disc { transform: translateY(-14px) rotate(-12deg); }
  .plate__link:hover .plate__img { transform: scale(1.08) rotate(12deg); }
  .plate__link:hover .plate__name { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 5px; }
}
.plates__more { margin-top: 48px; display: flex; justify-content: center; }

@media (max-width: 899px) {
  .plates__head { grid-template-columns: 1fr; margin-bottom: 36px; }
  .plates__bar { --slot: min(68vw, 280px); }
  .plates__rod { display: none; }
  .plates__list {
    justify-content: flex-start; overflow-x: auto; scroll-snap-type: x mandatory;
    padding-bottom: 12px; scrollbar-width: thin;
  }
  .plates__list::before {
    content: ""; position: absolute; left: 0; width: calc(4 * var(--slot) + 200px);
    top: calc(var(--slot) / 2 - var(--bar) / 2); height: var(--bar); background: var(--ink);
  }
  .plate { scroll-snap-align: center; position: relative; }
}

/* --- Cifras: el logo abierto en dos --- */
.facts {
  display: grid; grid-template-columns: 1fr 1fr;
  border-top: 3px solid var(--ink); border-bottom: 3px solid var(--ink);
}
.facts__half { padding: clamp(56px, 8vw, 110px) var(--gutter); }
.facts__half--lav { background: var(--lav); display: grid; align-content: center; gap: 24px; }
.facts__half--lav p { max-width: 46ch; font-size: 1.1rem; font-weight: 500; }
.facts__half--tq { background: var(--tq); border-left: 3px solid var(--ink); }
.facts__list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; height: 100%; }
.fact { padding: 18px 18px 26px 0; border-bottom: 2px solid var(--ink); display: grid; align-content: start; gap: 8px; }
.fact:nth-child(odd) { padding-right: 24px; border-right: 2px solid var(--ink); }
.fact:nth-child(even) { padding-left: 24px; }
.fact:nth-last-child(-n+2) { border-bottom: 0; }
.fact__num { font-family: var(--display); font-weight: 900; font-size: clamp(2.8rem, 6.5vw, 6rem); line-height: 1; letter-spacing: -0.04em; }
.fact__label { font-weight: 700; max-width: 22ch; }
@media (max-width: 899px) {
  .facts { grid-template-columns: 1fr; }
  .facts__half--tq { border-left: 0; border-top: 3px solid var(--ink); }
}
@media (max-width: 420px) {
  .fact { padding-right: 12px !important; }
  .fact:nth-child(even) { padding-left: 14px; }
  .fact__label { font-size: 1rem; line-height: 1.35; }
}

/* --- Hoy en el box --- */
.today { background: var(--ink); color: var(--white); padding: clamp(72px, 9vw, 130px) 0; }
.today__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.today__head { display: grid; gap: 20px; justify-items: start; }
.today__head > p { color: var(--muted-on-ink); max-width: 40ch; }
.today__media { width: 100%; aspect-ratio: 16 / 10; border-radius: 999px; overflow: hidden; border: 3px solid var(--tq); }
.today__img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 899px) { .today__grid { grid-template-columns: 1fr; } }

/* Semana (componente compartido) */
.daytabs { display: flex; gap: 8px; margin-bottom: 14px; }
.no-js .daytabs { display: none; }
.daytabs__btn {
  width: min(50px, calc((100% - 48px) / 7)); aspect-ratio: 1; border-radius: 50%; cursor: pointer; padding: 0;
  font-family: var(--display); font-weight: 800; font-size: .95rem;
  background: transparent; border: 2px solid var(--lav); color: var(--lav);
  transition: background .25s, color .25s, transform .3s var(--ease);
}
@media (hover: hover) { .daytabs__btn:hover { transform: translateY(-3px); } }
.daytabs__btn[aria-selected="true"] { background: var(--tq); border-color: var(--tq); color: var(--ink); }
.daytabs__btn.is-today { box-shadow: 0 0 0 3px var(--ink), 0 0 0 5px var(--lav); }
.week--light .daytabs__btn { border-color: var(--ink); color: var(--ink); }
.week--light .daytabs__btn[aria-selected="true"] { border-color: var(--ink); }
.week__now { min-height: 1.6em; font-weight: 700; color: var(--tq); margin-bottom: 8px; }
.week--light .week__now { color: var(--tq-deep); }
.js .day { display: none; }
.js .day.is-active { display: block; animation: rise .5s var(--ease) both; }
.no-js .day + .day { margin-top: 28px; }
.day__name { font-family: var(--display); font-size: 1.1rem; margin-bottom: 8px; }
.js .day__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.slot {
  display: grid; grid-template-columns: 6.2em 1fr; align-items: center; gap: 12px;
  padding: 12px 4px; border-bottom: 1px solid #3A3744;
}
.week--light .slot { border-color: #CFC8E3; }
.slot__time { font-family: var(--display); font-weight: 800; font-size: 1.25rem; }
.slot__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.slot.is-past .slot__time { text-decoration: line-through; text-decoration-thickness: 2px; color: var(--muted-on-ink); }
.week--light .slot.is-past .slot__time { color: #55506A; }
.slot.is-next { background: linear-gradient(90deg, rgba(4, 199, 183, .18), transparent 70%); border-radius: 12px; }
.slot.is-next .slot__time::after { content: "siguiente"; display: block; font-family: var(--text); font-size: .7rem; font-weight: 800; color: var(--tq); text-transform: uppercase; letter-spacing: .1em; }
.week--light .slot.is-next .slot__time::after { color: var(--tq-deep); }

/* --- Tarifas destacadas --- */
.prices { padding: clamp(72px, 10vw, 140px) 0; }
.prices__head { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 44px; flex-wrap: wrap; }
.badge-disc {
  width: 150px; height: 150px; border-radius: 50%; flex: none;
  display: grid; place-content: center; text-align: center;
  background: var(--ink); color: var(--white); transform: rotate(-10deg);
  border: 6px solid var(--tq); box-shadow: 0 0 0 3px var(--ink);
}
.badge-disc strong { white-space: nowrap; font-family: var(--display); font-size: clamp(1.6rem, 5vw, 2.2rem); line-height: 1; color: var(--tq); }
.badge-disc span { font-weight: 800; font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; max-width: 9ch; margin: 4px auto 0; line-height: 1.2; }
.prices__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.price {
  border: 3px solid var(--ink); border-radius: var(--radius); padding: 32px 28px 30px;
  display: grid; gap: 8px; align-content: start; box-shadow: 0 8px 0 var(--ink);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
@media (hover: hover) { .price:hover { transform: translateY(-6px); box-shadow: 0 14px 0 var(--ink); } }
.price--lav { background: var(--lav); }
.price--paper { background: var(--white); }
.price--tq { background: var(--tq); }
.price__name { font-family: var(--display); font-weight: 800; font-size: 1.15rem; text-transform: uppercase; letter-spacing: .06em; }
.price__num { font-family: var(--display); font-weight: 900; font-size: clamp(3.4rem, 6vw, 5rem); line-height: 1; letter-spacing: -0.04em; }
.price__num small { font-size: .32em; letter-spacing: 0; margin-left: .2em; }
.price__note { font-weight: 600; }
.prices__more { margin-top: 44px; }
@media (max-width: 899px) { .prices__list { grid-template-columns: 1fr; } .badge-disc { width: 124px; height: 124px; } }

/* --- Carril (fotos + glosario) --- */
.inside { padding: clamp(72px, 9vw, 120px) 0 0; background: var(--paper); }
.inside:has(.rail--pinned) { padding-top: 0; }
.inside__head { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; margin-bottom: 32px; }
.inside__head p { max-width: 44ch; }
.inside__head a { color: var(--lav-deep); font-weight: 800; }
.rail { position: relative; }
.rail__track {
  display: flex; align-items: center; gap: 22px;
  padding: 24px var(--gutter) 56px;
  overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin;
}
.rail__cell { flex: none; scroll-snap-align: center; overflow: hidden; border: 3px solid var(--ink); }
.rail__cell--tall { width: clamp(220px, 22vw, 300px); aspect-ratio: 3 / 4.3; border-radius: 999px; }
.rail__cell--wide { width: clamp(300px, 36vw, 540px); aspect-ratio: 3 / 2; border-radius: 160px; }
.rail__cell--round { width: clamp(220px, 24vw, 340px); aspect-ratio: 1; border-radius: 50%; }
.rail__cell--card { border: 0; overflow: visible; }
.rail__img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
@media (hover: hover) { .rail__cell:hover .rail__img { transform: scale(1.06); } }
.rail--pinned .rail__sticky { position: sticky; top: 0; height: 100svh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-top: 70px; }
.rail--pinned .inside__head { margin-bottom: 8px; }
.rail--pinned .rail__track { overflow: visible; will-change: transform; }

/* Tarjeta de glosario (tono de su Instagram) */
.gloss { width: clamp(270px, 26vw, 360px); aspect-ratio: 4 / 5; padding: 28px; border-radius: var(--radius); display: grid; place-items: center; border: 3px solid var(--ink); }
.gloss--tq { background: var(--tq); }
.gloss--lav { background: var(--lav); }
.gloss__paper { background: var(--paper); padding: 26px 22px; border-radius: 8px; display: grid; gap: 10px; }
.gloss__paper::before, .gloss__paper::after { content: ""; height: 2px; background: var(--tq-deep); }
.gloss--lav .gloss__paper::before, .gloss--lav .gloss__paper::after { background: var(--lav-deep); }
.gloss__word { font-family: var(--display); font-weight: 900; font-size: 2rem; line-height: 1; }
.gloss__sub { font-style: italic; font-weight: 600; }
.gloss__def { font-size: .9rem; line-height: 1.45; }

/* --- Llamada final --- */
.finale { background: var(--tq); border-top: 3px solid var(--ink); padding: clamp(64px, 9vw, 120px) 0; overflow: hidden; }
.finale__inner { display: grid; grid-template-columns: auto 1fr; gap: clamp(32px, 6vw, 90px); align-items: center; }
.finale { position: relative; }
.finale__inner { position: relative; z-index: 1; }
.finale__bar { position: absolute; left: 0; right: 0; top: 50%; height: var(--bar); background: var(--ink); transform: translateY(-50%); }
.finale__disc {
  width: clamp(180px, 26vw, 340px); aspect-ratio: 1; border-radius: 50%; overflow: hidden;
  border: 14px solid; border-color: var(--lav) var(--lav) var(--ink) var(--ink); box-shadow: 0 0 0 3px var(--ink);
  transform: rotate(calc(var(--spin, 0) * -1deg));
}
.finale__img { width: 100%; height: 100%; object-fit: cover; transform: rotate(calc(var(--spin, 0) * 1deg)) scale(1.02); }
.finale__title { font-family: var(--display); font-weight: 900; font-size: clamp(2.2rem, 5.4vw, 4.8rem); line-height: 1; letter-spacing: -0.03em; max-width: 13ch; margin-bottom: 18px; }
.finale__copy > p { max-width: 46ch; font-size: 1.1rem; font-weight: 600; }
.finale__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; margin-top: 28px; }
@media (max-width: 720px) { .finale__inner { grid-template-columns: 1fr; } .finale__disc { width: 170px; } .finale__bar { top: calc(clamp(64px, 9vw, 120px) + 85px); } }

/* ==========================================================================
   Home en móvil: más densa (unas 7 pantallas a 390 px), carruseles táctiles
   con scroll-snap y objetivos táctiles ≥44 px. Todo va en @media: el escritorio
   (≥900 px) no cambia.
   ========================================================================== */
.hero .kicker span { white-space: nowrap; }

@media (max-width: 899px) {
  /* Hero: titular + CTA en la primera pantalla (incluso a 320×568) */
  .hero__copy { padding: calc(var(--header-h) + 20px) var(--gutter) 28px; gap: 16px; }
  .hero__title { font-size: clamp(2.05rem, 10.6vw, 3.6rem); line-height: .98; max-width: 11ch; overflow-wrap: break-word; }
  .hero__lead { font-size: 1rem; line-height: 1.55; }
  .hero__actions { gap: 4px 22px; }
  .hero__stage { padding-top: 44px; }
  .hero__tag { top: 12px; }
  .hero__disc { width: min(64vw, 340px, 46svh); border-width: 8px; margin-bottom: -8px; }
  /* Regla de horas: termina antes del botón flotante de WhatsApp (58 px + margen) */
  .hero .daybar { height: 56px; }
  .hero .daybar ul { right: calc(var(--gutter) + 66px + env(safe-area-inset-right, 0px)); }
  .hero .daybar span { font-size: .75rem; }

  /* Enlaces subrayados: zona táctil de 44 px sin mover el diseño */
  .hero__actions .link-line, .finale__actions .link-line {
    padding: 12px 0 14px; margin: -12px 0 -14px;
    background-position: 0 calc(100% - 12px);
  }
  .inside__head a { display: inline-block; padding: 10px 0; margin: -10px 0; }

  /* Cinta: más fina y sin pintar fuera de pantalla (ahorra batería) */
  .ticker { padding: 12px 0; content-visibility: auto; contain-intrinsic-size: auto 56px; }
  .ticker li { font-size: 1.2rem; }

  /* Discos: carrusel con imán y el siguiente disco asomando */
  .plates { padding: 52px 0 44px; }
  .plates__head { gap: 12px; margin-bottom: 24px; }
  .plates__lead { font-size: 1rem; }
  .plates__bar { --slot: min(54vw, 240px); }
  .plates__list { gap: 16px; padding-top: 6px; padding-bottom: 8px; scroll-padding-inline: var(--gutter); overscroll-behavior-x: contain; }
  .plate { scroll-snap-align: start; }
  .plate__disc { border-width: 9px; }
  .plate__name { font-size: 1.15rem; margin-top: 6px; }
  .plate__short { font-size: 1rem; line-height: 1.45; }
  .plates__more { margin-top: 24px; }

  /* Cifras */
  .facts__half { padding: 40px var(--gutter); }
  .facts__half--lav { gap: 14px; }
  .facts__half--lav p { font-size: 1rem; }
  .facts__half--tq { padding-block: 8px; }
  .fact { padding-top: 16px; padding-bottom: 18px; gap: 4px; }
  .fact__num { font-size: clamp(2.2rem, 11vw, 3.4rem); }

  /* Hoy: sin foto, solo las próximas franjas; el detalle vive en /horarios/ */
  .today { padding: 52px 0 48px; }
  .today__grid { gap: 14px; }
  .today__head { display: contents; }
  .today__media { display: none; }
  .today__grid > .week { order: 1; margin-top: 4px; }
  .today__head > .btn { order: 2; justify-self: start; margin-top: 2px; }
  .today .daytabs { gap: 5px; }
  .today .daytabs__btn { flex: 1 1 0; width: auto; max-width: 52px; height: 44px; aspect-ratio: auto; border-radius: 999px; }
  .today .week__now { margin-bottom: 2px; }
  .today .slot { grid-template-columns: 4.6em 1fr; padding: 8px 4px; min-height: 48px; }
  .today .slot__time { font-size: 1.05rem; }
  /* Solo con JS y solo en el día de hoy: las próximas 6 franjas (las pasadas se
     ocultan). Al elegir otro día se ve completo; sin JS se ve todo. */
  .js .today .week:has(.is-today[aria-selected="true"]) .day.is-active:has(.slot:not(.is-past)) .slot.is-past,
  .js .today .week:has(.is-today[aria-selected="true"]) .day.is-active .slot:nth-child(n+7 of :not(.is-past)),
  .js .today .week:has(.is-today[aria-selected="true"]) .day.is-active:not(:has(.slot:not(.is-past))) .slot:not(:nth-last-child(-n+3)) { display: none; }
  .js .today .week:has(.is-today[aria-selected="true"]) .day.is-active:has(.slot:nth-child(7 of :not(.is-past))) .day__list::after {
    content: "Y más franjas hoy: míralas en el horario completo";
    display: block; padding: 12px 4px 0; font-weight: 700; color: var(--muted-on-ink);
  }

  /* Tarifas: el disco de descuento hace de pegatina entre secciones y las
     tarjetas pasan a carrusel horizontal */
  .prices { padding: 52px 0 48px; }
  .prices__head { position: relative; margin-bottom: 16px; }
  .badge-disc { position: absolute; right: 0; top: -104px; width: 104px; height: 104px; border-width: 4px; }
  .badge-disc strong { font-size: 1.4rem; }
  .badge-disc span { font-size: .66rem; }
  .prices__list {
    display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory;
    margin-inline: calc(var(--gutter) * -1); padding: 4px var(--gutter) 16px;
    scroll-padding-inline: var(--gutter); scrollbar-width: none; overscroll-behavior-x: contain;
  }
  .prices__list::-webkit-scrollbar { display: none; }
  .price { flex: 0 0 min(78%, 320px); scroll-snap-align: start; padding: 22px 20px 20px; box-shadow: 0 6px 0 var(--ink); }
  .price__num { font-size: clamp(2.8rem, 13vw, 3.6rem); }
  .prices__more { margin-top: 16px; }

  /* Carril de fotos y glosario de la home: piezas más pequeñas */
  .inside--home { padding-top: 52px; }
  .inside--home .inside__head { gap: 10px; margin-bottom: 0; }
  .inside--home .rail__track { gap: 14px; padding: 18px var(--gutter) 40px; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); overscroll-behavior-x: contain; }
  .inside--home .rail__cell { scroll-snap-align: start; }
  .inside--home .rail__cell--tall { width: min(44vw, 200px); }
  .inside--home .rail__cell--wide { width: min(72vw, 360px); border-radius: 120px; }
  .inside--home .rail__cell--round { width: min(56vw, 250px); }
  .inside--home .gloss { width: min(78vw, 320px); aspect-ratio: auto; padding: 16px; }
  .inside--home .gloss__paper { padding: 18px 16px; }
  .inside--home .gloss__word { font-size: 1.6rem; }
  .inside--home .gloss__def { font-size: 1rem; }
}

@media (max-width: 720px) {
  .finale { padding: 44px 0 52px; }
  .finale__inner { gap: 20px; }
  .finale__disc { width: 128px; border-width: 10px; }
  .finale__bar { top: calc(44px + 64px); }
  .finale__copy > p { font-size: 1rem; }
  .finale__title { margin-bottom: 12px; overflow-wrap: break-word; }
  .finale__actions { margin-top: 20px; gap: 6px 22px; }
}

/* Móvil apaisado: el hero vuelve a partirse en dos para que quepa en ~1 pantalla */
@media (orientation: landscape) and (max-height: 500px) {
  .hero { grid-template-columns: 56% 44%; min-height: 0; background: linear-gradient(90deg, var(--lav) 56%, var(--tq) 56%); }
  .hero__copy {
    background: none; gap: 12px;
    padding: calc(var(--header-h) + 8px) var(--gutter) 20px max(var(--gutter), env(safe-area-inset-left, 0px));
  }
  .hero__title { font-size: clamp(1.9rem, 4.6vw, 2.8rem); max-width: 14ch; }
  .hero__lead { font-size: 1rem; line-height: 1.45; }
  .hero__stage {
    background: none; border-top: 0; border-left: 3px solid var(--ink);
    padding: calc(var(--header-h) + 8px) max(var(--gutter), env(safe-area-inset-right, 0px)) 0 var(--gutter);
  }
  .hero__tag { display: none; }
  .hero__disc { width: min(100%, 52svh, 300px); }
  .hero .daybar { background: none; }
}

/* Movimiento reducido: sin cinta en marcha ni disco rodando */
@media (prefers-reduced-motion: reduce) {
  .ticker__track { animation: none; }
  .js .hero__disc, .js .hero__title, .js .hero__lead, .js .hero__actions, .js .hero .kicker { animation: none; }
}
