/* ═══════════════════════════════════════════════════════════════
   TIENDA · inscripción por equipo (2026-09-08)
   inscripcion.html (single de producto) · checkout.html (resumen a la
   izquierda + pasos a la derecha + pago Stripe en maqueta) · barra
   inferior tipo app en móvil (todas las páginas).
   ═══════════════════════════════════════════════════════════════ */
:root{--flecha-abajo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--ok:#3C8C3C;--mal:#C0392B;--stripe:#635BFF;--radio-s:14px;--sombra:0 10px 30px rgba(26,32,67,.10);--tic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");--top-pasos:94px;--alto-pasos:58px}
.pagina{padding-top:104px;background:var(--papel)}
.miga{max-width:var(--ancho);margin:0 auto 18px;padding:0 24px;font-size:13px;color:var(--tinta-2)}
.miga a{color:inherit;text-decoration:none}.miga a:hover{text-decoration:underline}
.miga span{margin:0 8px;opacity:.5}

/* ───────── PRODUCTO ───────── */
.prod{max-width:var(--ancho);margin:0 auto;padding:0 24px 80px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,64px);align-items:start}
.prod__galeria{position:sticky;top:104px}
.prod__grande{position:relative;aspect-ratio:4/3;border-radius:var(--radio);overflow:hidden;background:var(--papel-2);box-shadow:var(--sombra)}
.prod__grande img,.prod__grande video{width:100%;height:100%;object-fit:cover;display:block}
.prod__grande img{transition:opacity .35s}
.prod__grande .prod__tag{position:absolute;top:16px;left:16px;padding:8px 14px;border-radius:999px;background:rgba(15,46,10,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.prod__lupa{position:absolute;right:14px;bottom:14px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.9);display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.2)}
.prod__miniaturas{display:flex;gap:10px;margin-top:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.prod__miniaturas::-webkit-scrollbar{display:none}
.prod__miniaturas button{flex:0 0 auto;width:96px;aspect-ratio:4/3;border-radius:12px;overflow:hidden;border:2px solid transparent;padding:0;background:var(--papel-2);cursor:pointer;scroll-snap-align:start;position:relative;transition:border-color .2s,transform .2s}
.prod__miniaturas button img{width:100%;height:100%;object-fit:cover;display:block}
.prod__miniaturas button.is-on{border-color:var(--oliva)}
.prod__miniaturas button:hover{transform:translateY(-2px)}
.prod__miniaturas .es-video::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.25) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Ccircle cx='12' cy='12' r='11' fill='rgba(0,0,0,.45)'/%3E%3Cpath d='M9.5 7.5v9l7-4.5z'/%3E%3C/svg%3E") center/34px no-repeat}

