/* =====================================================================
   Encuentros 45+ · Tema sobre Bootstrap 5.3 (parte pública)
   Colores corporativos tomados del logotipo de la Cámara de Oviedo.
   Se carga DESPUÉS de bootstrap.min.css.
   ===================================================================== */

@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-grotesque-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-grotesque-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-grotesque-latin-800-normal.woff2") format("woff2"); font-weight: 800; font-display: swap; }
@font-face { font-family: "Atkinson Hyperlegible"; src: url("../fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Atkinson Hyperlegible"; src: url("../fonts/atkinson-hyperlegible-latin-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Atkinson Hyperlegible"; src: url("../fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
  --rojo: #C41F3A;
  --rojo-hondo: #9E1730;
  --amarillo: #FFD300;
  --amarillo-claro: #FFF3B0;
  --tinta: #2B1519;
  --tinta-suave: #5E4B4F;
  --rosa: #FBEDEF;
  --linea: #EAD9DC;
  --display: "Bricolage Grotesque", "Arial Black", system-ui, sans-serif;
  --texto: "Atkinson Hyperlegible", Verdana, system-ui, sans-serif;
  --radio-l: 28px;

  /* Variables de Bootstrap */
  --bs-body-font-family: var(--texto);
  --bs-body-font-size: clamp(1.125rem, 1.05vw + .75rem, 1.25rem);
  --bs-body-line-height: 1.6;
  --bs-body-color: var(--tinta);
  --bs-body-color-rgb: 43, 21, 25;
  --bs-secondary-color: var(--tinta-suave);
  --bs-primary: var(--rojo);
  --bs-primary-rgb: 196, 31, 58;
  --bs-link-color: var(--rojo-hondo);
  --bs-link-color-rgb: 158, 23, 48;
  --bs-link-hover-color: var(--rojo);
  --bs-link-hover-color-rgb: 196, 31, 58;
  --bs-border-color: #CDB9BD;
  --bs-border-radius: 10px;
  --bs-focus-ring-color: rgba(255, 211, 0, .9);
  --bs-form-invalid-color: var(--rojo-hondo);
  --bs-form-invalid-border-color: var(--rojo);
  color-scheme: light;
}

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
a { text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--tinta); outline-offset: 3px; }
h1, h2, h3, .display-font { font-family: var(--display); font-weight: 800; line-height: 1.02; letter-spacing: -0.02em; text-wrap: balance; }
p { max-width: 62ch; }
.saltar { position: absolute; left: 12px; top: -60px; background: var(--tinta); color: #fff; padding: 10px 16px; border-radius: 8px; z-index: 2000; }
.saltar:focus { top: 12px; color: #fff; }
.pendiente { background: var(--amarillo-claro); padding: 0 .3em; border-radius: 4px; }

/* ---------- Botones ---------- */
.btn { --bs-btn-font-family: var(--texto); --bs-btn-font-weight: 700; --bs-btn-padding-x: 1.6em; --bs-btn-padding-y: 1em; --bs-btn-font-size: 1.05rem; --bs-btn-border-radius: 999px; --bs-btn-border-width: 2px; }
.btn-sm { --bs-btn-padding-x: 1.1em; --bs-btn-padding-y: .6em; --bs-btn-font-size: .92rem; }
.btn-rojo { --bs-btn-color: #fff; --bs-btn-bg: var(--rojo); --bs-btn-border-color: var(--rojo); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #D12443; --bs-btn-hover-border-color: #D12443; --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--rojo-hondo); --bs-btn-active-border-color: var(--rojo-hondo); --bs-btn-disabled-bg: var(--rojo); --bs-btn-disabled-border-color: var(--rojo); --bs-btn-disabled-color: #fff; box-shadow: 0 5px 0 var(--rojo-hondo); }
.btn-amarillo { --bs-btn-color: var(--tinta); --bs-btn-bg: var(--amarillo); --bs-btn-border-color: var(--amarillo); --bs-btn-hover-color: var(--tinta); --bs-btn-hover-bg: #FFDD33; --bs-btn-hover-border-color: #FFDD33; --bs-btn-active-bg: #F2C800; --bs-btn-active-color: var(--tinta); --bs-btn-disabled-bg: var(--amarillo); --bs-btn-disabled-color: var(--tinta); box-shadow: 0 5px 0 #C9A400; }
.btn-tinta { --bs-btn-color: #fff; --bs-btn-bg: var(--tinta); --bs-btn-border-color: var(--tinta); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #48262C; --bs-btn-hover-border-color: #48262C; --bs-btn-active-bg: #1d0d10; --bs-btn-active-color: #fff; }
.btn-borde { --bs-btn-color: currentColor; --bs-btn-border-color: currentColor; --bs-btn-hover-bg: rgba(43,21,25,.06); --bs-btn-hover-color: currentColor; --bs-btn-hover-border-color: currentColor; --bs-btn-active-color: currentColor; }
.btn:active { transform: translateY(1px); }
.btn:focus-visible { box-shadow: 0 0 0 .25rem var(--bs-focus-ring-color); }

/* ---------- Cabecera ---------- */
.cabecera { background: rgba(255,255,255,.97); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--linea); min-height: 76px; }
.logos { display: inline-flex; align-items: center; gap: clamp(16px, 2.4vw, 28px); }
.logos img { width: auto; height: 46px; }
.logos img + .logos-sep + img { height: 40px; }
.logos-sep { width: 1px; align-self: stretch; background: var(--linea); }
.cabecera .nav-link { color: var(--tinta); font-weight: 700; font-size: .98rem; }
.cabecera .nav-link:hover { color: var(--rojo); text-decoration: underline; }
.cabecera .navbar-toggler { border: 2px solid var(--tinta); border-radius: 10px; }
@media (max-width: 991.98px) { .cabecera .logos img { height: 36px; } .cabecera .logos img + .logos-sep + img { height: 31px; } .cabecera .navbar-collapse { padding-bottom: 16px; } }

/* ---------- Portada ---------- */
.portada { background: var(--rojo); color: #fff; overflow: hidden; padding-block: clamp(48px, 8vw, 104px) clamp(56px, 8vw, 112px); }
.portada-pregunta { font-size: clamp(1.05rem, .6vw + .9rem, 1.3rem); font-weight: 700; color: var(--amarillo); max-width: 30ch; margin-bottom: 1.1em; }
.portada h1 { font-size: clamp(3.4rem, 8.6vw, 7.6rem); line-height: .9; letter-spacing: -0.035em; margin: 0; }
.portada h1 span { display: block; }
.portada-intro { font-size: clamp(1.05rem, .5vw + .95rem, 1.25rem); margin: 1.4em 0 1.8em; max-width: 44ch; color: #FFE9EC; }
.portada-dato { line-height: 1.3; font-size: .98rem; margin: 0; }
.portada-dato strong { display: block; font-size: 1.15rem; }

.ficha { position: relative; width: min(100%, 460px); aspect-ratio: 1; margin-inline: auto; }
.ficha svg { width: 100%; height: 100%; overflow: visible; }
.ficha .anillo { transform-origin: 50% 50%; animation: girar 1.6s cubic-bezier(.2,.7,.1,1) .15s both; }
.ficha-texto { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; font-family: var(--display); font-weight: 800; line-height: .82; letter-spacing: -0.05em; }
.ficha-texto b { font-size: clamp(5rem, 11vw, 9.5rem); color: #fff; }
.ficha-texto small { font-family: var(--texto); font-weight: 700; font-size: clamp(.9rem, 1.2vw, 1.1rem); letter-spacing: 0; color: var(--amarillo); margin-top: .9em; }
@keyframes girar { from { transform: rotate(-260deg) scale(.86); opacity: 0; } to { transform: rotate(0) scale(1); opacity: 1; } }
@media (max-width: 991.98px) { .ficha { width: min(78%, 340px); margin-bottom: 8px; } }

/* ---------- Secciones ---------- */
.seccion { padding-block: clamp(64px, 9vw, 120px); }
.seccion-titulo { font-size: clamp(2.4rem, 5vw, 4.2rem); margin: 0; }
.seccion-entradilla { color: var(--tinta-suave); font-size: 1.1rem; margin: 0; }

.actividad { border-radius: var(--radio-l); padding: clamp(28px, 4vw, 52px); height: 100%; position: relative; overflow: hidden; }
.actividad h3 { font-size: clamp(2rem, 3.4vw, 3rem); margin-bottom: .45em; }
.actividad-tipo { font-weight: 700; font-size: 1rem; margin-bottom: 1.1em; display: inline-flex; align-items: center; gap: .55em; }
.actividad-tipo svg { width: 28px; height: 28px; flex: none; }
.actividad-lead { font-size: 1.12rem; }
.actividad h4 { font: 700 1.05rem/1.3 var(--texto); margin: 1.4em 0 .7em; }
.taller { background: var(--rosa); }
.taller .actividad-tipo { color: var(--rojo-hondo); }
.escape { background: var(--tinta); color: #fff; }
.escape h3, .escape .actividad-tipo { color: var(--amarillo); }
.escape .reto { font-family: var(--display); font-weight: 600; font-size: 1.4rem; margin: 0 0 .5em; }
/* Fondos ilustrados muy sutiles de cada actividad */
.actividad::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-repeat: no-repeat; background-position: right -40px bottom -30px; background-size: min(78%, 440px) auto;
  -webkit-mask-image: linear-gradient(to left, #000 35%, transparent 95%); mask-image: linear-gradient(to left, #000 35%, transparent 95%);
}
.taller::before { background-image: url("../img/fondo-ia.svg"); opacity: .11; }
.escape::before { background-image: url("../img/fondo-escape.svg"); opacity: .10; }
.actividad > * { position: relative; }

/* Con foto real: en blanco y negro, fundida con el color de la tarjeta y desvanecida hacia el texto.
   Para hacerla más o menos visible, cambia el valor de opacity. */
.actividad.con-foto::before {
  background-image: var(--foto); background-size: cover; background-position: center;
  -webkit-mask-image: linear-gradient(to left, #000 25%, transparent 92%); mask-image: linear-gradient(to left, #000 25%, transparent 92%);
}
.taller.con-foto::before { filter: grayscale(1) contrast(1.1); mix-blend-mode: multiply; opacity: .28; }
.escape.con-foto::before { filter: grayscale(1) contrast(1.15); mix-blend-mode: screen; opacity: .22; }
@media (max-width: 991.98px) {
  .actividad.con-foto::before { -webkit-mask-image: linear-gradient(to top, #000 10%, transparent 70%); mask-image: linear-gradient(to top, #000 10%, transparent 70%); }
}

.lista-check { list-style: none; padding: 0; margin: 0; display: grid; gap: .7em; }
.lista-check li { display: grid; grid-template-columns: 30px 1fr; gap: 12px; align-items: start; }
.lista-check li::before { content: ""; width: 30px; height: 30px; border-radius: 50%; margin-top: -1px; background: var(--amarillo) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%232B1519' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat; }

.logros { padding-top: 0; }
.logro { border-top: 3px solid var(--rojo); padding: 22px 0 40px; }
.logro h3 { font-size: clamp(2.4rem, 4.6vw, 4.2rem); color: var(--rojo); letter-spacing: -0.04em; margin: 0; }
.logro p { font-size: 1.15rem; margin: .5em 0 0; }

.info { background: var(--amarillo); }
.info p { font-size: 1.15rem; }
.billete { display: grid; grid-template-columns: minmax(0, 1fr) auto; background: #fff; border-radius: var(--radio-l); box-shadow: 0 18px 0 -8px rgba(43,21,25,.16); }
.billete-cuerpo { padding: clamp(24px, 3.5vw, 40px); display: grid; gap: 20px; }
.billete-fila span { display: block; font-size: .9rem; color: var(--tinta-suave); }
.billete-fila strong { font-size: clamp(1.15rem, 1.4vw, 1.35rem); line-height: 1.3; }
.billete-talon { background: var(--rojo); color: #fff; border-radius: 0 var(--radio-l) var(--radio-l) 0; padding: 28px clamp(22px, 3vw, 36px); display: grid; place-content: center; text-align: center; border-left: 3px dashed #fff; position: relative; font-family: var(--display); font-weight: 800; line-height: .85; }
.billete-talon b { font-size: clamp(4rem, 7vw, 6rem); letter-spacing: -0.05em; }
.billete-talon i { font-style: normal; font-size: 1.6rem; color: var(--amarillo); }
.billete-talon small { font: 700 1rem var(--texto); margin-top: .7em; }
.billete-talon::before, .billete-talon::after { content: ""; position: absolute; left: -15px; width: 28px; height: 28px; border-radius: 50%; background: var(--amarillo); }
.billete-talon::before { top: -14px; } .billete-talon::after { bottom: -14px; }
@media (max-width: 480px) {
  .billete { grid-template-columns: 1fr; }
  .billete-talon { border-left: 0; border-top: 3px dashed #fff; border-radius: 0 0 var(--radio-l) var(--radio-l); grid-auto-flow: column; gap: 12px; align-items: baseline; }
  .billete-talon::before, .billete-talon::after { top: -15px; bottom: auto; }
  .billete-talon::before { left: -14px; } .billete-talon::after { left: auto; right: -14px; }
  .billete-talon small { margin: 0; }
}
.aviso-plazas { display: inline-block; margin-top: 18px; font-weight: 700; background: var(--tinta); color: #fff; padding: .45em .9em; border-radius: 8px; font-size: 1rem; }

.cierre { background: var(--tinta); color: #fff; padding-block: clamp(64px, 9vw, 120px); }
.cierre blockquote { margin: 0 0 1.2em; font-family: var(--display); font-weight: 800; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; letter-spacing: -0.025em; max-width: 22ch; }
.cierre blockquote::before { content: ""; display: block; width: 72px; height: 10px; background: var(--amarillo); border-radius: 6px; margin-bottom: 28px; }

/* ---------- Pie ---------- */
.pie { background: #fff; border-top: 1px solid var(--linea); font-size: .95rem; color: var(--tinta-suave); }
.pie .financiacion { padding-block: 44px 36px; border-bottom: 1px solid var(--linea); text-align: center; }
.pie .financiacion img { width: 100%; max-width: 1140px; height: auto; margin-inline: auto; }
.pie .financiacion p { margin: 20px auto 0; font-size: .9rem; max-width: 80ch; }
.pie-legal a, .pie-legal button { color: var(--tinta); font: inherit; background: none; border: 0; padding: 0; text-decoration: underline; }

/* ---------- Banner de cookies ---------- */
.cookies { position: fixed; z-index: 1080; left: 16px; right: 16px; bottom: 16px; margin-inline: auto; max-width: 760px; background: #fff; color: var(--tinta); border: 2px solid var(--tinta); border-radius: 20px; padding: 22px 24px; box-shadow: 0 10px 0 rgba(43,21,25,.14); font-size: 1rem; }
.cookies h2 { font-size: 1.35rem; margin-bottom: .4em; }
.cookies .btn { flex: 1 1 160px; --bs-btn-padding-y: .8em; box-shadow: none; }
.cookies-opciones { border-top: 1px solid var(--linea); padding-top: 14px; }
.cookies-opciones .form-check-input { width: 22px; height: 22px; margin-top: .2em; }
.cookies-opciones small { display: block; color: var(--tinta-suave); }

/* ---------- Páginas interiores ---------- */
.interior { background: var(--rosa); min-height: 60vh; padding-bottom: 64px; }
.interior-cabecera { background: var(--rojo); color: #fff; padding-block: clamp(40px, 6vw, 72px) clamp(64px, 8vw, 104px); }
.interior-cabecera h1 { font-size: clamp(2.4rem, 6vw, 4.6rem); line-height: .95; margin: 0; }
.interior-cabecera p { color: #FFE9EC; margin: .9em 0 0; font-size: 1.1rem; }
.interior-cabecera .breadcrumb { --bs-breadcrumb-divider-color: #FFD9DF; --bs-breadcrumb-item-active-color: #FFD9DF; font-size: .95rem; }
.interior-cabecera .breadcrumb a { color: #fff; }
.hoja { background: #fff; border-radius: var(--radio-l); padding: clamp(22px, 4.5vw, 56px); margin-top: calc(-1 * clamp(36px, 5vw, 56px)); position: relative; }
.hoja h2 { font-size: 1.6rem; margin: 1.6em 0 .5em; letter-spacing: -0.01em; }
.hoja h2:first-child { margin-top: 0; }

/* ---------- Formulario ---------- */
.formulario { max-width: 880px; }
.formulario fieldset { margin-bottom: clamp(36px, 5vw, 52px); }
.formulario legend { font-family: var(--display); font-weight: 800; font-size: clamp(1.6rem, 2.6vw, 2.1rem); letter-spacing: -0.02em; margin-bottom: .2em; display: flex; align-items: baseline; gap: .5em; }
.formulario legend .paso { font: 700 1rem var(--texto); color: var(--rojo); letter-spacing: 0; }
.form-label, .etiqueta { font-weight: 700; margin-bottom: 6px; }
.form-text { color: var(--tinta-suave); font-size: .92rem; }
.form-control, .form-select { font-size: 1.05rem; color: var(--tinta); border-width: 2px; padding: .7em .85em; min-height: 54px; }
.form-control:hover, .form-select:hover { border-color: var(--tinta-suave); }
.form-control:focus, .form-select:focus { border-color: var(--tinta); box-shadow: 0 0 0 4px var(--amarillo); }
.form-control.is-invalid, .form-select.is-invalid { background-color: #FFF7F8; }
.form-control.is-invalid:focus, .form-select.is-invalid:focus { box-shadow: 0 0 0 4px var(--amarillo); }
.invalid-feedback { font-weight: 700; font-size: .95rem; }

/* Opciones tipo tarjeta: btn-check de Bootstrap */
.btn-opcion { --bs-btn-padding-x: 1em; --bs-btn-padding-y: .7em; --bs-btn-font-weight: 400; --bs-btn-border-radius: 10px; --bs-btn-color: var(--tinta); --bs-btn-border-color: var(--bs-border-color); --bs-btn-hover-border-color: var(--tinta-suave); --bs-btn-hover-color: var(--tinta); --bs-btn-active-bg: var(--amarillo-claro); --bs-btn-active-color: var(--tinta); --bs-btn-active-border-color: var(--tinta);
  display: flex; align-items: center; gap: 14px; width: 100%; min-height: 56px; text-align: left; line-height: 1.35; background: #fff; }
.btn-opcion::before { content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--tinta-suave); background: #fff; }
.btn-check:checked + .btn-opcion { font-weight: 700; }
.btn-check:checked + .btn-opcion::before { border: 7px solid var(--tinta); }
.btn-check:focus-visible + .btn-opcion { outline: 3px solid var(--tinta); outline-offset: 2px; box-shadow: 0 0 0 6px var(--amarillo); }
.sin-circulo .btn-opcion { justify-content: center; min-height: 48px; }
.sin-circulo .btn-opcion::before { display: none; }
.grupo-invalido .btn-opcion { border-color: var(--rojo); }
.subgrupo { font-weight: 700; color: var(--tinta-suave); font-size: .95rem; margin: 10px 0 0; }

.pregunta-sn { padding: 16px 0; border-top: 1px solid var(--linea); }
.pregunta-sn:last-of-type { border-bottom: 1px solid var(--linea); }
.pregunta-sn .limpiar { font-size: .88rem; color: var(--tinta-suave); }

.casilla { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border: 2px solid var(--linea); border-radius: 10px; margin-bottom: 12px; cursor: pointer; }
.casilla .form-check-input { width: 26px; height: 26px; margin: 2px 0 0; flex: none; border: 2px solid var(--tinta-suave); cursor: pointer; }
.casilla .form-check-input:checked { background-color: var(--rojo); border-color: var(--rojo); }
.casilla:has(input:checked) { border-color: var(--tinta); background: var(--amarillo-claro); }
.casilla.is-invalid { border-color: var(--rojo); }
.casilla + .invalid-feedback { margin: -4px 0 12px; }
.info-privacidad { background: var(--rosa); border-radius: 10px; padding: 18px 20px; font-size: .95rem; margin-bottom: 16px; }
.info-privacidad p { max-width: none; }
.info-privacidad summary { cursor: pointer; font-weight: 700; color: var(--rojo-hondo); }
.trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.resumen-errores { border: 3px solid var(--rojo); background: #FFF7F8; }

/* ---------- Entrada (web) ---------- */
.pagina-entrada { background: var(--rosa); min-height: 100vh; padding-bottom: 64px; }
.confirmacion { text-align: center; padding: clamp(32px, 6vw, 64px) 16px 28px; }
.confirmacion .sello { width: 76px; height: 76px; border-radius: 50%; background: var(--amarillo); display: grid; place-items: center; margin: 0 auto 18px; animation: sello .6s cubic-bezier(.3,1.6,.5,1) both; }
.confirmacion .sello svg { width: 40px; }
@keyframes sello { from { transform: scale(.3); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.confirmacion h1 { font-size: clamp(2.2rem, 5.5vw, 3.6rem); }
.confirmacion p { margin: .8em auto 0; max-width: 46ch; }

.entrada { width: min(100% - 40px, 420px); margin: 12px auto 0; filter: drop-shadow(0 16px 24px rgba(43,21,25,.18)); --fondo-muesca: var(--rosa); }
.entrada-logo { background: #fff; border-radius: 22px 22px 0 0; padding: 16px 22px; }
.entrada-logo .logos { display: flex; justify-content: space-between; }
.entrada-logo .logos img { height: 38px; }
.entrada-logo .logos img + .logos-sep + img { height: 33px; }
.entrada-logo .logos-sep { display: none; }
.entrada-cuerpo { background: var(--rojo); color: #fff; padding: 24px 24px 28px; position: relative; overflow: hidden; }
.entrada-cuerpo .arco { position: absolute; right: -70px; top: -60px; width: 220px; }
.entrada-kicker { font-weight: 700; font-size: .85rem; color: var(--amarillo); position: relative; max-width: 22ch; margin: 0; }
.entrada-titulo { line-height: .86; letter-spacing: -0.035em; margin: 12px 0 8px; position: relative; }
.entrada-titulo span { display: block; font-size: 2.7rem; }
.entrada-titulo b { display: block; font-size: 5rem; color: var(--amarillo); letter-spacing: -0.05em; }
.entrada-lema { font-family: var(--display); font-weight: 600; font-size: 1.15rem; margin: 0 0 22px; }
.entrada-dato span { display: block; font-size: .82rem; color: #FFD5DC; }
.entrada-dato strong { display: block; font-size: 1.05rem; line-height: 1.3; }
.entrada-nombre strong { font-size: 1.35rem; }
.entrada-fila { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; margin-top: 16px; }
.entrada-fila .entrada-dato:last-child strong { white-space: nowrap; }
.entrada-talon { background: var(--amarillo); padding: 26px 24px 24px; position: relative; display: grid; grid-template-columns: 150px 1fr; gap: 18px; align-items: start; }
.entrada-talon::before { content: ""; position: absolute; left: 18px; right: 18px; top: 0; border-top: 2px dashed rgba(43,21,25,.5); }
.entrada-muesca { position: absolute; top: -14px; width: 28px; height: 28px; border-radius: 50%; background: var(--fondo-muesca); }
.entrada-muesca.izq { left: -14px; } .entrada-muesca.der { right: -14px; }
.entrada-qr { background: #fff; border-radius: 12px; padding: 9px; line-height: 0; aspect-ratio: 1; }
.entrada-qr svg { width: 100%; height: 100%; }
.entrada-talon .entrada-dato span { color: #6B5200; }
.entrada-codigo { font-family: var(--display); font-weight: 800; font-size: 1.25rem !important; letter-spacing: .01em; white-space: nowrap; }
.entrada-talon .entrada-dato + .entrada-dato { margin-top: 12px; }
.entrada-instrucciones { grid-column: 1 / -1; font-weight: 700; font-size: .95rem; margin: 2px 0 0; }
.entrada-pie { background: #fff; border-radius: 0 0 22px 22px; padding: 14px 18px; }
.entrada-pie img { width: 100%; height: auto; }
.entrada-cancelada { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(255,255,255,.82); font-family: var(--display); font-weight: 800; font-size: 2rem; color: var(--rojo); transform: rotate(-8deg); }
@media (max-width: 380px) { .entrada-talon { grid-template-columns: 1fr; } .entrada-qr { max-width: 220px; } }

@media print {
  .cabecera, .pie, .cookies, .no-imprimir { display: none !important; }
  .pagina-entrada { background: #fff; }
  .entrada { filter: none; --fondo-muesca: #fff; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
.resumen-errores:focus { outline: none; }

/* Textos legales: el texto ocupa todo el ancho de la hoja blanca */
.hoja-legal p, .hoja-legal ul, .hoja-legal li { max-width: none; }
.hoja-legal ul { padding-left: 1.3em; }
.hoja-legal .table { margin-bottom: 1.5rem; }
.hoja-legal .table th[scope="row"] { width: 22%; white-space: nowrap; }
@media (max-width: 575.98px) {
  .hoja-legal .table th[scope="row"], .hoja-legal .table th[scope="row"] + td { display: block; width: auto; white-space: normal; }
  .hoja-legal .table th[scope="row"] { border-bottom: 0; padding-bottom: 0; color: var(--tinta-suave); font-size: .9rem; }
}