/* ==========================================================================
   Home · ritmo: hero negro → hueso → grafito (clases) → papel → hueso → papel → hueso → cierre negro
   Todas las piezas se colocan en la rejilla .g12 (4 columnas en móvil, 12 en escritorio)
   ========================================================================== */

/* --- Hero ---------------------------------------------------------------- */
.hero { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end;
  min-height: calc(100svh - var(--abar-h)); padding-top: calc(var(--header-h) + var(--s3)); background: #0a0a0a; color: var(--bone); overflow: hidden; }
.hero__media { position: absolute; inset: 0; z-index: -2; }
.hero__media > img { filter: brightness(.8) contrast(1.06); }
/* Degradado negro neutro (sin tinte): el titular siempre queda sobre fondo oscuro */
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(10, 10, 10, .62) 0%, rgba(10, 10, 10, .3) 22%, rgba(10, 10, 10, .72) 48%, rgba(10, 10, 10, .94) 70%, #0a0a0a 100%); }
.hero__in { position: relative; padding-bottom: var(--s4); }
.hero__meta { display: flex; justify-content: space-between; gap: var(--s2); margin-bottom: var(--s3); color: var(--muted-dark); }
.hero__coords { display: none; }
.hero__title { font-size: clamp(2.6rem, 12.4vw, 9.25rem); font-stretch: 112%; font-weight: 750; line-height: .9; letter-spacing: -.03em; color: var(--bone); }
.hero__bar { display: block; height: 6px; margin: .1em 0 .12em calc(-1 * var(--gutter)); width: calc(100% + var(--gutter)); background: var(--bronze); }
.hero__foot { display: grid; gap: var(--s3); margin-top: var(--s3); }
.hero__lead { max-width: 40ch; font-size: var(--fs-lead); line-height: 1.5; color: rgba(245, 242, 236, .86); }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--s1); }
.hero__actions .btn { flex: 1 1 auto; }
.hero__stats { position: relative; border-top: var(--rule-dark); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hero__stats li { grid-column: auto; display: flex; flex-direction: column; gap: 6px; padding: var(--s2) 0 var(--s2); }
.hero__stats li + li { padding-left: 10px; border-left: var(--rule-dark); }
.hero__stats b { font: 700 clamp(1.15rem, 5vw, 2.6rem)/1 var(--display); font-stretch: 112%; letter-spacing: -.02em; white-space: nowrap; }
.hero__stats span { font: 500 .6875rem/1.25 var(--text); letter-spacing: .04em; color: var(--muted-dark); }
@media (min-width: 900px) {
  .hero { min-height: max(720px, 100svh); padding-top: calc(104px + var(--s2)); }
  .hero__media { left: 28%; }
  .hero::before { background:
      linear-gradient(90deg, #0a0a0a 0%, rgba(10, 10, 10, .96) 28%, rgba(10, 10, 10, .78) 46%, rgba(10, 10, 10, .32) 72%, rgba(10, 10, 10, .4) 100%),
      linear-gradient(180deg, rgba(10, 10, 10, .7) 0%, transparent 24%, transparent 62%, rgba(10, 10, 10, .9) 100%); }
  .hero__in { padding-bottom: var(--s6); }
  .hero__meta { grid-column: 1 / -1; margin-bottom: var(--s5); }
  .hero__coords { display: inline; }
  .hero__title { grid-column: 1 / span 10; font-size: clamp(4rem, 7.6vw, 9.25rem); }
  .hero__bar { width: calc(100% + var(--edge)); margin-left: calc(-1 * var(--edge)); max-width: 72vw; }
  .hero__foot { grid-column: 1 / -1; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); align-items: end; margin-top: var(--s5); }
  .hero__lead { grid-column: 1 / span 5; }
  .hero__actions { grid-column: 7 / span 6; justify-content: flex-end; }
  .hero__actions .btn { flex: 0 0 auto; }
  .hero__stats { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .hero__stats li { grid-column: span 3; flex-direction: row; align-items: baseline; gap: var(--s2); padding: var(--s3) 0 var(--s4); }
  .hero__stats li + li { padding-left: var(--s3); }
  .hero__stats span { font-size: var(--fs-micro); letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
}

/* --- Manifiesto (hueso) ------------------------------------------------- */
.mani { padding: var(--section-y) 0; background: var(--bone); }
.mani .g12 { row-gap: var(--s4); }
.mani__q { font: 600 1rem/1.3 var(--text); letter-spacing: 0; text-transform: none; color: var(--ink); }
.mani__text { color: var(--ink); }
.js .mani__text[data-words] span { color: rgba(17, 21, 24, .16); transition: color .5s; }
.js .mani__text[data-words] span.on { color: var(--ink); }
.reveal-all .mani__text[data-words] span { color: var(--ink) !important; }
.mani__fig { display: none; }
.mani__turn { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2);
  padding-top: var(--s3); border-top: 2px solid var(--ink); }
.mani__turn p { font: 700 1.125rem/1.15 var(--display); font-stretch: 115%; text-transform: uppercase; letter-spacing: -.01em; }
.mani__pillars { display: grid; }
.mani__pillars li { display: grid; grid-template-columns: 40px 1fr; gap: 4px var(--s2); padding: var(--s2) 0; border-bottom: var(--rule-light); }
.mani__pillars li > span { grid-row: span 2; font: 500 .875rem/1.5 var(--display); color: var(--bronze-deep); }
.mani__pillars h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .01em; }
.mani__pillars p { color: var(--muted); font-size: .9375rem; line-height: 1.5; }
@media (min-width: 900px) {
  .mani .g12 { row-gap: var(--s8); }
  .mani__aside { grid-column: 1 / span 3; padding-top: .7em; }
  .mani__text { grid-column: 4 / span 9; }
  .mani__fig { display: block; grid-column: 1 / span 4; grid-row: 2 / span 2; position: relative; }
  .mani__fig .plx { aspect-ratio: 4 / 5; box-shadow: var(--shadow-deep); }
  .mani__fig figcaption { margin-top: var(--s2); color: var(--muted); }
  .mani__fig::before { content: ""; position: absolute; z-index: 1; top: 22%; left: calc(-1 * var(--edge)); width: calc(100% + var(--edge) + 48px);
    height: 6px; background: var(--bronze); }
  .mani__turn { grid-column: 6 / span 7; align-self: start; }
  .mani__turn { padding-top: var(--s4); }
  .mani__turn p { font-size: clamp(2.25rem, 4vw, 4rem); line-height: .94; letter-spacing: -.03em; }
  .mani__pillars { grid-column: 6 / span 7; grid-template-columns: repeat(3, 1fr); column-gap: var(--col-gap); align-self: start; margin-top: var(--s5); }
  .mani__pillars li { grid-template-columns: 1fr; border-bottom: 0; border-top: var(--rule-light); padding-top: var(--s3); }
  .mani__pillars li > span { grid-row: auto; font: 400 clamp(3rem, 5vw, 4.5rem)/1 var(--display); font-stretch: 140%; letter-spacing: -.04em; color: var(--bronze); margin-bottom: var(--s3); }
}

/* --- Carril de clases (grafito: el único bloque oscuro intermedio) ----- */
.rail { position: relative; background: var(--ink-2); color: var(--bone); }
.rail__pin { display: flex; flex-direction: column; padding: var(--s8) 0 var(--s5); }
.rail__head { align-items: end; row-gap: var(--s2); margin-bottom: var(--s4); }
.rail__head .eyebrow { margin-bottom: var(--s2); }
.rail__title { font-size: var(--fs-h2); }
.rail__meta { display: none; }
.rail__count { font: 400 clamp(3rem, 6vw, 5.5rem)/.85 var(--display); font-stretch: 140%; letter-spacing: -.04em; color: var(--bone); }
.rail__count small { margin-left: .2em; font-size: .3em; letter-spacing: .02em; color: var(--muted-dark); }
.rail__hint { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-top: var(--s2); color: var(--muted-dark); }
.rail__hint-bar { width: 48px; height: 1px; background: var(--bronze); }
.rail__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain;
  padding: 0 var(--gutter) var(--s1); scroll-padding-inline: var(--gutter); }