.prod__info h1{font-size:clamp(30px,3.6vw,46px);font-weight:800;letter-spacing:-.02em;margin:6px 0 10px}
.prod__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:14px;color:var(--tinta-2);margin-bottom:18px}
.prod__estrellas{color:#E0A800;letter-spacing:1px}
.prod__cupo{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:#EEF5E4;color:#3B5A1E;font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.prod__cupo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(60,140,60,.2)}
.prod__desc{font-size:16px;color:var(--tinta-2)}
.prod__opcion{margin:22px 0}
.prod__opcion>span{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--tinta-2);margin-bottom:10px}
.prod__chips{display:flex;flex-wrap:wrap;gap:8px}
.prod__chips label{position:relative}
.prod__chips input{position:absolute;opacity:0;inset:0;cursor:pointer}
.prod__chips span{display:inline-block;padding:10px 16px;border-radius:999px;border:1.5px solid var(--linea);font-weight:600;font-size:14px;transition:all .2s}
.prod__chips input:checked+span{border-color:var(--grama);background:var(--grama);color:#fff}
.prod__chips input:focus-visible+span{outline:2px solid var(--oliva);outline-offset:2px}
.cantidad{display:inline-flex;align-items:center;border:1.5px solid var(--linea);border-radius:12px;overflow:hidden}
.cantidad button{width:44px;height:46px;border:0;background:transparent;font-size:20px;cursor:pointer;color:var(--tinta)}
.cantidad button:hover{background:var(--papel-2)}
.cantidad output{min-width:44px;text-align:center;font-weight:700;font-size:16px}
.prod__fila{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:end;margin:22px 0}
.prod__cta{display:grid;gap:10px;margin:22px 0 18px}
.prod__cta .btn{width:100%;text-align:center;padding:17px 28px;font-size:16px}
.btn--navy{background:var(--navy);color:#fff}.btn--navy:hover{background:var(--navy-2)}
.btn--linea{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.btn--linea:hover{background:var(--navy);color:#fff}
.prod__garantias{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 0;border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.prod__garantias div{display:grid;justify-items:center;text-align:center;gap:6px;font-size:12px;line-height:1.35;color:var(--tinta-2);padding:6px 4px}
.prod__garantias strong{display:block;color:var(--tinta);font-size:13px}
.prod__garantias svg{flex:0 0 26px;width:26px;height:26px;color:var(--oliva)}
.prod__specs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.prod__specs div{padding:14px 12px;border-radius:var(--radio-s);background:var(--papel-2);text-align:center}
.prod__specs strong{display:block;font-size:20px;font-weight:800;color:var(--navy);letter-spacing:-.01em}
.prod__specs span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--tinta-2)}

.acordeon{margin-top:26px;border-top:1px solid var(--linea)}
.acordeon details{border-bottom:1px solid var(--linea)}
.acordeon summary{list-style:none;cursor:pointer;padding:18px 0;font-weight:700;font-size:16px;display:flex;justify-content:space-between;align-items:center}
.acordeon summary::-webkit-details-marker{display:none}
.acordeon summary::after{content:"+";font-size:22px;font-weight:400;color:var(--oliva);transition:transform .25s}
.acordeon details[open] summary::after{transform:rotate(45deg)}
.acordeon .cuerpo{padding:0 0 18px;color:var(--tinta-2);font-size:15px}
.acordeon ul{margin:0;padding-left:18px}.acordeon li{margin-bottom:6px}

.vivido{background:var(--papel-2);padding:70px 0 80px}
.vivido__cab{max-width:var(--ancho);margin:0 auto 26px;padding:0 24px;display:flex;justify-content:space-between;align-items:end;gap:20px}
.vivido__cab h2{margin:0}
.prod--70 .prod__grande{position:relative}
/* Mosaico (2026-09-09): antes eran tarjetas de blog —foto arriba, pie debajo— y el pie
   ahora va sobre la foto. En móvil sigue siendo carrusel con snap, nunca apilado. */
.vivido__fila{max-width:var(--ancho);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:200px;gap:14px}
.vivido__fila figure{position:relative;margin:0;border-radius:18px;overflow:hidden;background:#0F2E0A}
/* dos filas justas: [1 1 2 2 3] / [1 1 4 5 6] */
.vivido__fila figure:nth-child(1){grid-column:span 2;grid-row:span 2}
.vivido__fila figure:nth-child(2){grid-column:span 2}
.vivido__fila img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.vivido__fila figure:hover img{transform:scale(1.06)}
.vivido__fila figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;color:#fff;font-size:13.5px;font-weight:700;letter-spacing:.01em;background:linear-gradient(to top,rgba(8,20,6,.78),rgba(8,20,6,.35) 55%,transparent);text-shadow:0 1px 12px rgba(0,0,0,.35)}
.vivido__fila figure:nth-child(1) figcaption{font-size:16px;padding:44px 20px 18px}
@media (prefers-reduced-motion:reduce){.vivido__fila img{transition:none}.vivido__fila figure:hover img{transform:none}}
@media (max-width:600px){
  .vivido__cab{flex-direction:column;align-items:flex-start;gap:14px}
  .vivido__cab .btn{width:auto}
}
@media (max-width:900px){
  .vivido__fila{display:flex;grid-auto-rows:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 24px 8px;scrollbar-width:none}
  .vivido__fila::-webkit-scrollbar{display:none}
  .vivido__fila figure{flex:0 0 min(76vw,340px);height:240px;scroll-snap-align:start}
  .vivido__fila figure:nth-child(1) figcaption{font-size:14px;padding:34px 16px 14px}
}

/* ───────── CHECKOUT ───────── */
.check{max-width:var(--ancho);margin:0 auto;padding:0 24px 80px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,56px);align-items:start}
.resumen{position:sticky;top:104px;border-radius:var(--radio);background:var(--papel-2);padding:clamp(20px,2.4vw,30px);border:1px solid var(--linea)}
.resumen h2{font-size:18px;margin:0 0 16px;display:flex;justify-content:space-between;align-items:center}
.resumen__prod{display:flex;gap:14px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--linea)}
.resumen__prod img{width:82px;aspect-ratio:1;object-fit:cover;border-radius:12px}
.resumen__prod strong{display:block;font-size:15px}
.resumen__prod span{font-size:13px;color:var(--tinta-2)}
/* Fila «Equipo · nombre»: etiqueta a la izquierda y valor a la derecha, como las líneas de precio.
   Antes era un rótulo en mayúsculas encima (un eyebrow, y Carlos los quitó de toda la web). */
.resumen__equipo[hidden],.resumen__jug[hidden]{display:none}   /* display propio vs. atributo hidden */
/* Ficha del producto en el resumen, como el de una reserva de hotel: foto, título y cuándo/dónde */
.resumen__ficha{margin:0 0 16px;padding:0}
.resumen__ficha img{width:100%;height:118px;object-fit:cover;border-radius:12px;display:block}
.resumen__ficha figcaption{margin-top:10px}
.resumen__ficha h1{margin:0}
.resumen__ficha span{display:block;margin-top:3px;font-size:12px;color:var(--tinta-2);line-height:1.4}
.resumen__ficha .es-sede{font-weight:700;color:var(--tinta)}
.resumen__equipo{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin:16px 0 10px;padding-top:14px;border-top:1px solid var(--linea)}
.resumen__equipo>span{flex:0 0 auto;font-size:13px;color:var(--tinta-2)}
.resumen__nombre{font-size:16px;font-weight:700;color:var(--navy);text-align:right;line-height:1.3;word-break:break-word}
.resumen__nombre.is-vacio{color:var(--tinta-2);opacity:.55;font-weight:500;font-size:14px}
/* Jugadores capturados: tres números que se encienden al completarse (2026-09-09) */
.resumen__jug{list-style:none;margin:0;padding:0;display:flex;gap:8px}
.resumen__jug li{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--linea);transition:background .3s,border-color .3s,transform .3s}
/* Axiforma dibuja los dígitos altos dentro de su caja: se bajan para centrarlos ópticamente */
.resumen__jug .num{font-weight:800;font-size:13px;line-height:1;color:var(--tinta-2);transform:translateY(.16em);transition:color .3s}
.resumen__jug li.is-lista{background:var(--ok);border-color:var(--ok);transform:translateY(-1px)}
.resumen__jug li.is-lista .num{color:#fff}
.resumen__equipo--jug{align-items:center}
.resumen__lineas{margin-top:18px;padding-top:14px;border-top:1px solid var(--linea);display:grid;gap:8px;font-size:14px}
.resumen__lineas div{display:flex;justify-content:space-between;gap:12px}
.resumen__lineas .total{font-size:20px;font-weight:800;color:var(--navy);padding-top:8px;border-top:1px solid var(--linea);margin-top:4px}
.resumen__seguro{margin-top:14px;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tinta-2)}
.resumen__seguro svg{width:16px;height:16px;color:var(--ok)}
.resumen__abrir{display:none}

/* ── Flujo de tres vistas (2026-09-09): 1 el torneo · 2 inscripción · 3 pago.
   Cada vista sustituye a la anterior y la barra deja volver a las ya pasadas. ── */
.vista{display:none}
.vista.is-activa{display:block;animation:aparece .35s ease-out}
.pasos{position:sticky;top:var(--top-pasos);z-index:21;display:flex;align-items:center;gap:4px;margin:16px 0 14px;padding:6px;list-style:none;border-radius:999px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--linea);box-shadow:0 6px 20px rgba(26,32,67,.08)}
.pasos li{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 14px;border-radius:999px;font:700 12px/1 var(--fuente-menu);letter-spacing:.06em;text-transform:uppercase;color:var(--tinta-2);transition:background .25s,color .25s}
.pasos li em{font-style:normal}
.pasos li span{width:22px;height:22px;flex:0 0 auto;border-radius:50%;background:var(--papel-2);border:1px solid var(--linea);display:grid;place-items:center;font-size:11px;line-height:1;padding-top:.25em;transition:background .25s,color .25s,border-color .25s}
.pasos li.is-hecho span{padding-top:0}   /* el tic sí está centrado */
.pasos li.is-activo{background:var(--grama);color:#fff}
.pasos li.is-activo span{background:#fff;color:var(--grama);border-color:#fff}
.pasos li.is-hecho{color:var(--grama)}
.pasos li.is-hecho span{background:var(--ok);border-color:var(--ok);font-size:0}
/* Axiforma no trae el tic: va como máscara SVG, igual que las flechas */
.pasos li.is-hecho span::after{content:"";width:11px;height:11px;background:#fff;-webkit-mask:var(--tic) center/11px no-repeat;mask:var(--tic) center/11px no-repeat;transform:translateY(-3px)}
.pasos li.es-clicable:hover{background:#EDF2E4;color:var(--grama)}

/* Avisos flotantes del flujo (2026-09-09): dicen qué falta para pasar de paso.
   Van fijos bajo el header, no dentro del formulario, para que se vean estés donde estés. */
.aviso{position:fixed;top:calc(var(--top-pasos) + var(--alto-pasos) + 12px);left:50%;z-index:60;width:max-content;max-width:min(560px,calc(100vw - 32px));padding:13px 20px;border-radius:14px;background:var(--navy);color:#fff;font-size:13.5px;line-height:1.45;box-shadow:0 14px 40px rgba(10,14,40,.32);text-align:center;opacity:0;transform:translate(-50%,-14px);transition:opacity .3s,transform .3s;pointer-events:none}
.aviso.is-visible{opacity:1;transform:translate(-50%,0)}
.aviso--mal{background:var(--mal)}
@media (prefers-reduced-motion:reduce){.aviso{transition:none}}
/* los dos sub-bloques del paso 2 (equipo · jugadores) */
.paso h3{font-size:17px;margin:26px 0 6px}
.campo--chips{margin-top:4px}
.paso h3:first-of-type{margin-top:0}
.paso{display:none;animation:aparece .35s ease-out}
.paso.is-activo{display:block}
@keyframes aparece{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.paso h2{font-size:24px;margin-bottom:6px}
.paso>p{color:var(--tinta-2);margin-bottom:22px}
.campo{display:grid;gap:6px;margin-bottom:14px}
.campo>span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--tinta-2)}
.campo input,.campo select{padding:14px 16px;border-radius:12px;border:1.5px solid var(--linea);background:#fff;font:500 16px var(--fuente);color:var(--tinta);outline:0;transition:border-color .2s,box-shadow .2s;width:100%}
.campo input:focus{border-color:var(--oliva);box-shadow:0 0 0 3px rgba(127,142,64,.18)}
.campo.is-mal input{border-color:var(--mal)}
.campo.is-bien input{border-color:rgba(60,140,60,.6)}
.campo .ayuda{font-size:12px;color:var(--tinta-2)}
.campo .error{font-size:12px;color:var(--mal);display:none}
.campo.is-mal .error{display:block}
.fila2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.acciones{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}
.acciones .atras{background:transparent;border:0;color:var(--tinta-2);font:600 14px var(--fuente);cursor:pointer;padding:10px 0;display:inline-flex;align-items:center;gap:7px;text-decoration:none}
.acciones .atras::before{content:"";width:15px;height:15px;background:currentColor;-webkit-mask:var(--flecha-abajo) center/13px no-repeat;mask:var(--flecha-abajo) center/13px no-repeat;transform:rotate(90deg)}
.acciones .atras:hover{color:var(--tinta)}

/* jugadores: tarjetas arrastrables (la zona de soltar el certificado se quitó el 2026-09-09) */
.jugadores{display:grid;gap:14px}
.jug{position:relative;border-radius:var(--radio);border:1.5px solid var(--linea);background:#fff;padding:18px;transition:box-shadow .25s,transform .25s,border-color .25s}
.jug.is-arrastrando{opacity:.5}
.jug.is-destino{border-color:var(--oliva);box-shadow:0 0 0 3px rgba(127,142,64,.18)}
.jug__cab{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.jug__asa{cursor:grab;color:var(--tinta-2);display:grid;place-items:center;width:28px;height:28px;border-radius:8px;touch-action:none}
.jug__asa:hover{background:var(--papel-2)}.jug__asa:active{cursor:grabbing}
.jug__num{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;line-height:1;padding-top:.28em}
.jug__titulo{font-weight:800;font-size:16px;flex:1}
.jug__cap{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:#fff;background:var(--oliva);padding:4px 10px;border-radius:999px;white-space:nowrap;flex:0 0 auto}
.jug__mover{display:none;gap:4px}
.jug__mover button{width:32px;height:32px;border-radius:8px;border:1px solid var(--linea);background:#fff;cursor:pointer;font-size:0;display:grid;place-items:center}
.jug__mover button::before{content:"";width:16px;height:16px;background:var(--tinta);-webkit-mask:var(--flecha-abajo) center/14px no-repeat;mask:var(--flecha-abajo) center/14px no-repeat}
.jug__mover button[data-mover="-1"]::before{transform:rotate(180deg)}
/* Cuatro campos por jugador (nombre · correo / teléfono · handicap): dos filas de dos.
   Los cuatro en una sola fila dejaban el nombre en 170 px y cortaba el placeholder. */
.jug__campos{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* pago (maqueta Stripe) */
.stripe{border:1.5px solid var(--linea);border-radius:var(--radio);padding:20px;background:#fff}
.stripe__cab{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:13px;color:var(--tinta-2)}
.stripe__marcas{display:flex;gap:6px}
.stripe__marcas span{padding:3px 7px;border-radius:5px;border:1px solid var(--linea);font-size:10px;font-weight:800;letter-spacing:.04em}
.stripe .campo input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
.stripe__tarjeta{position:relative}
.stripe__tarjeta .marca{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:800;color:var(--tinta-2);letter-spacing:.06em}
.stripe__pie{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tinta-2);margin-top:10px}
.stripe__pie b{color:var(--stripe);font-weight:800}
.stripe__pie svg{width:16px;height:16px;color:var(--ok);flex:0 0 auto}
.btn--pagar{width:100%;text-align:center;padding:18px;font-size:16px;margin-top:16px;position:relative}
/* Número · vence · CVC en una sola fila (Carlos, 2026-09-09) */
.fila-tarjeta{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,.8fr);gap:12px;align-items:start}
@media (max-width:700px){.fila-tarjeta{grid-template-columns:1fr 1fr}.fila-tarjeta .campo:first-child{grid-column:1/-1}}
.btn--pagar.is-procesando,.resumen__cta.is-procesando{pointer-events:none;color:transparent;position:relative}
.btn--pagar.is-procesando::after,.resumen__cta.is-procesando::after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.pasos[hidden]{display:none}   /* display:flex le ganaba al atributo hidden */
/* Página de agradecimiento: sin barra de pasos ni resumen, a una sola columna */
.prod--70.es-gracias{grid-template-columns:minmax(0,1fr)}
.prod--70.es-gracias .lado{display:none}
.es-gracias .bloque--form{border-top:0;padding-top:0;margin-top:0}   /* la raya del formulario no pinta nada aquí */
/* ── Página de gracias (2026-09-09): foto de fondo con velo verde y el comprobante
   como una tarjeta blanca encima. ── */
.exito{position:relative;text-align:center;padding:0;border-radius:24px;overflow:hidden;isolation:isolate}
.exito__foto{position:absolute;inset:0;z-index:-2;background:url("../img/galeria/w/dia1-13.webp") center/cover no-repeat}
.exito__foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,32,6,.72),rgba(9,32,6,.88))}
.exito__cuerpo{position:relative;padding:clamp(30px,5vw,54px) clamp(18px,4vw,44px) clamp(28px,4vw,44px);max-width:620px;margin:0 auto;color:#fff}
.exito__icono{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;margin:0 auto 16px;animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
.exito__icono svg{width:38px;height:38px;color:#CFE0A6}
.exito h2{font-size:clamp(26px,3.4vw,34px);color:#fff;margin:0 0 8px;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.exito__lead{color:rgba(255,255,255,.92);font-size:14.5px;margin:0 auto;max-width:44ch;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.exito p{color:rgba(255,255,255,.92)}

/* Comprobante */
.recibo{margin:26px 0 0;background:#fff;border-radius:18px;text-align:left;box-shadow:0 18px 44px rgba(5,16,4,.35);overflow:hidden}
.recibo__cab{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 20px;background:var(--papel-2);border-bottom:1px solid var(--linea)}
.recibo__cab span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--tinta-2)}
.recibo__cab strong{font-family:ui-monospace,Menlo,monospace;font-size:14px;letter-spacing:.06em;color:var(--navy)}
.recibo dl{margin:0;padding:6px 20px}
.recibo .fila{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:13px 0;border-bottom:1px solid var(--linea)}
.recibo .fila:last-child{border-bottom:0}
.recibo dt{font-size:13px;color:var(--tinta-2);margin:0}
.recibo dd{margin:0;text-align:right;font-size:14px;font-weight:700;color:var(--tinta)}
/* Tablita de jugadores dentro del comprobante */
.recibo__tabla{width:calc(100% - 40px);margin:2px 20px 16px;border-collapse:collapse;font-size:14px}
.recibo__tabla caption{text-align:left;font-size:13px;color:var(--tinta-2);padding:10px 0 8px;border-top:1px solid var(--linea)}
.recibo__tabla th{text-align:left;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--tinta-2);padding:0 0 7px}
.recibo__tabla th:first-child{width:34px}
.recibo__tabla th:last-child,.recibo__tabla td:last-child{text-align:right}
.recibo__tabla td{padding:9px 0;border-top:1px solid var(--linea);font-weight:700;color:var(--tinta);vertical-align:middle}
.recibo__tabla td small{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--oliva);margin-top:2px}
.recibo__tabla .n{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--ok);color:#fff;font-size:11px;font-weight:800;line-height:1;padding-top:.16em}
.recibo__tabla .hcp{font-size:12px;font-weight:700;color:#3B5A1E;background:#EEF5E4;border-radius:999px;padding:4px 10px;white-space:nowrap}
.recibo__total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 20px;background:#F4F8EC;border-top:2px dashed var(--linea)}
.recibo__total span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--tinta-2)}
.recibo__total strong{font-size:20px;font-weight:800;color:var(--navy)}
.recibo__total div{text-align:right}
.recibo__total small{display:block;font-size:12px;color:var(--tinta-2);margin-top:2px}
.recibo__total small a{color:var(--navy);text-decoration:underline}
.recibo__total small{display:block;font-size:11px;color:var(--tinta-2);font-weight:500;margin-top:2px}
.exito__acciones{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:12px;margin-top:24px}
/* los dos botones, exactamente iguales: el de contorno sumaba el borde y quedaba más alto */
.exito__acciones .btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;border:1.5px solid transparent;line-height:1}
.btn--claro,.exito__acciones .btn--claro{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn--claro:hover,.exito__acciones .btn--claro:hover{background:rgba(255,255,255,.14);border-color:#fff}
@media (max-width:560px){
  .exito__cuerpo{padding-bottom:110px}   /* que la barra de la app no tape los botones */
  .recibo .fila{grid-template-columns:1fr;gap:6px}
  .recibo dd{text-align:left}
  .recibo ol li{justify-content:flex-start}
  .exito__acciones .btn{width:100%}
}
.exito__icono{width:84px;height:84px;border-radius:50%;background:#EEF5E4;display:grid;place-items:center;margin:0 auto 18px;animation:pop .5s cubic-bezier(.2,1.4,.4,1)}
.exito__icono svg{width:44px;height:44px;color:var(--ok)}
@keyframes pop{from{transform:scale(.4);opacity:0}}
.exito h2{font-size:30px}
.exito__folio{display:inline-block;margin:10px 0 18px;padding:10px 18px;border-radius:999px;background:var(--papel-2);font-weight:800;letter-spacing:.08em;font-family:ui-monospace,Menlo,monospace}
.exito .btn{margin:8px 6px 0}

/* ───────── BARRA INFERIOR TIPO APP (móvil) ───────── */
.appbar{display:none}
@media (max-width:860px){
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
  .appbar{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:60;display:grid;grid-template-columns:1fr 1fr 1.35fr 1fr 1fr;height:64px;border-radius:20px;background:rgba(15,46,10,.72);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 30px rgba(10,14,40,.28)}
  .appbar a,.appbar button{display:grid;place-items:center;gap:3px;align-content:center;color:rgba(255,255,255,.78);text-decoration:none;font:700 10px/1 var(--fuente-menu);letter-spacing:.06em;text-transform:uppercase;border:0;background:transparent;cursor:pointer;padding:0}
  .appbar svg{width:22px;height:22px}
  .appbar .is-activa{color:#fff}
  .appbar .appbar__cta{position:relative}
  .appbar .appbar__cta svg{width:54px;height:54px;padding:13px;border-radius:50%;background:linear-gradient(160deg,#E4F0C4,#B9D488);color:#14380C;margin-top:-46px;margin-bottom:10px;
    /* el anillo del color de la barra abre un hueco alrededor: así no roza con los vecinos */
    box-shadow:0 8px 20px rgba(10,20,6,.35);transition:transform .25s cubic-bezier(.2,1.4,.4,1),box-shadow .25s}
  .appbar .appbar__cta:active svg{transform:scale(.92)}
  .appbar .appbar__cta.is-activa svg{box-shadow:0 8px 20px rgba(10,20,6,.4)}
  .appbar .appbar__cta{font-weight:800;letter-spacing:.05em;align-content:end;padding-bottom:11px}
  .appbar .appbar__cta{color:#fff}
  .wafab{bottom:calc(90px + env(safe-area-inset-bottom))!important}
  .sel-headers,.afinador{bottom:calc(90px + env(safe-area-inset-bottom))}
}

/* ───────── MÓVIL ───────── */
@media (max-width:960px){
  .prod{grid-template-columns:1fr;gap:22px}
  .prod__galeria{position:static}
  .check{grid-template-columns:1fr}
  .resumen{position:static;order:-1;padding:0;background:transparent;border:0}
  .resumen__abrir{display:flex;width:100%;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:14px;background:var(--papel-2);border:1px solid var(--linea);font:700 14px var(--fuente);color:var(--tinta);cursor:pointer}
  .resumen__abrir strong{color:var(--navy);font-size:16px}
  .resumen__abrir::after{content:"";width:18px;height:18px;margin-left:10px;flex:0 0 auto;background:currentColor;-webkit-mask:var(--flecha-abajo) center/16px no-repeat;mask:var(--flecha-abajo) center/16px no-repeat;transition:transform .25s}
  .resumen.is-abierto .resumen__abrir::after{transform:rotate(180deg)}
  .resumen__cuerpo{display:none;padding:16px;margin-top:8px;border-radius:14px;background:var(--papel-2);border:1px solid var(--linea)}
  .resumen.is-abierto .resumen__cuerpo{display:block}
  .resumen h2{display:none}
}
@media (max-width:860px){
  .pagina{padding-top:86px}
  .miga{display:none}
  .prod__grande{border-radius:18px;aspect-ratio:1}
  .prod__miniaturas button{width:78px}
  .prod__garantias{grid-template-columns:1fr;gap:4px}
  .prod__garantias div{grid-template-columns:26px auto 1fr;justify-items:start;text-align:left;align-items:center;gap:10px}
  .prod__garantias div>div{display:contents}
  .prod__specs{grid-template-columns:repeat(2,1fr)}
  .prod__fila{grid-template-columns:1fr}
  .jug__campos{grid-template-columns:1fr 1fr}
  .jug__campos .campo:nth-child(-n+2){grid-column:1/-1}
  .jug__asa{display:none}.jug__mover{display:flex}
  /* «Jugador 1» se partía en dos líneas al convivir con la píldora y las flechas. */
  .jug__titulo{white-space:nowrap}
  .jug__cap{font-size:9px;padding:3px 8px}
  .pasos li{padding:10px 8px;font-size:10px;justify-content:center}
  .pasos li em{display:none}
  .fila2{grid-template-columns:1fr}
  .acciones{flex-direction:column-reverse;align-items:stretch}
  .acciones .btn{text-align:center}
}

/* teaser del producto en la portada (#registro) */
.lista__prod{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:center;margin:30px auto 0;padding:18px;border-radius:var(--radio);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);text-align:left;max-width:640px}
.lista__prod img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:14px}   /* height:auto: el img lleva width/height 1080 (2026-09-15) y sin esto el alto ganaba */
.lista__prod strong{display:block;font-size:17px;color:#fff;margin-bottom:6px}
.lista__precio{display:block;font-size:34px;font-weight:800;letter-spacing:-.02em;color:#fff;line-height:1}
.lista__precio small{font-size:13px;font-weight:600;color:#CFE0A6;letter-spacing:.04em}
.lista__nota{display:block;font-size:13px;color:rgba(255,255,255,.7);margin:8px 0 14px}
@media (max-width:600px){.lista__prod{grid-template-columns:1fr;text-align:center}.lista__prod .btn{width:100%;text-align:center}}

/* casilla de aceptación del checkout (no hereda el blanco de .lista__check) */
.acepto{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.5;color:var(--tinta-2);text-transform:none;letter-spacing:0;font-weight:500;cursor:pointer;padding:14px 16px;border-radius:12px;border:1.5px solid var(--linea);background:#fff}
.acepto span{flex:1;text-wrap:pretty}
.campo.is-mal .acepto{border-color:var(--mal)}
.acepto input{width:18px;height:18px;margin-top:3px;flex:0 0 auto;accent-color:var(--oliva)}
.acepto a{color:var(--navy)}

/* páginas sin hero (producto, checkout): el cristal va más opaco para que lea sobre fondo blanco */
[data-header="cristal"] .cab.cab--solida{background:rgba(15,46,10,.86)}
[data-header="cristal"] .cab.cab--solida.is-scrolled{background:rgba(15,46,10,.92)}

/* ═══════ Disposición 70/30 (2026-09-08, pedido de Carlos): contenido + formulario bajo la galería, resumen en el 30 ═══════ */
.pagina{font-size:15px}
.prod--70{grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:clamp(24px,3vw,44px)}
.prod--70 .prod__galeria{position:static}
.prod__main,.lado,.prod--70 .prod__grande{aspect-ratio:16/10}
.prod--70 .prod__miniaturas button{width:88px}
.lado{position:sticky;top:96px}
.lado .resumen{position:static;padding:20px}
.lado h1{font-size:17px;font-weight:800;letter-spacing:.03em;line-height:1.25;margin:0 0 8px;text-transform:uppercase}
.lado .prod__meta{font-size:12px;margin-bottom:8px;gap:6px 10px}
.lado .prod__cupo{font-size:11px;padding:4px 9px}
/* Sin la línea del precio por jugador (quitada el 09-09) el resumen respiraba de más aquí. */
.lado .resumen__equipo{margin-top:10px;padding-top:12px}
.lado .prod__opcion{margin:12px 0}
.lado .prod__opcion>span{font-size:11px;margin-bottom:6px}
.lado .prod__chips span{padding:7px 12px;font-size:12px}
.lado .cantidad button{width:36px;height:38px;font-size:18px}
.lado .cantidad output{min-width:36px;font-size:14px}

.lado .resumen__jug li{width:28px;height:28px}
.lado .resumen__jug .num{font-size:12px}
.lado .resumen__lineas{font-size:13px;margin-top:14px}
.lado .resumen__lineas .total{font-size:17px}
.resumen__cta{display:block;text-align:center;margin-top:14px;padding:14px 20px;font-size:14px}
.resumen__cta[hidden]{display:none}   /* display:block gana al atributo hidden */
.resumen__vaciar{display:block;width:100%;margin-top:10px;border:0;background:transparent;color:var(--tinta-2);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
.resumen__vaciar:hover{color:var(--grama)}
.resumen__vaciar[hidden]{display:none}   /* display:block ganaba al atributo hidden */
.lado .resumen__seguro{font-size:11px;margin-top:12px}

/* menú pegajoso bajo las fotos */

.bloque{padding:26px 0 8px;scroll-margin-top:170px}
.bloque h2{font-size:22px;font-weight:800;letter-spacing:-.01em;margin:0 0 10px}
.bloque h3{font-size:16px;margin:18px 0 8px}
.bloque>p{color:var(--tinta-2);font-size:15px;max-width:68ch}
.bloque .prod__specs{margin-top:16px}
.bloque .prod__specs strong{font-size:18px}
.bloque .prod__garantias{margin-top:16px;border-bottom:0}
.lista-check{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15px;color:var(--tinta-2)}
.lista-check li{position:relative;padding-left:28px}
.lista-check li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:#EEF5E4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233B5A1E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/11px no-repeat}
[data-sedes][hidden]{display:none!important} /* si no, el display:grid de .campos gana al atributo hidden */

/* ── A · itinerario de los tres días (sustituye a las tarjetas tipo blog, 2026-09-08) ── */
.dias{list-style:none;margin:0;padding:0;border-top:1px solid var(--linea)}
.dias li{display:grid;grid-template-columns:88px 1fr 132px;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--linea)}
.dias__n{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--oliva)}
.dias__txt strong{display:block;font-size:17px;font-weight:700;color:var(--tinta);margin-bottom:2px}
.dias__txt span{font-size:14px;color:var(--tinta-2)}
.dias img{width:132px;height:74px;object-fit:cover;border-radius:10px}
.dias .es-final .dias__n{color:var(--grama)}
/* La píldora «Final» se retiró el 09-09: con jornada única el rótulo de la izquierda ya dice Cierre. */
.dias__pie{margin:14px 0 0;font-size:13px;color:var(--tinta-2)}
@media (max-width:700px){
  .dias li{grid-template-columns:64px 1fr;gap:12px}
  .dias img{grid-column:2;width:100%;height:120px}
}

/* ── B · ficha de campo: foto al lado y datos en pastillas ── */
.campos{display:grid;gap:14px}
.campos article{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:center;padding:14px;border:1px solid var(--linea);border-radius:var(--radio-s)}
.campos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.campos strong{display:block;font-size:19px;font-weight:700;margin-bottom:6px}
.campos p{margin:0 0 10px;font-size:14px;color:var(--tinta-2)}
.campos ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.campos li{padding:5px 11px;border-radius:999px;background:var(--papel-2);font-size:12px;font-weight:600;color:var(--tinta-2)}
@media (max-width:700px){.campos article{grid-template-columns:1fr;gap:12px}}
.bloque--form{margin-top:10px;padding-top:26px;border-top:1px solid var(--linea)}
.bloque__intro{margin-bottom:18px}
.bloque--form .paso h2{font-size:18px}
.bloque--form .paso h3{font-size:16px}
.bloque--form .paso>p{font-size:14px;margin-bottom:16px}
.bloque--form .campo>span{font-size:11px}
.bloque--form .campo input{padding:12px 14px;font-size:15px}
.bloque--form .jug{padding:16px}
.bloque--form .jug__titulo{font-size:15px}
.bloque--form .btn{padding:13px 24px;font-size:14px}
.bloque--form .btn--pagar{padding:16px;font-size:15px}
.exito h2{font-size:26px}

@media (max-width:960px){
  :root{--top-pasos:80px}
  .prod--70{grid-template-columns:minmax(0,1fr)}
  .lado{position:static;order:-1}
  .lado .resumen{padding:0;background:transparent;border:0}
  .lado .resumen__cuerpo{padding:16px}
      .bloque{scroll-margin-top:150px}
  .sedes{grid-template-columns:1fr}
}


/* El punto medio de Axiforma se dibuja a ras de línea: se sube y se separa con esta clase. */
.pmed{display:inline-block;vertical-align:.28em;margin:0 .18em;font-size:.8em;line-height:0}

/* ── Tarjetas + sello de pago seguro (2026-09-08; orden invertido el 09-09 a petición de
   Carlos: primero las tarjetas, el sello al final). Logos pequeños, sin caja, en gris;
   toman color al pasar el ratón. Los SVG vienen de GiftCard Frog's. ── */
.seguro{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--linea)}
/* Los cuatro sellos van en cuatro columnas iguales y centrados: con flex quedaban
   repartidos al tuntún porque cada logotipo tiene una proporción distinta. */
.seguro__tarjetas{display:contents}
.seguro__tarjetas li{display:grid;place-items:center;line-height:0}
.seguro__tarjetas img,.seguro__sello{width:auto;height:auto;object-fit:contain;display:block}
.seguro__tarjetas img{max-width:54px}   /* que Visa no domine la fila por ser el más ancho */
.seguro__tarjetas img{filter:grayscale(1);opacity:.45;transition:filter .25s,opacity .25s}
.seguro__tarjetas li:hover img{filter:none;opacity:1}
/* alturas ópticas: cada marca ocupa un rectángulo distinto dentro de su archivo */
.seguro__tarjetas img[alt="Visa"]{max-height:15px}
.seguro__tarjetas img[alt="Mastercard"]{max-height:21px}
.seguro__tarjetas img[alt="American Express"]{max-height:23px}
.seguro__sello{max-height:28px;justify-self:center}
/* En el paso de pago la caja es ancha: los cuatro se agrupan a la izquierda. */
.seguro--pago{grid-template-columns:repeat(4,auto);justify-content:start;gap:26px}
.stripe__cab{justify-content:flex-start}

/* Cifras del producto con icono delante del número (2026-09-08) */
.prod__specs .spec__c{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:4px}
/* Los iconos caían 2,5–3 px por debajo del número (medido con Playwright: centro de tinta
   del SVG contra el del número). Se suben uno a uno; no vale un valor común. */
.prod__specs .spec__c svg{width:20px;height:20px;color:var(--oliva);flex:0 0 auto;transform:translateY(-2.5px)}
.prod__specs div:nth-child(2) .spec__c svg{transform:translateY(-2.6px)}
.prod__specs div:nth-child(3) .spec__c svg,.prod__specs div:nth-child(4) .spec__c svg{transform:translateY(-3px)}
.prod__specs .spec__c strong{font-size:22px;font-weight:800;color:var(--navy);letter-spacing:-.01em;line-height:1}
.bloque .prod__specs .spec__c strong{font-size:20px}

/* ═══ Paso 1 · ficha del producto (Carlos, 2026-09-14) ═══════════════════════════════
   En la línea de la tienda de la 5ª edición: una tarjeta con el master (1:1) a la
   izquierda y, a la derecha, título, fecha, precio, cupón, total, botón y pago seguro.
   Debajo, las condiciones en dos cajas. Sin columna lateral: el resumen está DENTRO de
   la ficha (tienda.js lo muda a .lado en los pasos 2 y 3). */
.prod--70.es-paso1{grid-template-columns:minmax(0,1fr)}
.prod--70.es-paso1 .lado{display:none}
.ficha{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,3.5vw,48px);align-items:center;padding:clamp(18px,2.4vw,28px);border-radius:var(--radio);background:var(--papel-2);border:1px solid var(--linea)}
.ficha__master{margin:0}
.ficha__master img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px}
.ficha__hueco{aspect-ratio:1;display:grid;place-items:center;border:1.5px dashed rgba(26,32,67,.22);border-radius:18px;background:#fff;color:var(--tinta-2);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;text-align:center;padding:16px}
/* el resumen, dentro de la ficha, pierde su caja y su comportamiento de acordeón móvil */
.ficha .resumen{position:static;padding:0;background:transparent;border:0}
.ficha .resumen__abrir{display:none}
.ficha .resumen__cuerpo{display:block;padding:0;margin:0;background:transparent;border:0}
.ficha .resumen__ficha{margin-bottom:18px}
.ficha .resumen__ficha img{display:none}   /* la foto es el master de la izquierda */
.ficha .resumen__ficha h1{font-size:clamp(22px,2.3vw,30px);font-weight:800;letter-spacing:-.01em;line-height:1.1;text-transform:uppercase;margin:0 0 8px}
.ficha .resumen__ficha span{font-size:14px}
.resumen__precio{margin:0;padding-top:16px;border-top:1px solid var(--linea)}
.resumen__precio span{display:block;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-2)}
.resumen__precio strong{display:block;margin-top:4px;font-size:clamp(28px,2.8vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--navy)}
.lado .resumen__precio{display:none}   /* en los pasos 2 y 3 el precio ya está en el desglose */
.ficha .resumen__cta{display:block;width:100%;text-align:center;margin-top:16px}

/* condiciones: caja blanca con la bienvenida y caja gris con fecha, hora y letra pequeña */
.condiciones{margin-top:22px;padding:clamp(20px,2.6vw,30px);border-radius:var(--radio);border:1px solid var(--linea);background:#fff;scroll-margin-top:170px}
.condiciones--gris{background:var(--papel-2);margin-top:14px}
.condiciones h2{font-size:17px;font-weight:800;letter-spacing:-.005em;margin:0 0 14px}
.condiciones p{margin:0 0 12px;font-size:14.5px;line-height:1.6;color:var(--tinta-2)}
.condiciones p:last-child{margin-bottom:0}
.condiciones strong{color:var(--tinta)}
.condiciones__dato{font-size:16px!important;color:var(--tinta)!important;margin-bottom:4px!important}
.condiciones__dato+p:not(.condiciones__dato){margin-top:16px}
.condiciones__nota{font-size:13.5px!important}
.condiciones a{color:var(--oliva);text-decoration:underline;text-underline-offset:3px}

@media (max-width:760px){
  .ficha{grid-template-columns:minmax(0,1fr);gap:20px}
  .ficha__master{max-width:420px;width:100%;justify-self:center}
}
/* La fila del descuento salía «−$0» sin cupón: el display:flex de .resumen__lineas div le
   ganaba al atributo hidden que pone tienda.js (2026-09-14). */
#resumenDescuento[hidden]{display:none}
/* «Total de inscripción por equipo» (2026-09-14): la etiqueta es larga, así que baja de
   tamaño y el importe se queda grande; si no, en la columna lateral partía en tres líneas. */
.resumen__lineas .total{align-items:center}
.resumen__lineas .total>span:first-child{font-size:14px;font-weight:700;line-height:1.3;color:var(--tinta)}
.resumen__lineas .total>span:last-child{white-space:nowrap}
/* Barra de pasos en móviles estrechos: con «Datos del equipo» se salía 18 px a 360 px. */
@media (max-width:380px){
  .pasos{gap:2px;padding:5px}
  .pasos li{gap:5px;padding:9px 4px;letter-spacing:.02em}
  .pasos li span{width:18px;height:18px;font-size:10px}
}
@media (max-width:380px){
  /* a 360 px la etiqueta del total partía en tres líneas: etiqueta encima, importe debajo */
  .resumen__lineas .total{flex-direction:column;align-items:flex-start;gap:2px}
}
/* Sin subtotal y sin cupón, el total queda primero: su raya se sumaba a la del bloque y
   salían dos seguidas. Con cupón aplicado la raya vuelve a separar descuento y total. */
#resumenDescuento[hidden]+.total{border-top:0;margin-top:0;padding-top:0}
/* El importe del total, más grande en la ficha del paso 1 (Carlos, 2026-09-14). */
.ficha .resumen__lineas .total>span:last-child{font-size:clamp(28px,2.6vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1.1}
@media (max-width:760px){
  /* en móvil no caben lado a lado: etiqueta encima, importe debajo */
  .ficha .resumen__lineas .total{flex-direction:column;align-items:flex-start;gap:4px}
}
/* Master más pequeño y siempre 1:1 (Carlos, 2026-09-14): la columna de la foto tiene tope y
   la de la compra se queda con el resto. */
.ficha{grid-template-columns:minmax(0,400px) minmax(0,1fr)}
.ficha__master{width:100%;max-width:400px}
@media (max-width:760px){
  .ficha{grid-template-columns:minmax(0,1fr)}
  .ficha__master{max-width:300px}
}
/* En tablet (≈800 px) el master de 400 px dejaba la compra en 284 px: además del tope en
   píxeles, la foto no pasa del 45 % de la ficha. */
@media (min-width:761px){
  .ficha{grid-template-columns:minmax(0,min(400px,45%)) minmax(0,1fr)}
}
/* Total (Carlos, 2026-09-14): etiqueta en dos líneas a la izquierda, importe grande a la
   derecha en la misma fila, y una raya entre el total y el botón. */
.ficha .resumen__lineas .total{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}
.ficha .resumen__lineas .total>span:first-child{font-size:15px;line-height:1.3}
.resumen__lineas{padding-bottom:16px;border-bottom:1px solid var(--linea)}
.ficha .resumen__cta{margin-top:18px}
@media (max-width:420px){
  /* en móvil estrecho el importe de 28px no deja sitio: baja un punto para seguir en fila */
  .ficha .resumen__lineas .total>span:last-child{font-size:24px}
  .ficha .resumen__lineas .total>span:first-child{font-size:14px}
}
/* Móvil: «Total de inscripción» partía en tres líneas. Cada línea de la etiqueta va sin
   cortar y los dos textos bajan lo justo para caber en fila (medido a 390 y 360 px). */
@media (max-width:420px){
  .ficha .resumen__lineas .total{gap:10px}
  .ficha .resumen__lineas .total>span:first-child{font-size:13px;white-space:nowrap}
  .ficha .resumen__lineas .total>span:last-child{font-size:23px}
}
@media (max-width:380px){
  .ficha .resumen__lineas .total{gap:8px}
  .ficha .resumen__lineas .total>span:first-child{font-size:12.5px}
  .ficha .resumen__lineas .total>span:last-child{font-size:20px}
}
/* La cifra a la IZQUIERDA y la etiqueta en dos líneas pegada a su derecha (Carlos,
   2026-09-14). row-reverse sin tocar el HTML: lectores de pantalla siguen leyendo
   «Total de inscripción por equipo · $30,000 MXN». */
.ficha .resumen__lineas .total{flex-direction:row-reverse;justify-content:flex-end}
/* Ficha del paso 1, todo en una línea (Carlos, 2026-09-14): título de una línea con
   «Grupo Anderson's» en oliva, fecha · campo en una línea y la etiqueta del total sin
   partir. El título se ajusta al ancho de la columna para no desbordar. */
.resumen__ficha h1 span{color:var(--oliva)}
@media (min-width:761px){
  .ficha .resumen__ficha h1{white-space:nowrap;font-size:clamp(16px,1.95vw,28px)}
  .ficha .resumen__ficha figcaption>span{display:inline}
  .ficha .resumen__ficha .es-sede::before{content:"·";display:inline-block;margin:0 .45em;font-weight:400;color:var(--tinta-2)}
}
/* La etiqueta del total en una línea sólo cuando hay sitio: en tablet (≈800 px) no cabía
   junto a la cifra y desbordaba la ficha; ahí conserva sus dos líneas. */
@media (min-width:961px){
  .ficha .resumen__lineas .total>span:first-child{white-space:nowrap}
  .ficha .resumen__lineas .total>span:first-child br{display:none}
}
/* El span del título heredaba .resumen__ficha span{display:block;font-size:12px}: salía
   «GRUPO ANDERSON'S» pequeño y debajo. Vuelve a ser parte del título, sólo con otro color. */
.resumen__ficha h1 span{display:inline;font-size:inherit;line-height:inherit;margin:0;color:var(--oliva)}
/* El punto entre fecha y campo: Axiforma lo dibuja a ras de línea (como en .pmed), así que
   se sube, y el hueco lo da el espacio entre los dos span, no un margen doble. */
@media (min-width:761px){
  .ficha .resumen__ficha .es-sede::before{vertical-align:.28em;font-size:.8em;line-height:0;margin:0 .35em 0 0}
}
/* .ficha .resumen__ficha span{font-size:14px} ganaba por especificidad al span del título. */
.ficha .resumen__ficha h1 span,.lado .resumen__ficha h1 span{display:inline;font-size:inherit;line-height:inherit;margin:0}
/* ── Fecha y campo en una cajita (Carlos, 2026-09-14): fondo blanco, borde suave, icono de
   calendario y de ubicación en oliva, separados por una raya fina. En móvil, uno debajo
   del otro dentro de la misma caja. ── */
.ficha .resumen__cuando{display:inline-flex;align-items:center;margin-top:14px;padding:11px 18px;background:#fff;border:1px solid var(--linea);border-radius:14px;box-shadow:0 6px 18px rgba(26,32,67,.06)}
.ficha .resumen__cuando span{display:inline-flex;align-items:center;gap:9px;margin:0;font-size:14px;line-height:1.3;color:var(--tinta)}
.ficha .resumen__cuando span::before{content:"";width:17px;height:17px;flex:0 0 auto;margin:0;vertical-align:0;font-size:inherit;line-height:0;background:var(--oliva);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.ficha .resumen__cuando span:first-child{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2.5'/%3E%3Cpath d='M8 3v4M16 3v4M3 10h18'/%3E%3C/svg%3E")}
.ficha .resumen__cuando .es-sede{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E");margin-left:16px;padding-left:16px;border-left:1px solid var(--linea);font-weight:700}
@media (max-width:760px){
  .ficha .resumen__cuando{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 16px}
  .ficha .resumen__cuando .es-sede{margin-left:0;padding-left:0;border-left:0}
}
/* La regla del «·» entre fecha y campo (.ficha .resumen__ficha .es-sede::before) ganaba al
   icono de ubicación: con la cajita, ese separador ya es la raya vertical. */
.ficha .resumen__cuando .es-sede::before{content:"";vertical-align:0;font-size:inherit;margin:0;line-height:0}
/* En tablet (761–960 px) la cajita en fila partía fecha y campo en dos líneas cada uno:
   ahí también va uno debajo del otro, como en móvil. */
@media (max-width:960px){
  .ficha .resumen__cuando{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 16px}
  .ficha .resumen__cuando .es-sede{margin-left:0;padding-left:0;border-left:0}
  .ficha .resumen__cuando span{white-space:nowrap}
}
/* «Nombre del equipo» como título, igual que «Los tres jugadores» (Carlos, 2026-09-14): negro,
   sin versalitas ni espaciado. Sigue siendo la etiqueta del campo (accesibilidad). */
.bloque--form .campo.campo--titulo>span{font-size:16px;font-weight:700;letter-spacing:-.01em;text-transform:none;line-height:1.08;color:var(--tinta);margin:0 0 8px}
/* Datos y pago en la misma página (Carlos, 2026-09-14): la tarjeta va debajo de los jugadores,
   con su título «Pago» como los demás bloques. Sin llaves de Stripe el hueco no reserva los
   220 px del Payment Element: sólo se ve el aviso. */
#paso2 .stripe{margin-top:4px}
#paso2 .stripe__elemento:empty{min-height:0;margin:0}
#paso2 .stripe .error--pago{margin-top:0}
/* «(opcional)» junto al título del campo: pequeño, sin negrita y en gris. */
.campo--titulo>span small{font-size:12px;font-weight:500;letter-spacing:0;color:var(--tinta-2)}
/* «Procesado por stripe · Cifrado…»: con display:flex cada trozo de texto era una columna y en
   móvil se partía en tres. Va como una línea normal con el escudo delante. */
.stripe__pie{display:block;line-height:1.5}
.stripe__pie svg{display:inline-block;vertical-align:-3px;margin-right:6px}
/* Sin botón en el resumen lateral (Carlos, 2026-09-14): en el paso 2 se paga con el botón de
   debajo de la tarjeta. Es el mismo nodo que el «Siguiente» de la ficha, así que se oculta
   sólo cuando vive en .lado; la barra de la app en móvil lo sigue usando por JS. */
.lado .resumen__cta{display:none}
/* Sin botón en el lateral, la raya bajo el total y la de encima de los logos salían seguidas. */
.lado .resumen__lineas{border-bottom:0;padding-bottom:0}

/* ── Tarjeta del jugador compacta (Carlos, 2026-09-14): la etiqueta va DENTRO del campo,
   arriba y pequeña, y la tarjeta pierde relleno y separaciones. Mismos campos y validación. ── */
.bloque--form .jug{padding:14px 16px}
.jug__cab{margin-bottom:10px}
.jug__campos{gap:10px}
.jug .campo{position:relative;gap:0;margin-bottom:0}
.jug .campo>span{position:absolute;left:15px;top:9px;z-index:1;font-size:9.5px;letter-spacing:.1em;line-height:1;pointer-events:none}
.bloque--form .jug .campo input{padding:24px 14px 8px;font-size:15px}
.jug .campo .error{margin-top:4px}

/* ── Página de gracias (2026-09-14): la misma escena del comprobante (foto con velo verde y
   el recibo blanco encima), a página propia, más el «qué sigue». ── */
.gracias{padding-bottom:80px}
.gracias__caja{max-width:860px;margin:24px auto 0;width:calc(100% - 48px)}
.gracias__titulo{font-size:clamp(26px,3.4vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1.1;color:#fff;margin:0 0 10px;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.gracias__siguen{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:10px;text-align:left}
.gracias__siguen li{position:relative;padding:12px 16px 12px 44px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.92);font-size:14px;line-height:1.5}
.gracias__siguen li::before{content:"";position:absolute;left:16px;top:15px;width:16px;height:16px;background:#CFE0A6;-webkit-mask:var(--tic) center/13px no-repeat;mask:var(--tic) center/13px no-repeat}
.gracias__siguen strong{color:#fff}
.gracias__siguen a{color:#CFE0A6;text-decoration:underline;text-underline-offset:3px;word-break:break-word}
.gracias.es-fallo .exito__icono,.gracias__caja.es-fallo .exito__icono{display:none}
@media (max-width:600px){.gracias__caja{width:calc(100% - 32px);margin-top:12px}}
/* Página de gracias a sangre (Carlos, 2026-09-14): la foto con velo ya no es una tarjeta, cubre
   todo el ancho y el alto de la pantalla, empezando detrás del menú. */
.pagina.gracias{padding:0}
.gracias__caja{max-width:none;width:100%;margin:0;border-radius:0;min-height:100dvh;display:grid;align-items:center;padding:clamp(120px,15vh,160px) 0 clamp(64px,9vh,100px)}
@media (max-width:600px){.gracias__caja{width:100%;margin:0;padding:104px 0 120px}}
/* Logos de pago del bloque de la tarjeta, más separados (Carlos, 2026-09-14): 26 px → 44 px en
   escritorio, sin bajar de 28 px en móvil para que sigan en una fila. */
#paso2 .seguro--pago{gap:clamp(28px,4vw,44px)}
/* Tarjetas de jugador en móvil estrecho: medían 344 px a 360 y a 320 px y sacaban scroll
   lateral (ya pasaba antes). La cuadrícula no dejaba encoger sus hijos por debajo del contenido. */
.jugadores{grid-template-columns:minmax(0,1fr)}
.jug,.jug__campos .campo,.jug .campo input{min-width:0}
@media (max-width:380px){
  .jug__cab{flex-wrap:wrap;row-gap:8px}
  .jug__cap{order:3}
}
/* Resumen lateral: el master 1:1 (placeholder) en lugar de la foto del campo (Carlos, 2026-09-14).
   En la ficha del paso 1 no se repite: el master ya está a la izquierda. */
.resumen__master{width:100%;aspect-ratio:1;margin:0 0 12px;padding:12px;font-size:11px;border-radius:12px}
.ficha .resumen__master{display:none}
/* El master ya es imagen (2026-09-15): mismas esquinas que el marco, sin el relleno del rótulo. */
.ficha__img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:18px}
img.resumen__master{display:block;height:auto;padding:0;object-fit:cover}
/* Sin el nombre del torneo en el resumen lateral (Carlos, 2026-09-14). Es el mismo h1 que en la
   ficha del paso 1, donde sí se ve: se oculta sólo cuando el resumen vive en .lado. */
.lado .resumen__ficha h1{display:none}

/* ── Barra inferior del móvil: un solo botón «Inscribir a mi equipo» (Carlos, 2026-09-14).
   Sustituye a los cinco accesos (Inicio, Blog, Inscribirse, Galería, Prensa). Mismo verde que
   «Registrarse» del escritorio, con contraste suficiente para texto blanco. ── */
@media (max-width:860px){
  .appbar{grid-template-columns:1fr;height:auto;padding:7px}
  .appbar .appbar__cta{display:flex;align-items:center;justify-content:center;height:52px;padding:0 18px;border-radius:14px;
    background:#6B7934;color:#fff;font:800 14px/1 var(--fuente-menu);letter-spacing:.08em;text-transform:uppercase;
    box-shadow:0 6px 18px rgba(10,20,6,.35);transition:transform .2s,background .25s}
  .appbar .appbar__cta:active{transform:scale(.97);background:#56622A}
  .appbar .appbar__cta svg{display:none}
  body{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}

/* ── Tienda · paso 1 en móvil (Carlos, 2026-09-14): título centrado y sin «Siguiente» en la
   ficha; el avance lo hace la barra inferior, que en este paso dice «Siguiente» (tienda.js).
   Sin el botón, la raya bajo el total y la de encima de los logos salían seguidas. ── */
@media (max-width:860px){
  .ficha .resumen__ficha h1{text-align:center}
  .ficha .resumen__cta{display:none}
  .ficha .resumen__lineas{border-bottom:0;padding-bottom:0}
}
/* Tienda · paso 1 en móvil: el total en columna y centrado (Carlos, 2026-09-14): la cifra arriba,
   grande, y «Total de inscripción por equipo» debajo en una línea. column-reverse porque en el
   HTML la etiqueta va antes que la cifra. */
@media (max-width:860px){
  .ficha .resumen__lineas .total{flex-direction:column-reverse;align-items:center;justify-content:center;gap:4px;text-align:center}
  .ficha .resumen__lineas .total>span:last-child{font-size:clamp(30px,9vw,38px)}
  .ficha .resumen__lineas .total>span:first-child{font-size:14px;white-space:nowrap}
  .ficha .resumen__lineas .total>span:first-child br{display:none}
}
/* Tienda · paso 1 en móvil: las dos cajas de condiciones centradas (Carlos, 2026-09-14). */
@media (max-width:860px){
  .condiciones{text-align:center}
}
/* Móvil: «Grupo Anderson's» siempre en su propia línea bajo «6º Torneo de Golf»; en Safari (sin
   text-wrap:pretty) a 414 px quedaba «Anderson's» sola al final (Carlos, 2026-09-14). */
@media (max-width:860px){
  .ficha .resumen__ficha h1 span{display:block}
}
/* Tienda en móvil (paso 2): hueco blanco bajo «Resumen $30,000 MXN». La columna lateral heredaba
   aspect-ratio:16/10 (regla antigua de .prod__main,.lado) y medía ~214 px aunque el resumen plegado
   ocupe una línea (Carlos, 2026-09-14). Sólo móvil: en escritorio la columna va aparte. */
@media (max-width:960px){
  .lado{aspect-ratio:auto}
}

/* Avisos de lo que falta: arriba a la derecha, bajo el menú, entrando desde la derecha
   (Carlos, 2026-09-14). Antes salían centrados bajo la barra de pasos. tienda.js fija `top`. */
.aviso{left:auto;right:clamp(12px,2vw,24px);width:auto;max-width:min(380px,calc(100vw - 24px));text-align:left;transform:translateX(24px)}
.aviso.is-visible{transform:none}
@media (max-width:860px){
  .aviso{left:12px;right:12px;max-width:none}
}

/* ── Tienda en móvil · el resumen en la barra inferior (Carlos, 2026-09-14). En «Datos y pago»
   tienda.js muda #resumen a .appbar__resumen: una fila «Resumen · total» sobre «Pagar», que al
   tocarla despliega el resumen HACIA ARRIBA (column-reverse: el cuerpo va encima de la fila).
   Arriba de la página ya no queda la columna vacía. ── */
.appbar__resumen:empty{display:none}
@media (max-width:860px){
  .appbar{gap:6px}
  .appbar__resumen .resumen{position:static;display:flex;flex-direction:column-reverse;padding:0;background:transparent;border:0}
  .appbar__resumen .resumen__abrir{display:flex;padding:8px 12px 6px;border:0;border-radius:12px;background:transparent;color:#fff;font:700 13px/1 var(--fuente-menu);letter-spacing:.06em;text-transform:uppercase}
  .appbar__resumen .resumen__abrir strong{color:#CFE0A6;font-size:15px;letter-spacing:0;text-transform:none}
  .appbar__resumen .resumen__abrir::after{background:#fff;transform:rotate(180deg)}   /* flecha hacia arriba: abre hacia arriba */
  .appbar__resumen .resumen.is-abierto .resumen__abrir::after{transform:none}
  .appbar__resumen .resumen__cuerpo{max-height:min(60dvh,560px);overflow:auto;overscroll-behavior:contain;margin:0 0 6px;padding:16px;border-radius:14px;border:0;background:var(--papel-2);color:var(--tinta)}
  .appbar__resumen .resumen__cuerpo:not(.is-abierto){}
  .lado:empty{display:none}
  body:has(.appbar__resumen .resumen){padding-bottom:calc(122px + env(safe-area-inset-bottom))}
}
/* El resumen desplegado en la barra, compacto y como en la columna lateral: sin título ni botón
   propio (el de «Pagar» ya está en la barra) y el master en miniatura (Carlos, 2026-09-14). */
@media (max-width:860px){
  .appbar__resumen .resumen__ficha h1,.appbar__resumen .resumen__cta{display:none}
  .appbar__resumen .resumen__master{width:150px;max-width:150px;margin:0 auto 12px;font-size:9px;letter-spacing:.14em;padding:8px}
  .appbar__resumen .resumen__ficha{text-align:center;margin-bottom:6px}
  .appbar__resumen .resumen__ficha span{font-size:13px}
  .appbar__resumen .resumen__lineas{font-size:13px;margin-top:12px;border-bottom:0;padding-bottom:0}
  .appbar__resumen .resumen__lineas .total{font-size:17px}
  .appbar__resumen .resumen__lineas .total>span:first-child{font-size:13px}
  .appbar__resumen .seguro{margin-top:12px}
}

/* ── Barra del móvil en «Datos y pago»: UNA fila (Carlos, 2026-09-14; el precio salía dos veces).
   Izquierda: el total y «Ver resumen ˄»; derecha: «Pagar». Al tocar el total, el resumen se abre
   como una hoja flotando encima de la barra, a todo su ancho. ── */
@media (max-width:860px){
  .appbar:has(.appbar__resumen .resumen){grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 7px 7px 10px}
  .appbar:has(.appbar__resumen .resumen) .appbar__cta{height:52px;padding:0 34px}
  .appbar__resumen .resumen__abrir{flex-direction:column-reverse;align-items:flex-start;justify-content:center;gap:4px;width:100%;padding:4px 6px;text-align:left}
  .appbar__resumen .resumen__abrir::after{display:none}
  .appbar__resumen .resumen__abrir strong{color:#fff;font-size:18px;font-weight:800;letter-spacing:-.01em;line-height:1}
  .appbar__resumen .resumen__abrir span{display:inline-flex;align-items:center;gap:6px;color:#CFE0A6;font:700 11px/1 var(--fuente-menu);letter-spacing:.1em;text-transform:uppercase}
  .appbar__resumen .resumen__abrir span::after{content:"";width:12px;height:12px;background:currentColor;-webkit-mask:var(--flecha-abajo) center/11px no-repeat;mask:var(--flecha-abajo) center/11px no-repeat;transform:rotate(180deg);transition:transform .25s}
  .appbar__resumen .resumen.is-abierto .resumen__abrir span::after{transform:none}
  /* la hoja: flota sobre la barra (la barra es fixed, así que es su referencia) */
  .appbar__resumen .resumen__cuerpo{position:absolute;left:0;right:0;bottom:calc(100% + 8px);margin:0;box-shadow:0 -12px 40px rgba(10,14,40,.25);border:1px solid var(--linea);border-radius:18px}
  body:has(.appbar__resumen .resumen){padding-bottom:calc(86px + env(safe-area-inset-bottom))}
}

/* ── Ficha · título en tres líneas (Carlos, 2026-09-15), en la línea de la tienda de la 5ª pero
   con jerarquía: el nombre grande, «Inscripción por equipo» debajo más pequeña y «Preventa VIP»
   como etiqueta oliva. Va al final y con .ficha__titulo porque las reglas de arriba ponen los
   span del h1 en línea, a tamaño heredado y en oliva, y el h1 en nowrap desde 761 px. ── */
.ficha .resumen__ficha h1.ficha__titulo{white-space:normal;text-wrap:balance;font-size:clamp(21px,2.1vw,30px);font-weight:800;line-height:1.08;letter-spacing:-.01em;text-transform:uppercase;color:var(--tinta);margin:0 0 16px}
.ficha .resumen__ficha h1.ficha__titulo span{display:block;margin:0;line-height:inherit;color:inherit;font-size:inherit}
.ficha .resumen__ficha h1.ficha__titulo b{font-weight:inherit}
.ficha .resumen__ficha h1.ficha__titulo .ficha__titulo-l2{margin-top:.3em;font-size:.62em;font-weight:700;letter-spacing:.06em;color:var(--tinta-2)}
.ficha .resumen__ficha h1.ficha__titulo .ficha__titulo-l3{display:inline-block;margin-top:.7em;padding:.5em 1.05em .42em;border-radius:999px;font-size:.46em;font-weight:800;letter-spacing:.16em;line-height:1;color:#fff;background:var(--oliva)}

/* ── Resumen móvil desplegado: el master a la izquierda y fecha + campo a la derecha (Carlos,
   2026-09-15). Antes iban apilados y centrados, y la miniatura dejaba mucho aire a los lados. ── */
@media (max-width:860px){
  .appbar__resumen .resumen__ficha{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:4px;text-align:left}
  .appbar__resumen .resumen__master{width:112px;max-width:112px;margin:0;border-radius:12px}
  .appbar__resumen .resumen__ficha figcaption{margin:0;min-width:0}
  .appbar__resumen .resumen__ficha figcaption span{display:block;margin:0;text-align:left}
  .appbar__resumen .resumen__ficha figcaption span+span{margin-top:4px}
}
/* A 320 px «Cancún» quedaba sola en la última línea: reparto equilibrado y miniatura menor en
   pantallas estrechas (Carlos no quiere palabras viudas). */
@media (max-width:860px){
  .appbar__resumen .resumen__ficha figcaption span{text-wrap:balance}
}
@media (max-width:360px){
  .appbar__resumen .resumen__ficha{grid-template-columns:92px minmax(0,1fr);gap:12px}
  .appbar__resumen .resumen__master{width:92px;max-width:92px}
}
