:root {
  --blue-950: #072e63;
  --blue-900: #093b7c;
  --blue-800: #0c4da2;
  --blue-700: #145eb7;
  --blue-100: #eaf3ff;
  --orange-500: #f59a17;
  --orange-400: #ffae2d;
  --ink: #132238;
  --muted: #5c6b7f;
  --line: #dfe7f0;
  --surface: #ffffff;
  --surface-soft: #f5f8fc;
  --shadow: 0 18px 45px rgba(8, 49, 98, .10);
  --radius-xl: 28px;
  --radius-lg: 20px;
  --radius-md: 14px;
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--surface);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.skip-link {
  position: fixed;
  left: 16px;
  top: -60px;
  z-index: 9999;
  background: #fff;
  color: var(--blue-900);
  padding: 10px 14px;
  border-radius: 10px;
  font-weight: 700;
  box-shadow: var(--shadow);
}
.skip-link:focus { top: 16px; }

.container {
  width: min(var(--container), calc(100% - 40px));
  margin-inline: auto;
}

.top-line {
  height: 5px;
  background: linear-gradient(90deg, var(--blue-800) 0 74%, var(--orange-500) 74% 100%);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(13, 77, 162, .08);
  backdrop-filter: blur(12px);
}
.header-inner {
  min-height: 104px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
}