.rail__viewport::-webkit-scrollbar { display: none; }
.rail__track { display: flex; gap: var(--s2); width: max-content; }
.ccard { position: relative; flex: 0 0 min(80vw, 440px); scroll-snap-align: start; }
.ccard__a { position: relative; display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.ccard__media { position: relative; height: 240px; overflow: hidden; background: var(--ink); }
.ccard__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ccard__a:hover .ccard__img { transform: scale(1.04); }
.ccard__num { position: absolute; z-index: 1; right: var(--s2); top: calc(240px - .78em); font: 750 clamp(4.5rem, 20vw, 7.5rem)/1 var(--display);
  font-stretch: 140%; letter-spacing: -.05em; color: var(--bronze); pointer-events: none; }
.ccard__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: var(--s3) 0 0; }
.ccard__tag { color: var(--bronze-hi); }
.ccard__name { margin-top: var(--s1); font-size: clamp(1.4rem, 5.6vw, 2rem); font-stretch: 120%; text-transform: uppercase; letter-spacing: -.02em; }
.ccard__desc { margin-top: var(--s1); font-size: .9375rem; line-height: 1.55; color: var(--muted-dark);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ccard__cta { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: auto; padding-top: var(--s1);
  font: 650 .75rem/1 var(--display); font-stretch: 112%; letter-spacing: .12em; text-transform: uppercase; color: var(--bone); }
.ccard__cta .ico { width: 16px; height: 16px; color: var(--bronze-hi); transition: transform .45s var(--ease-out); }
.ccard__a:hover .ccard__cta .ico { transform: translateX(5px); }
/* Clases sin foto propia: panel tipográfico con rayado técnico y la barra */
.ccard--type .ccard__media { display: flex; align-items: flex-start; padding: var(--s3);
  background: repeating-linear-gradient(0deg, rgba(245, 242, 236, .05) 0 1px, transparent 1px 9px), var(--ink-3); }
.ccard__ghost { font: 750 clamp(1.9rem, 7.4vw, 2.6rem)/.92 var(--display); font-stretch: 100%; letter-spacing: -.03em; text-transform: uppercase;
  color: rgba(245, 242, 236, .12); hyphens: none; }
.ccard__line { position: absolute; left: 0; right: 0; top: 58%; height: 6px; background: var(--bronze); }
.ccard--end { display: flex; flex-direction: column; justify-content: flex-end; gap: var(--s3); padding: var(--s4);
  box-shadow: inset 0 0 0 1px var(--line-dark); }
.ccard__endt { font: 700 clamp(1.5rem, 5vw, 2.2rem)/1.02 var(--display); font-stretch: 118%; text-transform: uppercase; letter-spacing: -.02em; }
.rail__progress { margin-top: var(--s3); }
.rail__progress span { display: block; height: 1px; background: var(--line-dark); }
.rail__progress i { display: block; height: 100%; background: var(--bronze); transform: scaleX(var(--p, .08)); transform-origin: left; }
@media (min-width: 900px) {
  .rail__pin { padding: var(--s12) 0 var(--s8); }
  .rail__intro { grid-column: 1 / span 9; }
  .rail__title { font-size: clamp(2.4rem, 4.4vw, 4.25rem); }
  .rail__meta { display: block; grid-column: 10 / span 3; text-align: right; }
  .ccard { flex-basis: 440px; }
  .ccard__media { height: 340px; }
  .ccard__num { top: calc(340px - .78em); }
}
/* Modo «pin» (escritorio): main.js lo activa; el scroll vertical mueve el carril */
.rail.is-pinned .rail__pin { position: sticky; top: 0; height: 100svh; overflow: hidden; justify-content: flex-start;
  padding: calc(var(--header-h) + var(--s3)) 0 var(--s4); }
.rail.is-pinned .rail__viewport { overflow: visible; scroll-snap-type: none; padding-bottom: 0; }
.rail.is-pinned .rail__track { will-change: transform; }
@media (min-width: 900px) and (max-height: 960px) {
  .rail.is-pinned .ccard__media { height: 260px; }
  .rail.is-pinned .ccard__num { top: calc(260px - .78em); }
  .rail.is-pinned .rail__title { font-size: clamp(2rem, 3.6vw, 3.4rem); }
  .rail.is-pinned .rail__head { margin-bottom: var(--s3); }
}

/* --- Tu semana (papel) --------------------------------------------------- */
.wk { padding: var(--section-y) 0; background: var(--paper); }
.wk .g12 { row-gap: var(--s4); }
.wk__title { font-size: var(--fs-h2); }
.wk__facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--ink); }
.wk__facts li { display: grid; gap: 6px; padding: var(--s2) var(--s1) 0 0; }
.wk__facts li + li { padding-left: 12px; border-left: var(--rule-light); }
.wk__facts b { font: 700 clamp(1.4rem, 5.6vw, 3rem)/1 var(--display); font-stretch: 112%; letter-spacing: -.02em; }
.wk__facts span { font-size: .75rem; line-height: 1.3; color: var(--muted); }
/* Línea de tiempo: una fila por día, una marca por clase */
.tl__axis { position: relative; height: 18px; margin-left: 28px; margin-right: 28px; }
.tl__axis span { position: absolute; left: var(--x); transform: translateX(-50%); font: 500 .6875rem/1 var(--text); color: var(--muted); font-variant-numeric: tabular-nums; }
.tl__rows li + li { border-top: var(--rule-light); }
.tl__row { display: grid; grid-template-columns: 28px 1fr 28px; align-items: center; width: 100%; height: 28px; padding: 0; border: 0;
  background: transparent; cursor: pointer; text-align: left; transition: background-color .3s; }
