/* ============================================================
   TRAINING CAMPS · hoja compartida de /training-camps/
   ------------------------------------------------------------
   La usan la landing y sus páginas hermanas (proposal/, pay/,
   terms/). Se apoya en apolana.css (tokens --navy, --crema, --azul,
   --fuente-titulo…, y .btn / .faq-item) y añade solo piezas con
   prefijo tc- para no chocar con nada del resto de la web.

   Índice
     1. Tokens y utilidades
     2. Maquetación (wrap, secciones, cabeceras de sección, rejillas)
     3. Barra superior + selector de idioma
     4. Hero (con foto y compacto)
     5. Tarjetas (con cabecera crema), listas, avisos, franjas
     6. Bloques de la landing (valor, sedes, galería, servicios,
        pasos, precio, cierre, barra fija móvil)
     7. Formulario (campos, chips, interruptores, pasos, resumen, éxito)
     8. Visor de fotos
     9. Responsive y movimiento reducido
   ============================================================ */

/* ---------- 1. TOKENS Y UTILIDADES ---------- */
:root {
  --tc-gutter: clamp(16px, 5vw, 56px);
  --tc-ancho: 1200px;
  --tc-radio: 18px;
  --tc-radio-s: 12px;
  --tc-sombra: 0 1px 2px rgba(30,45,65,.06),
               0 10px 20px -12px rgba(30,45,65,.18),
               0 26px 48px -28px rgba(30,45,65,.24);
  --tc-sombra-alta: 0 2px 4px rgba(30,45,65,.08),
                    0 18px 32px -14px rgba(30,45,65,.26),
                    0 44px 76px -32px rgba(30,45,65,.34);
  --tc-cabecera: #F6F1E6;          /* franja crema de las cabeceras de tarjeta */
  --tc-borde: #E7DFCD;
  --tc-oscuro: #1B2733;            /* fondo de foto mientras carga / velo */
  --tc-ok: #3F7A4C;
  --tc-err: #B3261E;
  --tc-ease: cubic-bezier(.2,.7,.2,1);
}