.brand-home,
.club-name-link,
.footer-home,
.footer-club-link,
.college-name {
  color: inherit;
  text-decoration: none;
}
.brand-home,
.footer-home { flex: 0 0 auto; }
.club-name-link { display: inline-block; }
.college-name { display: inline-block; }
.college-name:hover,
.college-name:focus-visible {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.brand img,
.footer-brand img {
  flex: 0 0 auto;
  border-radius: 50%;
  object-fit: contain;
  aspect-ratio: 1 / 1;
}
.brand-home > img { width: 84px; height: 84px; }
.brand-text { display: grid; line-height: 1.08; }
.brand-text strong { font-size: clamp(1.55rem, 2vw, 2.2rem); color: var(--blue-900); line-height: 1.05; }
.brand-text .college-name { margin-top: 6px; font-size: clamp(1rem, 1.25vw, 1.15rem); color: var(--muted); font-weight: 700; line-height: 1.2; }

.desktop-nav { display: flex; align-items: center; gap: 7px; }
.desktop-nav a {
  padding: 10px 12px;
  border-radius: 10px;
  color: #39516e;
  font-weight: 700;
  font-size: .93rem;
  text-decoration: none;
  transition: .18s ease;
}
.desktop-nav a:hover,
.desktop-nav a.active {
  color: var(--blue-800);
  background: var(--blue-100);
}
.mobile-menu { display: none; }

.hero {
  position: relative;
  overflow: hidden;
  color: white;
  background:
    radial-gradient(circle at 72% 32%, rgba(255,255,255,.11), transparent 19rem),
    linear-gradient(120deg, #062c62 0%, #0b4d9f 58%, #1266bd 100%);
}
.hero::after {
  content: "";
  position: absolute;
  right: -12vw;
  bottom: -180px;
  width: 50vw;
  height: 330px;
  border-radius: 50%;
  background: rgba(245,154,23,.94);
  transform: rotate(-9deg);
  opacity: .9;
}
.hero-decoration {
  position: absolute;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  pointer-events: none;
}
.hero-decoration-a { width: 520px; height: 520px; right: 4vw; top: -260px; }
.hero-decoration-b { width: 760px; height: 760px; right: -11vw; top: -360px; }
.hero-grid {
  position: relative;
  z-index: 2;
  min-height: 520px;
  display: grid;
  grid-template-columns: 1.28fr .72fr;
  align-items: center;
  gap: 60px;
  padding-block: 72px 76px;
}
.eyebrow {
  margin: 0 0 11px;
  color: var(--orange-500);
  font-size: .95rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.eyebrow.light { color: #ffd18a; }
.hero h1 {
  max-width: 800px;
  margin: 0;
  font-size: clamp(2.85rem, 5.4vw, 5.25rem);
  line-height: .92;
  letter-spacing: -.055em;
}
.hero h1 span { color: #ffc05a; }
.hero-lead {
  max-width: 720px;
  margin: 26px 0 0;
  color: rgba(255,255,255,.88);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
}
.sport-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 28px;
}
.sport-tags span {
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  color: rgba(255,255,255,.94);
  font-size: .82rem;
  font-weight: 700;
}
.hero-mark {
  position: relative;
  min-height: 360px;
  display: grid;
  place-items: center;
}
.hero-logo-shell {
  width: clamp(230px, 25vw, 320px);
  display: grid;
  place-items: center;
  overflow: visible;
  background: transparent;
  box-shadow: none;
  transform: none;
}
.hero-logo-shell img {
  width: 100%;
  height: auto;
  object-fit: contain;
  border-radius: 0;
  filter: none;
}
.sport-orbit {
  position: absolute;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 2px solid rgba(255,255,255,.65);
  border-radius: 50%;
  color: var(--orange-400);
  background: rgba(4,42,91,.48);
  box-shadow: inset 0 0 0 6px rgba(255,255,255,.07);
}
.orbit-1 { right: 4%; top: 11%; }
.orbit-2 { left: 5%; bottom: 18%; width: 34px; height: 34px; }
.orbit-3 { right: 15%; bottom: 2%; width: 26px; height: 26px; }

.quick-actions { padding: 80px 0 88px; background: var(--surface-soft); }
.section-heading { max-width: 100%; margin-bottom: 32px; }
.section-heading.centered { margin-inline: auto; text-align: center; }
.section-heading.compact { margin-bottom: 30px; }
.section-heading h2 {
  margin: 0;
  color: var(--blue-950);
  font-size: clamp(2rem, 4vw, 3.15rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}
.section-heading p:last-child { margin: 13px 0 0; color: var(--muted); font-size: 1.04rem; }
@media (min-width: 900px) { .section-heading.compact p:last-child { white-space: nowrap; } }
.action-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.action-card {
  position: relative;
  min-height: 315px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  padding: 30px;
  border-radius: var(--radius-xl);
  text-decoration: none;
  box-shadow: var(--shadow);
  transition: transform .2s ease, box-shadow .2s ease;
}
.action-card:hover { transform: translateY(-4px); box-shadow: 0 24px 55px rgba(8,49,98,.16); }
.action-card::before {
  content: "";
  position: absolute;
  width: 240px;
  height: 240px;
  right: -90px;
  top: -100px;
  border-radius: 50%;
  background: rgba(255,255,255,.10);
}
.action-primary { color: white; background: linear-gradient(135deg, #083d82, #0f65bf); }
.action-secondary { color: var(--ink); background: linear-gradient(135deg, #fff, #fff7ea); border: 1px solid #f2e2c7; }
.action-secondary::before { background: rgba(245,154,23,.13); }
.action-icon {
  position: absolute;
  top: 27px;
  left: 29px;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: rgba(255,255,255,.13);
}
.action-secondary .action-icon { background: #fff0d5; }
.action-icon svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.action-kicker { margin-bottom: 5px; font-size: .76rem; text-transform: uppercase; letter-spacing: .11em; font-weight: 900; opacity: .75; }
.action-card strong { display: block; max-width: 500px; font-size: clamp(1.65rem, 3vw, 2.45rem); line-height: 1; letter-spacing: -.03em; }
.action-description { margin-top: 12px; max-width: 470px; opacity: .78; }
.action-link { margin-top: 22px; font-weight: 850; }
.action-primary .action-link { color: #ffd28c; }
.action-secondary .action-link { color: var(--blue-800); }

.help-strip {
  margin-top: 22px;
  min-height: 92px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 17px;
  padding: 18px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: #fff;
  text-decoration: none;
  box-shadow: 0 10px 28px rgba(8,49,98,.06);
}
.help-icon {
  width: 47px;
  height: 47px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: var(--orange-500);
  font-size: 1.35rem;
  font-weight: 900;
}
.help-strip strong { display: block; color: var(--blue-950); font-size: 1.05rem; }
.help-strip small { display: block; margin-top: 2px; color: var(--muted); font-size: .92rem; }
.help-arrow { color: var(--blue-800); font-size: 1.45rem; font-weight: 900; }

.featured-news { padding: 84px 0; }
.news-card { display: grid; grid-template-columns: .9fr 1.1fr; gap: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow); }
.news-media { min-height: 360px; display: grid; place-items: center; color: #7b8ba0; background: linear-gradient(135deg, #edf3fa, #dae7f5); }
.news-copy { padding: 44px; align-self: center; }
.news-copy h2 { margin: 0; color: var(--blue-950); font-size: 2.3rem; letter-spacing: -.035em; }
.news-copy p:not(.eyebrow) { color: var(--muted); }
.text-link { color: var(--blue-800); font-weight: 850; }

.sponsors { padding: 84px 0 94px; }
.sponsor-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.sponsor-card {
  position: relative;
  flex: 0 0 220px;
  width: 220px;
  height: 132px;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 9px;
  border: 1px solid rgba(19,34,56,.10);
  border-radius: 16px;
  background: var(--fondo, #ffffff);
  text-decoration: none;
  box-shadow: 0 7px 18px rgba(8,49,98,.045);
}
.sponsor-card[href] {
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sponsor-card[href]:hover {
  transform: translateY(-2px);
  border-color: rgba(12,77,162,.25);
  box-shadow: 0 12px 30px rgba(8,49,98,.10);
}
.sponsor-card[href]:focus-visible {
  outline: 3px solid rgba(245,154,23,.75);
  outline-offset: 3px;
}
.sponsor-card img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(100% - 18px);
  height: calc(100% - 18px);
  max-width: calc(100% - 18px);
  max-height: calc(100% - 18px);
  object-fit: contain;
  object-position: 50% 50%;
  transform: translate(-50%, -50%) scale(var(--escala-logo, 1));
  transform-origin: 50% 50%;
}
.sponsor-card.oculto { display: none; }
.sponsor-placeholder { text-align: center; color: #1e2e45; font-weight: 800; line-height: 1.05; }
.sponsor-placeholder > span { display: grid; place-items: center; gap: 4px; }
.sponsor-placeholder small { display: block; font-size: .57rem; font-weight: 700; letter-spacing: .01em; }
.placeholder-junta { color:#222; font-size:1rem; }
.placeholder-moreno { color:#1a285d; font-family:Georgia,serif; font-style:italic; font-size:1.35rem; }
.placeholder-red { color:#1d7934; font-size:.9rem; } .placeholder-red strong{font-family:Georgia,serif;font-size:1.35rem;font-style:italic;}
.placeholder-eig { color:#e65470; font-size:2.45rem; font-weight:800; letter-spacing:-.06em; } .placeholder-eig small{color:#444;letter-spacing:.08em;writing-mode:vertical-rl;position:absolute;margin-left:125px;}
.placeholder-sanders { color:#1595dc; font-size:.72rem; } .placeholder-sanders strong{font-size:1.45rem;}
.placeholder-teresa { color:#1ad2ce; font-size:3.2rem; font-weight:500; } .placeholder-teresa small{color:#4d6776;font-size:.46rem;max-width:150px;}
.placeholder-pema { color:#111; font-size:.9rem; } .placeholder-pema strong{color:#d4bd16;font-family:Georgia,serif;font-style:italic;font-size:1.45rem;}
.placeholder-kamara { color:#111; font-size:1.2rem; } .placeholder-kamara span{color:#124cda;font-size:1.75rem;}
.placeholder-pedro { color:#2f2924; font-family:Georgia,serif; font-size:1.35rem; } .placeholder-pedro small{letter-spacing:.15em;}
.placeholder-gavervas { color:#922e37; font-size:2rem; } .placeholder-gavervas small{color:#222;font-size:.6rem;letter-spacing:.06em;}
.placeholder-neveros { color:#222; font-family:Georgia,serif; font-size:1.25rem; } .placeholder-neveros small{color:#6ba22c;letter-spacing:.16em;}
.placeholder-terrazos { color:#354050; font-size:.8rem; } .placeholder-terrazos strong{font-size:1.15rem;} .placeholder-terrazos small{font-weight:600;}


.contact-band { color: white; background: var(--blue-950); }
.contact-inner {
  min-height: 250px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 40px;
  padding-block: 42px;
}
.contact-inner h2 { margin: 0; font-size: clamp(2rem, 4vw, 3.1rem); letter-spacing: -.04em; }
.contact-inner p:last-child { max-width: 680px; color: rgba(255,255,255,.76); }
.contact-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 22px;
  border-radius: 13px;
  color: var(--blue-950);
  background: #fff;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}

.site-footer { background: #061f43; color: rgba(255,255,255,.78); }
.footer-main { min-height: 125px; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-brand div { display: grid; }
.footer-brand strong { color: #fff; }
.footer-brand .college-name { font-size: .87rem; opacity: .72; }
.footer-links { display: flex; flex-wrap: wrap; gap: 18px; }
.footer-links a { font-size: .87rem; text-decoration: none; }
.footer-links a:hover { color: #fff; }
.footer-bottom {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid rgba(255,255,255,.1);
  font-size: .78rem;
  color: rgba(255,255,255,.55);
}

@media (max-width: 980px) {
  .desktop-nav { display: none; }
  .mobile-menu { display: block; position: relative; }
  .mobile-menu summary {
    list-style: none;
    cursor: pointer;
    padding: 10px 13px;
    border: 1px solid var(--line);
    border-radius: 10px;
    color: var(--blue-900);
    font-weight: 800;
  }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .mobile-menu[open] nav {
    position: absolute;
    right: 0;
    top: 48px;
    width: min(260px, calc(100vw - 40px));
    display: grid;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: white;
    box-shadow: var(--shadow);
  }
  .mobile-menu nav a { padding: 12px; border-radius: 9px; text-decoration: none; font-weight: 700; }
  .mobile-menu nav a:hover { background: var(--blue-100); color: var(--blue-800); }
  .hero-grid { grid-template-columns: 1fr .48fr; gap: 20px; }
  .hero-mark { min-height: 280px; }
}

@media (max-width: 760px) {
  .sponsor-card { flex-basis: calc(50% - 7px); width: calc(50% - 7px); height: auto; aspect-ratio: 1.66 / 1; }
  .container { width: min(100% - 28px, var(--container)); }
  .header-inner { min-height: 74px; }
  .brand img { width: 68px; height: 68px; }
  .brand-text strong { font-size: 1.18rem; }
  .brand-text .college-name { font-size: .78rem; }
  .hero::after { width: 110vw; height: 190px; right: -45vw; bottom: -125px; }
  .hero-grid {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 30px;
    padding-block: 56px 52px;
  }
  .hero h1 { font-size: clamp(2.75rem, 10.5vw, 4.25rem); }
  .hero-lead { margin-top: 20px; }
  .sport-tags { margin-top: 22px; }
  .hero-mark { display: none; }
  .quick-actions { padding: 60px 0 66px; }
  .action-grid { grid-template-columns: 1fr; }
  .action-card { min-height: 285px; padding: 26px; }
  .help-strip { grid-template-columns: auto 1fr; }
  .help-arrow { display: none; }
  .sponsors { padding: 64px 0 72px; }
  .contact-inner { min-height: auto; grid-template-columns: 1fr; gap: 12px; padding-block: 48px; }
  .contact-button { justify-self: start; }
  .footer-main { padding-block: 32px; flex-direction: column; align-items: flex-start; }
  .footer-bottom { padding-block: 18px; flex-direction: column; align-items: flex-start; justify-content: center; }
}

@media (max-width: 430px) {
  .sponsor-card {
    flex: 0 0 calc(50% - 5px);
    width: calc(50% - 5px);
    max-width: none;
    aspect-ratio: 1.66 / 1;
    height: auto;
    padding: 7px;
  }
  .brand { gap: 9px; }
  .brand img { width: 60px; height: 60px; }
  .brand-text { max-width: 220px; }
  .brand-text strong { font-size: 1rem; line-height: 1.05; }
  .brand-text .college-name { margin-top: 4px; font-size: .68rem; line-height: 1.15; }
  .hero h1 { font-size: clamp(2.55rem, 12vw, 3.35rem); }
  .sport-tags span { font-size: .74rem; }
  .section-heading h2 { font-size: 2.15rem; }
  .sponsor-grid { gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* ==============================================================
   PÁGINA INFORMACIÓN E INSCRIPCIONES
   ============================================================== */
.school-link,
.footer-school-link { color: inherit; text-decoration: none; }
.school-link:hover,
.footer-school-link:hover { text-decoration: underline; }

.info-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 82% 30%, rgba(255,255,255,.10), transparent 18rem),
    linear-gradient(120deg, #062c62 0%, #0b4d9f 60%, #1266bd 100%);
}
.info-hero::after {
  content: "";
  position: absolute;
  right: -14vw;
  bottom: -210px;
  width: 52vw;
  height: 320px;
  border-radius: 50%;
  background: rgba(245,154,23,.93);
  transform: rotate(-9deg);
}
.info-hero-inner { position: relative; z-index: 1; padding-block: 74px 82px; }
.info-hero h1 { margin: 0; font-size: clamp(2.9rem, 6vw, 5.4rem); line-height: .96; letter-spacing: -.055em; }
.info-hero p:not(.eyebrow) { max-width: 830px; margin: 20px 0 0; color: rgba(255,255,255,.87); font-size: clamp(1.05rem, 1.5vw, 1.22rem); }
.info-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 18px; border-radius:12px; font-weight:850; text-decoration:none; }
.button-orange { color:#16213b; background:#ffb23d; }
.button-ghost { color:#fff; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.08); }

.section-index { position: sticky; top: 109px; z-index: 35; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); backdrop-filter:blur(10px); }
.section-index-inner { min-height:58px; display:flex; align-items:center; gap:8px; overflow-x:auto; scrollbar-width:none; }
.section-index-inner::-webkit-scrollbar { display:none; }
.section-index a { flex:0 0 auto; padding:8px 12px; border-radius:999px; color:#39516e; background:#f3f7fc; font-size:.82rem; font-weight:800; text-decoration:none; }
.section-index a:hover { color:var(--blue-800); background:var(--blue-100); }

.pdf-resource { padding: 28px 0 0; background:#f7f9fc; }
.pdf-resource-card {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 30px rgba(8,49,98,.055);
}
.pdf-resource-copy { display:flex; align-items:center; gap:18px; min-width:0; }
.pdf-resource-copy .eyebrow { margin-bottom:4px; }
.pdf-resource-copy h2,
.pdf-resource-copy h3 { margin:0; color:var(--blue-950); font-size:clamp(1.25rem,2vw,1.65rem); letter-spacing:-.025em; }
.pdf-resource-copy p:not(.eyebrow) { margin:6px 0 0; color:var(--muted); font-size:.94rem; }
.pdf-badge {
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:62px;
  height:62px;
  border-radius:16px;
  color:#fff;
  background:linear-gradient(135deg,#0c4da2,#1673c8);
  font-size:.84rem;
  font-weight:950;
  letter-spacing:.08em;
}
.pdf-resource-actions { display:flex; flex:0 0 auto; gap:10px; }
.pdf-view { color:#fff; background:var(--blue-800); }
.pdf-download { color:var(--blue-900); border:1px solid #cbd8e8; background:#f7faff; }
.pdf-view:hover,.pdf-download:hover { transform:translateY(-1px); }
.pdf-resource-card-section { margin-top:4px; }
.mobile-table-help { display:none; }

.info-content { padding: 72px 0 94px; background:#f7f9fc; }
.info-layout { display:block; }
.info-main { min-width:0; width:100%; }
.content-section { scroll-margin-top:190px; margin-bottom:78px; }
.section-title-row { display:flex; align-items:flex-start; gap:16px; margin-bottom:24px; }
.section-number { flex:0 0 auto; display:grid; place-items:center; width:46px; height:46px; border-radius:14px; color:#fff; background:var(--blue-800); font-size:.82rem; font-weight:900; }
.section-title-row .eyebrow { margin-bottom:5px; }
.section-title-row h2 { margin:0; color:var(--blue-950); font-size:clamp(1.8rem,3.3vw,2.7rem); line-height:1.05; letter-spacing:-.035em; }

.prose-card,
.notice-card,
.aside-card { border:1px solid var(--line); border-radius:20px; background:#fff; box-shadow:0 12px 30px rgba(8,49,98,.055); }
.prose-card { padding:26px 28px; margin-bottom:18px; }
.prose-card h3 { margin:0 0 12px; color:var(--blue-900); font-size:1.25rem; }
.prose-card p { margin:10px 0; color:#415269; }
.prose-card a { color:var(--blue-800); font-weight:750; }
.prose-card ul { color:#415269; padding-left:22px; }
.small-copy { font-size:.9rem; }
.inline-cta { display:inline-flex; margin-top:8px; padding:10px 14px; border-radius:10px; background:var(--blue-100); text-decoration:none; }
.warning-list { margin-top:18px; padding:12px 15px; border-radius:13px; background:#fff8e9; border:1px solid #f7ddb1; }
.warning-list p { margin:5px 0; color:#59451f; }

.notice-card { display:grid; gap:4px; padding:18px 22px; margin-bottom:18px; border-left:5px solid var(--orange-500); }
.notice-card strong { color:var(--blue-950); font-size:1.08rem; }
.notice-card span { color:var(--muted); }
.notice-highlight { color:#fff; border:0; border-left:5px solid #ffc05a; background:linear-gradient(135deg,#083d82,#0f65bf); }
.notice-highlight strong,.notice-highlight span { color:#fff; }
.notice-highlight strong { font-size:.9rem; text-transform:uppercase; letter-spacing:.08em; opacity:.83; }
.notice-highlight span { font-size:1.5rem; font-weight:900; }

.payment-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:20px 0; }
.payment-steps > div { display:grid; grid-template-columns:auto 1fr; gap:2px 10px; align-items:center; padding:16px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.payment-steps span { grid-row:1 / 3; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--orange-500); font-weight:900; }
.payment-steps strong { color:var(--blue-950); }
.payment-steps small { color:var(--muted); line-height:1.3; }

.table-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 30px rgba(8,49,98,.05); }
.fees-table { width:100%; min-width:860px; border-collapse:collapse; font-size:.84rem; }
.fees-table th,.fees-table td { padding:12px 9px; border-bottom:1px solid #e5ebf2; border-right:1px solid #eef2f6; vertical-align:middle; text-align:center; }
.fees-table thead th { position:sticky; top:0; color:#fff; background:#0c5ba9; font-size:.75rem; text-transform:uppercase; letter-spacing:.02em; line-height:1.18; }
.fees-table thead th:first-child,
.fees-table tbody th { min-width:145px; }
.fees-table tbody th { color:var(--blue-950); background:#eaf5fb; text-align:left; line-height:1.3; }
.fees-table tbody tr:nth-child(even) td { background:#fbfcfe; }
/* El importe mensual es una referencia clave: se destaca sin competir con las cuotas. */
.fees-table tbody td:nth-child(3) {
  color:var(--blue-950);
  background:#f2f7fd;
  font-size:1.06rem;
  font-weight:900;
}
.fees-table tbody tr:nth-child(even) td:nth-child(3) { background:#eaf3ff; }
.fees-table td strong { color:var(--blue-950); }
.fees-table small { font-size:.72rem; }

/* V49 · La duración se integra en Temporada. Las fechas se conservan en una sola
   línea mientras haya anchura y son la última parte de la tabla que pasa a dos líneas. */
.fees-table .season-cell { min-width:132px; width:132px; }
.fees-table .season-dates { display:block; white-space:nowrap; line-height:1.18; }
.fees-table .season-date-start,
.fees-table .season-date-end { display:inline; }
.fees-table .season-months {
  display:block;
  margin-top:4px;
  color:inherit;
  font-size:.78rem;
  font-weight:400;
  line-height:1.15;
  white-space:nowrap;
}

/* Solo cuando el resto de la tabla ya ha tenido que comprimirse, Temporada cede:
   las fechas pasan a dos líneas y la duración queda en una tercera. */
@media (max-width: 900px) {
  .fees-table { min-width:760px; }
  .fees-table .season-cell { min-width:92px; width:92px; max-width:92px; }
  .fees-table .season-dates { white-space:normal; }
  .fees-table .season-date-start,
  .fees-table .season-date-end { display:block; white-space:nowrap; }
}
/* Los rótulos se mantienen en una línea mientras haya espacio y se parten
   de forma natural solo cuando la tabla necesita ganar anchura. */
@media (max-width: 1100px) {
  .fees-table thead th:first-child,
  .fees-table tbody th { min-width:128px; width:128px; max-width:128px; }
  .fees-table th,.fees-table td { padding-inline:8px; }
}

/* En pantallas estrechas, la primera columna permanece visible al desplazar la tabla. */
@media (max-width: 760px) {
  .fees-table thead th:first-child {
    position: sticky;
    left: 0;
    z-index: 4;
    min-width: 128px;
    width:128px;
    max-width:128px;
    box-shadow: 5px 0 10px rgba(8,49,98,.08);
  }
  .fees-table tbody th {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 128px;
    width:128px;
    max-width:128px;
    box-shadow: 5px 0 10px rgba(8,49,98,.06);
  }
}
.table-note { margin:14px 3px 0; color:#53647a; font-size:.9rem; }

.equip-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-bottom:18px; }
.mini-card { position:relative; min-height:180px; padding:24px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 10px 26px rgba(8,49,98,.045); }
.mini-card h3 { margin:34px 0 8px; color:var(--blue-950); }
.mini-card p { margin:0; color:#53647a; }
.mini-card small { display:block; margin-top:10px; color:#708097; }
.mini-price { position:absolute; top:18px; right:18px; padding:6px 10px; border-radius:999px; color:#fff; background:var(--orange-500); font-weight:900; }

.stat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:20px; }
.stat-row div { padding:14px; border-radius:14px; background:#f3f7fc; text-align:center; }
.stat-row strong { display:block; color:var(--blue-950); font-size:1.05rem; }
.stat-row span { display:block; margin-top:3px; color:var(--muted); font-size:.78rem; }

.discount-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px; }
.discount-card { padding:24px; border-radius:18px; color:#fff; background:linear-gradient(135deg,#0b4d9f,#1266bd); text-align:center; }
.discount-card span,.discount-card small { display:block; }
.discount-card span { font-weight:750; }
.discount-card strong { display:block; margin:8px 0 4px; color:#ffc05a; font-size:3rem; line-height:1; }
.discount-card small { color:rgba(255,255,255,.78); }
.exclusions { border-left:5px solid #91be61; }

.schedule-group { margin-bottom:14px; border:1px solid var(--line); border-radius:18px; background:#fff; overflow:hidden; box-shadow:0 10px 26px rgba(8,49,98,.045); }
.schedule-group summary { list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:68px; padding:14px 20px; color:#fff; background:linear-gradient(100deg,#0d5cac,#3f8ace); }
.schedule-group summary::-webkit-details-marker { display:none; }
.schedule-group summary span { font-size:1.05rem; font-weight:900; }
.schedule-group summary small { color:rgba(255,255,255,.8); font-weight:750; }
.schedule-group summary::after { content:"+"; font-size:1.4rem; font-weight:500; }
.schedule-group[open] summary::after { content:"–"; }
.schedule-group.adult summary { background:linear-gradient(100deg,#084076,#0d5cac); }
.schedule-body { padding:18px; }
.schedule-columns { display:grid; gap:12px; }
.schedule-columns.two { grid-template-columns:repeat(2,1fr); }
.schedule-columns.three { grid-template-columns:repeat(3,1fr); }
.schedule-columns.four { grid-template-columns:repeat(4,1fr); }
.schedule-sport { min-width:0; padding:16px; border-radius:14px; background:#f6f9fd; border:1px solid #e3ebf4; }
.schedule-sport.wide { max-width:760px; margin-inline:auto; text-align:center; }
.schedule-sport h3 { margin:0 0 9px; color:#377abe; font-size:1rem; text-transform:uppercase; }
.schedule-sport p { margin:6px 0; color:#35465d; font-size:.91rem; }
.pickup-note { margin:12px 0 0; padding:10px 13px; border-radius:11px; color:#46566b; background:#fff5dc; font-size:.85rem; text-align:center; }
.pickup-note.full { grid-column:1 / -1; }
.activity-explain { margin-top:15px; padding:17px; border-radius:14px; background:#eef6ff; color:#42536a; }
.activity-explain strong { color:var(--blue-800); }
.activity-explain p { margin:6px 0 0; }

.info-aside { min-width:0; }
.sticky-card { position:sticky; top:184px; padding:20px; }
.sticky-card h2 { margin:0 0 18px; color:var(--blue-950); font-size:1.45rem; }
.aside-button { display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:9px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; color:var(--blue-900); background:#fff; font-weight:800; text-decoration:none; text-align:center; }
.aside-button.primary { color:#fff; border-color:var(--blue-800); background:var(--blue-800); }
.aside-help { margin:18px 0 0; padding-top:16px; border-top:1px solid var(--line); color:var(--muted); font-size:.86rem; }
.aside-help a { color:var(--blue-800); font-weight:800; }

@media (max-width: 1020px) {
  .info-layout { grid-template-columns:1fr; }
  .info-aside { display:none; }
  .schedule-columns.four { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 760px) {
  .section-index { top:79px; }
  .pdf-resource { padding-top:18px; }
  .pdf-resource-card { align-items:stretch; flex-direction:column; gap:16px; padding:18px; }
  .pdf-resource-copy { align-items:flex-start; gap:13px; }
  .pdf-badge { width:50px; height:50px; border-radius:13px; font-size:.72rem; }
  .pdf-resource-actions { width:100%; }
  .pdf-resource-actions .button { flex:1 1 0; padding-inline:10px; font-size:.86rem; }
  .mobile-table-help {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 0 10px;
    padding:10px 12px;
    border:1px solid #d9e6f4;
    border-radius:12px;
    color:#566a82;
    background:#eef6ff;
    font-size:.78rem;
    font-weight:700;
  }
  .mobile-table-help a { flex:0 0 auto; color:var(--blue-800); font-weight:900; text-decoration:none; }
  .info-hero-inner { padding-block:52px 58px; }
  .info-content { padding-top:54px; }
  .content-section { scroll-margin-top:150px; margin-bottom:58px; }
  .section-title-row { gap:11px; }
  .section-number { width:39px; height:39px; border-radius:11px; }
  .payment-steps,
  .equip-grid,
  .stat-row,
  .discount-grid,
  .schedule-columns.two,
  .schedule-columns.three,
  .schedule-columns.four { grid-template-columns:1fr; }
  .prose-card { padding:20px; }
  .stat-row { grid-template-columns:repeat(2,1fr); }
  .schedule-group summary { align-items:flex-start; flex-direction:column; gap:3px; padding:14px 16px; }
  .schedule-group summary::after { position:absolute; right:20px; }
  .schedule-group summary { position:relative; padding-right:50px; }
}

/* ==============================================================
   PÁGINAS LEGALES
   ============================================================== */
.legal-hero {
  position:relative;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(125deg,var(--blue-950),var(--blue-800));
}
.legal-hero::after {
  content:"";
  position:absolute;
  width:330px;
  height:330px;
  right:-115px;
  bottom:-215px;
  border-radius:50%;
  background:var(--orange-500);
  opacity:.95;
}
.legal-hero-inner { position:relative; z-index:1; padding-block:58px 62px; }
.legal-hero h1 { margin:6px 0 10px; font-size:clamp(2.05rem,5vw,3.55rem); line-height:1.04; }
.legal-hero p:last-child { max-width:760px; margin:0; color:rgba(255,255,255,.82); font-size:1.02rem; }
.legal-page { padding:48px 0 78px; background:#f7f9fc; }
.legal-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:30px; align-items:start; }
.legal-content { min-width:0; }
.legal-card {
  margin-bottom:18px;
  padding:28px 30px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(8,49,98,.045);
}
.legal-card h2 { margin:0 0 14px; color:var(--blue-950); font-size:1.45rem; }
.legal-card h3 { margin:22px 0 8px; color:var(--blue-900); font-size:1.03rem; }
.legal-card p { margin:10px 0; color:#465970; line-height:1.72; }
.legal-card ul { margin:10px 0; padding-left:22px; color:#465970; line-height:1.7; }
.legal-card li + li { margin-top:6px; }
.legal-card a { color:var(--blue-800); font-weight:750; }
.legal-highlight {
  padding:18px 20px;
  border-left:5px solid var(--orange-500);
  border-radius:0 14px 14px 0;
  background:#fff7e9;
}
.legal-highlight p { margin:0; }
.legal-meta { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:16px; color:#6c7c91; font-size:.86rem; }
.legal-identity { display:grid; grid-template-columns:180px 1fr; gap:9px 18px; margin:0; }
.legal-identity dt { color:#6c7c91; font-weight:800; }
.legal-identity dd { margin:0; color:#33465e; font-weight:650; }
.legal-nav {
  position:sticky;
  top:118px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 26px rgba(8,49,98,.045);
}
.legal-nav strong { display:block; margin-bottom:10px; color:var(--blue-950); }
.legal-nav a { display:block; padding:9px 10px; border-radius:9px; color:#52657d; font-weight:750; text-decoration:none; }
.legal-nav a:hover,.legal-nav a:focus-visible { color:var(--blue-900); background:#eef5fd; }
.legal-nav a.active { color:#fff; background:var(--blue-800); }
.cookie-status {
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin:18px 0 4px;
  padding:18px;
  border:1px solid #cfe3d2;
  border-radius:14px;
  background:#f0f8f1;
}
.cookie-status .status-icon {
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  color:#fff;
  background:#3d8c4a;
  font-weight:900;
}
.cookie-status strong { display:block; margin-bottom:3px; color:#285f31; }
.cookie-status p { margin:0; color:#496852; line-height:1.55; }

@media (max-width: 900px) {
  .legal-layout { grid-template-columns:1fr; }
  .legal-nav { position:static; order:-1; display:flex; flex-wrap:wrap; gap:6px; }
  .legal-nav strong { flex-basis:100%; margin-bottom:4px; }
  .legal-nav a { display:inline-flex; }
}
@media (max-width: 600px) {
  .legal-hero-inner { padding-block:44px 48px; }
  .legal-page { padding-top:28px; }
  .legal-card { padding:21px 19px; border-radius:15px; }
  .legal-identity { grid-template-columns:1fr; gap:2px; }
  .legal-identity dd { margin-bottom:9px; }
  .legal-nav { padding:14px; }
  .legal-nav a { flex:1 1 calc(50% - 6px); justify-content:center; text-align:center; }
}


/* ==============================================================
   PÁGINA DE CONTACTO
   ============================================================== */
.contact-hero {
  position:relative;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(125deg,var(--blue-950),var(--blue-800));
}
.contact-hero::after {
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  right:-130px;
  bottom:-235px;
  border-radius:50%;
  background:var(--orange-500);
}
.contact-hero-inner { position:relative; z-index:1; padding-block:62px 66px; }
.contact-hero h1 { margin:6px 0 10px; font-size:clamp(2.35rem,5vw,3.8rem); line-height:1.03; }
.contact-hero p:last-child { max-width:720px; margin:0; color:rgba(255,255,255,.84); font-size:1.04rem; }
.contact-page { padding:54px 0 82px; background:#f7f9fc; }
.contact-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-bottom:34px; }
.contact-card {
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:18px;
  min-width:0;
  padding:26px;
  border:1px solid var(--line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 30px rgba(8,49,98,.05);
}
.contact-card-icon {
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border-radius:15px;
  color:#fff;
  background:var(--blue-800);
  font-size:1.5rem;
  font-weight:900;
}
.contact-card-label { margin:0 0 2px; color:var(--orange-500); font-size:.77rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.contact-card h2 { margin:0 0 8px; color:var(--blue-950); font-size:1.45rem; }
.contact-card p:last-child { margin:10px 0 0; color:#5b6d84; line-height:1.62; }
.contact-main-link { color:var(--blue-800); font-size:1.08rem; font-weight:900; text-decoration:none; overflow-wrap:anywhere; }
.contact-main-link:hover,.contact-main-link:focus-visible,.contact-small-link:hover,.contact-small-link:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.contact-card address { margin:0 0 10px; color:#40546d; font-style:normal; font-weight:750; line-height:1.55; }
.contact-small-link { color:var(--blue-800); font-size:.9rem; font-weight:850; text-decoration:none; }
.map-section { overflow:hidden; border:1px solid var(--line); border-radius:22px; background:#fff; box-shadow:0 14px 34px rgba(8,49,98,.055); }
.map-heading { padding:26px 28px 20px; border-bottom:1px solid var(--line); }
.map-heading h2 { margin:3px 0 7px; color:var(--blue-950); font-size:1.75rem; }
.map-heading p:last-child { max-width:none; margin:0; color:#5c6b7f; line-height:1.6; }
.map-consent { min-height:430px; display:grid; }
.map-placeholder { display:grid; place-items:center; align-content:center; padding:44px 24px; text-align:center; background:linear-gradient(135deg,#edf5ff,#f8fbff 55%,#fff7e8); }
.map-placeholder-mark { display:grid; place-items:center; width:66px; height:66px; margin-bottom:14px; border-radius:50%; color:#fff; background:var(--orange-500); font-size:2rem; box-shadow:0 10px 24px rgba(245,154,23,.25); }
.map-placeholder h3 { margin:0 0 9px; color:var(--blue-950); font-size:1.3rem; }
.map-placeholder > p { max-width:690px; margin:0; color:#596d85; line-height:1.62; }
.map-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }
.button-map { border:0; color:#fff; background:var(--blue-800); cursor:pointer; font:inherit; }
.button-map:hover,.button-map:focus-visible { background:var(--blue-900); }
.button-outline { color:var(--blue-900); border:1px solid #b8cbe1; background:#fff; }
.button-outline:hover,.button-outline:focus-visible { border-color:var(--blue-800); background:#f3f8ff; }
.map-privacy-note { margin-top:16px !important; font-size:.82rem; }
.map-privacy-note a { color:var(--blue-800); font-weight:800; }
.google-map-frame { width:100%; min-height:430px; height:100%; border:0; display:block; }

@media (max-width:760px) {
  .contact-hero-inner { padding-block:48px 52px; }
  .contact-page { padding:32px 0 58px; }
  .contact-cards { grid-template-columns:1fr; gap:14px; }
  .contact-card { grid-template-columns:46px minmax(0,1fr); gap:14px; padding:20px 18px; border-radius:16px; }
  .contact-card-icon { width:46px; height:46px; border-radius:13px; font-size:1.3rem; }
  .map-section { border-radius:17px; }
  .map-heading { padding:20px 18px 16px; }
  .map-consent { min-height:380px; }
  .map-placeholder { padding:34px 16px; }
  .map-actions { width:100%; flex-direction:column; }
  .map-actions .button { width:100%; }
  .google-map-frame { min-height:380px; }
}

/* ==============================================================
   PÁGINA CÓMO HACER LA INSCRIPCIÓN
   ============================================================== */
.inscription-guide {
  padding: 72px 0 86px;
  background: #f7f9fc;
}
.guide-wrap {
  max-width: 1040px;
  margin-inline: auto;
}
.guide-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 26px;
  margin-bottom: 30px;
  padding: 22px 24px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(8,49,98,.055);
}
.guide-intro p { margin: 0; color: var(--muted); }
.guide-intro strong { color: var(--blue-950); }
.guide-step {
  position: relative;
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 22px;
  padding: 30px 0;
}
.guide-step + .guide-step { border-top: 1px solid var(--line); }
.guide-step-number {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(145deg, var(--blue-900), var(--blue-700));
  font-size: 1.12rem;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(8,49,98,.16);
}
.guide-step-content h2 {
  margin: 0;
  color: var(--blue-950);
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.guide-step-content > p {
  margin: 10px 0 0;
  color: #43536a;
  font-size: 1rem;
}
.guide-cta-card {
  margin-top: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 24px;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(135deg, #083d82, #0f65bf);
  text-decoration: none;
  box-shadow: 0 16px 34px rgba(8,49,98,.14);
}
.guide-cta-card span { display: block; }
.guide-cta-kicker { color: #ffd28c; font-size: .76rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.guide-cta-card strong { display:block; margin-top:3px; font-size:clamp(1.35rem,3vw,2rem); line-height:1; }
.guide-cta-card small { display:block; margin-top:7px; color:rgba(255,255,255,.78); font-size:.9rem; }
.guide-cta-arrow { flex:0 0 auto; font-size:1.8rem; font-weight:900; }
.guide-image-box {
  margin-top: 22px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(8,49,98,.055);
}
.guide-image-box img {
  width: 100%;
  max-height: 650px;
  margin-inline: auto;
  object-fit: contain;
  border-radius: 12px;
}
.guide-image-box.narrow img { max-width: 490px; }
.guide-image-caption {
  margin: 12px 4px 0;
  color: var(--muted);
  text-align: center;
  font-size: .84rem;
}
.guide-callout {
  margin-top: 18px;
  padding: 17px 18px;
  border-left: 4px solid var(--orange-500);
  border-radius: 0 14px 14px 0;
  background: #fff7e9;
  color: #49381c;
}
.guide-callout p { margin: 0; }
.guide-callout p + p { margin-top: 6px; }
.guide-callout strong { color: #362915; }
.guide-check {
  margin-top: 18px;
  padding: 18px 20px;
  border: 1px solid #cce7d6;
  border-radius: 16px;
  background: #f1fbf5;
}
.guide-check p { margin: 0; color: #294c36; }
.guide-check p + p { margin-top: 8px; }
.credentials-grid {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.credential-card {
  padding: 19px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: #fff;
}
.credential-card span {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  margin-bottom: 12px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue-800);
  font-weight: 900;
}
.credential-card h3 { margin: 0; color: var(--blue-950); font-size: 1.02rem; line-height: 1.2; }
.credential-card p { margin: 8px 0 0; color: var(--muted); font-size: .9rem; }
.guide-important {
  margin-top: 34px;
  padding: 28px;
  border-radius: 22px;
  color: #fff;
  background: linear-gradient(135deg, var(--blue-950), var(--blue-800));
}
.guide-important h2 { margin: 0; font-size: 1.65rem; }
.guide-important p { margin: 10px 0 0; color: rgba(255,255,255,.82); }
.guide-important a:not(.button) { color: #ffd28c; font-weight: 800; }
.guide-final-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.guide-final-actions .button { min-height: 46px; }
.button-white { color: var(--blue-950); background: #fff; }
.button-soft-white { color:#fff; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.08); }

@media (max-width: 760px) {
  .inscription-guide { padding: 50px 0 62px; }
  .guide-intro { align-items:flex-start; flex-direction:column; }
  .guide-step { grid-template-columns: 1fr; gap: 14px; padding: 24px 0; }
  .guide-step-number { width: 48px; height: 48px; border-radius: 15px; }
  .guide-image-box { margin-left: -4px; margin-right: -4px; padding: 9px; border-radius: 15px; }
  .guide-image-box img { border-radius: 8px; }
  .credentials-grid { grid-template-columns: 1fr; }
  .guide-cta-card { align-items:flex-start; padding:20px; }
  .guide-cta-arrow { margin-top: 10px; }
}


/* ============================================================
   PATROCINADORES · V21
   ============================================================ */
.sponsor-home-message {
  max-width: 760px;
  margin: 12px auto 0;
  color: #5a6b80;
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.6;
}
.sponsor-home-cta { display:flex; justify-content:center; margin-top:28px; }
.sponsor-home-cta .button { min-width: 190px; }
.sponsors-strip {
  padding: 54px 0 58px;
  border-top: 1px solid var(--line);
  background: #fff;
}
.sponsors-strip .sponsor-grid { margin-top: 0; }
.sponsor-page { padding: 66px 0 88px; background:#f7f9fc; }
.sponsor-story {
  max-width: 920px;
  margin: 0 auto 34px;
  padding: 30px 34px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background:#fff;
  box-shadow:0 14px 34px rgba(8,49,98,.055);
  text-align:center;
}
.sponsor-story h2 { margin:0 0 12px; color:var(--blue-950); font-size:clamp(1.9rem,3.5vw,2.8rem); letter-spacing:-.035em; }
.sponsor-story p { margin:0 auto; max-width:800px; color:#556980; line-height:1.72; }
.sponsor-story p + p { margin-top:12px; }
.sponsor-story strong { color:var(--blue-900); }
.sponsor-benefits {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin: 0 0 46px;
}
.sponsor-benefit {
  padding:24px 22px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(8,49,98,.045);
}
.sponsor-benefit-icon {
  display:grid; place-items:center; width:42px; height:42px; margin-bottom:15px;
  border-radius:12px; color:#fff; background:var(--orange-500); font-weight:950;
}
.sponsor-benefit h3 { margin:0 0 8px; color:var(--blue-950); font-size:1.15rem; }
.sponsor-benefit p { margin:0; color:#5a6d83; line-height:1.62; }
.sponsor-roster {
  padding:38px 26px 34px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 34px rgba(8,49,98,.055);
}
.sponsor-roster-heading { max-width:780px; margin:0 auto 28px; text-align:center; }
.sponsor-roster-heading .eyebrow { margin-bottom:5px; }
.sponsor-roster-heading h2 { margin:0 0 10px; color:var(--blue-950); font-size:clamp(1.8rem,3vw,2.5rem); }
.sponsor-roster-heading p { margin:0; color:#5b6e84; line-height:1.62; }
.sponsor-page-grid { margin-top:0; }
.sponsor-page-grid .sponsor-card { width:230px; height:138px; flex-basis:230px; }
.sponsor-cta-panel {
  margin-top:38px;
  padding:34px;
  border-radius:22px;
  color:#fff;
  background:linear-gradient(135deg,var(--blue-950),var(--blue-800));
  box-shadow:0 18px 44px rgba(8,49,98,.15);
  text-align:center;
}
.sponsor-cta-panel .eyebrow { color:var(--orange-300); }
.sponsor-cta-panel h2 { margin:6px 0 10px; font-size:clamp(1.9rem,3.8vw,2.8rem); letter-spacing:-.035em; }
.sponsor-cta-panel p { max-width:760px; margin:0 auto; color:rgba(255,255,255,.82); line-height:1.65; }
.sponsor-contact-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }
.sponsor-contact-actions .button-whatsapp { color:var(--blue-950); background:#fff; border-color:#fff; }
.sponsor-contact-actions .button-whatsapp:hover,
.sponsor-contact-actions .button-whatsapp:focus-visible { background:#f1f6ff; }
.fiscal-note {
  width:100%;
  max-width:none;
  margin:22px 0 0;
  padding:14px 18px;
  border-left:3px solid #c7d2df;
  color:#708095;
  font-size:.82rem;
  line-height:1.55;
}
.fiscal-note strong { color:#56677d; }

/* Contacto: email + WhatsApp y ubicación unificada */
.contact-card-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:15px; }
.contact-card-actions .button { padding:10px 15px; font-size:.9rem; }
.contact-whatsapp-number { color:var(--blue-800); font-size:1.08rem; font-weight:900; text-decoration:none; }
.map-heading-content { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:20px; }
.map-address { margin:9px 0 0; color:#40546d; font-style:normal; font-weight:760; line-height:1.55; }
.map-heading-note { margin-top:16px !important; }

@media (max-width: 760px) {
  .sponsors-strip { padding:38px 0 42px; }
  .sponsor-page { padding:42px 0 58px; }
  .sponsor-story { padding:24px 20px; border-radius:17px; }
  .sponsor-benefits { grid-template-columns:1fr; gap:12px; margin-bottom:30px; }
  .sponsor-benefit { padding:20px 18px; border-radius:16px; }
  .sponsor-roster { padding:28px 14px 24px; border-radius:17px; }
  .sponsor-page-grid .sponsor-card { flex-basis:calc(50% - 7px); width:calc(50% - 7px); height:auto; aspect-ratio:1.66 / 1; }
  .sponsor-cta-panel { padding:27px 18px; border-radius:17px; }
  .sponsor-contact-actions { flex-direction:column; }
  .sponsor-contact-actions .button { width:100%; }
  .map-heading-content { grid-template-columns:1fr; align-items:start; gap:14px; }
  .map-heading-content .button { justify-self:start; }
}

/* ============================================================
   AJUSTES V23 · patrocinadores y pie de página
   ============================================================ */
.sponsor-home-message { text-align: center; }

/* Nota fiscal: secundaria, sin línea decorativa y próxima al CTA */
.fiscal-note {
  width: 100%;
  max-width: none;
  margin: 14px 0 0;
  padding: 0 4px;
  border-left: 0;
  color: #708095;
  font-size: .82rem;
  line-height: 1.55;
}
.fiscal-note strong { color: #56677d; }

/* Pie: marca + redes arriba; legal + copyright abajo */
.footer-main {
  min-height: 132px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.footer-social {
  display: grid;
  justify-items: end;
  gap: 9px;
}
.footer-social-title {
  margin: 0;
  color: rgba(255,255,255,.62);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.footer-social-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}
.footer-social-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 11px;
  color: rgba(255,255,255,.9);
  background: rgba(255,255,255,.055);
  font-size: .86rem;
  font-weight: 800;
  text-decoration: none;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.footer-social-link:hover,
.footer-social-link:focus-visible {
  color: #fff;
  border-color: rgba(255,255,255,.34);
  background: rgba(255,255,255,.11);
}
.footer-social-icon { width: 20px; height: 20px; flex: 0 0 20px; }
.footer-x-icon { width: 18px; height: 18px; flex-basis: 18px; }

.footer-bottom {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 1px solid rgba(255,255,255,.1);
  font-size: .78rem;
  color: rgba(255,255,255,.55);
}
.footer-legal-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
}
.footer-legal-links a {
  color: rgba(255,255,255,.58);
  text-decoration: none;
  white-space: nowrap;
}
.footer-legal-links a:hover,
.footer-legal-links a:focus-visible { color: #fff; }
.footer-legal-links a + a::before {
  content: "·";
  display: inline-block;
  margin: 0 9px;
  color: rgba(255,255,255,.28);
}
.footer-copyright { white-space: nowrap; }

@media (max-width: 760px) {
  .footer-main {
    padding-block: 30px;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }
  .footer-social { justify-items: start; }
  .footer-social-links { justify-content: flex-start; }
  .footer-bottom {
    padding-block: 18px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 12px;
  }
  .footer-copyright { white-space: normal; }
}


/* ============================================================
   AJUSTES V24 · CTA patrocinadores portada
   ============================================================ */
.section-heading.centered .sponsor-home-message {
  width: 100%;
  max-width: 760px;
  margin: 12px auto 0;
  text-align: center;
}

.sponsor-home-cta {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}
.sponsor-cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 58px;
  padding: 0 18px 0 24px;
  border: 1px solid rgba(194,112,0,.2);
  border-radius: 16px;
  color: var(--blue-950);
  background: linear-gradient(135deg, #ffc15a, #ffab2e);
  box-shadow: 0 12px 28px rgba(208,123,0,.18), 0 2px 5px rgba(8,49,98,.08);
  font-size: 1.02rem;
  font-weight: 900;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.sponsor-cta-arrow {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue-900);
  font-size: 1.08rem;
  line-height: 1;
  transition: transform .18s ease;
}
.sponsor-cta-link:hover,
.sponsor-cta-link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(208,123,0,.24), 0 3px 7px rgba(8,49,98,.1);
  filter: saturate(1.04);
}
.sponsor-cta-link:hover .sponsor-cta-arrow,
.sponsor-cta-link:focus-visible .sponsor-cta-arrow {
  transform: translateX(2px);
}
.sponsor-cta-link:focus-visible {
  outline: 3px solid rgba(12,77,162,.22);
  outline-offset: 3px;
}

@media (max-width: 520px) {
  .sponsor-cta-link {
    width: min(100%, 310px);
    min-height: 56px;
    padding-left: 20px;
  }
}

/* V27 · Equipación y Aula de Estudio: información más explícita */
.included-price { background:var(--blue-800); }
.equipment-cover-card { margin-bottom:14px; }
.equipment-purchase-card {
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-top:14px;
  padding:20px 22px;
  border:1px solid #d9e5f1;
  border-radius:18px;
  background:#f5f9fe;
}
.equipment-purchase-icon {
  display:grid;
  place-items:center;
  flex:0 0 52px;
  width:52px;
  height:52px;
  border-radius:14px;
  color:#fff;
  background:var(--blue-800);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.04em;
}
.equipment-purchase-card h3 { margin:0 0 7px; color:var(--blue-950); }
.equipment-purchase-card p { margin:0; color:#53647a; }
.equipment-purchase-card .delivery-time { margin-top:8px; color:var(--blue-950); }
.equipment-cycle-note {
  margin:12px 4px 0;
  color:#718096;
  font-size:.82rem;
  line-height:1.5;
}

.aula-stats { grid-template-columns:1fr 1fr 1.65fr 1fr; align-items:stretch; }
.aula-stats .aula-stat {
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  min-height:132px;
  padding:16px;
  text-align:left;
}
.aula-stat-label {
  display:block;
  margin-bottom:10px;
  color:#667991;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.aula-stat-label em { font-style:normal; font-weight:750; text-transform:none; letter-spacing:0; }
.aula-stats .aula-stat strong { color:var(--blue-950); font-size:1.08rem; line-height:1.25; }
.aula-stats .aula-stat small {
  display:block;
  margin-top:7px;
  color:#64758a;
  font-size:.79rem;
  line-height:1.45;
}
.aula-stats .aula-stat small b { color:#40546c; }
.aula-stat-payment { background:#edf5fe !important; }

/* Un único botón de descarga: mismo tratamiento principal azul de "Ver PDF". */
.pdf-resource-actions { justify-content:flex-end; }
.pdf-resource-actions .pdf-view { min-width:160px; }

@media (max-width: 1020px) {
  .aula-stats { grid-template-columns:repeat(2,1fr); }
  .aula-stat-payment { grid-column:span 2; }
}
@media (max-width: 760px) {
  .aula-stats { grid-template-columns:1fr; }
  .aula-stat-payment { grid-column:auto; }
  .aula-stats .aula-stat { min-height:0; }
  .equipment-purchase-card { padding:18px; }
}


/* ==============================================================
   CÓMO HACER LA INSCRIPCIÓN · V28
   ============================================================== */
.guide-intro-reading {
  display: block;
  margin-bottom: 22px;
  padding: 22px 24px;
  border-left: 4px solid var(--orange-500);
}
.guide-intro-reading p {
  max-width: none;
  line-height: 1.6;
}
.guide-cta-preview {
  cursor: default;
  user-select: none;
  box-shadow: 0 12px 28px rgba(8,49,98,.10);
}
.guide-cta-preview .guide-cta-arrow { opacity: .72; }
.guide-location-note {
  margin-top: 11px !important;
  color: var(--muted) !important;
  font-size: .88rem !important;
}
.guide-credentials-image {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}
.guide-credentials-image img { max-width: 400px !important; }
.guide-choose-case {
  margin-top: 18px !important;
  color: var(--blue-950) !important;
}
.guide-important {
  margin-top: 30px;
  padding: 26px 28px;
  border: 1px solid #d7e4f3;
  border-radius: 20px;
  color: var(--blue-950);
  background: #eef5fc;
  box-shadow: none;
}
.guide-important h2 { color: var(--blue-950); }
.guide-important p { color: #43536a; }
.guide-important a:not(.button) { color: var(--blue-800); text-decoration: underline; text-underline-offset: 2px; }
.guide-enroll-final {
  margin-top: 22px;
}
.guide-cta-live {
  margin-top: 0;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 18px 38px rgba(8,49,98,.18);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.guide-cta-live:hover,
.guide-cta-live:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 22px 44px rgba(8,49,98,.23);
  filter: saturate(1.04);
}
@media (max-width: 760px) {
  .guide-intro-reading { padding: 19px 18px; }
  .guide-credentials-image { max-width: 100%; }
  .guide-credentials-image img { max-width: 100% !important; }
  .guide-important { padding: 22px 20px; }
}

/* ==============================================================
   NOTICIAS
   ============================================================== */
.home-news {
  padding: 78px 0 86px;
  background: #fff;
  border-top: 1px solid rgba(12,77,162,.055);
}
.home-news-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}
.home-news-heading h2 {
  margin: 0;
  color: var(--blue-950);
  font-size: clamp(2rem, 4vw, 3.15rem);
  line-height: 1.05;
  letter-spacing: -.035em;
}
.home-news-all {
  flex: 0 0 auto;
  margin-bottom: 5px;
  color: var(--blue-800);
  font-weight: 850;
  text-decoration: none;
}
.home-news-all:hover,
.home-news-all:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.news-home-grid,
.news-index-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.news-home-grid.single .news-list-card {
  width: min(760px, 100%);
  justify-self: center;
}
.news-index { padding: 72px 0 88px; background: #f7f9fc; }
.news-index-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.news-index-grid.single .news-list-card {
  grid-column: 1 / -1;
  width: min(760px, 100%);
  justify-self: center;
}
.news-list-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(8,49,98,.075);
  transition: transform .18s ease, box-shadow .18s ease;
}
.news-list-card:hover { transform: translateY(-3px); box-shadow: 0 20px 44px rgba(8,49,98,.12); }
.news-list-media-link { display: block; text-decoration: none; }
.news-list-media {
  position: relative;
  height: 218px;
  overflow: hidden;
  background: #dfeaf7;
}
.news-list-media img { width: 100%; height: 100%; object-fit: cover; }
.news-list-media-brand {
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 24px;
  color: #fff;
  background:
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.15), transparent 11rem),
    linear-gradient(135deg, #072e63 0%, #0c4da2 62%, #1468ba 100%);
}
.news-list-media-brand::after {
  content: "";
  position: absolute;
  right: -55px;
  bottom: -92px;
  width: 220px;
  height: 160px;
  border-radius: 50%;
  background: var(--orange-500);
  transform: rotate(-13deg);
}
.news-list-media-brand strong {
  position: relative;
  z-index: 1;
  font-size: 5.6rem;
  line-height: .8;
  letter-spacing: -.075em;
  text-shadow: 0 8px 24px rgba(0,0,0,.1);
}
.news-list-media-brand span {
  position: relative;
  z-index: 1;
  margin-top: 15px;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-align: center;
  text-transform: uppercase;
  opacity: .86;
}
.news-list-body { display: flex; flex: 1; flex-direction: column; padding: 25px 26px 27px; }
.news-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 12px;
  margin-bottom: 12px;
  color: #708198;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.news-meta time + span::before,
.news-article-meta time + span::before { content: "·"; margin-right: 12px; color: #aab7c7; }
.news-pin {
  padding: 4px 8px;
  border-radius: 999px;
  color: #7a4500;
  background: #fff0d5;
  font-size: .67rem;
}
.news-list-body h3 { margin: 0; color: var(--blue-950); font-size: clamp(1.28rem, 2vw, 1.62rem); line-height: 1.12; letter-spacing: -.027em; }
.news-list-body h3 a { text-decoration: none; }
.news-list-body h3 a:hover,
.news-list-body h3 a:focus-visible { color: var(--blue-800); }
.news-list-body p { margin: 13px 0 18px; color: var(--muted); line-height: 1.63; }
.news-read-more { margin-top: auto; color: var(--blue-800); font-weight: 850; text-decoration: none; }
.news-read-more:hover,
.news-read-more:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

.news-article { background: #fff; }
.news-article-hero {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 82% 25%, rgba(255,255,255,.11), transparent 18rem),
    linear-gradient(120deg, #062c62 0%, #0b4d9f 60%, #1266bd 100%);
}
.news-article-hero::after {
  content: "";
  position: absolute;
  right: -11vw;
  bottom: -190px;
  width: 46vw;
  height: 300px;
  border-radius: 50%;
  background: rgba(245,154,23,.94);
  transform: rotate(-9deg);
}
.news-article-hero-inner { position: relative; z-index: 1; max-width: 1040px; padding-block: 62px 72px; }
.news-back-link { display: inline-block; margin-bottom: 30px; color: rgba(255,255,255,.8); font-weight: 800; text-decoration: none; }
.news-back-link:hover,
.news-back-link:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.news-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: 14px;
  color: #ffd18a;
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.news-article-hero h1 {
  max-width: 980px;
  margin: 0;
  font-size: clamp(2.55rem, 5.7vw, 5.2rem);
  line-height: .98;
  letter-spacing: -.052em;
}
.news-article-lead { max-width: 850px; margin: 23px 0 0; color: rgba(255,255,255,.87); font-size: clamp(1.08rem, 1.6vw, 1.28rem); line-height: 1.55; }
.news-article-layout { max-width: 980px; padding-block: 62px 80px; }
.news-article-body { font-size: 1.075rem; line-height: 1.78; }
.news-article-body > p { margin: 0 0 25px; color: #344861; }
.news-article-body > p strong { color: #183b68; }
.news-pullquote {
  margin: 38px 0;
  padding: 24px 28px 24px 30px;
  border-left: 5px solid var(--orange-500);
  border-radius: 0 18px 18px 0;
  color: var(--blue-950);
  background: #f3f7fc;
  font-size: 1.18rem;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0;
}
.news-sponsor-showcase {
  margin-top: 46px;
  padding: 34px 28px 30px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #f8fafc;
}
.news-sponsor-showcase .eyebrow { text-align: center; }
.news-sponsor-showcase h2 { margin: 0 0 25px; color: var(--blue-950); font-size: 1.55rem; line-height: 1.2; letter-spacing: 0; text-align: center; }
.news-sponsor-grid .sponsor-card { flex-basis: 190px; width: 190px; height: 114px; }
.news-article-cta {
  margin-top: 34px;
  padding: 36px 34px;
  border-radius: 22px;
  color: #fff;
  text-align: center;
  background: linear-gradient(135deg, #072e63, #0c4da2 70%, #155fac);
  box-shadow: var(--shadow);
}
.news-article-cta .eyebrow { color: #ffc66b; }
.news-article-cta h2 { margin: 0; font-size: clamp(1.8rem, 3.4vw, 2.65rem); line-height: 1.08; letter-spacing: -.035em; }
.news-article-cta p { max-width: 790px; margin: 16px auto 0; color: rgba(255,255,255,.82); }
.news-article-cta .news-cta-mantra { color: #fff; }
.news-cta-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 25px; }
.news-whatsapp { color: #fff; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.08); }
.news-whatsapp:hover,
.news-whatsapp:focus-visible { background: rgba(255,255,255,.14); }
.news-article-sponsors-strip { padding-top: 36px; }

@media (max-width: 980px) {
  .news-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .home-news { padding: 58px 0 64px; }
  .home-news-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .home-news-all { margin-bottom: 0; }
  .news-home-grid,
  .news-index-grid { grid-template-columns: 1fr; }
  .news-list-media { height: 190px; }
  .news-list-media-brand strong { font-size: 4.7rem; }
  .news-index { padding: 52px 0 64px; }
  .news-article-hero-inner { padding-block: 46px 54px; }
  .news-back-link { margin-bottom: 24px; }
  .news-article-layout { padding-block: 42px 58px; }
  .news-article-body { font-size: 1rem; }
  .news-pullquote { margin: 30px 0; padding: 23px 22px 23px 24px; }
  .news-sponsor-showcase { padding: 26px 16px 22px; }
  .news-sponsor-grid .sponsor-card { flex-basis: calc(50% - 7px); width: calc(50% - 7px); height: auto; aspect-ratio: 1.66 / 1; }
  .news-article-cta { padding: 28px 18px; }
  .news-cta-actions { flex-direction: column; }
  .news-cta-actions .button { width: 100%; }
}


/* ============================================================
   AJUSTES V32 · noticias compactas + lectura + metadatos
   ============================================================ */
.news-list-card {
  border-radius: 18px;
}
.news-list-band {
  display: flex;
  align-items: center;
  min-height: 64px;
  padding: 15px 22px;
  color: #fff;
  background: linear-gradient(115deg, #08376f, #0c4da2 72%, #135eac);
}
.news-list-band .news-meta {
  margin: 0;
  color: rgba(255,255,255,.9);
  font-size: .75rem;
  letter-spacing: .045em;
}
.news-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.news-meta-sep {
  display: inline-block;
  margin: 0 .58rem;
  color: currentColor;
  opacity: .62;
}
/* Anula el separador pseudo de versiones anteriores */
.news-meta time + span::before,
.news-article-meta time + span::before { content: none !important; margin: 0 !important; }
.news-list-body {
  padding: 27px 28px 29px;
}
.news-list-body h3 {
  font-size: clamp(1.38rem, 2vw, 1.72rem);
}
.news-list-body p {
  margin: 14px 0 20px;
}
.news-pin {
  margin-left: .72rem;
  color: #fff;
  background: rgba(255,255,255,.16);
}
.news-article-meta {
  align-items: center;
  gap: 0;
}
.news-article-meta .news-meta-sep {
  margin: 0 .62rem;
  color: #ffd18a;
  opacity: .72;
}
.news-article-body > p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

@media (max-width: 760px) {
  .news-list-band { min-height: 58px; padding: 13px 18px; }
  .news-list-body { padding: 23px 20px 25px; }
  .news-list-band .news-meta { font-size: .7rem; }
  .news-article-body > p { text-align: left; hyphens: none; -webkit-hyphens: none; }
}


/* ============================================================
   AJUSTES V34 · CABECERAS, ACTUALIDAD Y PATROCINADORES ROBUSTOS
   ============================================================ */

/* Cabecera superior: marca en una sola línea y menú más aireado. */
.brand { min-width: 0; flex: 0 1 auto; }
.brand-text { min-width: 0; }
.brand-text strong {
  white-space: nowrap;
  font-size: clamp(1.42rem, 1.65vw, 1.9rem);
  letter-spacing: 0;
}
.desktop-nav { flex: 0 0 auto; gap: 9px; }
.desktop-nav a { white-space: nowrap; padding-inline: 11px; }

/* Portada: 80 px y separación entre caracteres de 2 px. */
.hero h1 {
  font-size: 80px;
  line-height: .95;
  letter-spacing: 2px;
}

/* Cabeceras de las secciones interiores: 60 px y separación de 1 px. */
.info-hero h1,
.contact-hero h1,
.legal-hero h1 {
  font-size: 60px;
  line-height: 1.02;
  letter-spacing: 1px;
}

/* El titular de una noticia individual es deliberadamente menor que el de una sección. */
.news-article-hero h1 {
  font-size: 45px;
  line-height: 1.08;
  letter-spacing: .5px;
}

/* Actualidad: bajo la cabecera solo queda el rótulo ÚLTIMAS NOTICIAS. */
.news-index { padding: 58px 0 78px; }
.news-index-heading { margin: 0 0 22px; }
.news-index-heading .eyebrow { margin: 0; }

/* En Actualidad las noticias ocupan el ancho disponible y se apilan. */
.news-index-grid,
.news-index-grid.single {
  grid-template-columns: 1fr;
  gap: 20px;
}
.news-index-grid .news-list-card,
.news-index-grid.single .news-list-card {
  grid-column: auto;
  width: 100%;
  max-width: none;
  justify-self: stretch;
}

/* Franja de metadatos más fina. */
.news-list-band {
  min-height: 48px;
  padding: 10px 20px;
}
.news-list-band .news-meta { font-size: .73rem; }
.news-meta-sep { margin-inline: .48rem; }

@media (max-width: 1180px) {
  .brand-home > img { width: 72px; height: 72px; }
  .brand-text strong { font-size: 1.5rem; }
  .brand-text .college-name { font-size: .9rem; }
  .header-inner { gap: 16px; }
  .desktop-nav { gap: 4px; }
  .desktop-nav a { padding-inline: 9px; font-size: .9rem; }
}

@media (max-width: 980px) and (min-width: 761px) {
  .hero h1 { font-size: 64px; }
  .info-hero h1,
  .contact-hero h1,
  .legal-hero h1 { font-size: 52px; }
  .news-article-hero h1 {
    font-size: 40px;
    letter-spacing: .5px;
  }
}

@media (max-width: 760px) {
  .brand-text strong { white-space: normal; }
  .hero h1 {
    font-size: clamp(2.55rem, 12vw, 3.35rem);
    letter-spacing: 1px;
  }
  .info-hero h1,
  .contact-hero h1,
  .legal-hero h1 {
    font-size: clamp(2.35rem, 10vw, 3rem);
    letter-spacing: .5px;
  }
  .news-article-hero h1 {
    font-size: 34px;
    line-height: 1.1;
    letter-spacing: 0;
  }
  .news-index { padding: 44px 0 58px; }
  .news-list-band { min-height: 44px; padding: 9px 16px; }
}

/* ============================================================
   AJUSTES V38 · HORARIOS CERRADOS Y FECHAS ALINEADAS
   ============================================================ */
/* En escritorio cada resumen usa tres columnas estables:
   curso/categoría · fecha de inicio · control +/−. */
.schedule-group summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 250px 28px;
  align-items: center;
  column-gap: 24px;
  justify-content: initial;
}
.schedule-group summary > span {
  grid-column: 1;
  min-width: 0;
}
.schedule-group summary > small {
  grid-column: 2;
  width: 100%;
  justify-self: start;
  text-align: left;
  white-space: nowrap;
}
.schedule-group summary::after {
  grid-column: 3;
  justify-self: end;
}

@media (max-width: 760px) {
  .schedule-group summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px;
    grid-template-rows: auto auto;
    align-items: start;
    gap: 3px 12px;
    padding: 14px 16px;
    padding-right: 16px;
  }
  .schedule-group summary > span {
    grid-column: 1;
    grid-row: 1;
  }
  .schedule-group summary > small {
    grid-column: 1;
    grid-row: 2;
    white-space: normal;
  }
  .schedule-group summary::after {
    position: static;
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    justify-self: end;
  }
}

/* ============================================================
   AJUSTES V39 · ACTIVIDADES +18 EN HORARIOS
   ============================================================ */
.schedule-group summary .schedule-age {
  display:inline-block;
  margin-left:8px;
  color:rgba(255,255,255,.72);
  font-size:.72rem;
  font-style:normal;
  font-weight:700;
  letter-spacing:.01em;
  vertical-align:middle;
}

@media (max-width:760px) {
  .schedule-group summary .schedule-age {
    margin-left:6px;
    font-size:.68rem;
  }
}

/* ============================================================
   AJUSTES V41 · RITMO VERTICAL Y JERARQUÍA DE TÍTULOS
   ============================================================ */

/* Contacto usa el mismo lenguaje visual y proporciones que el resto de
   cabeceras interiores. */
.contact-hero {
  background:
    radial-gradient(circle at 82% 30%, rgba(255,255,255,.10), transparent 18rem),
    linear-gradient(120deg, #062c62 0%, #0b4d9f 60%, #1266bd 100%);
}
.contact-hero::after {
  right: -14vw;
  bottom: -210px;
  width: 52vw;
  height: 320px;
  background: rgba(245,154,23,.93);
  transform: rotate(-9deg);
}
.contact-hero-inner { padding-block: 74px 82px; }
.contact-hero h1 { margin: 0; }
.contact-hero p:last-child {
  max-width: 830px;
  margin: 20px 0 0;
  color: rgba(255,255,255,.87);
  font-size: clamp(1.05rem, 1.5vw, 1.22rem);
}

/* Títulos de sección: un nivel claramente inferior a las cabeceras de 60 px. */
.section-heading h2,
.home-news-heading h2,
.section-title-row h2,
.sponsor-story h2,
.sponsor-roster-heading h2,
.sponsor-cta-panel h2 {
  font-size: clamp(2rem, 3.2vw, 42px);
  line-height: 1.07;
  letter-spacing: 0;
}

/* Portada: menos aire entre bloques, manteniendo una reducción mayor antes
   de Patrocinadores que antes de Actualidad. */
.home-news { padding: 58px 0 24px; }
.sponsors { padding: 18px 0 62px; }

/* Ritmo vertical coherente en el resto de páginas: compactamos solo los
   márgenes exteriores que resultaban excesivos, sin apretar el contenido. */
.info-content { padding: 58px 0 72px; }
.content-section { margin-bottom: 62px; }
.inscription-guide { padding: 58px 0 68px; }
.news-index { padding: 48px 0 62px; }
.sponsor-page { padding: 54px 0 68px; }
.contact-page { padding: 46px 0 64px; }
.legal-page { padding: 42px 0 64px; }
.sponsors-strip { padding: 42px 0 46px; }

@media (max-width: 760px) {
  .contact-hero-inner { padding-block: 52px 58px; }
  .home-news { padding: 48px 0 20px; }
  .sponsors { padding: 16px 0 50px; }
  .info-content { padding: 44px 0 56px; }
  .content-section { margin-bottom: 48px; }
  .inscription-guide { padding: 44px 0 54px; }
  .news-index { padding: 40px 0 52px; }
  .sponsor-page { padding: 40px 0 52px; }
  .contact-page { padding: 34px 0 52px; }
  .legal-page { padding: 34px 0 52px; }
  .sponsors-strip { padding: 34px 0 38px; }
}

/* ============================================================
   AJUSTES V43 · RITMO ENTRE BLOQUES
   ============================================================ */

/* Inicio:
   - banner "Cómo hacer tu inscripción" -> Actualidad: 96 px aprox.
   - final de Noticias -> Patrocinadores: 80 px aprox. */
.quick-actions { padding-top: 60px; padding-bottom: 48px; }
.home-news { padding: 48px 0 40px; }
.sponsors { padding: 40px 0 62px; }

/* Información y Horarios: el último bloque no añade un margen adicional
   antes de la banda "¿Tienes alguna duda?". El aire final lo controla
   únicamente el padding inferior de .info-content (72 px). */
.info-main > .content-section:last-child { margin-bottom: 0; }

@media (max-width: 760px) {
  /* En móvil mantenemos el mismo criterio con distancias más compactas:
     ayuda -> Actualidad: 78 px aprox.; Noticias -> Patrocinadores: 60 px. */
  .quick-actions { padding-top: 45px; padding-bottom: 38px; }
  .home-news { padding: 40px 0 30px; }
  .sponsors { padding: 30px 0 50px; }
}


/* ============================================================
   AJUSTES V50 · TARJETAS EDITORIALES DE ACTUALIDAD
   ============================================================ */
/* Inicio y Actualidad comparten el mismo lenguaje visual: dos columnas
   en escritorio y una franja lateral para fecha/icono. */
.news-home-grid,
.news-index-grid,
.news-index-grid.single {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.news-home-grid.single .news-list-card,
.news-index-grid.single .news-list-card,
.news-index-grid .news-list-card {
  width: 100%;
  max-width: none;
  justify-self: stretch;
  grid-column: auto;
}
.news-list-card--editorial {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
}
.news-date-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 22px 12px;
  color: #fff;
  text-align: center;
  background: linear-gradient(180deg, #08376f 0%, #0c4da2 72%, #135eac 100%);
}
.news-date-rail svg,
.news-mobile-meta svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.news-date-rail svg { width: 25px; height: 25px; opacity: .96; }
.news-date-rail time { display: flex; flex-direction: column; gap: 2px; line-height: 1; }
.news-date-rail time strong { font-size: .88rem; letter-spacing: .045em; }
.news-date-rail time span { font-size: .75rem; font-weight: 750; letter-spacing: .08em; opacity: .86; }
.news-list-body--editorial { padding: 26px 30px 27px; }
.news-list-body--editorial .news-category {
  margin: 0 0 8px;
  color: #d97300;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.news-list-body--editorial h3 { margin: 0; }
.news-list-body--editorial .news-excerpt {
  display: -webkit-box;
  margin: 12px 0 17px;
  overflow: hidden;
  color: var(--text);
  line-height: 1.58;
  white-space: pre-line;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 11;
  line-clamp: 11;
}
.news-list-card--editorial.has-card-photo .news-excerpt {
  -webkit-line-clamp: 5;
  line-clamp: 5;
}
.news-list-card--editorial:not(.has-card-photo) .news-category {
  margin-bottom: 14px;
}
.news-list-body--editorial .news-read-more { margin-top: auto; }
.news-mobile-meta { display: none; }

@media (max-width: 980px) and (min-width: 761px) {
  .news-list-card--editorial { grid-template-columns: 78px minmax(0, 1fr); }
  .news-date-rail { padding-inline: 9px; }
  .news-list-body--editorial { padding: 24px 25px 25px; }
  .news-list-body--editorial .news-excerpt {
    -webkit-line-clamp: 9;
    line-clamp: 9;
  }
  .news-list-card--editorial.has-card-photo .news-excerpt {
    -webkit-line-clamp: 5;
    line-clamp: 5;
  }
}

@media (max-width: 760px) {
  .news-home-grid,
  .news-index-grid,
  .news-home-grid.single,
  .news-index-grid.single,
  .news-home-grid.two-items,
  .news-index-grid.two-items { grid-template-columns: 1fr; }
  .news-list-card--editorial { display: block; }
  .news-date-rail { display: none; }
  .news-list-body--editorial { padding: 0 20px 24px; }
  .news-mobile-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 -20px 20px;
    padding: 11px 18px;
    color: rgba(255,255,255,.94);
    background: linear-gradient(115deg, #08376f, #0c4da2 72%, #135eac);
    font-size: .72rem;
    font-weight: 750;
  }
  .news-mobile-meta svg { width: 18px; height: 18px; flex: 0 0 auto; stroke-width: 1.8; }
  .news-list-body--editorial .news-category { display: none; }
  .news-list-body--editorial .news-excerpt {
    margin-top: 11px;
    -webkit-line-clamp: 7;
    line-clamp: 7;
  }
  .news-list-card--editorial.has-card-photo .news-excerpt {
    -webkit-line-clamp: 4;
    line-clamp: 4;
  }
}


/* ============================================================
   AJUSTES V51 · NOTICIA FIJADA + ARTÍCULO EN CONTENEDOR EDITORIAL
   ============================================================ */
.news-list-card--editorial { position: relative; }
.news-pin-badge {
  position: absolute;
  z-index: 4;
  top: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 9px;
  border: 1px solid rgba(190,111,0,.20);
  border-radius: 999px;
  color: #8a4c00;
  background: #fff3d9;
  box-shadow: 0 5px 14px rgba(22,54,91,.08);
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .07em;
  line-height: 1;
  text-transform: uppercase;
}
.news-pin-badge svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* La noticia completa queda visualmente encerrada en una única gran tarjeta.
   El bloque general de patrocinadores queda fuera y se distingue con claridad. */
.news-article {
  padding: 46px 0 68px;
  background: #f4f7fb;
}
.news-article-frame-container { max-width: 1180px; }
.news-article-shell {
  overflow: hidden;
  border: 1px solid #d9e4f0;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 22px 58px rgba(8,49,98,.10);
}
.news-article-shell .news-article-hero { margin: 0; }
.news-article-shell .news-article-hero-inner {
  max-width: none;
  padding: 48px 54px 55px;
}
.news-article-shell .news-article-layout {
  max-width: none;
  padding: 46px 54px 54px;
}
.news-article-shell .news-article-body {
  max-width: 900px;
  margin-inline: auto;
}
.news-article-sponsors-strip { padding-top: 48px; }

@media (max-width: 760px) {
  .news-pin-badge {
    top: 9px;
    right: 10px;
    padding: 5px 7px;
    color: #fff;
    border-color: rgba(255,255,255,.24);
    background: rgba(255,255,255,.14);
    box-shadow: none;
    font-size: .58rem;
  }
  .news-mobile-meta { padding-right: 88px; }
  .news-article { padding: 26px 0 46px; }
  .news-article-shell { border-radius: 20px; }
  .news-article-shell .news-article-hero-inner { padding: 32px 22px 38px; }
  .news-article-shell .news-article-layout { padding: 32px 20px 38px; }
  .news-article-sponsors-strip { padding-top: 34px; }
}


/* ============================================================
   AJUSTES V52 · ORDEN DE ACTUALIDAD + PATROCINADORES + BANDA DE AYUDA
   ============================================================ */

/* La banda "Estamos para ayudarte" cierra Inicio, Información y Horarios,
   pero con una presencia más contenida. */
.contact-inner {
  min-height: 180px;
  gap: 32px;
  padding-block: 28px;
}
.contact-inner .eyebrow {
  margin: 0 0 5px;
}
.contact-inner h2 {
  margin: 0;
  font-size: clamp(2rem, 3vw, 38px);
  line-height: 1.04;
  letter-spacing: -.02em;
}
.contact-inner p:last-child {
  margin: 8px 0 0;
  line-height: 1.48;
}

/* CTA pequeño tras cualquier franja general de patrocinadores. */
.sponsors-strip .sponsor-global-cta {
  margin-top: 24px;
}

/* En la página Patrocinadores reutilizamos la galleta editorial de las noticias. */
.sponsor-page-join-cta {
  margin-top: 30px;
}
.sponsor-page-join-cta + .fiscal-note {
  margin-top: 14px;
}

@media (max-width: 760px) {
  .contact-inner {
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 18px;
    padding-block: 30px;
  }
  .contact-inner h2 {
    font-size: 32px;
  }
  .contact-inner p:last-child {
    margin-top: 7px;
  }
  .sponsors-strip .sponsor-global-cta {
    margin-top: 20px;
  }
  .sponsor-page-join-cta {
    margin-top: 24px;
  }
}

/* ============================================================
   AJUSTES V59 · ACORDEÓN EXCLUSIVO Y CABECERAS CON MEJOR CONTRASTE
   ============================================================ */
/* Mantenemos el gesto más moderno del degradado, pero sin perder la silueta
   del acordeón ni el control + en la derecha. */
.schedule-group {
  border: 1px solid #c8d8ea;
  box-shadow: 0 12px 28px rgba(8,49,98,.05);
}
.schedule-group summary {
  position: relative;
  overflow: hidden;
  background: linear-gradient(100deg,
    #0b4f96 0%,
    #1262af 44%,
    #4f8fc8 70%,
    #a9cbe8 100%);
}
.schedule-group.adult summary {
  background: linear-gradient(100deg,
    #083e73 0%,
    #0b569a 44%,
    #4b87bd 70%,
    #9dc0df 100%);
}
.schedule-group summary > span {
  color: #fff;
  text-shadow: 0 1px 0 rgba(0,0,0,.05);
}
.schedule-group summary > small {
  color: #14385a;
  font-weight: 850;
  text-shadow: none;
}
.schedule-group summary::after {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  color: #fff;
  background: #0d4f95;
  box-shadow: 0 6px 16px rgba(8,49,98,.16);
  font-size: 1.55rem;
  font-weight: 500;
  line-height: 1;
}
.schedule-group[open] summary::after {
  content: "–";
}
.schedule-group.adult summary::after {
  background: #083e73;
}

@media (max-width: 760px) {
  .schedule-group summary > small {
    width: fit-content;
    margin-top: 4px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    color: #163a5d;
  }
  .schedule-group summary::after {
    width: 32px;
    height: 32px;
    font-size: 1.45rem;
  }
}

/* V64 · Tabla de importes: agrupación visual definitiva por actividad/deporte.
   Este bloque está deliberadamente limitado a .fees-table para no afectar al resto de la web. */
.fees-table tr > *:last-child { border-right:0; }
.fees-table thead th {
  z-index:3;
  font-weight:900;
}
.fees-table thead th small {
  font-size:.72rem;
  font-weight:500;
  text-transform:none;
  letter-spacing:0;
}

/* La alternancia se aplica únicamente a las filas de datos; las franjas no reinician el patrón. */
.fees-table tbody tr.data-row.alt-a td { background:#ffffff; }
.fees-table tbody tr.data-row.alt-b td { background:#fbfcfe; }
.fees-table tbody tr.data-row.alt-a td:nth-child(3) {
  color:var(--blue-950);
  background:#f2f7fd;
  font-size:1.06rem;
  font-weight:900;
}
.fees-table tbody tr.data-row.alt-b td:nth-child(3) {
  color:var(--blue-950);
  background:#fbfcfe;
  font-size:1.06rem;
  font-weight:900;
}

/* Franjas de identificación. Más finas y suaves que la cabecera principal. */
.fees-table tbody tr.sports-band > td {
  position:relative;
  padding:0;
  border-top:0;
  border-bottom:0;
  box-shadow:inset 0 1px 0 #76acd8, inset 0 -1px 0 #76acd8;
  background:linear-gradient(90deg,#dceefa 0%,#eef7fd 58%,#f8fbfe 100%);
  text-align:center;
}
.sports-band-content {
  display:block;
  padding:7px 15px 8px;
  color:#326a98;
  line-height:1.18;
  text-align:center;
}
.sports-band-content strong {
  display:block;
  font-size:.78rem;
  font-weight:760;
  letter-spacing:.025em;
  text-transform:uppercase;
}
.sports-band-content small {
  display:block;
  margin-top:3px;
  color:#42617f;
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.01em;
}

/* Separación mínima entre la cabecera azul y el primer bloque. */
.fees-table .head-gap td {
  height:7px;
  padding:0;
  background:#ffffff;
  border:0 !important;
}

@media (max-width:760px) {
  /* Mantiene visible el rótulo de cada franja al desplazar horizontalmente la tabla. */
  .sports-band-content {
    position:sticky;
    left:0;
    width:calc(100vw - 30px);
    max-width:430px;
    padding:8px 13px 9px;
  }
  .sports-band-content strong { font-size:.76rem; line-height:1.25; }
  .sports-band-content small { font-size:.71rem; }
}


/* ============================================================
   V68 · SISTEMA DE NOTICIAS AUTOGESTIONABLE
   ============================================================ */
.news-article-body .news-md-h2 {
  margin: 40px 0 16px;
  color: var(--blue-950);
  font-size: clamp(1.55rem, 2.4vw, 2rem);
  line-height: 1.18;
  letter-spacing: -.025em;
}
.news-article-body .news-md-h3 {
  margin: 30px 0 12px;
  color: #183b68;
  font-size: clamp(1.2rem, 1.8vw, 1.45rem);
  line-height: 1.25;
}
.news-md-list {
  margin: 0 0 26px;
  padding-left: 1.35rem;
  color: #344861;
}
.news-md-list li { margin: 7px 0; }
.news-inline-image,
.news-main-image,
.news-carousel-slide {
  margin: 34px 0;
}
.news-main-image { margin-top: 0; }
.news-image-button {
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  background: #eef3f8;
  cursor: zoom-in;
}
.news-image-button img {
  display: block;
  width: 100%;
  max-height: 680px;
  object-fit: contain;
}
.news-main-image figcaption,
.news-inline-image figcaption,
.news-carousel-slide figcaption {
  margin-top: 9px;
  color: #718196;
  font-size: .84rem;
  line-height: 1.45;
  text-align: center;
}
.news-carousel {
  position: relative;
  margin: 38px 0;
  padding-bottom: 32px;
}
.news-carousel-viewport {
  overflow: hidden;
  border-radius: 18px;
}
.news-carousel-track {
  display: flex;
  transition: transform .28s ease;
  will-change: transform;
}
.news-carousel-slide {
  min-width: 100%;
  margin: 0;
}
.news-carousel-slide .news-image-button { border-radius: 18px; }
.news-carousel-arrow {
  position: absolute;
  z-index: 3;
  top: 50%;
  width: 42px;
  height: 42px;
  margin-top: -38px;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 999px;
  color: #fff;
  background: rgba(5,44,91,.78);
  box-shadow: 0 8px 24px rgba(0,0,0,.15);
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.news-carousel-prev { left: 14px; }
.news-carousel-next { right: 14px; }
.news-carousel-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}
.news-carousel-dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #b9c9da;
  cursor: pointer;
}
.news-carousel-dots button.active { background: var(--blue-800); transform: scale(1.18); }
.news-sponsor-showcase--single .sponsor-grid { justify-content: center; }
.news-sponsor-showcase--single .sponsor-card { flex-basis: 230px; width: 230px; height: 138px; }
.news-article-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
  margin-top: 52px;
  padding-top: 28px;
  border-top: 1px solid #dbe5ef;
}
.news-article-nav-link {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  padding: 17px 18px;
  border: 1px solid #d9e4f0;
  border-radius: 16px;
  text-decoration: none;
  background: #f8fafc;
}
.news-article-nav-prev { grid-column: 1; text-align: left; }
.news-article-nav-next { grid-column: 3; text-align: right; }
.news-article-nav-label {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #677a91;
  font-size: .76rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .055em;
}
.news-article-nav-next .news-article-nav-label { justify-content: flex-end; }
.news-article-nav-words > span { display: inline; }
.news-article-nav-arrow { flex: 0 0 auto; }
.news-article-nav-link strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  color: var(--blue-950);
  font-size: 14px;
  line-height: 1.3;
  text-overflow: ellipsis;
}
@media (max-width: 1100px) and (min-width: 761px) {
  .news-article-nav-link strong { font-size: 13px; }
}
.news-preview-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 16px;
  padding: 12px 20px;
  color: #704200;
  background: #fff1cf;
  border-bottom: 1px solid #f0d89b;
  font-size: .88rem;
}
.news-preview-banner strong { letter-spacing: .06em; }
.news-preview-banner a { color: #704200; font-weight: 850; }
.news-format-error { padding: 12px 14px; border-radius: 10px; color: #8c1d18 !important; background: #fdecea; }
.news-lightbox[hidden] { display: none; }
.news-lightbox {
  position: fixed;
  z-index: 9999;
  inset: 0;
  display: grid;
  grid-template-columns: 58px minmax(0,1fr) 58px;
  align-items: center;
  gap: 10px;
  padding: 28px;
  background: rgba(3,18,35,.94);
}
.news-lightbox figure { margin: 0; text-align: center; }
.news-lightbox img { max-width: 100%; max-height: 84vh; object-fit: contain; }
.news-lightbox figcaption { margin-top: 10px; color: rgba(255,255,255,.78); font-size: .86rem; }
.news-lightbox-close,
.news-lightbox-prev,
.news-lightbox-next {
  border: 0;
  color: #fff;
  background: transparent;
  cursor: pointer;
}
.news-lightbox-close { position: absolute; top: 14px; right: 18px; font-size: 2.2rem; }
.news-lightbox-prev,
.news-lightbox-next { font-size: 3.2rem; }
body.lightbox-open { overflow: hidden; }

@media (max-width:760px) {
  .news-article-body .news-md-h2 { margin-top: 32px; }
  .news-article-body .news-md-h3 { margin-top: 26px; }
  .news-carousel-arrow { width: 38px; height: 38px; font-size: 1.75rem; }
  .news-article-nav {
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 10px;
    margin-top: 38px;
    padding-top: 22px;
  }
  .news-article-nav-link {
    min-height: 66px;
    padding: 10px 11px;
    justify-content: center;
  }
  .news-article-nav-link strong { display: none; }
  .news-article-nav-label {
    width: 100%;
    gap: 7px;
    font-size: .70rem;
    line-height: 1.12;
  }
  .news-article-nav-words { display: flex; flex-direction: column; gap: 2px; }
  .news-article-nav-words > span { display: block; }
  .news-article-nav-prev .news-article-nav-label { justify-content: space-between; }
  .news-article-nav-prev .news-article-nav-words { margin-left: auto; text-align: right; }
  .news-article-nav-next .news-article-nav-label { justify-content: space-between; }
  .news-article-nav-next .news-article-nav-words { margin-right: auto; text-align: left; }
  .news-article-nav-arrow { font-size: 1.15rem; line-height: 1; }
  .news-lightbox { grid-template-columns: 36px minmax(0,1fr) 36px; padding: 18px 10px; }
  .news-lightbox-prev,.news-lightbox-next { font-size: 2.4rem; }
}

.news-loading { grid-column: 1 / -1; margin: 0; padding: 28px; color: #6d7f94; text-align: center; }


/* ============================================================
   V71 · FOTO DE TARJETA EN ACTUALIDAD
   FotoTarjeta pertenece solo a Inicio/Actualidad. Si está vacía,
   no se crea ningún elemento ni se reserva espacio.
   ============================================================ */
.news-card-photo-link {
  display: block;
  margin: 2px 0 18px;
  overflow: hidden;
  border: 1px solid #dbe5f0;
  border-radius: 14px;
  background: #f5f7fa;
  text-decoration: none;
}
.news-card-photo {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.news-card-photo-link:hover .news-card-photo,
.news-card-photo-link:focus-visible .news-card-photo { transform: scale(1.012); }
.news-card-photo { transition: transform .2s ease; }
@media (max-width: 760px) {
  .news-card-photo-link { margin: 0 0 16px; border-radius: 12px; }
}


/* ============================================================
   V73 · EXTRACTO Y ESPACIADO SEGÚN FOTO DE TARJETA
   Sin FotoTarjeta: 11 líneas escritorio, 9 tablet, 7 móvil.
   Con FotoTarjeta: 5 líneas escritorio, 5 tablet, 4 móvil.
   Sin FotoTarjeta: algo más de aire entre categoría y título
   en escritorio/tablet; móvil mantiene el espaciado existente.
   ============================================================ */

/* ============================================================
   V74 · IMÁGENES FLEXIBLES DENTRO DE NOTICIAS
   [imagen]: pequeño / medio / grande / completo, alineación y
   texto alrededor. [imagenes]: varias fotos en cuadrícula.
   ============================================================ */
.news-article-body {
  display: flow-root;
}
.news-inline-image {
  --news-image-width: 100%;
  width: var(--news-image-width);
  max-width: 100%;
  box-sizing: border-box;
}
.news-image-size-pequeno { --news-image-width: 34%; }
.news-image-size-medio { --news-image-width: 54%; }
.news-image-size-grande { --news-image-width: 80%; }
.news-image-size-completo { --news-image-width: 100%; }

.news-image-text-sin-rodear {
  float: none;
  clear: both;
  margin-top: 34px;
  margin-bottom: 34px;
}
.news-image-text-sin-rodear.news-image-align-izquierda {
  margin-left: 0;
  margin-right: auto;
}
.news-image-text-sin-rodear.news-image-align-centro {
  margin-left: auto;
  margin-right: auto;
}
.news-image-text-sin-rodear.news-image-align-derecha {
  margin-left: auto;
  margin-right: 0;
}

.news-image-text-alrededor.news-image-align-izquierda,
.news-image-text-alrededor.news-image-align-derecha {
  clear: none;
  margin-top: 7px;
  margin-bottom: 18px;
}
.news-image-text-alrededor.news-image-align-izquierda {
  float: left;
  margin-left: 0;
  margin-right: 28px;
}
.news-image-text-alrededor.news-image-align-derecha {
  float: right;
  margin-left: 28px;
  margin-right: 0;
}

/* Los bloques editoriales importantes empiezan debajo de cualquier
   imagen flotante. Los párrafos y listas sí pueden rodear la foto. */
.news-article-body .news-md-h2,
.news-article-body .news-md-h3,
.news-article-body .news-pullquote,
.news-article-body .news-carousel,
.news-article-body .news-image-grid,
.news-article-body .news-sponsor-showcase,
.news-article-body .news-format-error,
.news-article-nav {
  clear: both;
}

.news-image-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 38px 0;
}
.news-image-grid figure {
  min-width: 0;
  margin: 0;
}
.news-image-grid .news-image-button img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: contain;
}
.news-image-grid figcaption {
  margin-top: 9px;
  color: #718196;
  font-size: .84rem;
  line-height: 1.45;
  text-align: center;
}

@media (max-width:760px) {
  .news-image-text-alrededor.news-image-align-izquierda,
  .news-image-text-alrededor.news-image-align-derecha {
    float: none;
    clear: both;
    margin-top: 28px;
    margin-bottom: 28px;
  }
  .news-image-size-pequeno { --news-image-width: 72%; }
  .news-image-size-medio { --news-image-width: 88%; }
  .news-image-size-grande,
  .news-image-size-completo { --news-image-width: 100%; }
  .news-image-align-izquierda { margin-left: 0; margin-right: auto; }
  .news-image-align-centro { margin-left: auto; margin-right: auto; }
  .news-image-align-derecha { margin-left: auto; margin-right: 0; }
  .news-image-grid { grid-template-columns: 1fr; gap: 24px; margin: 30px 0; }
}


/* ============================================================
   V75 · ACTUALIDAD 3 / 2 / 1 + PAGINACIÓN
   Escritorio: 3 tarjetas por fila. Tablet: 2. Móvil: 1.
   Actualidad muestra 12 noticias por página.
   ============================================================ */
.news-home-grid,
.news-index-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.news-home-grid.two-items,
.news-index-grid.two-items {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.news-home-grid.single,
.news-index-grid.single {
  grid-template-columns: minmax(0, 760px);
  justify-content: center;
}

/* Con tres columnas, reducimos únicamente la franja de fecha y el
   relleno interno para conservar una anchura útil de lectura. */
@media (min-width: 1101px) {
  .news-home-grid:not(.single):not(.two-items) .news-list-card--editorial,
  .news-index-grid:not(.single):not(.two-items) .news-list-card--editorial { grid-template-columns: 72px minmax(0, 1fr); }
  .news-home-grid:not(.single):not(.two-items) .news-date-rail,
  .news-index-grid:not(.single):not(.two-items) .news-date-rail { padding: 20px 8px; }
  .news-home-grid:not(.single):not(.two-items) .news-list-body--editorial,
  .news-index-grid:not(.single):not(.two-items) .news-list-body--editorial { padding: 23px 22px 25px; }
  .news-home-grid:not(.single):not(.two-items) .news-list-body h3,
  .news-index-grid:not(.single):not(.two-items) .news-list-body h3 { font-size: clamp(1.18rem, 1.45vw, 1.42rem); }
}

@media (max-width: 1100px) and (min-width: 761px) {
  .news-home-grid,
  .news-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-home-grid.single,
  .news-index-grid.single { grid-template-columns: minmax(0, 760px); }
  .news-list-card--editorial { grid-template-columns: 78px minmax(0, 1fr); }
  .news-date-rail { padding-inline: 9px; }
  .news-list-body--editorial { padding: 24px 25px 25px; }
}

@media (max-width: 760px) {
  .news-home-grid,
  .news-index-grid,
  .news-home-grid.single,
  .news-index-grid.single,
  .news-home-grid.two-items,
  .news-index-grid.two-items { grid-template-columns: 1fr; }
}

.news-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 34px;
}
.news-pagination[hidden] { display: none; }
.news-pagination-pages {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.news-pagination a {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid #cbd8e7;
  border-radius: 999px;
  color: var(--blue-900);
  background: #fff;
  font-size: .88rem;
  font-weight: 850;
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}
.news-pagination-page { min-width: 42px; padding: 8px 12px; }
.news-pagination-prev,
.news-pagination-next { padding: 8px 16px; }
.news-pagination a:hover,
.news-pagination a:focus-visible {
  border-color: var(--blue-700);
  color: #fff;
  background: var(--blue-800);
  transform: translateY(-1px);
}
.news-pagination-page.is-current {
  border-color: var(--blue-800);
  color: #fff;
  background: var(--blue-800);
}

@media (max-width: 760px) {
  .news-pagination {
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 26px;
  }
  .news-pagination-pages { order: -1; width: 100%; }
  .news-pagination-prev,
  .news-pagination-next { flex: 1 1 130px; }
}

/* ============================================================
   V76 · TIPOGRAFÍA DE NOTICIAS + JUSTIFICACIÓN + CABECERA
   Tarjetas de Inicio/Actualidad: título 19 px y extracto 14 px.
   Noticia completa: texto justificado sin separación automática
   de palabras mediante guion. Cabecera: Colegio 1 px menor en
   escritorio, sin cambios en tablet y oculto en móvil.
   ============================================================ */

/* Tarjetas de noticias: mismo tamaño en escritorio, tablet y móvil. */
.news-list-body h3 {
  font-size: 19px;
}
.news-list-body p {
  font-size: 14px;
  hyphens: none;
  -webkit-hyphens: none;
  word-break: normal;
}

/* Cuerpo de la noticia completa: justificación en todos los anchos,
   sin guionado automático al final de línea. */
.news-article-body > p,
.news-article-body .news-md-list li {
  text-align: justify;
  text-justify: inter-word;
  hyphens: none;
  -webkit-hyphens: none;
  word-break: normal;
}

/* En escritorio, el nombre del Colegio baja exactamente 1 px
   respecto al tamaño responsive anterior. */
@media (min-width: 1181px) {
  .brand-text .college-name {
    font-size: clamp(15px, calc(1.25vw - 1px), 17.4px);
  }
}

/* En móvil no se muestra el nombre del Colegio en la cabecera.
   El pie de página no se ve afectado. */
@media (max-width: 760px) {
  .brand-text .college-name {
    display: none;
  }
}


/* ============================================================
   V77 · LECTURA DE NOTICIAS COMPLETAS
   Escritorio/tablet: texto justificado. Móvil: alineación izquierda.
   Separación entre párrafos: 16 px en escritorio/tablet y 14 px en móvil.
   ============================================================ */

.news-article-body > p {
  margin-bottom: 16px;
}

@media (max-width: 760px) {
  .news-article-body > p {
    margin-bottom: 14px;
    text-align: left;
    text-justify: auto;
  }
  .news-article-body .news-md-list li {
    text-align: left;
    text-justify: auto;
  }
}


/* ============================================================
   V78 · CORRECCIÓN DE CUADRÍCULA DE NOTICIAS EN MÓVIL
   Móvil: siempre una tarjeta por fila, incluso cuando solo hay dos.
   Escritorio: hasta 3. Tablet: hasta 2.
   ============================================================ */


/* ============================================================
   V79 · METADATOS DE TARJETAS Y FRANJA DE NOTICIA
   La franja queda dedicada únicamente al icono y vuelve a ser
   vertical también en móvil. Fecha y categoría comparten una línea
   en el cuerpo: FECHA · CATEGORÍA. Se conserva 3 / 2 / 1.
   ============================================================ */

/* La franja ocupa solo lo necesario para identificar visualmente
   la tarjeta y deja más ancho útil al contenido. */
.news-list-card--editorial,
.news-home-grid:not(.single):not(.two-items) .news-list-card--editorial,
.news-index-grid:not(.single):not(.two-items) .news-list-card--editorial {
  grid-template-columns: 50px minmax(0, 1fr);
}
.news-date-rail,
.news-home-grid:not(.single):not(.two-items) .news-date-rail,
.news-index-grid:not(.single):not(.two-items) .news-date-rail {
  display: flex;
  padding: 18px 8px;
  gap: 0;
}
.news-date-rail time { display: none; }

/* Fecha y categoría pasan a ser un único bloque de metadatos. */
.news-list-body--editorial .news-category {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 6px;
  row-gap: 2px;
  margin: 0 0 8px;
  color: #d97300;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .09em;
  line-height: 1.35;
  text-transform: uppercase;
}
.news-list-body--editorial:not(.has-card-photo) .news-category,
.news-list-card--editorial:not(.has-card-photo) .news-category {
  margin-bottom: 14px;
}
.news-list-body--editorial .news-category time,
.news-list-body--editorial .news-category-name,
.news-list-body--editorial .news-meta-separator {
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}
.news-list-body--editorial .news-category time,
.news-list-body--editorial .news-category-name { white-space: nowrap; }

/* La chapa "Fijada" sigue sin tapar la línea de metadatos ahora que
   esta contiene más información que antes. */
.news-list-card--editorial.is-pinned .news-category { padding-right: 76px; }

@media (max-width: 1100px) and (min-width: 761px) {
  .news-list-card--editorial,
  .news-home-grid:not(.single):not(.two-items) .news-list-card--editorial,
  .news-index-grid:not(.single):not(.two-items) .news-list-card--editorial {
    grid-template-columns: 48px minmax(0, 1fr);
  }
  .news-date-rail,
  .news-home-grid:not(.single):not(.two-items) .news-date-rail,
  .news-index-grid:not(.single):not(.two-items) .news-date-rail { padding: 17px 7px; }
}

@media (max-width: 760px) {
  /* En móvil la franja deja de ser horizontal: vuelve a la izquierda
     y se mantiene muy estrecha porque ya no contiene la fecha. */
  .news-list-card--editorial,
  .news-home-grid:not(.single):not(.two-items) .news-list-card--editorial,
  .news-index-grid:not(.single):not(.two-items) .news-list-card--editorial {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
  }
  .news-date-rail,
  .news-home-grid:not(.single):not(.two-items) .news-date-rail,
  .news-index-grid:not(.single):not(.two-items) .news-date-rail {
    display: flex;
    padding: 15px 6px;
  }
  .news-date-rail svg { width: 20px; height: 20px; }
  .news-mobile-meta { display: none; }
  .news-list-body--editorial { padding: 18px 18px 23px; }
  .news-list-body--editorial .news-category {
    display: flex;
    margin: 0 0 8px;
    font-size: 11px;
    letter-spacing: .065em;
    line-height: 1.35;
  }
  .news-list-card--editorial:not(.has-card-photo) .news-category { margin-bottom: 12px; }
  .news-list-card--editorial.is-pinned .news-category { padding-right: 72px; }

  /* La chapa fijada ya no está sobre la antigua banda azul superior,
     por lo que recupera el tratamiento claro de escritorio. */
  .news-pin-badge {
    top: 10px;
    right: 10px;
    padding: 5px 7px;
    border-color: rgba(190,111,0,.20);
    color: #8a4c00;
    background: #fff3d9;
    box-shadow: 0 5px 14px rgba(22,54,91,.08);
  }
}


/* ============================================================
   AJUSTES V80 · HORARIOS MÁS LEGIBLES + ACCESOS EN ESCRITORIO
   ============================================================ */
.schedule-sex + .schedule-sex {
  margin-top: 13px;
  padding-top: 11px;
  border-top: 1px solid #dfe8f3;
}
.schedule-sex > strong {
  display: block;
  margin-bottom: 5px;
  color: #35465d;
  font-size: .91rem;
  font-weight: 850;
}
.schedule-sex p {
  margin: 4px 0;
}

/* En escritorio aprovechamos el ancho disponible con una pequeña columna
   de accesos útiles a la izquierda del acordeón. En tablet/móvil desaparece. */
.schedule-side-links { display: none; }
@media (min-width: 1180px) {
  .schedule-page-layout {
    display: grid;
    grid-template-columns: 236px minmax(0, 1fr);
    align-items: start;
    gap: 28px;
  }
  .schedule-side-links {
    position: sticky;
    top: 132px;
    display: grid;
    gap: 12px;
  }
  .schedule-side-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    min-height: 78px;
    padding: 14px 14px;
    border: 1px solid #d6e2ef;
    border-radius: 16px;
    color: var(--blue-950);
    background: #fff;
    text-decoration: none;
    box-shadow: 0 9px 24px rgba(8,49,98,.055);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .schedule-side-card:hover {
    transform: translateY(-2px);
    border-color: rgba(12,77,162,.28);
    box-shadow: 0 14px 30px rgba(8,49,98,.11);
  }
  .schedule-side-card:focus-visible {
    outline: 3px solid rgba(245,154,23,.72);
    outline-offset: 3px;
  }
  .schedule-side-card strong {
    font-size: .93rem;
    line-height: 1.18;
  }
  .schedule-side-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: #fff;
    background: var(--blue-800);
    font-weight: 900;
  }
  .schedule-side-icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .schedule-side-icon-help {
    border-radius: 50%;
    background: var(--orange-500);
    font-size: 1.2rem;
  }
  .schedule-side-arrow {
    color: var(--blue-800);
    font-size: 1.12rem;
    font-weight: 900;
  }
  .schedule-side-card-primary {
    color: #fff;
    border-color: var(--blue-800);
    background: linear-gradient(135deg, var(--blue-950), var(--blue-800));
  }
  .schedule-side-card-primary .schedule-side-icon {
    color: var(--blue-950);
    background: var(--orange-500);
  }
  .schedule-side-card-primary .schedule-side-arrow { color: #ffd18a; }
}

/* El banner de ayuda de Inicio debe comportarse visualmente como enlace. */
.help-strip {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.help-strip:hover {
  transform: translateY(-2px);
  border-color: rgba(12,77,162,.25);
  box-shadow: 0 15px 34px rgba(8,49,98,.11);
}
.help-strip:focus-visible {
  outline: 3px solid rgba(245,154,23,.72);
  outline-offset: 3px;
}

/* ============================================================
   AJUSTES V81 · ACCESOS A LA DERECHA + FECHA BAJO EL CURSO
   ============================================================ */
@media (min-width: 1180px) {
  .schedule-page-layout {
    grid-template-columns: minmax(0, 1fr) 236px;
  }
}

/* La fecha de inicio pasa a una segunda línea dentro de la cabecera,
   alineada a la derecha bajo el curso/categoría. El control +/- permanece
   en su propia columna y centrado respecto a las dos líneas. */
.schedule-group summary {
  grid-template-columns: minmax(0, 1fr) 38px;
  grid-template-rows: auto auto;
  align-items: start;
  column-gap: 14px;
  row-gap: 3px;
}
.schedule-group summary > span {
  grid-column: 1;
  grid-row: 1;
}
.schedule-group summary > small {
  grid-column: 1;
  grid-row: 2;
  width: auto;
  justify-self: end;
  text-align: right;
  white-space: nowrap;
}
.schedule-group summary::after {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
}

@media (max-width: 760px) {
  .schedule-group summary > small {
    justify-self: end;
    text-align: right;
  }
}


/* ============================================================
   AJUSTES V82 · MISMA CABECERA DE ACORDEÓN EN TODOS LOS DISPOSITIVOS
   ============================================================ */
/* Curso/categoría arriba, fecha en pastilla debajo y control +/- a la derecha,
   reproduciendo en escritorio y tablet la composición que ya funcionaba en móvil. */
.schedule-group summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  grid-template-rows: auto auto;
  align-items: start;
  column-gap: 14px;
  row-gap: 3px;
}
.schedule-group summary > span {
  grid-column: 1;
  grid-row: 1;
}
.schedule-group summary > small {
  grid-column: 1;
  grid-row: 2;
  width: fit-content;
  justify-self: start;
  margin-top: 4px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: #163a5d;
  text-align: left;
  white-space: nowrap;
}
.schedule-group summary::after {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
}

@media (max-width: 760px) {
  .schedule-group summary {
    grid-template-columns: minmax(0, 1fr) 32px;
  }
  .schedule-group summary > small {
    justify-self: start;
    text-align: left;
  }
}


/* ===== Popup Inicio · Inscripciones ===== */
body.home-popup-open { overflow: hidden; }
.home-popup[hidden] { display: none !important; }
.home-popup {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(4, 29, 67, .56);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity .18s ease;
}
.home-popup.is-visible { opacity: 1; }
.home-popup-card {
  position: relative;
  width: min(560px, 100%);
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  overflow: hidden;
  padding: 34px 34px 30px;
  border: 1px solid #d7e3f2;
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(5, 35, 78, .28);
  transform: translateY(10px) scale(.985);
  transition: transform .2s ease;
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
}

.home-popup-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 7px;
  background: linear-gradient(90deg, #0c4da2 0 76%, #f6a019 76% 100%);
}
.home-popup.is-visible .home-popup-card { transform: translateY(0) scale(1); }
.home-popup-close {
  position: absolute;
  top: 15px;
  right: 17px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #edf4fb;
  color: #0a3d7d;
  font: 700 24px/1 Arial, sans-serif;
  cursor: pointer;
  transition: transform .16s ease, background .16s ease;
}
.home-popup-close:hover,
.home-popup-close:focus-visible { background: #dfeefa; transform: scale(1.06); outline: none; }
.home-popup-brand {
  width: 88px;
  height: 104px;
  display: grid;
  place-items: center;
}
.home-popup-brand img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; }
.home-popup-content { min-width: 0; padding-right: 10px; }
.home-popup-kicker {
  margin: 0 0 5px;
  color: #ef9615;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.home-popup h2 {
  margin: 0 0 12px;
  color: #0b3974;
  font-size: clamp(25px, 3vw, 32px);
  line-height: 1.06;
}
.home-popup-content > p:not(.home-popup-kicker) {
  margin: 0;
  color: #40546e;
  font-size: 16px;
  line-height: 1.55;
}
.home-popup-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin-top: 22px;
}
.home-popup-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 13px;
  background: #f6a019;
  color: #102f57;
  font-size: 14px;
  font-weight: 850;
  text-decoration: none;
  box-shadow: 0 7px 18px rgba(246, 160, 25, .24);
  transition: transform .16s ease, box-shadow .16s ease;
}
.home-popup-primary:hover,
.home-popup-primary:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(246,160,25,.32); outline: none; }
.home-popup-secondary {
  color: #0c4da2;
  font-size: 13px;
  font-weight: 750;
  text-underline-offset: 3px;
}

@media (min-width: 641px) {
  .home-popup-card {
    width: min(680px, calc(100vw - 48px));
    grid-template-columns: 106px minmax(0, 1fr);
    gap: 28px;
    padding: 38px 40px 34px;
    border-radius: 28px;
    background: linear-gradient(145deg, #ffffff 0%, #ffffff 74%, #f5f9fe 100%);
  }
  .home-popup-card::after {
    content: "";
    position: absolute;
    right: -90px;
    bottom: -120px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(246,160,25,.16) 0%, rgba(246,160,25,0) 70%);
    pointer-events: none;
  }
  /* Solo los elementos de contenido participan en la capa decorativa.
     El botón de cierre debe conservar position:absolute; si se convierte en
     elemento de la cuadrícula desplaza logo y texto en escritorio/tablet. */
  .home-popup-brand,
  .home-popup-content { position: relative; z-index: 1; }
  .home-popup-close { z-index: 3; }
  .home-popup-brand {
    width: 102px;
    height: 120px;
    padding: 9px;
    border: 1px solid #dbe7f4;
    border-radius: 22px;
    background: rgba(248,251,255,.92);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.8), 0 8px 22px rgba(12,77,162,.08);
  }
  .home-popup-kicker { font-size: 13px; }
  .home-popup h2 { font-size: 32px; }
  .home-popup-content > p:not(.home-popup-kicker) { font-size: 16px; }
  .home-popup-primary { min-height: 46px; padding-inline: 20px; font-size: 14px; }
}
@media (min-width: 1100px) {
  .home-popup-card {
    width: min(780px, calc(100vw - 80px));
    grid-template-columns: 128px minmax(0, 1fr);
    gap: 34px;
    padding: 44px 48px 40px;
    border-radius: 30px;
    box-shadow: 0 28px 82px rgba(5, 35, 78, .30);
  }
  .home-popup-brand { width: 124px; height: 146px; padding: 10px; border-radius: 24px; }
  .home-popup-kicker { margin-bottom: 7px; font-size: 14px; }
  .home-popup h2 { margin-bottom: 14px; font-size: 38px; }
  .home-popup-content > p:not(.home-popup-kicker) { font-size: 17px; line-height: 1.58; }
  .home-popup-actions { margin-top: 26px; gap: 12px 18px; }
  .home-popup-primary { min-height: 48px; padding-inline: 22px; font-size: 15px; }
  .home-popup-secondary { font-size: 14px; }
}

@media (max-width: 640px) {
  .home-popup { padding: 16px; }
  .home-popup-card {
    width: min(430px, 100%);
    grid-template-columns: 1fr;
    gap: 9px;
    text-align: center;
    padding: 28px 22px 24px;
    border-radius: 22px;
  }
  .home-popup-brand { width: 64px; height: 76px; margin: 0 auto; }
  .home-popup-content { padding-right: 0; }
  .home-popup-kicker { font-size: 11px; }
  .home-popup h2 { margin-bottom: 10px; font-size: 25px; }
  .home-popup-content > p:not(.home-popup-kicker) { font-size: 14px; line-height: 1.48; }
  .home-popup-actions { justify-content: center; margin-top: 18px; }
  .home-popup-primary { min-height: 42px; font-size: 13px; }
  .home-popup-secondary { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .home-popup, .home-popup-card, .home-popup-close, .home-popup-primary { transition: none !important; }
}


/* ============================================================
   AJUSTES V89 · CONTACTO INTEGRADO EN BANDA DE AYUDA
   ============================================================ */
.contact-inner .eyebrow.light {
  color: var(--orange-500);
}
.contact-email {
  display: grid;
  grid-template-columns: 4px auto;
  align-items: center;
  gap: 18px;
  min-width: 320px;
  padding: 8px 0;
  color: #fff;
  text-decoration: none;
}
.contact-email-accent {
  width: 4px;
  height: 68px;
  border-radius: 999px;
  background: var(--orange-500);
}
.contact-email-content {
  display: grid;
  grid-template-columns: 34px auto;
  align-items: center;
  gap: 12px;
}
.contact-email-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--orange-500);
  transition: transform .18s ease;
}
.contact-email-icon svg {
  width: 30px;
  height: 30px;
}
.contact-email-text {
  display: grid;
  gap: 2px;
}
.contact-email-kicker {
  color: var(--orange-500);
  font-size: .82rem;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.contact-email-address {
  color: #fff;
  font-size: 1.16rem;
  font-weight: 850;
  line-height: 1.25;
  letter-spacing: -.015em;
  white-space: nowrap;
}
.contact-email:hover .contact-email-icon,
.contact-email:focus-visible .contact-email-icon {
  transform: translateX(3px);
}
.contact-email:hover .contact-email-address,
.contact-email:focus-visible .contact-email-address {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.contact-email:focus-visible {
  outline: 2px solid var(--orange-500);
  outline-offset: 8px;
  border-radius: 6px;
}

@media (max-width: 760px) {
  .contact-email {
    min-width: 0;
    width: fit-content;
    max-width: 100%;
    gap: 14px;
    padding: 5px 0;
  }
  .contact-email-accent {
    height: 60px;
  }
  .contact-email-content {
    grid-template-columns: 31px minmax(0,auto);
    gap: 10px;
  }
  .contact-email-icon {
    width: 31px;
    height: 31px;
  }
  .contact-email-icon svg {
    width: 27px;
    height: 27px;
  }
  .contact-email-kicker {
    font-size: .76rem;
  }
  .contact-email-address {
    font-size: 1rem;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

/* ===== Inscripción online · modal de indisponibilidad ===== */
body.registration-modal-open { overflow: hidden; }
.registration-unavailable[hidden] { display: none !important; }
.registration-unavailable {
  position: fixed;
  inset: 0;
  z-index: 5100;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(4, 29, 67, .58);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity .18s ease;
}
.registration-unavailable.is-visible { opacity: 1; }
.registration-unavailable-card {
  position: relative;
  width: min(650px, 100%);
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  overflow: hidden;
  padding: 38px 40px 34px;
  border: 1px solid #d7e3f2;
  border-radius: 28px;
  background: linear-gradient(145deg, #fff 0%, #fff 74%, #f5f9fe 100%);
  box-shadow: 0 24px 70px rgba(5, 35, 78, .30);
  transform: translateY(10px) scale(.985);
  transition: transform .2s ease;
}
.registration-unavailable-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 7px;
  background: linear-gradient(90deg, #0c4da2 0 76%, #f6a019 76% 100%);
}
.registration-unavailable.is-visible .registration-unavailable-card { transform: translateY(0) scale(1); }
.registration-unavailable-close {
  position: absolute;
  top: 15px;
  right: 17px;
  z-index: 3;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #edf4fb;
  color: #0a3d7d;
  font: 700 24px/1 Arial, sans-serif;
  cursor: pointer;
}
.registration-unavailable-brand {
  position: relative;
  z-index: 1;
  width: 100px;
  height: 118px;
  display: grid;
  place-items: center;
  padding: 9px;
  border: 1px solid #dbe7f4;
  border-radius: 22px;
  background: rgba(248,251,255,.92);
}
.registration-unavailable-brand img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; }
.registration-unavailable-content { position: relative; z-index: 1; min-width: 0; padding-right: 8px; }
.registration-unavailable-kicker {
  margin: 0 0 5px;
  color: #ef9615;
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.registration-unavailable h2 {
  margin: 0 0 12px;
  color: #0b3974;
  font-size: clamp(25px, 3vw, 32px);
  line-height: 1.08;
}
.registration-unavailable-content > p:not(.registration-unavailable-kicker) {
  margin: 0;
  color: #40546e;
  font-size: 16px;
  line-height: 1.55;
}
.registration-unavailable-button {
  margin-top: 22px;
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 13px;
  background: #f6a019;
  color: #102f57;
  font-size: 14px;
  font-weight: 850;
  cursor: pointer;
}
@media (max-width: 640px) {
  .registration-unavailable { padding: 16px; }
  .registration-unavailable-card {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 30px 24px 25px;
    text-align: center;
  }
  .registration-unavailable-brand {
    width: 76px;
    height: 90px;
    margin: 4px auto 0;
    border: 0;
    background: transparent;
  }
  .registration-unavailable-content { padding-right: 0; }
  .registration-unavailable-button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .registration-unavailable,
  .registration-unavailable-card { transition: none; }
}