.tl__row:hover { background: rgba(158, 125, 86, .08); }
.tl__day { font: 700 .8125rem/1 var(--display); font-stretch: 112%; }
.tl__n { justify-self: end; font-size: .75rem; color: var(--muted); }
.tl__track { position: relative; height: 100%; background: linear-gradient(var(--line-light), var(--line-light)) 0 50% / 100% 1px no-repeat; }
.tl__track i { position: absolute; left: var(--x); top: 50%; width: 3px; height: 12px; margin: -6px 0 0 -1.5px; background: var(--ink-3);
  transition: background-color .3s, height .3s, margin .3s; }
.tl__row.is-on .tl__track i { background: var(--bronze); height: 18px; margin-top: -9px; }
.tl__row.is-on .tl__day { color: var(--bronze-deep); }
.tl__legend { display: flex; align-items: center; gap: 10px; margin-top: var(--s2); color: var(--muted); letter-spacing: .08em; text-transform: none; font-weight: 500; }
.tl__legend i { width: 3px; height: 12px; background: var(--bronze); }
.wk__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2);
  padding-bottom: var(--s2); border-bottom: 2px solid var(--ink); }
.wk__label { display: flex; align-items: baseline; gap: 12px; font: 700 clamp(1.5rem, 5vw, 2.4rem)/1 var(--display); font-stretch: 118%; text-transform: uppercase; letter-spacing: -.02em; }
.wk__label small { font: 500 .8125rem/1 var(--text); letter-spacing: 0; text-transform: none; color: var(--muted); }
.wk__tabs { display: flex; gap: 2px; }
.no-js .wk__tabs { display: none; }
.wk__tab { width: 44px; height: 44px; padding: 0; border: 0; cursor: pointer; background: transparent; box-shadow: inset 0 0 0 1px var(--line-light);
  font: 700 .8125rem/1 var(--display); font-stretch: 112%; transition: background-color .3s, color .3s; }
