/* MSV Reservas · ventana «Antes de continuar» (casos no aptos del protocolo).
   Se usa en la reserva y en las páginas públicas (botones que llevan al protocolo). */

html.apt-lock { overflow: hidden; }
.apt-modal { width: min(580px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 0; border-radius: 16px; background: #fbfaf8; color: var(--f-ink, #161819); box-shadow: 0 34px 90px -24px rgba(0, 0, 0, 0.5); overflow: auto; overscroll-behavior: contain; }
.apt-modal::backdrop { background: rgba(18, 19, 20, 0.58); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.apt-modal[open] { animation: apt-in 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); }
.apt-modal__inner { position: relative; padding: clamp(26px, 3.4vw, 40px); }
.apt-modal__inner[hidden] { display: none; }
.apt-modal__close { position: absolute; top: 14px; right: 14px; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #ecebe7; color: var(--f-ink, #161819); cursor: pointer; }
.apt-modal__close .icon { width: 20px; height: 20px; }
.apt-modal__close:hover { background: #e0dfda; }
.apt-modal__badge { display: inline-block; margin: 0 0 14px; padding: 5px 10px; border-radius: 6px; background: #a3341f; color: #fff; font-family: var(--f-mono, monospace); font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.apt-modal__title { margin: 0 52px 12px 0; font-family: var(--f-display, sans-serif); font-weight: 800; font-size: clamp(28px, 3vw, 38px); line-height: 1.04; letter-spacing: -0.04em; outline: none; }
.apt-modal__lead { margin: 0 0 14px; font-size: clamp(16px, 1.4vw, 18px); line-height: 1.45; color: #3a3b3e; }
.apt-modal__step { margin: 18px 0 8px; font-size: 14px; font-weight: 600; color: #3a3b3e; }
.aptitud__list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.aptitud__list li { display: grid; grid-template-columns: 26px 1fr; gap: 12px; align-items: start; font-size: 15.5px; line-height: 1.4; color: #2b2c2f; }
.aptitud__x { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #fbe7e2; color: #a3341f; }
.aptitud__x .icon { width: 14px; height: 14px; stroke-width: 2.6; }
.aptitud__check { position: relative; display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 14px 16px; border: 2px solid var(--f-ink, #161819); border-radius: 10px; background: #fff; font-size: 16.5px; line-height: 1.35; cursor: pointer; transition: border-color 0.15s, background-color 0.15s; }
.aptitud__check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.aptitud__box { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border: 2px solid var(--f-ink, #161819); border-radius: 7px; background: #fff; color: #fff; transition: background-color 0.15s, border-color 0.15s; }
.aptitud__box .icon { width: 18px; height: 18px; stroke-width: 2.8; opacity: 0; }
.aptitud__check:has(input:checked) { border-color: #2f8a57; background: #eef7f1; }
.aptitud__check:has(input:checked) .aptitud__box { background: #2f8a57; border-color: #2f8a57; }
.aptitud__check:has(input:checked) .aptitud__box .icon { opacity: 1; }
.aptitud__check:has(input:focus-visible) { outline: 3px solid #8fd3a8; outline-offset: 2px; }
.apt-modal:has(.field-error:not(:empty)) .aptitud__check:not(:has(input:checked)) { border-color: #b3261e; background: #fdf3f1; }
.aptitud__check.is-shake { animation: apt-shake 0.4s ease; }
.apt-modal .field-error { margin: 8px 0 0; }
.apt-modal .field-error:empty { display: none; }
.apt-modal__ok { margin-top: 18px; }
.apt-modal:not(:has(input[name="aptitud"]:checked)) .apt-modal__ok { background: #a8a9ac; color: #f4f4f4; }
.apt-modal__no { display: block; width: 100%; margin: 12px 0 0; padding: 12px; border: 0; background: none; font: inherit; font-size: 15.5px; color: #3a3b3e; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.apt-modal__no:hover { color: var(--f-ink, #161819); }
@keyframes apt-in { from { opacity: 0; transform: translateY(12px) scale(0.98); } to { opacity: 1; transform: none; } }
@keyframes apt-up { from { transform: translateY(100%); } to { transform: none; } }
@keyframes apt-shake { 0%, 100% { transform: none; } 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } }
@media (max-width: 600px) {
	.apt-modal { width: 100%; max-height: 92dvh; margin: auto 0 0; border-radius: 18px 18px 0 0; }
	.apt-modal[open] { animation: apt-up 0.32s cubic-bezier(0.2, 0.8, 0.2, 1); }
	.apt-modal__inner { padding: 24px 20px calc(20px + env(safe-area-inset-bottom)); }
	.apt-modal__title { font-size: 27px; }
	.aptitud__list li { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .apt-modal[open], .aptitud__check.is-shake { animation: none; } }

/* Botones y aviso dentro de la ventana (en las páginas públicas no se carga flow.css) */
.apt-modal .fbtn { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 56px; padding: 0 26px; border-radius: 7px; border: 1px solid transparent; font: 600 18px/1.15 var(--f-body, "Hanken Grotesk", sans-serif); text-decoration: none; cursor: pointer; transition: background-color 0.18s; }
.apt-modal .fbtn .icon { width: 22px; height: 22px; }
.apt-modal .fbtn--dark { background: #121314; color: #fff; }
.apt-modal .fbtn--dark:hover { background: #2b2e31; }
.apt-modal .fbtn--lg { min-height: 72px; font-size: clamp(18px, 1.6vw, 24px); }
.apt-modal .fbtn--block { width: 100%; }
.apt-modal .field-error { font-size: 15px; color: #b3261e; }
