/**
 * Matrícula — estilo calcado del checkout real de producción (ver
 * capturas que mandó el cliente): tarjetas de modalidad en rejilla,
 * calendario de reserva de prácticas, panel resumen. Mismos tokens de
 * marca que campus.css pero MENOS redondeado y más "moderno" (bordes
 * finos, esquinas de 8-10px, nada de pastillas gigantes) tal y como pidió
 * el cliente explícitamente.
 */
.bp-mat-wrap{max-width:1080px;margin:0 auto;padding:40px 20px 72px}
.bp-mat-head{text-align:center;margin-bottom:32px}
.bp-mat-eyebrow{display:inline-block;color:var(--bp-ac-gold);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.bp-mat-head h1{margin:0 0 10px;color:var(--bp-ac-navy);font-size:clamp(24px,3.4vw,34px);line-height:1.2;letter-spacing:-.02em}
.bp-mat-head p{margin:0 auto;max-width:620px;color:var(--bp-ac-muted);font-size:15px;line-height:1.6}

/* Tabs de curso (LN/PNB/PER/PY/CY) */
.bp-mat-curso-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 32px}
.bp-mat-curso-tabs a{display:inline-block;padding:9px 18px;border:1px solid var(--bp-ac-line);border-radius:8px;background:#fff;color:var(--bp-ac-navy);font-weight:700;font-size:14px;text-decoration:none;transition:border-color .15s,background .15s}
.bp-mat-curso-tabs a:hover{border-color:var(--bp-ac-gold)}
.bp-mat-curso-tabs a.is-active{background:var(--bp-ac-navy);border-color:var(--bp-ac-navy);color:#fff}

/* Rejilla de tarjetas de modalidad */
.bp-mat-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:8px}
@media (max-width:700px){.bp-mat-cards{grid-template-columns:1fr}}
.bp-mat-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--bp-ac-line);border-radius:10px;background:#fff;padding:24px;box-shadow:0 2px 10px rgba(13,27,42,.04);transition:border-color .15s,box-shadow .15s}
.bp-mat-card:hover{border-color:var(--bp-ac-gold);box-shadow:0 8px 22px rgba(13,27,42,.08)}
.bp-mat-card.is-current{border-color:var(--bp-ac-gold);border-width:2px;padding:23px;box-shadow:0 10px 26px rgba(210,163,58,.18)}
.bp-mat-card-badges{position:absolute;top:14px;right:16px;display:flex;gap:6px}
.bp-mat-card-badge{background:#FFF2C9;color:var(--bp-ac-navy);font-size:11px;font-weight:800;letter-spacing:.03em;padding:4px 9px;border-radius:6px;text-transform:uppercase;white-space:nowrap}
.bp-mat-card-badge.is-practicas{background:#E4EEF6;color:var(--bp-ac-blue)}
.bp-mat-card h3{margin:0 90px 10px 0;color:var(--bp-ac-navy);font-size:18px;line-height:1.3}
@media (max-width:420px){.bp-mat-card-badges{position:static;margin-bottom:10px}.bp-mat-card h3{margin-right:0}}
.bp-mat-price-row{margin-bottom:14px}
.bp-mat-price-old{color:var(--bp-ac-muted);text-decoration:line-through;font-size:14px;margin-right:8px}
.bp-mat-price{color:var(--bp-ac-navy);font-size:27px;font-weight:800}
.bp-mat-features{list-style:none;margin:0 0 20px;padding:0;flex:1}
.bp-mat-features li{position:relative;padding:7px 0 7px 24px;border-bottom:1px solid var(--bp-ac-line);color:#2b3a4c;font-size:14px;line-height:1.4}
.bp-mat-features li:last-child{border-bottom:none}
.bp-mat-features li::before{content:"✓";position:absolute;left:0;top:7px;color:var(--bp-ac-gold);font-weight:800}
.bp-mat-features .is-empty{color:var(--bp-ac-muted)}
.bp-mat-features .is-empty::before{content:"–";color:var(--bp-ac-muted)}
.bp-mat-cta{display:block;text-align:center;background:var(--bp-ac-gold);color:var(--bp-ac-navy);font-weight:800;font-size:14px;padding:12px 18px;border-radius:8px;text-decoration:none;border:none;cursor:pointer;transition:background .15s,transform .1s}
.bp-mat-cta:hover{background:#c0922f}
.bp-mat-cta:active{transform:translateY(1px)}
.bp-mat-note{text-align:center;color:var(--bp-ac-muted);font-size:12.5px;margin:22px 0 0}

/* Paso 2: reserva de prácticas */
.bp-mat-booking{margin-top:56px;padding-top:40px;border-top:1px solid var(--bp-ac-line)}
.bp-mat-booking-eyebrow{color:var(--bp-ac-gold);font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.bp-mat-booking h2{margin:6px 0 24px;color:var(--bp-ac-navy);font-size:clamp(20px,2.8vw,28px);letter-spacing:-.02em}
.bp-mat-booking-grid{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start}
@media (max-width:860px){.bp-mat-booking-grid{grid-template-columns:1fr}}

/* Asistente de 4 pasos (resumen / fechas / pago / datos) */
.bp-mat-wizard{max-width:620px;margin:0 auto}
.bp-mat-wizard-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:28px}
.bp-mat-wizard-step{color:var(--bp-ac-muted);font-size:12px;font-weight:800;padding:7px 12px;border-radius:999px;background:#F5F7FA}
.bp-mat-wizard-step.is-active{background:var(--bp-ac-navy);color:#fff}
.bp-mat-stage h2{margin:0 0 16px;color:var(--bp-ac-navy);font-size:clamp(19px,2.6vw,24px);letter-spacing:-.02em;text-align:center}
.bp-mat-resume-card{border:1px solid var(--bp-ac-line);border-radius:10px;background:#fff;padding:20px;margin-bottom:18px}
.bp-mat-resume-card p{color:#2b3a4c;font-size:14px;line-height:1.6;margin:10px 0}
.bp-mat-resume-note{color:var(--bp-ac-muted)!important;font-size:12.5px!important}
.bp-mat-total-row{border-top:1px solid var(--bp-ac-line);margin-top:14px!important;padding-top:14px;font-size:14px;color:var(--bp-ac-navy)}
.bp-mat-total-row strong{font-size:17px}
.bp-mat-pay-methods-note{color:var(--bp-ac-muted);font-size:12.5px;line-height:1.6;text-align:center;margin:16px 0}
.bp-mat-pay-methods-label{font-size:13px;font-weight:700;color:var(--bp-ac-navy);margin:18px 0 8px}
.bp-mat-pay-option-compact{display:inline-block;width:calc(50% - 5px);box-sizing:border-box;text-align:center;padding:10px 8px}
.bp-mat-pay-option-compact:first-of-type{margin-right:10px}
.bp-mat-pay-option-compact small{margin-left:0;text-align:center}
.bp-mat-wizard-nav{display:flex;gap:10px;margin-top:18px}
.bp-mat-wizard-nav .bp-mat-secondary,.bp-mat-wizard-nav .bp-mat-submit{margin-top:0}

.bp-mat-fecha-contador{margin:0 0 6px;color:var(--bp-ac-muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.bp-mat-link-atras{border:none;background:none;padding:0;color:var(--bp-ac-blue);font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;cursor:pointer;text-decoration:underline}

.bp-mat-tipo-block{border:1px solid var(--bp-ac-line);border-radius:10px;padding:20px;margin-bottom:18px;background:#fff}
.bp-mat-tipo-block h4{margin:0 0 4px;color:var(--bp-ac-navy);font-size:15px}
.bp-mat-tipo-block .bp-mat-tipo-status{margin:0 0 14px;color:var(--bp-ac-muted);font-size:13px}
.bp-mat-tipo-block .bp-mat-tipo-status.is-chosen{color:#1e7a3c;font-weight:700}

.bp-mat-cal-month{margin-bottom:14px}
.bp-mat-cal-month-label{color:var(--bp-ac-navy);font-weight:800;font-size:13px;text-transform:capitalize;margin:0 0 8px}
.bp-mat-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.bp-mat-cal-dow{text-align:center;color:var(--bp-ac-muted);font-size:11px;font-weight:700;text-transform:uppercase;padding-bottom:4px}
.bp-mat-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:7px;font-size:13px;color:#b9c2cd;background:#F5F7FA}
.bp-mat-day.is-pad{background:transparent}
.bp-mat-day.is-open{background:#fff;border:1px solid var(--bp-ac-line);color:var(--bp-ac-navy);font-weight:700;cursor:pointer}
.bp-mat-day.is-open:hover{border-color:var(--bp-ac-gold)}
.bp-mat-day.is-open small{font-size:9px;color:var(--bp-ac-muted);font-weight:600}
.bp-mat-day.is-selected{background:var(--bp-ac-navy);border-color:var(--bp-ac-navy);color:#fff}
.bp-mat-day.is-selected small{color:#FFE9B3}
.bp-mat-tipo-empty{color:var(--bp-ac-muted);font-size:13px}

.bp-mat-summary{position:sticky;top:20px;border:1px solid var(--bp-ac-line);border-radius:10px;background:#fff;padding:22px}
.bp-mat-summary-course{display:inline-block;background:#FFF2C9;color:var(--bp-ac-navy);font-size:12px;font-weight:800;padding:4px 10px;border-radius:6px;margin-bottom:12px}
.bp-mat-summary h3{margin:0 0 14px;color:var(--bp-ac-navy);font-size:16px}
.bp-mat-summary-list{list-style:none;margin:0 0 14px;padding:0}
.bp-mat-summary-list li{padding:10px 0;border-bottom:1px solid var(--bp-ac-line);font-size:13.5px}
.bp-mat-summary-list li:last-child{border-bottom:none}
.bp-mat-summary-list strong{display:block;color:var(--bp-ac-navy)}
.bp-mat-summary-list span{color:var(--bp-ac-muted);font-size:12.5px}
.bp-mat-summary-list span.is-chosen{color:#1e7a3c;font-weight:700}
.bp-mat-progress{color:var(--bp-ac-muted);font-size:12.5px;margin:0 0 16px}

.bp-mat-pay-option{display:block;position:relative;border:1px solid var(--bp-ac-line);border-radius:8px;padding:11px 12px;margin-bottom:8px;cursor:pointer;font-size:13.5px;color:var(--bp-ac-navy)}
.bp-mat-pay-option:has(input:checked){border-color:var(--bp-ac-gold);background:#FFFBF0}
.bp-mat-pay-option input{margin-right:8px}
.bp-mat-pay-option small{display:block;color:var(--bp-ac-muted);margin-left:21px;font-size:12px}

.bp-mat-account-fields{margin:16px 0}
.bp-mat-account-fields label{display:block;font-size:12.5px;font-weight:700;color:var(--bp-ac-navy);margin:10px 0 4px}
.bp-mat-account-fields input{width:100%;border:1px solid var(--bp-ac-line);border-radius:8px;padding:10px 11px;font-size:14px;box-sizing:border-box}
.bp-mat-account-note{color:var(--bp-ac-muted);font-size:12px;margin:8px 0 0}
.bp-mat-account-note a{color:var(--bp-ac-blue)}

.bp-mat-submit{display:block;width:100%;text-align:center;background:var(--bp-ac-gold);color:var(--bp-ac-navy);font-weight:800;font-size:14.5px;padding:13px 18px;border-radius:8px;border:none;cursor:pointer;margin-top:6px}
.bp-mat-submit:hover{background:#c0922f}
.bp-mat-secondary{display:block;width:100%;text-align:center;background:#fff;color:var(--bp-ac-navy);font-weight:700;font-size:13px;padding:11px 16px;border-radius:8px;border:1px solid var(--bp-ac-line);cursor:pointer;margin-top:10px}
.bp-mat-secondary small{display:block;color:var(--bp-ac-muted);font-weight:500;font-size:11.5px;margin-top:2px}
.bp-mat-secondary:hover{border-color:var(--bp-ac-gold)}

.bp-mat-error{border:1px solid #e4b4ac;background:#FDF1EF;color:#8a3327;border-radius:8px;padding:12px 14px;font-size:13.5px;margin-bottom:20px}
.bp-mat-error a{color:#8a3327;font-weight:700}
.bp-pay-ico{width:28px;height:20px;vertical-align:middle;margin:0 4px 0 2px;color:#164f72;flex:0 0 auto}
/* Tarjeta / Bizum: dos botones pequeños, uno al lado del otro; todo el botón es clicable */
label.bp-mat-pay-option.bp-mat-pay-option-compact{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;width:auto;min-width:130px;margin:0 8px 8px 0!important;padding:10px 16px;font-size:14px!important;font-weight:700;text-align:center;border:2px solid var(--bp-ac-line);border-radius:8px;user-select:none}
label.bp-mat-pay-option.bp-mat-pay-option-compact input{position:absolute;opacity:0;pointer-events:none;width:0;height:0;min-height:0;margin:0}
label.bp-mat-pay-option.bp-mat-pay-option-compact small{display:none}
label.bp-mat-pay-option.bp-mat-pay-option-compact:has(input:checked){border-color:var(--bp-ac-gold);background:#FFFBF0;box-shadow:0 0 0 1px var(--bp-ac-gold)}
.bp-mat-day.is-taken{opacity:.35;cursor:not-allowed;text-decoration:line-through;pointer-events:none}