.wk__tab:hover { background: rgba(17, 21, 24, .06); }
.wk__tab[aria-pressed="true"] { background: var(--ink); color: var(--bone); box-shadow: none; }
.wk__tab.is-today { position: relative; }
.wk__tab.is-today::after { content: ""; position: absolute; left: 50%; bottom: 6px; width: 4px; height: 4px; margin-left: -2px; background: var(--bronze); transform: rotate(45deg); }
.wk__list li { display: grid; grid-template-columns: 4.2rem 1fr; align-items: baseline; gap: var(--s2); padding: 10px 0; border-bottom: var(--rule-light); }
.wk__list b { font: 600 1rem/1.3 var(--display); font-stretch: 105%; }
.wk__list span { font-weight: 600; line-height: 1.3; }
.wk__list small { display: block; font-weight: 400; font-size: .8125rem; color: var(--muted); }
.wk__list.is-collapsed li:nth-child(n+6) { display: none; }
.wk__list.is-swap { animation: wk-in .6s var(--ease-out); }
@keyframes wk-in { from { opacity: 0; transform: translateY(8px); } }
.wk__more { margin-top: var(--s1); border: 0; padding: 0; cursor: pointer; background-color: transparent; color: var(--ink); }
.wk__cta { margin-top: var(--s1); }
@media (min-width: 900px) {
  .wk .g12 { row-gap: var(--s6); }
  .wk__head { grid-column: 1 / span 6; }
  .wk__facts { grid-column: 8 / span 5; align-self: end; }
  .wk__facts li { padding-top: var(--s3); }
  .tl { grid-column: 1 / span 6; align-self: start; position: sticky; top: calc(var(--header-h) + var(--s5)); }
  .tl__row { height: 48px; }
  .tl__track i { width: 4px; height: 18px; margin: -9px 0 0 -2px; }
  .tl__row.is-on .tl__track i { height: 30px; margin-top: -15px; }
  .wk__day { grid-column: 8 / span 5; }
  .wk__list li { grid-template-columns: 5rem 1fr; padding: 14px 0; }
  .wk__list small { display: inline; margin-left: 10px; }
}