.tc-sr {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.tc-mono { font-family: var(--fuente-dato); font-variant-numeric: tabular-nums; }
.tc-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.tc-nowrap { white-space: nowrap; }
/* Iconos de línea del sprite (<svg class="tc-i"><use href="#tc-i-…"/></svg>) */
.tc-i {
  width: 20px; height: 20px; flex: none; display: inline-block; vertical-align: middle;
  fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
[hidden] { display: none !important; }

/* ---------- 2. MAQUETACIÓN ---------- */
.tc-page { overflow-x: clip; }
.tc-wrap { width: 100%; max-width: var(--tc-ancho); margin-inline: auto; padding-inline: var(--tc-gutter); }
.tc-wrap--narrow { max-width: 860px; }

.tc-section { padding-block: clamp(48px, 7vw, 96px); scroll-margin-top: 12px; }
.tc-section--white { background: #fff; }
.tc-section--cream { background: var(--crema-banda); }
.tc-section--navy { background: var(--navy); color: #fff; }
.tc-section--tight { padding-block: clamp(32px, 5vw, 56px); }

.tc-head { display: flex; flex-direction: column; gap: 12px; max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px); }
.tc-head--center { margin-inline: auto; text-align: center; align-items: center; }
.tc-eyebrow {
  font-family: var(--fuente-texto); font-size: 13px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: var(--azul-oscuro);
}
.tc-title {
  font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase;
  font-size: clamp(32px, 5.2vw, 54px); line-height: .95; letter-spacing: -.015em;
  color: var(--navy); margin: 0; overflow-wrap: break-word;
}
.tc-title--sm { font-size: clamp(26px, 3.6vw, 36px); }
.tc-lead { font-size: clamp(16px, 1.6vw, 18px); line-height: 1.6; color: var(--texto); margin: 0; max-width: 62ch; }
.tc-section--navy .tc-eyebrow { color: var(--tc-mar-claro); }
.tc-section--navy .tc-title { color: #fff; }
.tc-section--navy .tc-lead { color: rgba(255,255,255,.82); }

.tc-grid { display: grid; gap: clamp(16px, 2.2vw, 24px); }
.tc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tc-cta-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tc-cta-row--center { justify-content: center; }

/* Botones: se usan los de la casa (.btn .btn--primario / .btn--fantasma)
   y aquí solo se añaden variantes. */
.btn.tc-btn--lg { min-height: 54px; padding: 16px 28px; font-size: 16px; }
/* Los CTA largos (sobre todo en español) pueden partirse en dos líneas: centradas. */
.btn { text-align: center; }
.tc-page .btn { line-height: 1.2; }
.btn.tc-btn--block { width: 100%; }
.btn.tc-btn--light { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); box-shadow: none; }
.btn.tc-btn--light:hover { background: rgba(255,255,255,.14); color: #fff; border-color: #fff; }
.btn.tc-btn--white { background: #fff; color: var(--navy); box-shadow: 0 14px 26px -14px rgba(0,0,0,.5); }
.btn.tc-btn--white:hover { background: #EAF2F9; color: var(--navy); }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; }
.tc-link-btn {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 4px;
  background: none; border: 0; font: inherit; font-weight: 600; color: var(--azul-oscuro); cursor: pointer;
}
.tc-link-btn:hover { color: var(--azul-hover); text-decoration: underline; text-underline-offset: 3px; }
.tc-page .enlace-flecha { min-height: 44px; }
.tc-arrow { transition: transform .2s var(--tc-ease); }
a:hover > .tc-arrow, button:hover > .tc-arrow { transform: translateX(3px); }

/* ---------- 3. BARRA SUPERIOR + SELECTOR DE IDIOMA ---------- */
.tc-bar .tc-wrap { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-block: 4px 14px; }
.tc-bar__label {
  min-width: 0; font-size: 13.5px; color: var(--texto-suave);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.tc-bar__label b { color: var(--navy); font-weight: 600; }

.tc-lang {
  display: inline-flex; align-items: center; gap: 2px; flex: 0 0 auto;
  padding: 4px; border-radius: 999px;
  background: var(--crema); background: color-mix(in srgb, var(--crema) 82%, transparent);
  -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  border: 1px solid var(--linea); box-shadow: 0 12px 30px -18px rgba(30,45,65,.5);
}
.tc-lang__ico { width: 18px; height: 18px; margin: 0 4px 0 8px; color: var(--texto-suave); flex: none; }
.tc-lang__btn {
  min-width: 48px; min-height: 44px; padding: 0 12px; border: 0; border-radius: 999px;
  background: transparent; color: var(--texto); cursor: pointer;
  font-family: var(--fuente-texto); font-size: 14px; font-weight: 600; letter-spacing: .04em;
  transition: background-color .15s ease, color .15s ease;
}
.tc-lang__btn:hover { color: var(--navy); background: rgba(46,66,86,.07); }
.tc-lang__btn[aria-pressed="true"] { background: var(--navy); color: #fff; }
.tc-lang--dark { background: rgba(16,24,33,.42); border-color: rgba(255,255,255,.22); }
.tc-lang--dark .tc-lang__ico { color: rgba(255,255,255,.75); }
.tc-lang--dark .tc-lang__btn { color: rgba(255,255,255,.88); }
.tc-lang--dark .tc-lang__btn:hover { background: rgba(255,255,255,.12); color: #fff; }
.tc-lang--dark .tc-lang__btn[aria-pressed="true"] { background: #fff; color: var(--navy); }
@media (prefers-reduced-transparency: reduce) {
  .tc-lang { background: var(--crema); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .tc-lang--dark { background: var(--navy); }
}

/* ---------- 4. HERO ---------- */
.tc-hero-shell { padding-inline: 0; }
.tc-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(540px, 80vh, 740px);
  display: flex; align-items: flex-end;
  background: var(--tc-noche); color: #fff;
}
.tc-hero__img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover; object-position: center 25%;
}
.tc-hero__veil {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(16,24,33,.30) 0%, rgba(16,24,33,.06) 30%, rgba(16,24,33,.58) 66%, rgba(16,24,33,.93) 100%),
    linear-gradient(98deg, rgba(16,24,33,.62) 0%, rgba(16,24,33,.18) 55%, rgba(16,24,33,0) 80%);
}
.tc-hero__inner {
  width: 100%; max-width: var(--tc-ancho); margin-inline: auto;
  padding: clamp(88px, 12vh, 140px) var(--tc-gutter) clamp(100px, 12vh, 132px);
  display: flex; flex-direction: column; gap: 18px;
}
.tc-hero__eyebrow {
  font-size: 13.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255,255,255,.80);
}
.tc-hero__title {
  font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase;
  font-size: clamp(38px, 8.2vw, 104px); line-height: .9; letter-spacing: -.02em;
  color: #fff; margin: 0; max-width: 13ch; overflow-wrap: break-word; hyphens: auto;
  text-wrap: balance;
}
/* En español el titular es más largo («CONCENTRACIONES…»): un punto más pequeño
   y más ancho, para que ninguna palabra se parta. */
html[lang="es"] .tc-hero:not(.tc-hero--compact):not(.tc-hero--main) .tc-hero__title { font-size: clamp(30px, 7vw, 92px); max-width: 18ch; }
/* Frase comercial bajo el titular. */
.tc-hero__claim {
  margin: -2px 0 0; font-family: var(--fuente-titulo); font-weight: 600;
  font-size: clamp(18px, 2.2vw, 26px); line-height: 1.25; letter-spacing: -.005em;
  color: #fff; max-width: 46ch; text-wrap: pretty;
}
.tc-hero__lead { font-size: clamp(16px, 1.8vw, 20px); line-height: 1.55; color: rgba(255,255,255,.90); max-width: 560px; margin: 0; }
.tc-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 6px; }
.tc-hero__cta .btn--primario { box-shadow: 0 18px 36px -16px rgba(14,111,120,.95); }

/* Hero compacto para las páginas hermanas (sin foto, navy). */
.tc-hero--compact {
  min-height: 0;
  background:
    radial-gradient(90% 160% at 92% -20%, rgba(32,164,170,.34), transparent 58%),
    linear-gradient(158deg, #182A3B 0%, #1F3347 60%, #16263A 100%);
}
.tc-hero--compact .tc-hero__inner { padding-block: clamp(36px, 6vw, 64px); }
.tc-hero--compact .tc-hero__title { font-size: clamp(32px, 5.4vw, 60px); max-width: 18ch; }


/* ---------- 5. TARJETAS, LISTAS, AVISOS ---------- */
.tc-card {
  background: #fff; border-radius: var(--tc-radio); overflow: hidden;
  box-shadow: var(--tc-sombra); display: flex; flex-direction: column; min-width: 0;
}
.tc-card--hover { transition: transform .45s var(--tc-ease), box-shadow .45s var(--tc-ease); }
.tc-card--hover:hover { transform: translateY(-4px); box-shadow: var(--tc-sombra-alta); }
.tc-card__media { position: relative; aspect-ratio: 16 / 10; background: var(--crema-media); overflow: hidden; }
.tc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tc-ease); }
.tc-card--hover:hover .tc-card__media img { transform: scale(1.04); }
/* Cabecera crema de tarjeta (rótulo + título) */
.tc-card__head {
  background: var(--tc-cabecera); border-bottom: 1px solid var(--tc-borde);
  padding: 16px clamp(18px, 2.4vw, 26px); display: flex; flex-direction: column; gap: 4px;
}
.tc-card__tag { font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-suave); }
.tc-card__title {
  font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase;
  font-size: clamp(22px, 2.6vw, 30px); line-height: 1; color: var(--navy); margin: 0;
}
.tc-card__title.nombre-propio { color: #8A5307; }
.tc-card__body { padding: clamp(18px, 2.4vw, 26px); display: flex; flex-direction: column; gap: 16px; flex: 1; }
.tc-card__body > p { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--texto); }

/* Lista con marca (equipamiento, características) */
.tc-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.tc-list li {
  display: flex; gap: 12px; align-items: flex-start; padding: 10px 0;
  border-bottom: 1px solid #F1EBDF; font-size: 15.5px; line-height: 1.45; color: var(--navy);
}
.tc-list li:last-child { border-bottom: 0; }
.tc-list svg { flex: none; width: 20px; height: 20px; margin-top: 1px; color: var(--azul-oscuro); }

/* Franjas horarias (dato en mono) */
.tc-slots { border: 1px solid var(--tc-borde); border-radius: var(--tc-radio-s); overflow: hidden; }
.tc-slots__cap {
  margin: 0; padding: 10px 14px; background: var(--tc-cabecera); border-bottom: 1px solid var(--tc-borde);
  font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-suave);
}
.tc-slot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 12px 14px; }
.tc-slot + .tc-slot { border-top: 1px solid #F1EBDF; }
.tc-slot__n { font-size: 15px; font-weight: 600; color: var(--navy); }
.tc-slot--nota { background: var(--crema-banda); }
.tc-slot--nota .tc-slot__h { font-family: var(--fuente-texto); font-size: 14px; font-weight: 600; color: var(--texto-suave); }
.tc-equip { display: grid; gap: 8px; }
.tc-slot__h { font-family: var(--fuente-dato); font-size: 15px; color: var(--navy); white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Avisos */
.tc-note {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 13px 15px; border-radius: var(--tc-radio-s);
  background: var(--azul-suave); border: 1px solid var(--tc-mar-borde); color: var(--navy);
  font-size: 14.5px; line-height: 1.5;
}
.tc-note svg { flex: none; width: 20px; height: 20px; margin-top: 1px; color: var(--azul-oscuro); }
.tc-note p { margin: 0; }
.tc-note--warn { background: var(--aviso-fondo); border-color: var(--aviso-borde); color: var(--aviso-texto); }
.tc-note--warn svg { color: var(--aviso-titulo); }
.tc-note--ok { background: var(--verde-fondo); border-color: var(--verde-borde); }
.tc-note--ok svg { color: var(--tc-ok); }
.tc-note--error { background: #FBECEB; border-color: #E6C3BF; color: #6E1D17; }
.tc-note--error svg { color: var(--tc-err); }
.tc-note a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Pastilla de icono */
.tc-icon {
  width: 46px; height: 46px; flex: none; border-radius: 13px;
  display: grid; place-items: center; background: var(--tc-mar-suave); color: var(--azul-oscuro);
}
.tc-icon svg { width: 24px; height: 24px; }

/* Pares etiqueta/valor (resúmenes, datos de propuesta) */
.tc-dl { display: grid; grid-template-columns: minmax(120px, 34%) 1fr; margin: 0; }
.tc-dl > div { display: contents; }
.tc-dl dt, .tc-dl dd { padding: 10px 0; border-bottom: 1px solid #F1EBDF; font-size: 15px; line-height: 1.45; }
.tc-dl dt { color: var(--texto-suave); padding-right: 14px; }
.tc-dl dd { margin: 0; color: var(--navy); overflow-wrap: anywhere; white-space: pre-line; }
.tc-dl > div:last-child dt, .tc-dl > div:last-child dd { border-bottom: 0; }

/* ---------- 6. BLOQUES DE LA LANDING ---------- */
/* Propuesta de valor */
.tc-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.tc-values { display: flex; flex-direction: column; gap: 14px; }
.tc-value { display: flex; gap: 16px; align-items: flex-start; padding: 20px 22px; background: #fff; border-radius: var(--tc-radio); box-shadow: var(--tc-sombra); }
.tc-value h3 { margin: 0 0 4px; font-family: var(--fuente-texto); font-size: 17px; font-weight: 600; color: var(--navy); }
.tc-value p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--texto); }

/* Sedes */
.tc-venue-media--stadium img { object-position: center 25%; }
.tc-venue-media--cubo img { object-position: center 62%; }
.tc-feats { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.tc-feat {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: 999px;
  border: 1px solid var(--linea-borde); background: #fff; font-size: 14px; color: var(--navy);
}
.tc-feat svg { width: 16px; height: 16px; color: var(--azul-oscuro); }
.tc-addr { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; color: var(--texto); line-height: 1.5; }
.tc-addr svg { width: 20px; height: 20px; flex: none; color: var(--azul-oscuro); margin-top: 1px; }
.tc-addr a { font-weight: 600; }

/* Galería */
.tc-gal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(180px, 20vw, 250px); gap: clamp(10px, 1.4vw, 16px); grid-auto-flow: dense; }
.tc-gal__item {
  position: relative; margin: 0; overflow: hidden; border-radius: 16px; background: var(--crema-media);
  box-shadow: var(--tc-sombra); min-width: 0;
}
.tc-gal__item.is-feature { grid-column: span 2; grid-row: span 2; }
.tc-gal__btn { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; color: inherit; }
.tc-gal__btn img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tc-ease); }
.tc-gal__btn:hover img { transform: scale(1.04); }
.tc-gal__btn:focus-visible { outline: 3px solid #fff; outline-offset: -6px; }
.tc-gal__cap {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 12px; pointer-events: none;
  background: linear-gradient(180deg, rgba(16,24,33,0) 0%, rgba(16,24,33,.78) 100%);
  color: #fff; font-size: 14px; font-weight: 500; line-height: 1.35; text-align: left;
}
.tc-gal__cap:empty { display: none; }
.tc-videos { display: grid; align-items: start; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 18px); margin-top: clamp(12px, 1.6vw, 18px); }
.tc-video { margin: 0; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--tc-sombra); min-width: 0; }
.tc-video__frame { position: relative; aspect-ratio: 16 / 9; background: var(--tc-oscuro); }
.tc-video__frame video, .tc-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.tc-video figcaption { padding: 12px 16px; font-size: 14.5px; color: var(--navy); }
.tc-video figcaption:empty { display: none; }
.tc-facade {
  position: absolute; inset: 0; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  border: 0; cursor: pointer; color: #fff; font: inherit; text-align: center; padding: 16px;
  background: radial-gradient(120% 120% at 20% 0%, #3A5470 0%, var(--navy) 55%, #1E2C3A 100%);
}
.tc-facade__play {
  width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center;
  background: #fff; color: var(--navy); box-shadow: 0 12px 30px -12px rgba(0,0,0,.6);
  transition: transform .2s var(--tc-ease);
}
.tc-facade:hover .tc-facade__play { transform: scale(1.06); }
.tc-facade__play svg { width: 26px; height: 26px; margin-left: 3px; }
.tc-facade__t { font-weight: 600; font-size: 15.5px; }
.tc-facade__s { font-size: 12.5px; color: rgba(255,255,255,.72); }
.tc-linkcard { display: flex; align-items: center; gap: 14px; padding: 18px; min-height: 88px; color: var(--navy); }
.tc-linkcard:hover { background: var(--azul-suave); color: var(--navy); }
.tc-linkcard__t { font-weight: 600; display: block; }
.tc-linkcard__s { font-size: 13px; color: var(--texto-suave); display: block; overflow-wrap: anywhere; }

/* Servicios */
.tc-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 18px); }
.tc-service {
  display: flex; flex-direction: column; gap: 12px; padding: 22px 20px;
  background: #fff; border-radius: 16px; box-shadow: var(--tc-sombra);
}
.tc-service h3 { margin: 0 0 4px; font-family: var(--fuente-texto); font-size: 16px; font-weight: 600; color: var(--navy); line-height: 1.3; }
.tc-service p { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--texto); }
.tc-services-note { margin-top: 18px; }

