.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.course-card{border:1px solid rgba(62,239,255,.18);border-radius:28px;background:var(--panel);overflow:hidden;box-shadow:0 0 28px rgba(22,119,255,.12);transition:.25s ease}.course-card:hover{transform:translateY(-6px);border-color:rgba(62,239,255,.45)}.course-media{width:100%;aspect-ratio:4/5;background:radial-gradient(circle at 50% 20%,rgba(62,239,255,.12),transparent 35%),rgba(3,7,18,.72);display:grid;place-items:center;padding:12px;border-bottom:1px solid rgba(62,239,255,.12)}.course-media img{width:100%;height:100%;object-fit:contain;display:block;border-radius:18px}.course-placeholder{text-align:center;color:#d8e7ff;padding:26px}.course-placeholder span{font-size:54px;line-height:1;color:var(--cyan);text-shadow:0 0 22px rgba(62,239,255,.55);margin-bottom:14px}.course-placeholder strong{display:block;font-size:24px;line-height:1.05;letter-spacing:-.03em}.course-placeholder small{display:block;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-top:10px}.course-body{padding:20px}.status{display:inline-flex;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}.status.open{background:rgba(62,239,255,.1);color:var(--cyan);border:1px solid rgba(62,239,255,.3)}.status.soon{background:rgba(255,200,0,.09);color:#ffd34d;border:1px solid rgba(255,200,0,.22)}.status.closed{background:rgba(255,255,255,.07);color:#d8e7ff;border:1px solid rgba(255,255,255,.14)}.course-body h3{font-size:24px;line-height:1.05;margin-bottom:10px}.course-body p{font-size:15px;margin-bottom:16px}.meta{display:grid;gap:7px;margin-bottom:18px}.meta span{color:#d8e7ff;font-size:13px;border-left:2px solid var(--cyan);padding-left:9px}.course-body .btn{width:100%;font-size:12px}
/* v0.3: los flyers mantienen su proporción original y se muestran completos. */
.course-media:not(.course-placeholder){
  aspect-ratio:auto;
  min-height:0;
  padding:12px;
  align-content:start;
  position:relative;
  cursor:zoom-in;
}
.course-media:not(.course-placeholder) img{
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  object-position:center top;
}
.course-media:not(.course-placeholder)::after{
  content:"Ver flyer completo";
  position:absolute;
  right:22px;
  bottom:22px;
  padding:9px 12px;
  border-radius:999px;
  color:#fff;
  background:rgba(3,7,18,.88);
  border:1px solid rgba(62,239,255,.45);
  font-size:11px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
  opacity:0;
  transform:translateY(5px);
  transition:.2s ease;
  pointer-events:none;
}
.course-media:not(.course-placeholder):hover::after,
.course-media:not(.course-placeholder):focus-within::after{
  opacity:1;
  transform:translateY(0);
}

.flyer-lightbox{
  position:fixed;
  inset:0;
  z-index:1000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,4,12,.92);
  backdrop-filter:blur(12px);
}
.flyer-lightbox.open{display:flex}
.flyer-lightbox__dialog{
  position:relative;
  width:min(1050px,100%);
  height:min(92vh,1100px);
  display:flex;
  align-items:center;
  justify-content:center;
}
.flyer-lightbox__image{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:18px;
  border:1px solid rgba(62,239,255,.32);
  box-shadow:0 0 60px rgba(22,119,255,.28);
}
.flyer-lightbox__close{
  position:absolute;
  top:-10px;
  right:-10px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(62,239,255,.5);
  background:#071426;
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 0 25px rgba(22,119,255,.32);
}
.flyer-lightbox__close:hover{color:var(--cyan)}
body.lightbox-open{overflow:hidden}


/* v0.7: precios y promoción de vacaciones de invierno */
.promo-course{position:relative;overflow:hidden}.promo-ribbon{position:absolute;z-index:4;top:18px;left:0;padding:9px 16px;border-radius:0 999px 999px 0;background:linear-gradient(135deg,#ff238d,#b80b69);color:#fff;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 0 24px rgba(255,35,141,.35)}.status.promo{background:rgba(255,35,141,.11);color:#ff65b3;border:1px solid rgba(255,35,141,.32)}.price-box{display:grid;gap:4px;margin:0 0 18px;padding:15px 16px;border-radius:17px;background:linear-gradient(135deg,rgba(22,119,255,.16),rgba(62,239,255,.06));border:1px solid rgba(62,239,255,.22)}.price-box small{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.price-box strong{font-size:28px;line-height:1;color:var(--cyan)}.old-price{text-decoration:line-through;opacity:.62;font-size:.72em;margin-right:7px}.single-price strong{font-size:30px}.course-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.course-links .btn{margin:0}@media(max-width:560px){.course-links{grid-template-columns:1fr}.promo-ribbon{font-size:9px;padding:8px 12px}}