/* --- Team (hueso): acordeón de retratos en escritorio, carril en móvil --- */
.team { padding: var(--section-y) 0; background: var(--bone); }
.team__head { row-gap: var(--s3); margin-bottom: var(--s5); }
.team__title { font-size: var(--fs-h2); }
.team__side p { max-width: 44ch; color: var(--muted); }
.team__side .tlink { margin-top: var(--s1); }
.acc { display: flex; gap: var(--s1); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding: 0 var(--gutter); scroll-padding-inline: var(--gutter); }
.acc::-webkit-scrollbar { display: none; }
.acc__item { flex: 0 0 52vw; max-width: 260px; scroll-snap-align: start; }
.acc__a { position: relative; display: block; text-decoration: none; color: inherit; }
.acc__media { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: var(--ink-3); }
.acc__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.acc__idx { position: absolute; top: 10px; left: 12px; font: 500 .75rem/1 var(--text); color: var(--bone); mix-blend-mode: difference; }
.acc__v { display: none; }
.acc__info { padding-top: 12px; }
.acc__name { font-size: 1.125rem; text-transform: uppercase; letter-spacing: -.01em; }
.acc__name br { display: none; }
.acc__role { margin-top: 4px; color: var(--bronze-deep); }
.acc__cls, .acc__ig { display: none; }
@media (hover: none) { .acc__item .tone { filter: none; } }
@media (min-width: 900px) {
  .team__intro { grid-column: 1 / span 8; }
  .team__side { grid-column: 9 / span 4; align-self: end; }
  .acc { gap: 6px; overflow: visible; height: clamp(460px, 42vw, 620px); width: min(100% - 2 * var(--gutter), var(--max)); margin-inline: auto; padding: 0; }
  .acc__item { flex: 1 1 0; max-width: none; min-width: 0; transition: flex-grow .8s var(--ease-out); }
  .acc__item.is-active { flex-grow: 4.2; }
  .acc__a { height: 100%; overflow: hidden; background: var(--ink); }
  .acc__media { position: absolute; inset: 0; aspect-ratio: auto; }
  .acc__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(10, 10, 10, .82)); transition: opacity .6s; }
  .acc__item:not(.is-active) .acc__media::after { background: rgba(10, 10, 10, .45); }
  .acc__idx { top: var(--s2); left: var(--s2); font-size: .8125rem; }
  .acc__v { position: absolute; display: block; bottom: var(--s3); left: 50%; writing-mode: vertical-rl; transform: translateX(-50%) rotate(180deg);
    font: 700 1.125rem/1 var(--display); font-stretch: 118%; text-transform: uppercase; letter-spacing: .04em; color: var(--bone); transition: opacity .4s; white-space: nowrap; }
  .acc__item.is-active .acc__v { opacity: 0; }
  .acc__info { position: absolute; left: 0; right: 0; bottom: 0; padding: var(--s4); color: var(--bone);
    opacity: 0; transform: translateY(16px); transition: opacity .5s, transform .7s var(--ease-out); }
  .acc__item.is-active .acc__info { opacity: 1; transform: none; transition-delay: .25s; }
  .acc__name { font-size: clamp(1.75rem, 2.8vw, 2.75rem); line-height: .92; letter-spacing: -.02em; white-space: nowrap; }
  .acc__name br { display: inline; }
  .acc__role { color: var(--bronze-hi); margin-top: var(--s2); }
  .acc__cls { display: block; margin-top: 6px; font-size: .875rem; color: rgba(245, 242, 236, .8); }
  .acc__ig { display: block; margin-top: 6px; font-size: .8125rem; color: var(--muted-dark); }
  .acc__item:not(.is-active) .acc__a:hover .acc__media::after { background: rgba(10, 10, 10, .25); }
}