/* Cómo funciona (pasos numerados, sobre navy) */
.tc-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 18px); counter-reset: paso; }
.tc-steps li {
  position: relative; padding: 24px 22px 22px; border-radius: 18px;
  background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.14);
  display: flex; flex-direction: column; gap: 8px;
}
.tc-steps li::before {
  counter-increment: paso; content: counter(paso, decimal-leading-zero);
  font-family: var(--fuente-dato); font-size: 14px; font-weight: 700; color: var(--tc-mar-claro); letter-spacing: .04em;
}
.tc-steps h3 { margin: 0; font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: 21px; line-height: 1.05; color: #fff; }
.tc-steps p { margin: 0; font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.80); }
.tc-steps li.is-key { background: rgba(14,111,120,.16); border-color: rgba(116,208,211,.45); }
.tc-paynote {
  margin-top: clamp(20px, 3vw, 30px); display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 16px 20px; border-radius: 16px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14);
  font-size: 15px; color: rgba(255,255,255,.88);
}
.tc-paynote svg { width: 22px; height: 22px; flex: none; color: var(--tc-mar-claro); }
.tc-paynote p { margin: 0; flex: 1; min-width: 220px; }
.tc-paynote a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }

/* Precio */
.tc-price {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(22px, 4vw, 56px); align-items: center;
  background: #fff; border-radius: 22px; box-shadow: var(--tc-sombra); padding: clamp(24px, 4vw, 44px);
}
.tc-price__factors { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.tc-price__factors li {
  display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border-radius: 999px;
  background: var(--tc-cabecera); border: 1px solid var(--tc-borde); font-size: 15px; font-weight: 500; color: var(--navy);
}
.tc-price__factors svg { width: 18px; height: 18px; color: var(--azul-oscuro); }

/* Cierre */
.tc-close {
  display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
}
.tc-close__t { font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: clamp(30px, 4.6vw, 48px); line-height: .95; color: #fff; margin: 0 0 10px; }
.tc-close p { margin: 0; color: rgba(255,255,255,.82); font-size: 16px; line-height: 1.55; max-width: 520px; }
.tc-close__side { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.tc-close__links { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.tc-close__links a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; min-height: 44px; display: inline-flex; align-items: center; }

/* Barra fija inferior (solo móvil) */
.tc-sticky { display: none; }

/* ---------- 7. FORMULARIO ---------- */
.tc-form-card { max-width: 820px; margin-inline: auto; background: #fff; border-radius: 22px; box-shadow: var(--tc-sombra); overflow: hidden; scroll-margin-top: 12px; }
.tc-form-card__head { background: var(--tc-cabecera); border-bottom: 1px solid var(--tc-borde); padding: clamp(18px, 3vw, 26px) clamp(18px, 4vw, 36px); }
.tc-form-card__body { padding: clamp(20px, 4vw, 36px); }

/* Indicador de pasos */
.tc-stepper__count { margin: 0 0 12px; font-size: 14px; color: var(--texto-suave); }
.tc-stepper__count b { color: var(--navy); font-weight: 600; }
.tc-stepper { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.tc-stepper li { min-width: 0; }
.tc-stepper__btn {
  width: 100%; min-height: 44px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
  background: none; border: 0; padding: 0 0 4px; font: inherit; text-align: left; color: var(--texto-suave); cursor: default;
}
.tc-stepper__btn::before { content: ''; display: block; width: 100%; height: 5px; border-radius: 99px; background: #E4DCCB; transition: background-color .25s ease; }
.tc-stepper__btn span { font-size: 13.5px; font-weight: 600; line-height: 1.25; }
.tc-stepper__btn[data-state="done"] { color: var(--navy); cursor: pointer; }
.tc-stepper__btn[data-state="done"]::before { background: var(--azul-filete); }
.tc-stepper__btn[data-state="current"] { color: var(--navy); }
.tc-stepper__btn[data-state="current"]::before { background: var(--azul); }
.tc-stepper__btn[data-state="done"]:hover span { text-decoration: underline; text-underline-offset: 3px; }
.tc-stepper__btn[disabled] { cursor: default; }

.tc-step { display: flex; flex-direction: column; gap: 22px; }
.tc-js .tc-step:not(.is-active) { display: none; }
.tc-step__title { margin: 0; font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: clamp(24px, 3.2vw, 30px); line-height: 1; color: var(--navy); }
.tc-step__title:focus { outline: none; }
.tc-step__intro { margin: -12px 0 0; font-size: 15px; color: var(--texto-suave); line-height: 1.5; }

/* Campos */
.tc-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; border: 0; margin: 0; padding: 0; }
.tc-label, .tc-field > legend { font-size: 15px; font-weight: 600; color: var(--navy); line-height: 1.35; padding: 0; }
.tc-req { color: var(--azul-oscuro); margin-left: 2px; }
.tc-opt { font-weight: 400; color: var(--texto-suave); font-size: 13.5px; }
.tc-hint { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--texto-suave); }
.tc-field > legend + .tc-hint { margin-top: -2px; }
.tc-field > legend { margin-bottom: 7px; }
.tc-field > legend ~ .tc-hint { margin-bottom: 2px; }
.tc-input, .tc-field select, .tc-field textarea {
  width: 100%; min-height: 50px; padding: 12px 14px;
  font-family: var(--fuente-texto); font-size: 16px; color: var(--navy);
  background: #fff; border: 1px solid var(--linea-borde); border-radius: var(--tc-radio-s);
  transition: border-color .15s ease, box-shadow .15s ease;
  -webkit-appearance: none; appearance: none;
}
.tc-field select {
  padding-right: 40px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232E4256' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
.tc-field textarea { min-height: 104px; resize: vertical; line-height: 1.5; }
.tc-input::placeholder, .tc-field textarea::placeholder { color: #8F8775; }
.tc-input:hover, .tc-field select:hover, .tc-field textarea:hover { border-color: #BDB29C; }
.tc-input:focus, .tc-field select:focus, .tc-field textarea:focus {
  outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(14,111,120,.22);
}
input[type="date"].tc-input { min-width: 0; }
input[type="date"].tc-input::-webkit-date-and-time-value { text-align: left; }
.tc-field.is-invalid .tc-input, .tc-field.is-invalid select, .tc-field.is-invalid textarea { border-color: var(--tc-err); }
.tc-field.is-invalid .tc-input:focus { box-shadow: 0 0 0 3px rgba(179,38,30,.18); }
.tc-error { margin: 0; display: flex; gap: 6px; align-items: flex-start; font-size: 14px; font-weight: 500; color: var(--tc-err); line-height: 1.4; }
.tc-error::before { content: '!'; flex: none; width: 17px; height: 17px; margin-top: 1px; border-radius: 50%; background: var(--tc-err); color: #fff; font-size: 12px; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.tc-error:empty { display: none; }
.tc-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tc-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tc-sub {
  display: flex; flex-direction: column; gap: 16px; padding: 16px; margin-top: 4px;
  border-radius: var(--tc-radio-s); background: #F3FAFA; border: 1px solid var(--tc-mar-borde);
}
.tc-duration { margin: -8px 0 0; font-size: 14px; color: var(--navy); display: flex; gap: 8px; align-items: center; }
.tc-duration svg { width: 18px; height: 18px; color: var(--azul-oscuro); }
.tc-duration:empty { display: none; }

/* Chips (casillas y opciones con aspecto de pastilla) */
.tc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.tc-chips--days .tc-chip span { min-width: 64px; justify-content: center; }
.tc-chip { position: relative; display: inline-flex; }
.tc-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.tc-chip span {
  display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 10px 16px;
  border: 1px solid var(--linea-borde); border-radius: 999px; background: #fff;
  font-size: 15px; font-weight: 500; color: var(--navy); cursor: pointer; user-select: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.tc-chip span small { font-family: var(--fuente-dato); font-size: 12.5px; color: var(--texto-suave); font-weight: 400; }
.tc-chip span::before {
  content: ''; width: 16px; height: 16px; flex: none; border-radius: 5px; border: 1.5px solid #B9AE97; background: #fff;
  transition: background-color .15s ease, border-color .15s ease;
}
.tc-chip input[type="radio"] + span::before { border-radius: 50%; }
.tc-chip span:hover { border-color: var(--azul-filete); }
.tc-chip input:checked + span { background: var(--azul-suave); border-color: var(--azul); color: var(--navy); }
.tc-chip input:checked + span::before {
  border-color: var(--azul);
  background: var(--azul) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.tc-chip input[type="radio"]:checked + span::before { background: #fff; box-shadow: inset 0 0 0 4px var(--azul); }
.tc-chip input:checked + span small { color: var(--azul-oscuro); }
.tc-chip input:focus-visible + span { outline: 2px solid var(--azul-filete); outline-offset: 2px; }
.tc-field.is-invalid .tc-chip span { border-color: #D9A9A4; }

/* Casilla larga (aceptaciones, «fechas flexibles») */
.tc-check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; font-size: 15px; line-height: 1.5; color: var(--navy); min-height: 44px; padding-top: 2px; }
.tc-check input { width: 22px; height: 22px; flex: none; margin: 0; accent-color: var(--azul); cursor: pointer; }
.tc-check a { font-weight: 600; }

/* Tarjetas de servicio con interruptor */
.tc-tcards { display: flex; flex-direction: column; gap: 12px; }
.tc-tcard { border: 1px solid var(--tc-borde); border-radius: 16px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.tc-tcard.is-on { border-color: var(--azul); box-shadow: 0 0 0 1px var(--azul) inset, 0 14px 30px -22px rgba(14,111,120,.7); }
.tc-tcard__head { display: flex; align-items: center; gap: 14px; padding: 14px 16px; cursor: pointer; min-height: 72px; }
.tc-tcard__head .tc-icon { width: 42px; height: 42px; border-radius: 12px; }
.tc-tcard__head .tc-icon svg { width: 22px; height: 22px; }
.tc-tcard__tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tc-tcard__tx b { font-size: 16px; font-weight: 600; color: var(--navy); line-height: 1.3; }
.tc-tcard__tx small { font-size: 13.5px; color: var(--texto-suave); line-height: 1.4; }
.tc-switch { position: relative; flex: none; width: 52px; height: 32px; }
.tc-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.tc-switch__track { position: absolute; inset: 0; border-radius: 99px; background: #D9D1C0; transition: background-color .2s ease; }
.tc-switch__track::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 50%;
  background: #fff; box-shadow: 0 2px 6px rgba(30,45,65,.28); transition: transform .22s var(--tc-ease);
}
.tc-switch input:checked + .tc-switch__track { background: var(--azul); }
.tc-switch input:checked + .tc-switch__track::after { transform: translateX(20px); }
.tc-switch input:focus-visible + .tc-switch__track { outline: 2px solid var(--azul-filete); outline-offset: 3px; }
.tc-tcard__body { padding: 0 16px 16px; display: flex; flex-direction: column; gap: 14px; }
.tc-tcard__body::before { content: ''; display: block; height: 1px; background: var(--linea); margin-bottom: 2px; }

/* Barra Atrás / Siguiente */
.tc-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--linea); }
.tc-actions .btn { min-height: 52px; padding-inline: 26px; font-size: 16px; }
.tc-actions__next { margin-left: auto; }
.tc-form-status { margin-top: 16px; }
.tc-form-status:empty { display: none; }
.tc-draft { margin: 14px 0 0; font-size: 13px; color: var(--texto-suave); display: flex; gap: 8px; align-items: center; }
.tc-draft svg { width: 16px; height: 16px; flex: none; }

/* Aviso de privacidad por capas */
.tc-privacy { border: 1px solid var(--tc-borde); border-radius: var(--tc-radio-s); overflow: hidden; }
.tc-privacy__cap { margin: 0; padding: 10px 14px; background: var(--tc-cabecera); border-bottom: 1px solid var(--tc-borde); font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--texto-suave); }
.tc-privacy .tc-dl { padding: 2px 14px; }
.tc-privacy .tc-dl dt, .tc-privacy .tc-dl dd { font-size: 13.5px; padding: 8px 0; white-space: normal; }
.tc-privacy .tc-dl dt { font-weight: 600; color: var(--navy); }

/* Resumen */
.tc-summary { display: flex; flex-direction: column; gap: 14px; }
.tc-summary__sec { border: 1px solid var(--tc-borde); border-radius: 16px; overflow: hidden; }
.tc-summary__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 8px 4px 16px; background: var(--tc-cabecera); border-bottom: 1px solid var(--tc-borde); }
.tc-summary__head h4, .tc-summary__head h5 { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--navy); }
.tc-summary .tc-dl { padding: 2px 16px; }
.tc-summary .tc-dl dd.is-empty { color: var(--texto-suave); font-style: italic; }

/* Éxito */
.tc-success { text-align: center; padding: clamp(24px, 5vw, 48px) clamp(8px, 3vw, 24px); display: flex; flex-direction: column; align-items: center; gap: 14px; }
.tc-success__tic { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: var(--verde-fondo); color: var(--tc-ok); }
.tc-success__tic svg { width: 34px; height: 34px; }
.tc-success h3 { margin: 0; font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: clamp(28px, 4vw, 38px); line-height: 1; color: var(--navy); }
.tc-success__ref { display: flex; flex-direction: column; gap: 4px; padding: 16px 26px; border-radius: 16px; background: var(--tc-cabecera); border: 1px dashed #CDBF9F; }
.tc-success__ref span { font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-suave); }
.tc-success__ref b { font-family: var(--fuente-dato); font-size: clamp(24px, 4vw, 32px); font-weight: 700; color: var(--navy); letter-spacing: .02em; overflow-wrap: anywhere; }
.tc-success p { margin: 0; max-width: 520px; font-size: 16px; line-height: 1.6; color: var(--texto); }
.tc-success p b { color: var(--navy); overflow-wrap: anywhere; }
.tc-success__small { font-size: 14px !important; color: var(--texto-suave) !important; }
.tc-success:focus { outline: none; }

/* ---------- 8. VISOR DE FOTOS ---------- */
.tc-lightbox {
  width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0;
  background: rgba(12,18,25,.96); color: #fff; overflow: hidden;
}
.tc-lightbox:not([open]) { display: none; }
.tc-lightbox::backdrop { background: rgba(12,18,25,.9); }
.tc-lightbox__fig { position: absolute; inset: 0; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 64px 72px 28px; gap: 14px; }
.tc-lightbox__img { max-width: 100%; max-height: calc(100dvh - 150px); object-fit: contain; border-radius: 10px; box-shadow: 0 30px 80px -30px rgba(0,0,0,.8); }
.tc-lightbox__cap { font-size: 15px; color: rgba(255,255,255,.88); text-align: center; max-width: 720px; line-height: 1.45; }
.tc-lightbox__count { font-family: var(--fuente-dato); font-size: 12.5px; color: rgba(255,255,255,.6); }
.tc-lightbox__btn {
  position: absolute; z-index: 2; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.10); color: #fff; display: grid; place-items: center; cursor: pointer;
  transition: background-color .15s ease;
}
.tc-lightbox__btn:hover { background: rgba(255,255,255,.22); }
.tc-lightbox__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.tc-lightbox__btn svg { width: 22px; height: 22px; }
.tc-lightbox__close { top: 12px; right: 12px; }
.tc-lightbox__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.tc-lightbox__next { right: 12px; top: 50%; transform: translateY(-50%); }
@media (min-width: 701px) { .tc-lightbox__prev:active, .tc-lightbox__next:active { transform: translateY(-50%) scale(.96); } }

/* ---------- 9. RESPONSIVE ---------- */
@media (max-width: 1060px) {
  .tc-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .tc-split, .tc-price { grid-template-columns: 1fr; }
  .tc-grid--3 { grid-template-columns: 1fr 1fr; }
  .tc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tc-gal { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 30vw, 240px); }
  .tc-gal__item.m-span2 { grid-column: span 2; }
}
@media (min-width: 901px) and (max-width: 1199px) {
  .tc-gal__item.d-tall { grid-row: span 2; }
  .tc-gal__item.d-span2 { grid-column: span 2; }
  .tc-gal__item.d-span3 { grid-column: span 3; }
}
@media (max-width: 700px) {
  .tc-hero-shell { padding-inline: 0; }
  .tc-hero { border-radius: 0; min-height: clamp(560px, 86svh, 700px); }
  .tc-hero__veil {
    background: linear-gradient(180deg, rgba(16,24,33,.28) 0%, rgba(16,24,33,.08) 26%, rgba(16,24,33,.62) 56%, rgba(16,24,33,.95) 100%);
  }
  .tc-hero__inner { padding-bottom: 96px; gap: 14px; }
  /* Las páginas hermanas (propuesta, pago, condiciones): cabecera corta también en el móvil. */
  .tc-hero.tc-hero--compact { min-height: 0; }
  .tc-hero--compact .tc-hero__inner { padding-block: 32px 36px; }
  .tc-hero__title { max-width: none; }
  .tc-hero__cta { flex-direction: column; align-items: stretch; }
  .tc-hero__cta .btn { width: 100%; }
  .tc-services { grid-template-columns: 1fr; gap: 10px; }
  .tc-service { flex-direction: row; align-items: flex-start; gap: 14px; padding: 16px; }
  .tc-service .tc-icon { width: 42px; height: 42px; border-radius: 12px; }
  .tc-steps { grid-template-columns: 1fr; gap: 10px; }
  .tc-steps li { padding: 18px 18px 18px 64px; min-height: 0; }
  .tc-steps li::before { position: absolute; left: 18px; top: 20px; }
  .tc-steps h3 { font-size: 19px; overflow-wrap: break-word; }
  .tc-grid--2, .tc-grid--3 { grid-template-columns: 1fr; }
  .tc-videos { grid-template-columns: 1fr; }
  .tc-row, .tc-row--3 { grid-template-columns: 1fr; }
  .tc-dl { grid-template-columns: 1fr; }
  .tc-dl dt { padding-bottom: 0; border-bottom: 0; }
  .tc-dl dd { padding-top: 2px; }
  .tc-privacy .tc-dl dt { padding-bottom: 0; }
  .tc-stepper__btn span { display: none; }
  .tc-stepper__btn[data-state="current"] span { display: none; }
  .tc-actions .btn { padding-inline: 20px; }
  .tc-actions__next { flex: 1; }
  .tc-close { flex-direction: column; align-items: flex-start; }
  .tc-lightbox__fig { padding: 64px 12px 24px; }
  .tc-lightbox__prev, .tc-lightbox__next { top: auto; bottom: 16px; transform: none; }
  .tc-lightbox__img { max-height: calc(100dvh - 190px); }
  .tc-lightbox__fig { padding-bottom: 84px; }
}
@media (max-width: 560px) {
  .tc-services { grid-template-columns: 1fr; gap: 10px; }
  .tc-service { flex-direction: row; align-items: flex-start; gap: 14px; padding: 16px; }
  .tc-service .tc-icon { width: 42px; height: 42px; border-radius: 12px; }
  .tc-service h3 { margin-bottom: 3px; }
}
@media (max-width: 420px) {
  .tc-chips--days { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tc-chips--days .tc-chip span { min-width: 0; width: 100%; padding-inline: 8px; gap: 6px; }
  .tc-chips--days .tc-chip { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
  .tc-card--hover:hover, .tc-card--hover:hover .tc-card__media img,
  .tc-gal__btn:hover img, .tc-facade:hover .tc-facade__play { transform: none; }
  .tc-sticky { transform: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .tc-sticky__btn { background: var(--navy); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media print {
  .tc-sticky, .tc-bar, .tc-hero__cta { display: none !important; }
}

/* ============================================================
   v2 · lote 1
   ============================================================ */

/* --- Por qué Alicante: cuatro tarjetas con foto --- */
.tc-figures { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.tc-figures li { display: flex; flex-direction: column; gap: 1px; }
.tc-figures b { font-family: var(--fuente-dato); font-size: 19px; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; line-height: 1.2; }
.tc-figures span { font-size: 13.5px; color: var(--texto-suave); line-height: 1.4; }
.tc-credits { margin: 16px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--texto-suave); max-width: 1000px; }
.tc-credits + .tc-credits { margin-top: 4px; }
.tc-credits b { font-weight: 600; color: var(--texto); }
.tc-credits a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.tc-credits a:hover { color: var(--azul-hover); }

/* --- Instalaciones: fotos más grandes; El Cubo puede llevar vídeo --- */
.tc-card__video { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }

/* --- Servicios en dos niveles --- */
.tc-lead--strong { font-weight: 600; color: var(--navy); }
.tc-tier + .tc-tier { margin-top: clamp(26px, 3.4vw, 40px); }
.tc-tier__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.tc-tier__head p { margin: 0; font-size: 15px; color: var(--texto-suave); }
.tc-tier__badge {
  display: inline-flex; align-items: center; min-height: 30px; padding: 4px 14px; border-radius: 999px;
  background: var(--navy); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.tc-tier__badge--alt { background: var(--azul-suave); color: var(--azul-oscuro); border: 1px solid var(--tc-mar-borde); }
.tc-base { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 18px); }
.tc-base__item {
  display: flex; gap: 16px; align-items: flex-start; padding: 22px; background: #fff;
  border-radius: 18px; box-shadow: var(--tc-sombra); border-top: 4px solid var(--navy);
}
.tc-base__item h3 { margin: 0; font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: 22px; line-height: 1.05; color: var(--navy); }
.tc-base__where { margin: 4px 0 6px; font-size: 14px; font-weight: 600; color: var(--azul-oscuro); }
.tc-base__where .nombre-propio { color: #8A5307; }
.tc-base__item p:last-child { margin: 0; font-size: 15px; line-height: 1.55; color: var(--texto); }

/* --- Cómo funciona en 4 pasos --- */
@media (min-width: 1061px) { .tc-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 701px) and (max-width: 1060px) { .tc-steps--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* --- Quién organiza --- */
.tc-trust { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(24px, 5vw, 64px); align-items: start; }
.tc-trust__id { display: flex; flex-direction: column; gap: 12px; }
.tc-trust__logo { width: 52px; height: auto; }
.tc-trust__legal { margin: 4px 0 0; font-size: 13px; color: var(--texto-suave); line-height: 1.5; }
.tc-trust__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tc-trust__list li { display: flex; flex-direction: column; gap: 12px; padding: 20px; border-radius: 16px; background: var(--crema); border: 1px solid var(--linea); }
.tc-trust__list h3 { margin: 0 0 4px; font-family: var(--fuente-texto); font-size: 16px; font-weight: 600; color: var(--navy); }
.tc-trust__list p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--texto); }
.tc-trust__list a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* --- CTA fijo discreto (solo móvil): pastilla pequeña abajo a la derecha --- */
.tc-sticky__btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 18px; border-radius: 999px;
  background: rgba(46,66,86,.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.18); color: #fff; font-size: 14.5px; font-weight: 600;
  box-shadow: 0 12px 28px -14px rgba(16,24,33,.7);
}
.tc-sticky__btn:hover { color: #fff; background: var(--navy); }
.tc-sticky__btn .tc-i { width: 18px; height: 18px; }
@media (max-width: 700px) {
  .tc-sticky {
    display: block; position: fixed; z-index: 60; right: 16px; bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    opacity: 0; transform: translateY(14px); visibility: hidden;
    transition: opacity .25s ease, transform .3s var(--tc-ease), visibility 0s linear .3s;
  }
  .tc-sticky.is-visible { opacity: 1; transform: none; visibility: visible; transition: opacity .25s ease, transform .3s var(--tc-ease), visibility 0s; }
}

/* --- Formulario v2 --- */
.tc-field--short { max-width: 240px; }
.tc-sched, .tc-sched__same { display: flex; flex-direction: column; gap: 16px; }
.tc-switchrow {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 60px;
  padding: 12px 14px; border: 1px solid var(--tc-borde); border-radius: 14px; background: #fff; cursor: pointer;
}
.tc-switchrow__tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tc-switchrow__tx b { font-size: 15px; font-weight: 600; color: var(--navy); }
.tc-switchrow__tx small { font-size: 13px; color: var(--texto-suave); line-height: 1.4; }
.tc-dayrow select, .tc-sgrow select {
  width: 100%; min-height: 46px; padding: 10px 36px 10px 12px; font-family: var(--fuente-texto); font-size: 15px; color: var(--navy);
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232E4256' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
  border: 1px solid var(--linea-borde); border-radius: var(--tc-radio-s); -webkit-appearance: none; appearance: none; cursor: pointer;
}
.tc-dayrow select:focus, .tc-sgrow select:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(14,111,120,.22); }
.tc-days { display: flex; flex-direction: column; gap: 10px; }
.tc-dayrow {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "day sel" "chips chips" "err err";
  gap: 10px 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--tc-borde); border-radius: 14px; background: #fff;
}
.tc-dayrow.is-invalid { border-color: #D9A9A4; }
.tc-dayrow__day { grid-area: day; font-size: 15px; font-weight: 600; color: var(--navy); }
.tc-dayrow .tc-chips { grid-area: chips; }
.tc-dayrow > * { min-width: 0; }
.tc-dayrow__sel { grid-area: sel; display: flex; gap: 8px; min-width: 0; }
.tc-dayrow__sel select { width: auto; min-width: 0; padding: 10px 30px 10px 11px; background-position: right 10px center; }
.tc-dayrow .tc-error { grid-area: err; }
.tc-chips--sm .tc-chip span { min-height: 44px; padding: 8px 13px; font-size: 14.5px; }
.tc-sg { display: flex; flex-direction: column; gap: 12px; }
.tc-sgrow {
  display: grid; grid-template-columns: 26px minmax(0, 1.6fr) minmax(0, 1.3fr) minmax(0, .8fr) 44px;
  grid-template-areas: "n name mod num del"; gap: 10px; align-items: end;
}
.tc-sgrow__n { grid-area: n; height: 50px; display: grid; place-items: center; font-family: var(--fuente-dato); font-weight: 700; color: var(--azul-oscuro); }
.tc-sgrow__f { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.tc-sgrow__f.is-name { grid-area: name; } .tc-sgrow__f.is-mod { grid-area: mod; } .tc-sgrow__f.is-num { grid-area: num; }
.tc-sgrow .tc-input, .tc-sgrow select { min-height: 48px; }
.tc-mini { font-size: 12.5px; font-weight: 600; color: var(--texto-suave); }
.tc-sgrow__del {
  grid-area: del; width: 44px; height: 48px; border: 0; background: none; color: var(--texto-suave);
  border-radius: 10px; cursor: pointer; display: grid; place-items: center;
}
.tc-sgrow__del:hover { background: #FBECEB; color: var(--tc-err); }
.tc-sgrow__del.is-empty { visibility: hidden; }
.tc-sgrow .tc-input[aria-invalid] { border-color: var(--tc-err); }

@media (max-width: 900px) {
  .tc-trust { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .tc-base { grid-template-columns: 1fr; }
  .tc-base__item { padding: 18px; }
}
@media (max-width: 560px) {
  .tc-trust__list { grid-template-columns: 1fr; }
  .tc-trust__list li { flex-direction: row; align-items: flex-start; gap: 14px; padding: 16px; }
  .tc-trust__list .tc-icon { width: 42px; height: 42px; border-radius: 12px; }
  .tc-dayrow { grid-template-columns: minmax(0, 1fr); grid-template-areas: "day" "chips" "sel" "err"; padding: 12px; }
  .tc-dayrow__sel select { flex: 1 1 0; width: 0; min-width: 0; text-overflow: ellipsis; }
  /* En el móvil las horas ya se ven en las franjas de arriba: aquí solo el nombre, en una línea. */
  .tc-chips--sm { gap: 6px; }
  .tc-chips--sm .tc-chip span { padding: 8px 11px; gap: 7px; }
  .tc-chips--sm .tc-chip small { display: none; }
  /* Subgrupos en el móvil: nombre a lo ancho; debajo disciplina + atletas. */
  .tc-sgrow {
    position: relative; grid-template-columns: minmax(0, 1fr) 96px;
    grid-template-areas: "name name" "mod num"; gap: 8px; align-items: end;
    padding-bottom: 14px; border-bottom: 1px solid var(--linea);
  }
  .tc-sgrow__n, .tc-sgrow__del.is-empty { display: none; }
  .tc-sgrow__del { position: absolute; top: -12px; right: -6px; height: 44px; }
  .tc-field--short { max-width: none; }
}
@media print {
  .tc-sticky { display: none !important; }
}

/* ============================================================
   v3 · IDENTIDAD PROPIA (VERDE MAR) Y TODO EL ANCHO
   ------------------------------------------------------------
   Como Academia: la misma familia que el resto de la web
   (Bricolage, tarjetas con sombra, bandas crema), pero con acento
   propio. Aquí, un verde mar mediterráneo con navy profundo, en
   lugar del azul de «pulsa aquí» de la web (y no el ámbar de AC98).
   Contrastes AA comprobados: #0E6F78 sobre blanco 5,9:1 y sobre la
   banda crema 4,8:1; #74D0D3 sobre navy 5,8:1; blanco sobre
   #0E6F78 5,9:1; navy #0E2430 sobre #74D0D3 más de 8:1.
   ============================================================ */
:root {
  --tc-mar: #0E6F78;
  --tc-mar-hover: #0A5960;
  --tc-mar-claro: #74D0D3;
  --tc-mar-suave: #E5F4F4;
  --tc-mar-borde: #B4DDDE;
  --tc-noche: #15263A;
}
/* Lo que la web pinta en azul (botones, enlaces, casillas, foco, FAQ…)
   toma el verde mar DENTRO de las páginas de concentraciones. La
   cabecera y el pie quedan fuera de .tc-page y no cambian. */
.tc-page {
  --azul: var(--tc-mar); --azul-oscuro: var(--tc-mar); --azul-hover: var(--tc-mar-hover);
  --azul-suave: var(--tc-mar-suave); --azul-filete: #2A9AA2;
}
.tc-page .btn--primario { box-shadow: 0 14px 26px -12px rgba(14,111,120,.55); }
.tc-page .btn--fantasma { border-color: var(--tc-mar-borde); }
.tc-page .btn--fantasma:hover { background: var(--tc-mar-suave); }
/* Sobre fondo oscuro, el botón principal va en verde mar claro con texto navy. */
.tc-page .tc-hero .btn--primario, .tc-page .tc-section--navy .btn--primario {
  background: var(--tc-mar-claro); color: #0E2430; box-shadow: 0 18px 36px -16px rgba(116,208,211,.55);
}
.tc-page .tc-hero .btn--primario:hover, .tc-page .tc-section--navy .btn--primario:hover { background: #95DFE1; color: #0E2430; }

/* Antetítulo con su raya de acento (como en Academia). */
.tc-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; letter-spacing: .14em; color: var(--tc-mar); }
.tc-eyebrow::before { content: ''; width: 26px; height: 2px; background: currentColor; flex: none; }

/* Bandas navy con el brillo verde mar (cómo funciona, cierre). */
.tc-page .tc-section--navy {
  background:
    radial-gradient(80% 120% at 100% 0%, rgba(32,164,170,.30), transparent 60%),
    linear-gradient(160deg, #182A3B 0%, #1E3246 100%);
}

/* --- Ancho: la landing usa un contenedor amplio; los textos guardan su medida --- */
.tc-landing { --tc-ancho: 1560px; --tc-gutter: clamp(16px, 4vw, 80px); }
.tc-landing .tc-section { padding-block: clamp(52px, 7vw, 120px); }
.tc-landing .tc-title { font-size: clamp(32px, 4.6vw, 70px); }
.tc-landing .tc-head { max-width: 860px; }

/* --- HERO principal: a sangre, foto detrás del título bajo un velo navy --- */
.tc-hero--main { min-height: clamp(600px, 88vh, 980px); align-items: center; }
.tc-hero--main .tc-hero__img { object-position: center 28%; }
.tc-hero--main .tc-hero__veil {
  background:
    radial-gradient(110% 130% at 90% -10%, rgba(32,164,170,.40), transparent 58%),
    linear-gradient(158deg, rgba(16,30,44,.68) 0%, rgba(20,36,52,.82) 52%, rgba(12,22,34,.94) 100%);
}
.tc-hero--main .tc-hero__inner { padding-block: clamp(72px, 11vh, 150px); gap: 20px; }
.tc-hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; letter-spacing: .14em; color: var(--tc-mar-claro); }
.tc-hero__eyebrow::before { content: ''; width: 26px; height: 2px; background: currentColor; flex: none; }
.tc-hero--main .tc-hero__title {
  font-size: clamp(42px, 7.4vw, 132px); line-height: .9; letter-spacing: -.03em; max-width: 14ch; text-wrap: balance;
}
html[lang="es"] .tc-hero--main .tc-hero__title { font-size: clamp(30px, 6vw, 112px); max-width: 18ch; }
.tc-grad {
  color: var(--tc-mar-claro);
  background-image: linear-gradient(100deg, #A3E8E8 0%, var(--tc-mar-claro) 45%, #3DB0B5 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.tc-hero--main .tc-hero__lead { color: rgba(255,255,255,.82); max-width: 640px; }
.tc-sello { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; max-width: 1100px; }
.tc-sello li {
  font-size: 13.5px; font-weight: 500; line-height: 1.35; color: rgba(255,255,255,.92);
  border: 1px solid rgba(116,208,211,.38); border-radius: 999px; padding: 8px 16px; background: rgba(255,255,255,.05);
}
.tc-sello b { color: var(--tc-mar-claro); font-weight: 700; }

/* --- Por qué Alicante: mosaico de fotos a sangre con el texto encima --- */
.tc-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.tc-tile {
  position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end;
  min-height: clamp(460px, 36vw, 700px); background: var(--tc-noche); color: #fff;
}
.tc-tile__img {
  position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover;
  transition: transform .9s var(--tc-ease);
}
.tc-tile:hover .tc-tile__img { transform: scale(1.04); }
.tc-tile__veil {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(12,22,34,0) 28%, rgba(12,22,34,.58) 56%, rgba(12,22,34,.93) 100%);
}
.tc-tile__body { width: 100%; padding: clamp(20px, 2.4vw, 40px); display: flex; flex-direction: column; gap: 8px; }
.tc-tile__tag { font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--tc-mar-claro); }
.tc-tile h3 { margin: 0; font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: clamp(22px, 2vw, 34px); line-height: 1; letter-spacing: -.01em; color: #fff; }
.tc-tile p { margin: 0; font-size: 15.5px; line-height: 1.55; color: rgba(255,255,255,.88); max-width: 34ch; }
.tc-figures--light b { color: #fff; }
.tc-figures--light span { color: rgba(255,255,255,.80); }
.tc-alc .tc-credits { margin-top: 18px; }

/* --- Instalaciones: bloques partidos, la foto llega al borde de la pantalla --- */
.tc-venue { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); background: #fff; box-shadow: var(--tc-sombra); }
.tc-venue + .tc-venue { margin-top: clamp(16px, 2vw, 28px); }
.tc-venue--rev { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
.tc-venue--rev .tc-venue__media { order: 2; }
.tc-venue__media { position: relative; min-height: clamp(400px, 38vw, 780px); background: var(--crema-media); overflow: hidden; }
.tc-venue__media > img, .tc-venue__media > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tc-venue-media--cubo > img { object-position: center 55%; }
/* El texto se alinea con el borde del contenedor de la página, no con el de la pantalla. */
.tc-venue__body {
  display: flex; flex-direction: column; justify-content: center; gap: 18px;
  padding-block: clamp(32px, 4.5vw, 88px);
  padding-left: clamp(28px, 4vw, 80px);
  padding-right: max(var(--tc-gutter), calc((100vw - var(--tc-ancho)) / 2 + var(--tc-gutter)));
}
.tc-venue--rev .tc-venue__body {
  padding-right: clamp(28px, 4vw, 80px);
  padding-left: max(var(--tc-gutter), calc((100vw - var(--tc-ancho)) / 2 + var(--tc-gutter)));
}
.tc-venue__body > * { max-width: 660px; }
.tc-venue__title { margin: 0; font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: clamp(28px, 3.2vw, 54px); line-height: .98; letter-spacing: -.015em; color: var(--navy); }
.tc-venue__title.nombre-propio { color: #8A5307; }
.tc-venue__body > p:not(.tc-eyebrow):not(.tc-addr) { margin: 0; font-size: 16.5px; line-height: 1.6; color: var(--texto); }
.tc-venue__body > .tc-eyebrow { margin: 0; }

/* --- Banda de foto a sangre --- */
.tc-band { position: relative; margin: 0; height: clamp(280px, 34vw, 660px); overflow: hidden; background: var(--tc-noche); }
.tc-band img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.tc-band::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(0deg, rgba(12,22,34,.80) 0%, rgba(12,22,34,.12) 48%, rgba(12,22,34,0) 72%),
    radial-gradient(60% 90% at 0% 100%, rgba(32,164,170,.35), transparent 62%);
}
.tc-band__cap {
  position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; max-width: var(--tc-ancho); margin-inline: auto;
  padding: 0 var(--tc-gutter) clamp(22px, 3vw, 48px); display: flex; flex-direction: column; gap: 8px; color: #fff;
}
.tc-band__k { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--tc-mar-claro); }
.tc-band__k::before { content: ''; width: 26px; height: 2px; background: currentColor; }
.tc-band__t { font-family: var(--fuente-titulo); font-weight: 700; text-transform: uppercase; font-size: clamp(26px, 3.6vw, 60px); line-height: .95; letter-spacing: -.02em; }

/* --- Galería ancha: 4 columnas en pantallas grandes --- */
@media (min-width: 1200px) {
  .tc-landing .tc-gal { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(210px, 14vw, 330px); }
  .tc-gal__item.w-span2 { grid-column: span 2; }
  .tc-gal__item.w-span4 { grid-column: span 4; }
  .tc-gal__item.w-tall { grid-row: span 2; }
}

/* --- Servicios: más columnas cuanto más ancho --- */
.tc-landing .tc-base__item { border-top-color: var(--tc-mar); padding: clamp(22px, 2.4vw, 34px); }
.tc-landing .tc-tier__badge { background: var(--tc-noche); }
@media (min-width: 1100px) {
  .tc-landing .tc-services { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tc-service--last { grid-column: span 4; flex-direction: row; align-items: center; gap: 18px; }
}
@media (min-width: 1400px) {
  .tc-landing .tc-services { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .tc-service--last { grid-column: span 2; }
}

/* --- Cómo funciona: números grandes en verde mar --- */
.tc-steps li { border-color: rgba(116,208,211,.24); background: rgba(255,255,255,.04); }
.tc-steps li::before {
  content: counter(paso); font-family: var(--fuente-titulo); font-size: 34px; font-weight: 700;
  line-height: 1; letter-spacing: 0; color: var(--tc-mar-claro);
}
.tc-steps li.is-key { background: rgba(32,164,170,.16); border-color: rgba(116,208,211,.5); }

/* --- Preguntas: cabecera a un lado y lista al otro en pantallas anchas --- */
@media (min-width: 1100px) {
  .tc-faqsplit { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
  .tc-faqsplit .tc-head { position: sticky; top: 24px; margin-bottom: 0; }
  .tc-faqsplit .faq-lista { max-width: none; }
}

/* --- Formulario: columna lateral con lo que pasa después --- */
.tc-formside { width: 100%; max-width: 820px; margin-inline: auto; }
.tc-assure { list-style: none; margin: -8px 0 clamp(22px, 3vw, 32px); padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tc-assure li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.5; color: var(--navy); }
.tc-assure .tc-i { color: var(--tc-mar); margin-top: 1px; }
@media (min-width: 1180px) {
  .tc-formsplit { display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: clamp(32px, 4vw, 88px); align-items: start; }
  .tc-formside { position: sticky; top: 24px; margin: 0; }
  .tc-formsplit .tc-form-card { max-width: none; margin: 0; }
}

@media (max-width: 1060px) {
  .tc-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tc-tile { min-height: clamp(380px, 52vw, 560px); }
}
@media (max-width: 900px) {
  .tc-venue, .tc-venue--rev { grid-template-columns: minmax(0, 1fr); }
  .tc-venue--rev .tc-venue__media { order: 0; }
  .tc-venue__media { min-height: 0; aspect-ratio: 4 / 3; }
  .tc-venue__body, .tc-venue--rev .tc-venue__body { padding: 28px var(--tc-gutter) 32px; }
}
@media (max-width: 700px) {
  .tc-hero--main { min-height: clamp(580px, 92svh, 780px); align-items: flex-end; }
  .tc-hero--main .tc-hero__inner { padding-block: 64px 40px; gap: 16px; }
  .tc-hero--main .tc-hero__veil {
    background:
      radial-gradient(120% 70% at 100% 0%, rgba(32,164,170,.36), transparent 60%),
      linear-gradient(180deg, rgba(16,30,44,.55) 0%, rgba(18,32,46,.78) 45%, rgba(12,22,34,.95) 100%);
  }
  .tc-sello { gap: 8px; }
  .tc-sello li { font-size: 13px; padding: 7px 13px; }
  .tc-band { height: clamp(220px, 60vw, 320px); }
}
@media (max-width: 560px) {
  .tc-mosaic { grid-template-columns: minmax(0, 1fr); }
  .tc-tile { min-height: 380px; }
  /* En el móvil el texto ocupa más alto de la foto: el velo empieza antes. */
  .tc-tile__veil { background: linear-gradient(180deg, rgba(12,22,34,.05) 0%, rgba(12,22,34,.62) 34%, rgba(12,22,34,.94) 100%); }
}
@media (prefers-reduced-motion: reduce) {
  .tc-tile:hover .tc-tile__img { transform: none; }
}

/* --- Ajustes de tamaño en la landing ancha --- */
.tc-landing .tc-title--sm { font-size: clamp(26px, 3vw, 46px); }
.tc-formside .tc-title { font-size: clamp(30px, 3.4vw, 54px); }
.tc-landing .tc-venue__body .tc-list li { font-size: 16px; }
@media (min-width: 1400px) {
  .tc-landing #why .tc-split { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.5fr); align-items: center; }
  .tc-landing #why .tc-title { font-size: clamp(40px, 3.8vw, 62px); }
  .tc-landing .tc-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .tc-landing .tc-value { flex-direction: column; gap: 14px; padding: 26px 26px 28px; }
  .tc-landing .tc-value h3 { font-size: 18px; }
  .tc-landing .tc-value p { font-size: 15.5px; }
}
@media (max-width: 700px) {
  /* Sin rótulos en el móvil: la barra de cada paso queda centrada en su zona táctil. */
  .tc-stepper__btn { justify-content: center; padding: 0; }
  .tc-form-card__head { padding-bottom: 10px; }
}
/* `overflow-x: hidden` en html/body (apolana.css) convierte el body en contenedor
   de scroll y anula `position: sticky` (columna del formulario, cabecera de las
   preguntas). `clip` recorta igual sin romperlo; donde no exista, se queda hidden. */
html, body { overflow-x: clip; }
