/* Hallmark · shape: Workbench · genre: editorial · theme: Hedgerow (deal 2/3, seed tour-guide-live-voice-046a·d0e7c7f2·2026-11-12·r0) · job: sign up · draw: aef666
 * hero: Counter · nav: edge-aligned · footer: mast · imagery: the product, captured · signature: the monthly price set at display size as the hero's buy box · hedgerow: hedge
 * axes: dark/high-contrast-serif/chromatic-green · posture: drenched · contrast: pass · fold: pass · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E4 S4 R4 V4 · weakest: S, a price and a phone could sell any app; the captures are the real listener page mid-tour and every row states a fact of this product */
/* waive 42: footer swapped from the dealt index columns to a mast, the site has three destinations and no sitemap */
@import url("./tokens.css");
@import url("./base.css");

/* ── Controles ── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  border: 1.5px solid var(--color-accent); border-radius: var(--radius-pill);
  padding: var(--space-sm) var(--space-lg); font-size: var(--text-md); font-weight: 700; line-height: 1.2;
  text-decoration: none; white-space: nowrap; cursor: pointer; background: transparent; color: var(--color-accent);
  transition: background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);
}
.btn:hover { background: color-mix(in oklab, var(--color-accent) 14%, transparent); }
.btn:active { background: color-mix(in oklab, var(--color-accent) 24%, transparent); }
.btn--primary { background: var(--color-accent); color: var(--color-accent-ink); }
.btn--primary:hover { background: var(--color-accent-2); border-color: var(--color-accent-2); }
.btn--primary:active { background: var(--color-accent); border-color: var(--color-accent); }
.btn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; transition: none; }
.btn[disabled], .btn[aria-busy="true"] { background: var(--color-paper-3); border-color: var(--color-rule); color: var(--color-muted); cursor: not-allowed; }
.link { color: var(--color-ink); text-decoration-color: var(--color-accent); white-space: nowrap; }
.link:hover { text-decoration-thickness: 2px; }
form { margin: 0; }

/* ── Nav ── */
.nav { border-bottom: var(--rule-hair) solid var(--color-rule); }
.nav__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); height: 72px; }
.wordmark { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-ink); text-decoration: none; }
.nav__links { display: flex; align-items: center; gap: var(--space-lg); font-size: var(--text-sm); font-weight: 500; }
.nav__links a:not(.btn) { color: var(--color-ink-2); text-decoration: none; }
.nav__links a:not(.btn):hover { color: var(--color-ink); text-decoration: underline; text-decoration-color: var(--color-accent); }
.nav .btn { min-height: 40px; padding: var(--space-xs) var(--space-md); font-size: var(--text-sm); }

/* ── Hero: el precio es la imagen ── */
.hero { min-height: calc(100dvh - 73px); display: flex; align-items: center; padding-block: var(--space-2xl); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--space-3xl); align-items: center; }
.hero h1 { max-width: 11ch; font-size: clamp(3rem, 6vw + 1rem, 6.5rem); }
.hero .lead { margin-top: var(--space-lg); color: var(--color-ink-2); max-width: 30ch; }
.offer { display: flex; flex-direction: column; justify-content: center; min-height: min(62dvh, 600px); background: var(--color-paper-2); border-top: 1.5px solid var(--color-accent); padding: var(--space-2xl) var(--space-xl) var(--space-xl); }
.offer__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-xs) var(--space-sm); font-family: var(--font-display); font-variant-numeric: lining-nums tabular-nums; line-height: 1; color: var(--color-ink); }
.offer__amount { font-size: clamp(4rem, 7vw + 1rem, 8rem); letter-spacing: var(--tracking-display); white-space: nowrap; }
.offer__per { font-size: var(--text-xl); color: var(--color-ink-2); }
.offer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md) var(--space-lg); margin-top: var(--space-xl); }
.offer__terms { margin-top: auto; padding-top: var(--space-xl); font-size: var(--text-sm); color: var(--color-muted); }

/* ── Secciones ── */
.section { padding-block: var(--section-gap-s); }
.section__head { margin-bottom: var(--space-2xl); }
.band { background: var(--color-paper-2); color: var(--color-ink); }

/* ── La página del oyente, fijada mientras pasan los tres momentos ── */
.tour { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: var(--space-3xl); align-items: start; }
.tour__stage { position: sticky; top: var(--space-xl); margin: 0; }
.shots { position: relative; width: min(100%, 360px); aspect-ratio: 1 / 2; margin-inline: auto; }
.shots img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; outline: var(--rule-hair) solid color-mix(in oklab, var(--color-ink) 8%, transparent); outline-offset: -1px; transition: opacity var(--dur-long) var(--ease-out); }
.shots img.is-on { opacity: 1; }
.tour__caption { margin-top: var(--space-md); text-align: center; font-size: var(--text-sm); color: var(--color-muted); }
.moment { min-height: 62vh; display: flex; flex-direction: column; justify-content: center; border-top: var(--rule-hair) solid var(--color-rule); padding-block: var(--space-2xl); }
.moment:first-child { border-top: 1.5px solid var(--color-accent); }
.moment h3 { font-size: var(--text-section); max-width: 16ch; line-height: 1.08; }
.moment p { margin-top: var(--space-lg); font-size: var(--text-lead); color: var(--color-ink-2); max-width: 36ch; }
.moment__shot { display: none; }