/* --- Instalaciones (papel): composición asimétrica, foto grande a sangre --- */
.box { padding: var(--section-y) 0; background: var(--paper); overflow: hidden; }
.box .g12 { row-gap: var(--s3); }
.box__title { font-size: var(--fs-h2); }
.box__intro { max-width: 40ch; color: var(--muted); }
.box figure { position: relative; }
.box .plx { overflow: hidden; }
.box__main .plx { aspect-ratio: 4 / 3; margin-inline: calc(-1 * var(--gutter)); }
.box__b, .box__c { grid-column: span 2; }
.box__b .plx, .box__c .plx { aspect-ratio: 1 / 1; }
.box figcaption { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; margin-top: 12px; }
.box figcaption .num { font: 500 .75rem/1.5 var(--text); color: var(--bronze-deep); }
.box figcaption b { font: 700 .8125rem/1.3 var(--display); font-stretch: 110%; text-transform: uppercase; }
.box__txt { display: none; grid-column: 2; font-size: .875rem; line-height: 1.5; color: var(--muted); }
.box__zones ol, .box__zones > .micro { display: none; }
.box__zones li { display: flex; gap: var(--s2); align-items: baseline; padding: 12px 0; border-bottom: var(--rule-light);
  font: 600 1rem/1.3 var(--display); font-stretch: 105%; }
.box__zones li .num { font: 500 .75rem/1 var(--text); color: var(--bronze-deep); }
.box__zones > .micro { color: var(--muted); }
@media (min-width: 900px) {
  .box .g12 { row-gap: 0; }
  .box__head { grid-column: 1 / -1; grid-row: 1; }
  .box__intro { grid-column: 1 / span 3; grid-row: 2; align-self: start; margin-top: var(--s8); }
  .box__main { grid-column: 5 / span 8; grid-row: 2; margin: var(--s8) calc(-1 * var(--edge)) 0 0; }
  .box__main .plx { aspect-ratio: 16 / 10; margin: 0; clip-path: polygon(var(--cut-lg) 0, 100% 0, 100% 100%, 0 100%, 0 var(--cut-lg)); }
  /* La foto de recepción (.box__b) invade 40 px de la columna de la principal: sangría para que no tape el pie de foto */
  .box__main figcaption { padding-left: calc(var(--s8) + var(--s4)); padding-right: var(--edge); max-width: 760px; }
  .box__b { grid-column: 2 / span 3; grid-row: 2; align-self: end; margin-bottom: calc(-1 * var(--s10)); z-index: 1; margin-right: calc(-1 * var(--s8)); }
  .box__b .plx { aspect-ratio: 4 / 5; box-shadow: var(--shadow-deep); }
  .box__zones { grid-column: 1 / span 4; grid-row: 3; margin-top: calc(var(--s10) + var(--s12)); }
  .box__zones ol, .box__zones > .micro { display: block; }
  .box__zones ol { border-top: 2px solid var(--ink); margin-top: 12px; }
  .box__zones .tlink { margin-top: var(--s2); }
  .box__c { grid-column: 6 / span 6; grid-row: 3; margin-top: var(--s16); }
  .box__c .plx { aspect-ratio: 3 / 2; clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--cut-lg)), calc(100% - var(--cut-lg)) 100%, 0 100%); }
  .box__txt { display: block; }
  .box figcaption { margin-top: var(--s2); }
  .box figcaption b { font-size: .875rem; }
}