/* ── Precios: filas con regla ── */
.plans { list-style: none; margin: 0; padding: 0; border-top: var(--rule-hair) solid var(--color-muted); }
.plan { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 3fr) auto; gap: var(--gap-columns); align-items: center; padding-block: var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.plan--lead { border-bottom-color: var(--color-accent); }
.plan__name { font-family: var(--font-display); font-size: var(--text-2xl); line-height: 1.1; }
.plan__price { font-family: var(--font-display); font-variant-numeric: lining-nums tabular-nums; font-size: var(--text-display-s); line-height: 1; }
.plan__price small { font-family: var(--font-body); font-size: var(--text-md); color: var(--color-muted); margin-left: var(--space-xs); }
.plan__note { color: var(--color-ink-2); }
.plans__foot { margin-top: var(--space-lg); font-size: var(--text-lead); color: var(--color-ink-2); max-width: 52ch; }
.notice { margin-top: var(--space-lg); padding: var(--space-md) var(--space-lg); border-left: 1.5px solid var(--color-accent); background: var(--color-paper-3); color: var(--color-ink); max-width: 60ch; }

/* ── Preguntas ── */
.asks { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-2xl) var(--gap-columns); align-items: start; }
.faq { border-top: var(--rule-hair) solid var(--color-muted); }
.faq details { border-bottom: var(--rule-hair) solid var(--color-rule); }
.faq summary { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-lg); padding-block: var(--space-lg); cursor: pointer; list-style: none; font-family: var(--font-display); font-size: var(--text-xl); line-height: 1.2; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--font-body); font-weight: 500; color: var(--color-accent); }
.faq details[open] summary::after { content: "−"; }
.faq summary:hover { color: var(--color-accent-2); }
.faq summary:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.faq details p { padding-bottom: var(--space-lg); color: var(--color-ink-2); max-width: 62ch; }

/* ── Cierre y pie ── */
.close { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-xl); padding-block: var(--section-gap); }
.close h2 { max-width: 14ch; font-size: var(--text-display); }
.footer { border-top: var(--rule-hair) solid var(--color-rule); padding-block: var(--space-2xl) var(--space-xl); }
.footer__mark { font-family: var(--font-display); font-size: clamp(3rem, 11vw, 10rem); line-height: 1; color: var(--color-ink); overflow-wrap: break-word; min-width: 0; }
.footer__row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-md) var(--space-xl); margin-top: var(--space-xl); font-size: var(--text-sm); color: var(--color-muted); }
.footer__row a { color: var(--color-ink-2); }
.footer__links { display: flex; flex-wrap: wrap; gap: var(--space-lg); }

/* ── Página de gracias ── */
.thanks { min-height: calc(100dvh - 73px); display: flex; align-items: center; padding-block: var(--space-2xl); }
.thanks h1 { max-width: 16ch; }
.code { display: inline-block; margin-top: var(--space-xl); padding: var(--space-lg) var(--space-xl); background: var(--color-paper-2); border-top: 1.5px solid var(--color-accent); font-family: var(--font-outlier); font-size: clamp(1.5rem, 4vw + 0.5rem, 3rem); letter-spacing: 0.04em; color: var(--color-ink); user-select: all; overflow-wrap: anywhere; }
.thanks__steps { margin: var(--space-xl) 0 0; padding-left: 1.2em; color: var(--color-ink-2); max-width: 52ch; }
.thanks__steps li { margin-top: var(--space-xs); }
.thanks__actions { display: flex; flex-wrap: wrap; gap: var(--space-md); margin-top: var(--space-xl); }

@media (max-width: 60rem) {
  .hero { min-height: 0; }
  .hero__grid, .tour, .asks { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .offer { min-height: 0; }
  .tour__stage { display: none; }
  .moment { min-height: 0; }
  .moment__shot { display: block; width: min(100%, 300px); margin-top: var(--space-xl); outline: var(--rule-hair) solid color-mix(in oklab, var(--color-ink) 8%, transparent); outline-offset: -1px; }
  .plan { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-sm) var(--space-lg); }
  .plan__note { grid-column: 1 / -1; }
  .plan form { grid-column: 1 / -1; }
  .nav__links a:not(.btn):not(.nav__lang) { display: none; }
}