/* --- Tarifas (hueso) ---------------------------------------------------- */
.price { padding: var(--section-y) 0; background: var(--bone); }
.price .g12 { row-gap: var(--s4); }
.price__title { font-size: var(--fs-h2); }
.price__from { position: relative; }
.price__from .micro { color: var(--bronze-deep); }
.price__big { font: 750 clamp(6rem, 30vw, 17rem)/.8 var(--display); font-stretch: 130%; letter-spacing: -.06em; margin-top: var(--s1); }
.price__big span { font-size: .38em; letter-spacing: 0; margin-left: .06em; vertical-align: .95em; }
.price__unit { margin-top: var(--s2); padding-top: var(--s2); border-top: 6px solid var(--bronze); max-width: 30ch; font-weight: 600; }
.ptable { width: 100%; border-collapse: collapse; }
.ptable caption { caption-side: top; text-align: left; padding-bottom: 12px; color: var(--muted); letter-spacing: .08em; }
.ptable th, .ptable td { padding: 14px 0; border-bottom: var(--rule-light); text-align: right; }
.ptable thead th { padding-top: 12px; border-top: 2px solid var(--ink); font: 600 .6875rem/1.2 var(--text); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.ptable th:first-child { text-align: left; }
.ptable tbody th { font: 600 1rem/1.2 var(--display); font-stretch: 105%; }
.ptable td { font: 700 clamp(1.15rem, 4.4vw, 1.75rem)/1 var(--display); font-stretch: 112%; letter-spacing: -.01em; }
.ptable td:last-child { color: var(--bronze-deep); padding-left: var(--s2); }
.ptable tbody tr { transition: background-color .3s; }
.ptable tbody tr:hover { background: rgba(158, 125, 86, .07); }
.price__note { margin-top: var(--s2); font-size: .8125rem; color: var(--muted); }
.price__flex { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: var(--s2); margin-top: var(--s3); }
.price__flex li { display: flex; flex-direction: column; gap: 4px; padding: 8px 0; border-top: var(--rule-light); font-size: .8125rem; line-height: 1.3; }
.price__flex b { font-weight: 700; }
.price__table .tlink { margin-top: var(--s2); }
@media (min-width: 900px) {
  .price .g12 { row-gap: var(--s6); }
  .price__head { grid-column: 1 / span 6; }
  .price__from { grid-column: 1 / span 6; grid-row: 2; align-self: start; }
  .price__table { grid-column: 8 / span 5; grid-row: 1 / span 2; align-self: end; }
  .price__flex li { font-size: .9375rem; }
}

/* --- Cierre: semana de prueba gratis (negro) ---------------------------- */
.cta { position: relative; isolation: isolate; overflow: hidden; background: #0a0a0a; color: var(--bone); padding: var(--section-y) 0; }
.cta__bg { position: absolute; inset: 0; z-index: -2; opacity: .3; }
.cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #0a0a0a 0%, rgba(10, 10, 10, .55) 40%, rgba(10, 10, 10, .85) 100%); }
.cta__in { position: relative; row-gap: var(--s3); }
.cta__title { font-size: clamp(2.6rem, 12vw, 10rem); font-stretch: 115%; line-height: .9; letter-spacing: -.035em; }
.cta__bar { display: block; height: 6px; width: calc(100% + 2 * var(--gutter)); margin: .1em calc(-1 * var(--gutter)) .12em; background: var(--bronze); }
.cta__text { max-width: 46ch; font-size: var(--fs-lead); line-height: 1.5; color: rgba(245, 242, 236, .84); }
.cta__actions { display: flex; flex-wrap: wrap; gap: var(--s1); }
.cta__actions .btn:first-child { flex: 1 1 100%; }
.cta__actions .btn--ghost { flex: 1 1 0; padding: 0 12px; }
.cta__seven { display: none; }
@media (min-width: 900px) {
  .cta__title { grid-column: 1 / span 11; font-size: clamp(5rem, 10vw, 10rem); }
  .cta__bar { width: calc(100% + 2 * var(--edge)); margin-inline: calc(-1 * var(--edge)); }
  .cta__text { grid-column: 1 / span 5; margin-top: var(--s3); }
  .cta__actions { grid-column: 6 / span 7; align-self: end; justify-content: flex-end; flex-wrap: nowrap; }
  .cta__actions .btn:first-child, .cta__actions .btn--ghost { flex: 0 0 auto; padding: 0 24px; }
  .cta__seven { display: block; position: absolute; right: 0; top: -.08em; z-index: -1; font: 800 clamp(18rem, 34vw, 34rem)/.8 var(--display);
    font-stretch: 150%; color: rgba(245, 242, 236, .05); pointer-events: none; }
}

/* --- Ajustes de densidad en móvil (la home cabe en ~8 pantallas) --- */
@media (max-width: 899px) {
  .mani .g12 { row-gap: var(--s3); }
  .mani__pillars li { padding: 10px 0; }
  .mani__pillars p { display: none; }
  .mani__turn { padding-top: var(--s2); }
  .wk .g12 { row-gap: var(--s3); }
  .tl__row { height: 24px; pointer-events: none; }  /* en móvil la línea de tiempo es visual: se elige el día con las pestañas (44 px) */
  .tl__legend { display: none; }
  .wk__day { display: flex; flex-direction: column; }
  .wk__more, .wk__cta { margin-top: 0; }
  .ptable th, .ptable td { padding: 11px 0; }
  .price .g12 { row-gap: var(--s3); }
  .price__flex li:nth-child(n) { padding-bottom: 0; }
  .box__main .plx { aspect-ratio: 3 / 2; }
  .team__side p { font-size: .9375rem; }
  .price__flex { display: none; }
  .ccard__media { height: 220px; }
  .ccard__num { top: calc(220px - .78em); }
  .ccard__desc { -webkit-line-clamp: 2; }
  .wk__facts b { font-size: 1.375rem; }
  .box__intro { display: none; }
}
@media (max-width: 359px) {
  .wk__tabs { width: calc(100% + 2 * var(--gutter)); margin-inline: calc(-1 * var(--gutter)); }
  .wk__tab { flex: 1 1 0; width: auto; min-width: 0; }
  .wk__facts span { font-size: .6875rem; }
  .tl__axis { height: 16px; }
  .tl__legend { margin-top: var(--s1); }
  .team__head { margin-bottom: var(--s3); }
  .cta__title { font-size: clamp(2.4rem, 12vw, 4rem); }
}
