@import url('https://fonts.googleapis.com/css2?family=Antonio:wght@400;500;600;700&family=Manrope:wght@400;500;600;700&display=swap');

/* =========================================================
   OLÍMPICO WEB 2.0 — RC7 VISUAL
   Capa visual pública. No modifica el panel de administración.
   ========================================================= */

:root{
  --public-max:1160px;
  --public-text:#151515;
  --public-muted:#5f6368;
  --public-soft:#a3a3a3;
  --public-surface:#fff;
  --public-line:#dedede;
  --public-radius:18px;
}

html{scroll-behavior:smooth}
body{color:var(--public-text);line-height:1.5}

/* Header: opaco para impedir que el contenido se transparente al hacer scroll. */
.header{
  background:#fff;
  border-bottom:1px solid #e5e5e5;
  box-shadow:0 8px 24px rgba(0,0,0,.045);
  backdrop-filter:none;
}
.header-in{height:72px}
.brand{gap:11px;letter-spacing:.045em}
.brand img{width:44px;height:44px}
.nav{gap:21px;font-size:.92rem}
.nav a{position:relative;padding:26px 0 24px}
.nav a::after{
  content:"";
  position:absolute;
  left:0;right:100%;bottom:17px;
  height:2px;background:#111;
  transition:right .2s ease;
}
.nav a:hover::after,.nav a.active::after{right:0}
.menu{
  border:1px solid #d9d9d9;
  border-radius:999px;
  background:#fff;
  padding:9px 14px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}

/* Tipografía y ritmos generales */
.page-head{padding:46px 0 16px}
.page-head + .section{padding-top:30px}
.page-title{
  font-size:clamp(3rem,5.35vw,4.8rem);
  line-height:.98;
  letter-spacing:-.047em;
  margin:12px 0 18px;
}
.page-head .lead{margin:0;line-height:1.6}
.section{padding:46px 0}
.section h2{
  font-size:clamp(2.05rem,3.5vw,3rem);
  line-height:1.02;
  letter-spacing:-.038em;
  margin:0 0 24px;
}
.eyebrow{color:#9d9d9d;letter-spacing:.145em}
.card p,.lead{color:var(--public-muted)}

/* Home */
.hero{padding:28px 0 22px}
.hero-box{min-height:500px;border-radius:26px}
.hero-copy{padding:48px 50px;max-width:690px}
.hero h1{
  font-size:clamp(3.2rem,5.6vw,4.8rem);
  line-height:.95;
  margin:14px 0 20px;
}
.hero p{margin:0 0 18px;line-height:1.6}
.btn{padding:13px 19px}

.grid{gap:20px;align-items:start}
.card{border-color:#dedede;box-shadow:0 1px 0 rgba(0,0,0,.015)}
.card-body{padding:20px 21px 22px}
.card h3{font-size:1.32rem;margin:8px 0 12px}
.card p{margin:0 0 16px;line-height:1.52}
.media{background-color:#252525}

.club{background:#0d0d0d;padding:48px 0}
.club .section{padding:0}
.club h2{margin-bottom:26px}
.club-grid{gap:18px}
.tile{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:210px;
  padding:25px;
  background-color:#242424;
  background-size:cover;
  background-position:center;
  transition:transform .2s ease,filter .2s ease;
}
.tile::after{
  content:"";
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.10) 5%,rgba(0,0,0,.76) 100%);
}
.tile.big{min-height:438px}
.tile:hover{transform:translateY(-2px);filter:brightness(1.04)}
.tile h3{font-size:1.65rem;line-height:1.08;margin:8px 0 0}
.tile .eyebrow{color:#d5d5d5}

/* Sponsors y footer */
.sponsors-grid{gap:15px}
.sponsor-logo{min-height:108px;transition:transform .18s ease,box-shadow .18s ease}
.sponsor-logo:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.06)}
.footer{margin-top:34px;padding:42px 0 40px}
.footer .brand img{width:42px;height:42px}
.footer p{margin:18px 0 10px}

/* Noticias */
[data-news] .card,[data-home-posts] .card{height:auto}
[data-news] .card-body,[data-home-posts] .card-body{min-height:250px;display:flex;flex-direction:column}
[data-news] .card-body > a,[data-home-posts] .card-body > a{margin-top:auto}

/* Nota individual */
[data-article]{padding-top:4px}
[data-article] > .eyebrow{display:inline-block;margin-top:0}
[data-article] .page-title{max-width:980px;margin-bottom:20px}
[data-article] .lead{max-width:1040px;margin-bottom:24px}
.article-media{margin:28px 0 30px;border-radius:20px}
.article-copy{
  max-width:780px;
  font-size:1.06rem;
  line-height:1.78;
  color:#222;
}
.article-copy p{margin:0 0 1.28em}

/* Básquet profesional */
.players{gap:18px;align-items:start}
.player-card .card-body,.staff-card .card-body{padding:18px 20px 20px}
.player-card .number{font-size:1.95rem;line-height:1;margin-bottom:10px}
.player-card h3,.staff-card h3{margin:5px 0 9px}
.player-card p,.staff-card p{margin:0;color:#525252}
.staff-card .eyebrow{color:#8b8b8b}

/* Disciplinas */
[data-disciplines] .discipline-card h2{
  font-size:clamp(2rem,2.7vw,2.6rem);
  line-height:1.04;
  margin:2px 0 14px;
  letter-spacing:-.035em;
}
[data-disciplines] .discipline-card .card-body{min-height:174px}

/* Ficha de disciplina: override del estilo inline existente */
.discipline-detail{padding:42px 0 0!important}
.discipline-back{margin-bottom:20px!important}
.discipline-hero{gap:26px!important}
.discipline-hero-media{min-height:390px!important;border-radius:22px!important}
.discipline-hero-copy .page-title{margin-top:8px!important;margin-bottom:16px!important}
.discipline-summary{font-size:1.08rem!important;line-height:1.58!important;color:#555!important}
.discipline-content{max-width:780px!important;font-size:1.04rem!important;line-height:1.75!important}
.discipline-section{padding:28px 0!important}
.discipline-section h2{font-size:clamp(1.8rem,3vw,2.5rem);margin:0 0 18px}
.schedule-row{padding:16px 18px!important}

/* Institución */
[data-institution-sections]{align-items:start}
.institution-section{background:#fff}
.institution-section h2{
  font-size:clamp(1.9rem,2.55vw,2.5rem)!important;
  line-height:1.03!important;
  letter-spacing:-.035em!important;
  margin-top:8px!important;
  margin-bottom:14px!important;
}
.institution-section > p{margin-top:0!important;margin-bottom:16px!important;line-height:1.48;color:#353535}
.institution-copy{font-size:.96rem;line-height:1.53;color:#242424;white-space:pre-line}
.board-list{border-color:#d8d8d8;background:#d8d8d8}
.board-row{padding:13px 17px}

/* Contacto */
.contacts{align-items:stretch}
.contacts .box{padding:24px;min-height:280px;display:flex;flex-direction:column}
.contacts .box h2{
  font-size:clamp(2rem,3.1vw,2.75rem)!important;
  line-height:1.03!important;
  letter-spacing:-.04em!important;
  margin:8px 0 18px!important;
}
.contacts .box p{margin:0 0 16px;line-height:1.45}
.contacts .box strong{margin-top:auto;line-height:1.35;overflow-wrap:anywhere}
.contacts .box a{text-decoration-thickness:1px!important;text-underline-offset:3px!important}

/* Desktop medio */
@media(max-width:1050px){
  .container{width:min(1160px,calc(100% - 40px))}
  .nav{gap:16px;font-size:.88rem}
  .hero-copy{padding:42px}
  .club-grid{grid-template-columns:1.25fr 1fr 1fr}
}

/* Tablet / navegación móvil */
@media(max-width:850px){
  .header-in{height:68px;position:relative}
  .brand img{width:42px;height:42px}
  .menu{display:inline-flex;align-items:center;justify-content:center}
  .nav{
    display:none;
    position:absolute;
    top:67px;
    left:0;right:0;
    flex-direction:column;
    gap:0;
    padding:8px 0 12px;
    background:#fff;
    border:1px solid #e5e5e5;
    border-top:0;
    border-radius:0 0 14px 14px;
    box-shadow:0 16px 28px rgba(0,0,0,.10);
  }
  .header.menu-open .nav{display:flex}
  .nav a{padding:11px 18px}
  .nav a::after{display:none}

  .page-head{padding:38px 0 12px}
  .page-head + .section{padding-top:24px}
  .section{padding:38px 0}
  .hero{padding:22px 0 18px}
  .hero-box{min-height:450px}
  .hero-copy{padding:36px}
  .club-grid{grid-template-columns:1fr 1fr}
  .tile.big{grid-column:span 2;min-height:360px}
  .contacts{grid-template-columns:1fr}
  .contacts .box{min-height:0}
  .sponsors-grid{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:580px){
  .container{width:calc(100% - 28px)}
  .page-title{font-size:clamp(2.7rem,14vw,4rem)}
  .section h2{font-size:2.15rem}
  .hero-box{min-height:430px;border-radius:20px}
  .hero-copy{padding:28px 24px}
  .hero h1{font-size:clamp(2.9rem,15vw,4.3rem)}
  .grid,.players,.club-grid{grid-template-columns:1fr}
  .tile.big{grid-column:auto;min-height:330px}
  .tile{min-height:185px}
  .sponsors-grid{grid-template-columns:repeat(2,1fr)}
  .sponsor-logo{min-height:96px;padding:14px}
  .board-row{grid-template-columns:1fr;gap:5px}
  .article-copy{font-size:1rem;line-height:1.72}
  .footer{margin-top:28px;padding:36px 0}
}

/* =========================================================
   RC7.3 — Ajustes visuales consolidados
   ========================================================= */

/* Nota individual: mejor aprovechamiento del ancho de lectura */
.article-copy{
  max-width:1080px;
  width:100%;
  font-size:1.05rem;
  line-height:1.76;
}

/* Staff: cuatro por fila en escritorio */
[data-staff]{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}

/* Ficha de disciplina: más jerarquía visual sin agrandar de más */
.discipline-detail{padding:34px 0 0!important}
.discipline-back{
  display:inline-flex!important;
  align-items:center;
  min-height:38px;
  margin-bottom:18px!important;
  color:#333!important;
}
.discipline-hero{
  gap:28px!important;
  align-items:center!important;
}
.discipline-hero-media{
  min-height:390px!important;
  border-radius:22px!important;
  box-shadow:0 14px 34px rgba(0,0,0,.08);
}
.discipline-hero-copy{
  background:#fff;
  border:1px solid #dedede;
  border-radius:22px;
  padding:34px;
  min-height:320px;
}
.discipline-hero-copy .page-title{
  font-size:clamp(3rem,5vw,4.5rem)!important;
  margin:10px 0 16px!important;
}
.discipline-summary{
  font-size:1.08rem!important;
  line-height:1.62!important;
  color:#555!important;
}
.discipline-content{
  max-width:980px!important;
  font-size:1.03rem!important;
  line-height:1.75!important;
}
.discipline-section{padding:26px 0!important}
.discipline-section h2{
  font-size:clamp(1.85rem,3vw,2.45rem)!important;
  margin:0 0 18px!important;
}
.schedule-list{
  border-radius:18px!important;
  box-shadow:0 8px 24px rgba(0,0,0,.025);
}
.schedule-row{padding:17px 20px!important}

/* =========================================================
   Institución — compacta y editorial
   ========================================================= */
.institution-page .page-head{
  padding:38px 0 16px;
}
.institution-page .page-title{
  font-size:clamp(2.9rem,4.3vw,3.9rem);
  margin:10px 0 14px;
}
.institution-page .lead{
  max-width:720px;
}
.institution-overview{
  padding:24px 0 36px;
}
.institution-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:start;
}
.institution-card{
  overflow:hidden;
  background:#fff;
  border:1px solid #dedede;
  border-radius:20px;
  box-shadow:0 8px 24px rgba(0,0,0,.025);
}
.institution-card-media{
  aspect-ratio:16/9;
  background:#e1e1e1 center/cover no-repeat;
}
.institution-card-body{
  padding:22px 22px 20px;
}
.institution-card .eyebrow{
  display:block;
  margin-bottom:7px;
}
.institution-card h2{
  font-size:clamp(1.75rem,2.45vw,2.25rem);
  line-height:1.02;
  letter-spacing:-.035em;
  margin:0 0 13px;
}
.institution-card-summary{
  margin:0;
  min-height:76px;
  color:#555;
  line-height:1.55;
}
.institution-card-more{
  display:none;
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid #ececec;
  color:#282828;
  line-height:1.66;
  white-space:pre-line;
}
.institution-card.open .institution-card-more{display:block}
.institution-readmore{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin-top:17px;
  font:inherit;
  font-weight:900;
  color:#111;
  cursor:pointer;
}
.institution-readmore:hover{text-decoration:underline}

/* Franja de marcas: deliberadamente sin título visible */
.institution-sponsor-strip{
  padding:30px 0 12px;
  border-top:1px solid #e2e2e2;
}
.institution-sponsor-strip .sponsors-grid{
  margin:0;
}

/* =========================================================
   Autoridades — página independiente
   Todos los cargos tienen exactamente la misma jerarquía.
   ========================================================= */
.authorities-page .page-head{
  padding:40px 0 18px;
}
.authorities-page .page-title{
  font-size:clamp(2.9rem,4.4vw,4rem);
  margin:10px 0 14px;
}
.authorities-period{
  display:inline-flex;
  margin-top:8px;
  padding:7px 12px;
  border:1px solid #d6d6d6;
  border-radius:999px;
  background:#fff;
  color:#444;
  font-size:.88rem;
  font-weight:800;
}
.authorities-section{
  padding:24px 0 48px;
}
.authorities-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.authority-card{
  min-height:118px;
  padding:20px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:#fff;
  border:1px solid #dedede;
  border-radius:16px;
}
.authority-role{
  margin-bottom:8px;
  color:#858585;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase;
  line-height:1.25;
}
.authority-name{
  font-size:1.14rem;
  font-weight:800;
  line-height:1.28;
}
.authorities-empty{
  padding:22px;
  background:#fff;
  border:1px solid #dedede;
  border-radius:16px;
  color:#666;
}

/* Con Autoridades agregado al menú, compactamos levemente la navegación */
.nav{gap:17px;font-size:.9rem}

@media(max-width:1050px){
  [data-staff]{grid-template-columns:repeat(3,minmax(0,1fr))}
  .institution-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .institution-card:first-child{grid-column:span 2}
  .authorities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav{gap:13px;font-size:.85rem}
}

@media(max-width:850px){
  [data-staff]{grid-template-columns:repeat(2,minmax(0,1fr))}
  .discipline-hero-copy{min-height:0;padding:28px}
  .institution-cards{grid-template-columns:1fr}
  .institution-card:first-child{grid-column:auto}
  .institution-card-summary{min-height:0}
  .authorities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:580px){
  [data-staff]{grid-template-columns:1fr}
  .discipline-hero-copy{padding:24px}
  .discipline-hero-media{min-height:280px!important}
  .institution-overview{padding-top:14px}
  .institution-card-body{padding:20px}
  .authorities-grid{grid-template-columns:1fr}
  .authority-card{min-height:100px}
}

/* =========================================================
   RC7.4 — Básquet directo a Plantel + Vida Social propia
   ========================================================= */
.basket-opening{padding-top:48px}
.basket-opening + .basket-staff-section{padding-top:34px}

.social-head{padding-bottom:18px}
.social-head .lead{max-width:720px}
.social-content{padding:22px 0 50px}
.social-grid{align-items:start}
.social-empty{
  grid-column:1/-1;
  min-height:180px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  padding:28px;
  border:1px solid #dedede;
  border-radius:18px;
  background:#fff;
  color:#666;
}
.social-empty strong{font-size:1.15rem;color:#181818}
.social-empty span{line-height:1.55}

@media(max-width:850px){
  .basket-opening{padding-top:38px}
  .social-content{padding-top:16px}
}

/* =========================================================
   RC7.5 — Gráficas fijas para El Club Olímpico
   Las cinco tarjetas del Home ya no toman imágenes dinámicas.
   ========================================================= */
.club-grid .tile[data-fixed-visual="true"]{
  background-color:#050505;
  background-size:cover;
  background-position:center;
}
.club-grid .tile[data-fixed-visual="true"]::after{
  background:linear-gradient(180deg,rgba(0,0,0,.02) 15%,rgba(0,0,0,.34) 100%);
}
.club-grid .tile[data-fixed-visual="true"] h3,
.club-grid .tile[data-fixed-visual="true"] .eyebrow{
  text-shadow:0 2px 12px rgba(0,0,0,.72);
}

/* =========================================================
   RC7.6 — Accesos visuales del Home
   Gráficas claras fijas, sin título "El Club Olímpico" ni
   rótulos HTML duplicados. El mosaico replica la composición
   aprobada y conserva la fachada real en Institución.
   ========================================================= */
.home-portals{
  padding:42px 0;
  background:#101010;
}
.home-portals .club-grid{
  display:grid;
  grid-template-columns:minmax(0,1.225fr) minmax(0,1fr);
  grid-template-rows:260px 220px 255px;
  gap:14px 12px;
}
.home-portals .tile{
  min-height:0;
  padding:0;
  border-radius:18px;
  background-color:#f5f5f3;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:cover!important;
  box-shadow:0 8px 24px rgba(0,0,0,.16);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.home-portals .tile::after{
  display:none!important;
}
.home-portals .tile.big{
  grid-column:1;
  grid-row:1 / span 2;
  min-height:0;
}
.home-portals .disciplines-tile{grid-column:2;grid-row:1}
.home-portals .social-tile{grid-column:2;grid-row:2}
.home-portals .institution-tile{grid-column:1;grid-row:3}
.home-portals .contact-tile{grid-column:2;grid-row:3}
.home-portals .tile:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 32px rgba(0,0,0,.22);
  filter:brightness(1.015);
}

@media(max-width:850px){
  .home-portals{padding:30px 0}
  .home-portals .club-grid{
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:14px;
  }
  .home-portals .tile,
  .home-portals .tile.big,
  .home-portals .disciplines-tile,
  .home-portals .social-tile,
  .home-portals .institution-tile,
  .home-portals .contact-tile{
    grid-column:auto;
    grid-row:auto;
  }
  .home-portals .tile.big{aspect-ratio:824/646}
  .home-portals .disciplines-tile{aspect-ratio:674/345}
  .home-portals .social-tile{aspect-ratio:674/288}
  .home-portals .institution-tile{aspect-ratio:824/329}
  .home-portals .contact-tile{aspect-ratio:674/329}
}


/* =========================================================
   RC7.7 — Dark theme global
   Sello visual institucional de Olímpico.
   ========================================================= */
:root{
  --public-text:#f3f4f6;
  --public-muted:#b7bcc4;
  --public-soft:#8f96a0;
  --public-surface:#121417;
  --public-surface-2:#181b1f;
  --public-line:#2a2f36;
  --public-shadow:0 14px 34px rgba(0,0,0,.28);
}
body{
  background:radial-gradient(circle at top, #16191d 0%, #0c0e11 44%, #090a0c 100%);
  color:var(--public-text);
}
main{position:relative}
a{transition:color .18s ease,opacity .18s ease}
.header{
  background:rgba(8,10,12,.96);
  border-bottom:1px solid var(--public-line);
  box-shadow:0 10px 28px rgba(0,0,0,.32);
}
.brand, .brand span, .nav a, .menu{color:#f7f7f7}
.nav a::after{background:var(--red)}
.menu{
  background:#101318;
  border-color:#303640;
  color:#f7f7f7;
}
.page-head{
  background:linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(255,255,255,0) 100%);
}
.page-head .lead, .lead, .card p, .contacts .box p, .institution-card-summary, .institution-copy, .discipline-summary, .article-copy{
  color:var(--public-muted);
}
.eyebrow, .authority-role, .staff-card .eyebrow{color:var(--public-soft)}
.section h2, .page-title, .hero h1, .contacts .box h2, .institution-card h2, [data-disciplines] .discipline-card h2{
  color:#f7f7f7;
}
.section h2{margin-bottom:26px}
.hero-box{
  background:
    linear-gradient(115deg, rgba(0,0,0,.70), rgba(0,0,0,.10) 62%),
    linear-gradient(135deg,#0e1013,#232830 62%,#2f343d 100%);
  box-shadow:var(--public-shadow);
}
.hero p{color:#d7dbe1}
.btn{box-shadow:0 10px 22px rgba(0,0,0,.18)}
.btn.dark{background:#f3f4f6;color:#0e1114}
.card, .box, .institution-card, .authority-card, .discipline-hero-copy, .social-empty, .discipline-empty, .discipline-error, .authorities-empty{
  background:linear-gradient(180deg,#15191d 0%, #111418 100%);
  border:1px solid var(--public-line);
  box-shadow:var(--public-shadow);
}
.card, .box, .institution-card, .authority-card{overflow:hidden}
.card-body{background:transparent}
.card h3, .box h2, .authority-name{color:#f7f7f7}
.card-body > div[style],
[data-home-posts] .card-body > div,
[data-news] .card-body > div,
.social-grid .card-body > div{color:#98a2ad !important}
.media, .photo, .staff-photo{background-color:#1d2228}
.photo, .staff-photo, .article-media, .institution-card-media, .discipline-hero-media{box-shadow:0 10px 26px rgba(0,0,0,.22)}
.club.home-portals{background:transparent}
.home-portals .tile{box-shadow:0 14px 34px rgba(0,0,0,.36)}
.sponsor-logo{
  background:#fff;
  border:1px solid #e7e7e7;
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.footer{
  background:#050608;
  border-top:1px solid #191d22;
  color:#fff;
}
.footer p, .footer small{color:#a9afb7}
[data-article]{
  background:linear-gradient(180deg,#111418 0%, #0d1013 100%);
  border:1px solid var(--public-line);
  border-radius:26px;
  padding:28px 30px 36px;
  box-shadow:var(--public-shadow);
}
[data-article] .lead{color:#cad0d9}
.article-copy{color:#d7dbe1}
.article-copy p{color:inherit}
.discipline-back{color:#c6ccd5 !important}
.discipline-hero-copy{min-height:320px}
.discipline-content{color:#d7dbe1 !important}
.discipline-info-grid .box p{color:var(--public-muted)}
.schedule-list, .board-list{background:var(--public-line);border-color:var(--public-line)}
.schedule-row, .board-row{background:#12161a;color:#f2f4f7}
.schedule-row span, .board-row span{color:var(--public-muted)}
.institution-sponsor-strip{border-top:1px solid var(--public-line)}
.authorities-period{
  background:#111418;
  border-color:var(--public-line);
  color:#d5dbe4;
}
.contacts .box{
  min-height:290px;
  background:linear-gradient(180deg,#161a1f 0%, #111418 100%);
}
.contacts .box strong, .contacts .box a{color:#f4f5f6}
.social-empty strong, .discipline-empty strong{color:#fff}
.muted{color:var(--public-muted)}
[data-home-posts] .card, [data-news] .card, .social-grid .card, .player-card, .staff-card, .discipline-card{background:linear-gradient(180deg,#15191d 0%, #111418 100%)}
[data-news] .card-body,[data-home-posts] .card-body,.social-grid .card-body{min-height:250px}
.institution-card-more{border-top:1px solid rgba(255,255,255,.08);color:#d5dbe3}
.institution-readmore{color:#fff}
.institution-readmore:hover{color:#fff}
@media(max-width:850px){
  .nav{background:#0c0f13;border-color:#242932;box-shadow:0 20px 34px rgba(0,0,0,.38)}
}
@media(max-width:580px){
  [data-article]{padding:22px 18px 28px;border-radius:20px}
}


/* =========================================================
   RC7.8 — Vida Social, redes y video
   ========================================================= */
.video-badge{
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  padding:3px 7px;
  border:1px solid #3d434c;
  border-radius:999px;
  color:#d9dde3;
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.08em;
  vertical-align:middle;
}
.article-video{
  width:min(100%,980px);
  aspect-ratio:16/9;
  margin:6px 0 34px;
  overflow:hidden;
  border:1px solid var(--public-line);
  border-radius:20px;
  background:#050608;
  box-shadow:var(--public-shadow);
}
.article-video iframe,.article-video video{width:100%;height:100%;display:block;border:0}
.article-video.direct video{object-fit:contain;background:#000}
.article-video-link{margin:4px 0 34px}
.article-video-link .btn{background:#f1f3f5;color:#0b0d0f}
.footer-social{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:22px 0 18px;
}
.social-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.social-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:10px 16px 10px 10px;
  border:1px solid #343a43;
  border-radius:999px;
  background:#14181d;
  color:#f5f6f7;
  font-weight:800;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.social-link:hover{transform:translateY(-2px);border-color:#676f7a;background:#1a1f25}
.social-link.compact{min-height:40px;padding:7px 12px 7px 7px;font-size:.86rem}
.social-icon{
  display:grid;
  place-items:center;
  width:30px;height:30px;
  border-radius:50%;
  background:#f4f5f6;
  color:#0b0d0f;
  font-size:.76rem;
  font-weight:950;
}
.social-icon svg{
  display:block;
  width:15px;
  height:15px;
}
.social-icon-instagram svg{width:16px;height:16px}
.social-icon-facebook svg{width:11px;height:17px}
.social-icon-x svg{width:14px;height:14px}
.social-icon-youtube svg{width:17px;height:15px}
.social-link.compact .social-icon{width:26px;height:26px;font-size:.7rem}
.social-link.compact .social-icon svg{transform:scale(.9)}
.contact-social-section{
  padding:8px 0 52px;
}
.contact-social-section .container{
  padding:30px;
  border:1px solid var(--public-line);
  border-radius:22px;
  background:linear-gradient(135deg,#15191e,#0f1216);
  box-shadow:var(--public-shadow);
}
.contact-social-section h2{
  margin:8px 0 10px;
  font-size:clamp(2rem,3vw,2.8rem);
  letter-spacing:-.04em;
}
.contact-social-section p{margin:0;color:var(--public-muted)}
@media(max-width:580px){
  .article-video{border-radius:14px;margin-bottom:26px}
  .contact-social-section .container{padding:24px 20px}
  .social-links{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .social-link{width:100%}
}


/* =========================================================
   RC7.9 — Refinamiento tipográfico global + ajustes finales
   Antonio para titulares / Manrope para lectura y navegación.
   ========================================================= */
:root{
  --font-display:'Antonio','Arial Narrow',Arial,sans-serif;
  --font-body:'Manrope',Arial,Helvetica,sans-serif;
}

/* Base tipográfica: menos peso, más aire y lectura más editorial */
body{
  font-family:var(--font-body);
  font-weight:400;
  letter-spacing:-.006em;
}
.brand,
.nav,
.menu,
.btn,
.card p,
.lead,
.article-copy,
.institution-card-summary,
.institution-card-more,
.discipline-summary,
.discipline-content,
.contacts .box p,
.contacts .box strong,
.authority-name,
.footer,
.social-link{
  font-family:var(--font-body);
}

h1,h2,h3,
.page-title,
.hero h1,
.section h2,
.card h3,
.institution-card h2,
.contacts .box h2,
.contact-social-section h2,
[data-disciplines] .discipline-card h2,
.discipline-hero-copy .page-title{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-.022em;
}

.page-title{
  font-size:clamp(3.05rem,5vw,4.45rem);
  line-height:.98;
  font-weight:500;
}
.hero h1{
  font-size:clamp(3.1rem,5.25vw,4.55rem);
  line-height:.96;
  font-weight:500;
}
.section h2{
  font-size:clamp(2.35rem,3.65vw,3.15rem);
  line-height:1;
  font-weight:500;
}
.card h3{
  font-size:1.42rem;
  line-height:1.12;
  font-weight:500;
}

/* Etiquetas: Antonio con peso moderado, no 900 */
.eyebrow,
.authority-role,
.video-badge{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:.13em;
}

/* Navegación y marca más refinadas */
.brand{font-weight:700;letter-spacing:.035em}
.nav{font-weight:600;letter-spacing:-.012em}
.btn{font-weight:700}

/* Noticias: títulos menos compactos y cuerpo más delicado */
[data-home-posts] .card h3,
[data-news] .card h3,
.social-grid .card h3{
  font-size:1.48rem;
  line-height:1.08;
}
.article-copy{
  font-size:1.035rem;
  line-height:1.82;
  font-weight:400;
}
[data-article] .page-title{
  max-width:1000px;
  font-weight:500;
}
[data-article] .lead{font-weight:400}

/* Básquet / Staff */
.player-card .number{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:-.02em;
}
.player-card h3,.staff-card h3{font-weight:500}

/* Institución: títulos más breves visualmente y de menor peso */
.institution-card h2{
  font-size:clamp(1.7rem,2.05vw,2rem)!important;
  line-height:1.03!important;
  font-weight:500!important;
  letter-spacing:-.018em!important;
  margin-bottom:12px!important;
}
.institution-card-body{padding:20px 21px 19px}
.institution-card-summary{
  font-size:.95rem;
  line-height:1.6;
  min-height:70px;
}
.institution-readmore{
  font-family:var(--font-body);
  font-weight:600;
}

/* Comisión Directiva: listado vertical, en orden institucional */
.authorities-page .page-title{
  font-size:clamp(3.15rem,5vw,4.6rem);
  font-weight:500;
}
.authorities-section{padding-top:18px}
.authorities-grid{
  grid-template-columns:1fr!important;
  gap:0!important;
  max-width:940px;
}
.authority-card{
  min-height:72px;
  display:grid;
  grid-template-columns:minmax(185px,255px) minmax(0,1fr);
  align-items:center;
  gap:28px;
  padding:16px 4px;
  border:0!important;
  border-bottom:1px solid var(--public-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.authority-card:first-child{border-top:1px solid var(--public-line)!important}
.authority-role{
  margin:0;
  font-size:.86rem;
  color:#9da5b0;
}
.authority-name{
  font-size:1.05rem;
  line-height:1.35;
  font-weight:600;
  color:#f4f6f8;
}
.authorities-period{
  font-family:var(--font-body);
  font-weight:600;
}

/* Contacto: más aire entre información y redes */
.contacts .box h2{
  font-size:clamp(2rem,2.6vw,2.45rem)!important;
  font-weight:500!important;
  letter-spacing:-.02em!important;
}
.contact-social-section{padding-top:24px}
.contact-social-section h2{
  font-size:clamp(2.2rem,3vw,2.7rem);
  font-weight:500;
}
.social-link{font-weight:600}

/* Home: compactamos apenas el mosaico, preservando sus gráficas */
.home-portals{padding:34px 0}
.home-portals .club-grid{
  grid-template-rows:245px 205px 235px;
  gap:11px 10px;
}

/* Footer: menos peso */
.footer .brand{font-weight:650}
.footer p,.footer small{font-weight:400}

@media(max-width:850px){
  .page-title{font-size:clamp(2.8rem,9vw,4rem)}
  .hero h1{font-size:clamp(2.9rem,8vw,4.1rem)}
  .authorities-grid{max-width:none}
  .authority-card{
    grid-template-columns:minmax(150px,210px) 1fr;
    gap:20px;
  }
  .home-portals .club-grid{grid-template-rows:auto;gap:11px}
}
@media(max-width:580px){
  .page-title{font-size:clamp(2.7rem,13vw,3.7rem)}
  .section h2{font-size:2.35rem}
  .card h3,[data-home-posts] .card h3,[data-news] .card h3,.social-grid .card h3{font-size:1.38rem}
  .authority-card{
    grid-template-columns:1fr;
    gap:5px;
    padding:14px 2px;
  }
  .authority-role{font-size:.8rem}
  .authority-name{font-size:1rem}
  .institution-card-summary{min-height:0}
  .contact-social-section{padding-top:14px}
}


/* =========================================================
   RC7.10 — Contacto refinado
   Menos "manchones": información integrada al fondo,
   divisores finos y redes sin repetición en el footer.
   ========================================================= */

.contact-page .page-head{
  padding-bottom:10px;
}

/* El bloque de datos deja de sentirse como tres cajas pesadas. */
.contact-page .section{
  padding-top:24px;
  padding-bottom:34px;
}
.contact-page .contacts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border-top:1px solid var(--public-line);
  border-bottom:1px solid var(--public-line);
}
.contact-page .contacts .box{
  min-height:230px;
  padding:28px 28px 26px;
  border:0!important;
  border-right:1px solid var(--public-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.contact-page .contacts .box:last-child{
  border-right:0!important;
}
.contact-page .contacts .box h2{
  margin:9px 0 14px!important;
  font-size:clamp(1.9rem,2.3vw,2.28rem)!important;
  line-height:1.02!important;
  font-weight:500!important;
}
.contact-page .contacts .box p{
  max-width:300px;
  margin-bottom:22px;
  color:#aeb5be;
  font-size:.96rem;
  line-height:1.55;
}
.contact-page .contacts .box strong{
  display:grid;
  gap:5px;
  margin-top:auto;
  font-size:.93rem;
  line-height:1.45;
  font-weight:600;
}
.contact-page .contacts .box strong a{
  width:max-content;
  max-width:100%;
  overflow-wrap:anywhere;
  text-decoration:none!important;
  border-bottom:1px solid rgba(255,255,255,.32);
}
.contact-page .contacts .box strong a:hover{
  border-bottom-color:#fff;
}

/* Redes: una única franja liviana, no otra tarjeta oscura. */
.contact-page + .footer{
  margin-top:0;
}
.contact-social-section{
  padding:0 0 44px;
}
.contact-social-section .container{
  padding:34px 0 4px;
  border:0;
  border-top:1px solid var(--public-line);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.contact-social-section h2{
  max-width:760px;
  margin:8px 0 10px;
  font-size:clamp(2.2rem,3vw,2.75rem);
  line-height:1;
}
.contact-social-section p{
  max-width:650px;
  margin:0 0 22px;
}
.contact-social-section .social-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.contact-social-section .social-link{
  min-height:44px;
  padding:7px 14px 7px 7px;
  background:transparent;
  border-color:#343a43;
  box-shadow:none;
}
.contact-social-section .social-link:hover{
  background:#15191d;
}

/* Footer de Contacto más corto: allí ya no se repiten las redes. */
.contact-page ~ .footer{
  margin-top:0;
}
body:has(.contact-page) .footer{
  padding-top:38px;
  padding-bottom:34px;
}
body:has(.contact-page) .footer p{
  margin-top:14px;
  margin-bottom:12px;
}

/* Móvil: lista limpia, no bloques negros grandes. */
@media(max-width:850px){
  .contact-page .contacts{
    grid-template-columns:1fr;
  }
  .contact-page .contacts .box{
    min-height:0;
    padding:25px 2px 26px;
    border-right:0!important;
    border-bottom:1px solid var(--public-line)!important;
  }
  .contact-page .contacts .box:last-child{
    border-bottom:0!important;
  }
  .contact-page .contacts .box p{
    max-width:560px;
    margin-bottom:17px;
  }
}

@media(max-width:580px){
  .contact-page .page-head{
    padding-top:34px;
    padding-bottom:4px;
  }
  .contact-page .section{
    padding-top:18px;
    padding-bottom:28px;
  }
  .contact-page .contacts .box{
    padding:22px 0 23px;
  }
  .contact-page .contacts .box h2{
    font-size:2rem!important;
  }
  .contact-page .contacts .box strong{
    font-size:.95rem;
  }
  .contact-social-section{
    padding-bottom:34px;
  }
  .contact-social-section .container{
    padding-top:28px;
  }
  .contact-social-section h2{
    font-size:2.25rem;
  }
  .contact-social-section .social-links{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .contact-social-section .social-link{
    width:100%;
  }
  body:has(.contact-page) .footer{
    padding-top:30px;
  }
}


/* =========================================================
   RC7.11 — Ajuste fino móvil
   ========================================================= */

/* Header completamente opaco: el contenido no se transparenta al hacer scroll. */
.header{
  background:#080a0c!important;
}

/* Datos de contacto limpios, una línea por dato y sin separadores sueltos. */
.contact-value-line{
  display:block;
  width:100%;
}
.contact-value-line + .contact-value-line{
  margin-top:10px;
}

/* En móvil, las redes dejan de ocupar todo el ancho para verse más livianas. */
@media(max-width:580px){
  .contact-social-section .social-links{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
  }
  .contact-social-section .social-link{
    width:auto;
    min-height:42px;
    padding-right:13px;
  }
  .contact-social-section{
    padding-bottom:28px;
  }
  body:has(.contact-page) .footer{
    padding-top:26px;
    padding-bottom:30px;
  }
}


/* =========================================================
   RC7.12 — Refinamiento responsive Plantel / Staff / Disciplinas
   ========================================================= */

/* ---------- Plantel y Staff ----------
   5 columnas en escritorio grande, 4 notebook, 3 tablet,
   2 en móvil. Tarjetas más compactas.
*/
.players,
[data-staff]{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:start;
}

.player-card,
.staff-card{
  min-width:0;
}

.player-card .photo,
.staff-card .photo{
  width:100%;
  aspect-ratio:4/5;
}

.player-card .card-body,
.staff-card .card-body{
  padding:14px 15px 15px!important;
}

.player-card .number{
  font-size:1.58rem!important;
  line-height:1!important;
  margin:0 0 7px!important;
}

.player-card h3,
.staff-card h3{
  font-size:1.16rem!important;
  line-height:1.08!important;
  margin:4px 0 7px!important;
}

.player-card p,
.staff-card p{
  font-size:.84rem;
  line-height:1.4;
}

.staff-card .eyebrow{
  font-size:.68rem;
  line-height:1.15;
  margin-bottom:5px;
}

/* ---------- Disciplinas ----------
   La grilla pasa a ser un selector visual compacto:
   imagen panorámica + nombre. La explicación queda
   dentro de la ficha individual.
*/
[data-disciplines]{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:start;
}

[data-disciplines] .discipline-card{
  border-radius:16px;
  overflow:hidden;
  transition:transform .18s ease, border-color .18s ease;
}

[data-disciplines] .discipline-card:hover{
  transform:translateY(-2px);
  border-color:#3a414b;
}

[data-disciplines] .discipline-card .media{
  aspect-ratio:16/9!important;
}

[data-disciplines] .discipline-card .card-body{
  min-height:0!important;
  padding:13px 15px 15px!important;
}

[data-disciplines] .discipline-card h2{
  margin:0!important;
  font-size:1.58rem!important;
  line-height:1!important;
  font-weight:500!important;
}

[data-disciplines] .discipline-card p{
  display:none!important;
}

/* La cabecera de Disciplinas se compacta un poco. */
body:has([data-disciplines]) .page-head{
  padding-bottom:8px;
}
body:has([data-disciplines]) .page-head + .section{
  padding-top:22px;
}

/* Notebook */
@media(max-width:1180px){
  .players,
  [data-staff]{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}

/* Tablet */
@media(max-width:900px){
  .players,
  [data-staff]{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  [data-disciplines]{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

/* Móvil */
@media(max-width:650px){
  .players,
  [data-staff]{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:11px!important;
  }

  .basket-opening,
  .basket-staff-section{
    padding-top:30px!important;
    padding-bottom:30px!important;
  }

  .basket-staff-section .section h2,
  .basket-staff-section h2{
    font-size:2.05rem!important;
    line-height:1.02!important;
    margin-bottom:18px!important;
  }

  .player-card .card-body,
  .staff-card .card-body{
    padding:11px 11px 12px!important;
  }

  .player-card .number{
    font-size:1.38rem!important;
    margin-bottom:5px!important;
  }

  .player-card h3,
  .staff-card h3{
    font-size:1.02rem!important;
    margin:3px 0 5px!important;
  }

  .player-card p,
  .staff-card p{
    font-size:.75rem!important;
    line-height:1.32!important;
  }

  .staff-card .eyebrow{
    font-size:.6rem!important;
    letter-spacing:.1em!important;
  }

  [data-disciplines]{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:11px!important;
  }

  body:has([data-disciplines]) .page-title{
    font-size:3.1rem!important;
  }

  body:has([data-disciplines]) .page-head .lead{
    font-size:.98rem;
    line-height:1.55;
  }

  [data-disciplines] .discipline-card{
    border-radius:14px;
  }

  [data-disciplines] .discipline-card .card-body{
    padding:10px 11px 11px!important;
  }

  [data-disciplines] .discipline-card h2{
    font-size:1.28rem!important;
  }
}

/* Teléfonos muy angostos: mantenemos dos columnas,
   pero afinamos todavía más los datos. */
@media(max-width:390px){
  .player-card h3,
  .staff-card h3{
    font-size:.96rem!important;
  }

  .player-card p,
  .staff-card p{
    font-size:.71rem!important;
  }

  [data-disciplines] .discipline-card h2{
    font-size:1.18rem!important;
  }
}


/* =========================================================
   RC7.13 — Ficha de disciplina compacta + jerarquía de noticias
   ========================================================= */

/* ---------- Noticias ----------
   Equilibramos la diferencia entre el título de tarjeta
   (antes demasiado chico) y el titular de la nota individual
   (antes demasiado grande, especialmente en iPhone).
*/
[data-home-posts] .card h3,
[data-news] .card h3,
.social-grid .card h3{
  font-size:1.56rem!important;
  line-height:1.08!important;
}

[data-article] .page-title{
  font-size:clamp(3rem,4.6vw,4.15rem)!important;
  line-height:.98!important;
  max-width:900px!important;
}

[data-article] .lead{
  max-width:860px!important;
}

/* ---------- Ficha individual de disciplina ----------
   Un único bloque compacto para foto + nombre + descripción.
*/
.discipline-detail{
  padding-top:30px!important;
}

.discipline-back{
  margin-bottom:16px!important;
  font-family:var(--font-body);
  font-size:.9rem;
  font-weight:600!important;
  color:#aeb5be!important;
}

.discipline-overview{
  display:grid;
  grid-template-columns:1.35fr .85fr;
  overflow:hidden;
  border:1px solid var(--public-line);
  border-radius:20px;
  background:#111418;
  box-shadow:var(--public-shadow);
}

.discipline-overview-media{
  min-height:310px;
  background:#1d2228;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

.discipline-overview-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:28px 30px;
}

.discipline-overview-copy .page-title{
  margin:7px 0 11px!important;
  font-size:clamp(2.65rem,4.2vw,3.65rem)!important;
  line-height:.98!important;
}

.discipline-overview-copy .discipline-summary{
  margin:0!important;
  max-width:520px;
  font-size:.98rem!important;
  line-height:1.55!important;
  color:#b4bac3!important;
}

.discipline-section{
  padding:24px 0!important;
}

.discipline-section h2{
  margin-bottom:14px!important;
  font-size:clamp(1.8rem,2.6vw,2.25rem)!important;
  font-weight:500!important;
}

/* Horarios como agenda compacta */
.schedule-list{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
}

.schedule-row{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:14px 16px!important;
  padding:17px 18px!important;
  border:1px solid var(--public-line);
  border-radius:16px;
  background:#12161a!important;
  box-shadow:none;
}

.schedule-row > .schedule-category{
  grid-column:1 / -1;
  padding-bottom:11px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.schedule-row strong{
  display:block;
  margin:0 0 3px!important;
  color:#f3f5f7;
  font-size:.96rem;
  line-height:1.35;
}

.schedule-row .schedule-category strong{
  font-family:var(--font-display);
  font-size:1.42rem;
  font-weight:500;
  line-height:1;
}

.schedule-row span{
  display:block;
  color:#aeb5be!important;
  font-size:.84rem;
  line-height:1.42;
}

.schedule-label{
  margin-bottom:5px;
  font-family:var(--font-display);
  font-size:.67rem!important;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#7f8995!important;
}

/* También compactamos apenas la cabecera del listado general */
body:has([data-disciplines]) .page-head{
  padding-top:48px!important;
  padding-bottom:4px!important;
}

body:has([data-disciplines]) .page-head + .section{
  padding-top:18px!important;
}

/* Tablet */
@media(max-width:850px){
  .discipline-overview{
    grid-template-columns:1fr;
  }

  .discipline-overview-media{
    min-height:0;
    aspect-ratio:16/8.4;
  }

  .discipline-overview-copy{
    padding:22px 24px 24px;
  }

  .schedule-list{
    grid-template-columns:1fr!important;
  }
}

/* iPhone / móvil */
@media(max-width:580px){
  [data-home-posts] .card h3,
  [data-news] .card h3,
  .social-grid .card h3{
    font-size:1.52rem!important;
    line-height:1.07!important;
  }

  [data-article] .page-title{
    font-size:clamp(2.7rem,11.2vw,3.1rem)!important;
    line-height:.96!important;
    margin-bottom:17px!important;
  }

  [data-article] .lead{
    font-size:1rem!important;
    line-height:1.58!important;
    margin-bottom:20px!important;
  }

  .discipline-detail{
    padding-top:24px!important;
  }

  .discipline-back{
    margin-bottom:13px!important;
    font-size:.84rem;
  }

  .discipline-overview{
    border-radius:17px;
  }

  .discipline-overview-media{
    aspect-ratio:16/9;
  }

  .discipline-overview-copy{
    padding:18px 19px 20px;
  }

  .discipline-overview-copy .page-title{
    font-size:2.6rem!important;
    margin:5px 0 8px!important;
  }

  .discipline-overview-copy .discipline-summary{
    font-size:.91rem!important;
    line-height:1.5!important;
  }

  .discipline-section{
    padding:20px 0!important;
  }

  .discipline-section h2{
    font-size:1.95rem!important;
    margin-bottom:12px!important;
  }

  .schedule-row{
    grid-template-columns:1fr!important;
    gap:11px!important;
    padding:15px 16px!important;
  }

  .schedule-row > .schedule-category{
    grid-column:auto;
    padding-bottom:9px;
  }

  .schedule-row .schedule-category strong{
    font-size:1.32rem;
  }

  .schedule-training{
    padding-bottom:9px;
    border-bottom:1px solid rgba(255,255,255,.07);
  }

  body:has([data-disciplines]) .page-head{
    padding-top:34px!important;
  }

  body:has([data-disciplines]) .page-title{
    font-size:2.85rem!important;
  }

  body:has([data-disciplines]) .page-head + .section{
    padding-top:14px!important;
  }
}


/* =========================================================
   RC7.14 — Ajustes finales pendientes
   ========================================================= */

/* ---------- Noticia individual ---------- */
[data-article] .article-copy{
  font-size:1rem!important;
  line-height:1.72!important;
}

[data-article] .article-video-link,
[data-article] .article-external-link,
[data-article] a.btn{
  min-height:44px!important;
  padding:10px 16px!important;
  font-size:.92rem!important;
  line-height:1.2!important;
}

/* ---------- Categorías y horarios ----------
   Una sola categoría aprovecha el ancho.
   Dos o más se ordenan automáticamente en dos columnas.
*/
.schedule-list{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  width:100%;
}

.schedule-list > .schedule-row:only-child{
  grid-column:1 / -1;
  width:min(100%, 920px);
}

.discipline-section{
  padding-bottom:18px!important;
}

body:has(.discipline-detail) .footer{
  margin-top:18px!important;
}

/* ---------- iPhone ---------- */
@media(max-width:580px){
  [data-article] .page-title{
    font-size:clamp(2.35rem,9.6vw,2.75rem)!important;
    line-height:.98!important;
    letter-spacing:-.01em!important;
  }

  [data-article] .lead{
    font-size:.97rem!important;
    line-height:1.55!important;
  }

  [data-article] .article-copy{
    font-size:.94rem!important;
    line-height:1.68!important;
  }

  [data-article] .article-video-link,
  [data-article] .article-external-link,
  [data-article] a.btn{
    display:inline-flex!important;
    width:auto!important;
    max-width:100%;
    min-height:40px!important;
    padding:9px 13px!important;
    border-radius:999px!important;
    font-size:.84rem!important;
    white-space:normal;
  }

  .schedule-list{
    grid-template-columns:1fr!important;
  }

  .schedule-list > .schedule-row:only-child{
    grid-column:auto;
    width:100%;
  }

  body:has(.discipline-detail) .footer{
    margin-top:8px!important;
  }
}


/* =========================================================
   RC7.15 — Cierre de Disciplinas
   ========================================================= */

/* Una sola categoría ocupa todo el ancho útil del bloque. */
.schedule-list > .schedule-row:only-child{
  grid-column:1 / -1!important;
  width:100%!important;
  max-width:none!important;
}

/* Footer apenas más próximo en fichas con poco contenido. */
body:has(.discipline-detail) .footer{
  margin-top:10px!important;
}

@media(max-width:580px){
  body:has(.discipline-detail) .footer{
    margin-top:4px!important;
  }
}


/* =========================================================
   RC7.16 — Pulido final parcial + Entradas administrables
   ========================================================= */

/* La identidad tipográfica también llega a la cabecera. */
.header .brand span,
.nav a,
.menu{
  font-family:var(--font-display)!important;
  font-weight:500!important;
  letter-spacing:-.012em!important;
}
.header .brand span{
  font-size:1.08rem;
  letter-spacing:.055em!important;
}
.nav a{font-size:1rem}
.menu{font-size:1rem}

/* Entradas: tira visible en escritorio, solo cuando el panel la activa. */
.ticket-strip{
  border-top:1px solid #20252c;
  border-bottom:1px solid #20252c;
  background:#0e1115;
}
.ticket-strip-in{
  min-height:43px;
  display:flex;
  align-items:center;
  gap:13px;
  color:#f6f7f8;
}
.ticket-kicker{
  flex:0 0 auto;
  font-family:var(--font-display);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.13em;
  color:#a7afb9;
}
.ticket-match{
  flex:0 0 auto;
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:600;
  letter-spacing:-.012em;
}
.ticket-meta{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:var(--font-body);
  font-size:.78rem;
  color:#aeb6c0;
}
.ticket-buy{
  flex:0 0 auto;
  margin-left:auto;
  padding:6px 11px;
  border:1px solid #c2262d;
  border-radius:999px;
  background:#a9171e;
  color:#fff!important;
  font-family:var(--font-display);
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.025em;
  transition:background .18s ease,transform .18s ease;
}
.ticket-buy:hover{background:#c21c24;transform:translateY(-1px)}
.ticket-mobile-card{display:none!important}

/* Vida Social vacía: sin una gran caja ni repetición del título. */
.social-empty-line{
  grid-column:1/-1;
  margin:2px 0 20px;
  padding:18px 0;
  border-top:1px solid var(--public-line);
  border-bottom:1px solid var(--public-line);
  color:#aab1bb;
  font-size:.98rem;
  line-height:1.6;
}
.social-page:has(.social-empty-line) .social-content{padding-top:10px;padding-bottom:30px}

/* Institución: tarjetas iguales, imágenes un poco menos altas y marcas más próximas. */
.institution-overview{padding-top:18px!important;padding-bottom:26px!important}
.institution-cards{align-items:stretch!important}
.institution-card{height:100%;display:flex;flex-direction:column}
.institution-card-media{aspect-ratio:16/8!important}
.institution-card-body{flex:1;display:flex;flex-direction:column}
.institution-readmore{margin-top:auto}
.institution-card-more{flex:0 0 auto}
.institution-sponsor-strip{padding-top:20px!important}

/* Autoridades: filas levemente más compactas y nombre más cerca del cargo. */
.authorities-section{padding-bottom:32px!important}
.authority-card{
  min-height:64px!important;
  grid-template-columns:minmax(175px,225px) minmax(0,1fr)!important;
  gap:20px!important;
  padding:12px 4px!important;
}
.authorities-page + .footer,
body:has(.authorities-page) .footer{margin-top:18px!important}

@media(max-width:1050px) and (min-width:851px){
  .ticket-strip-in{gap:9px}
  .ticket-kicker{display:none}
  .ticket-meta{font-size:.74rem}
}

@media(max-width:850px){
  .ticket-strip{display:none}
  .ticket-mobile-card{
    display:flex!important;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    margin:8px 12px 4px;
    padding:14px 15px!important;
    border:1px solid #333a44;
    border-radius:14px;
    background:#14181d;
    color:#fff!important;
  }
  .ticket-mobile-card span{
    font-family:var(--font-display);
    font-size:.68rem;
    font-weight:600;
    letter-spacing:.12em;
    color:#9da6b1;
  }
  .ticket-mobile-card strong{
    font-family:var(--font-display);
    font-size:1.25rem;
    font-weight:500;
    line-height:1.05;
  }
  .ticket-mobile-card small{
    font-family:var(--font-body);
    font-size:.78rem;
    line-height:1.45;
    color:#aeb6c0;
  }
  .ticket-mobile-card b{
    margin-top:5px;
    font-family:var(--font-display);
    font-size:.92rem;
    font-weight:600;
    color:#fff;
  }
  .nav a.ticket-mobile-card::after{display:none!important}
}

@media(max-width:580px){
  .institution-card-media{aspect-ratio:16/8.15!important}
  .institution-overview{padding-top:10px!important;padding-bottom:20px!important}
  .institution-sponsor-strip{padding-top:15px!important}
  .authority-card{
    min-height:0!important;
    grid-template-columns:1fr!important;
    gap:3px!important;
    padding:11px 2px!important;
  }
  .authorities-section{padding-bottom:22px!important}
  body:has(.authorities-page) .footer{margin-top:8px!important}
}


/* =========================================================
   RC7.17 — Entradas visibles en móvil + tipografía unificada
   ========================================================= */

/* Toda la franja de entradas usa Antonio.
   La jerarquía se diferencia por tamaño/peso, no por familia. */
.ticket-meta{
  font-family:var(--font-display)!important;
  font-size:.80rem!important;
  font-weight:400!important;
  letter-spacing:.015em!important;
  text-transform:uppercase;
}

.ticket-strip-in{
  min-height:48px!important;
}

.ticket-match{
  font-size:1.05rem!important;
}

.ticket-buy{
  padding:7px 12px!important;
  font-size:.84rem!important;
}

/* El antiguo bloque dentro del menú queda anulado. */
.ticket-mobile-card{
  display:none!important;
}

/* En móvil, el próximo partido aparece SIEMPRE visible
   justo debajo de la cabecera, no escondido dentro de Menú. */
.ticket-mobile-visible{
  display:none;
}

@media(max-width:850px){
  .ticket-strip{
    display:none!important;
  }

  .ticket-mobile-visible{
    display:block;
    background:#0e1115;
    border-bottom:1px solid #282e36;
  }

  .ticket-mobile-visible-in{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding-top:12px;
    padding-bottom:12px;
  }

  .ticket-mobile-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
  }

  .ticket-mobile-copy span,
  .ticket-mobile-copy strong,
  .ticket-mobile-copy small,
  .ticket-mobile-buy{
    font-family:var(--font-display)!important;
  }

  .ticket-mobile-copy span{
    font-size:.63rem;
    font-weight:600;
    letter-spacing:.13em;
    color:#9fa8b3;
  }

  .ticket-mobile-copy strong{
    font-size:1.13rem;
    font-weight:600;
    line-height:1.02;
    color:#f7f8f9;
  }

  .ticket-mobile-copy small{
    margin-top:2px;
    font-size:.72rem;
    font-weight:400;
    line-height:1.32;
    letter-spacing:.01em;
    text-transform:uppercase;
    color:#aeb6c0;
  }

  .ticket-mobile-buy{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:8px 12px;
    border:1px solid #c2262d;
    border-radius:999px;
    background:#a9171e;
    color:#fff!important;
    font-size:.78rem;
    font-weight:600;
    letter-spacing:.02em;
    white-space:nowrap;
  }
}

@media(max-width:430px){
  .ticket-mobile-visible-in{
    grid-template-columns:1fr;
    gap:9px;
  }

  .ticket-mobile-buy{
    justify-self:start;
    min-height:35px;
    padding:7px 11px;
  }

  .ticket-mobile-copy strong{
    font-size:1.08rem;
  }

  .ticket-mobile-copy small{
    font-size:.70rem;
  }
}


/* =========================================================
   RC7.18 — Contacto: mail y teléfono en dos filas con iconos
   ========================================================= */

.contact-page .contacts .box strong{
  display:grid!important;
  gap:11px!important;
  margin-top:auto;
  font-size:inherit!important;
}

.contact-data-row{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
}

.contact-data-icon{
  flex:0 0 34px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#f4f5f6;
  color:#0b0e11;
  border:1px solid rgba(255,255,255,.15);
}

.contact-data-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.contact-data-copy{
  min-width:0;
  display:grid;
  gap:2px;
}

.contact-data-label{
  font-family:var(--font-display);
  font-size:.67rem;
  font-weight:600;
  line-height:1;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#8f98a4;
}

.contact-page .contacts .box .contact-data-copy a{
  width:max-content;
  max-width:100%;
  color:#f3f5f7!important;
  font-family:var(--font-body);
  font-size:.88rem;
  font-weight:500;
  line-height:1.32;
  overflow-wrap:anywhere;
  text-decoration:none!important;
  border-bottom:1px solid rgba(255,255,255,.28);
}

.contact-page .contacts .box .contact-data-copy a:hover{
  border-bottom-color:#fff;
}

.contact-data-empty{
  color:#9ea6b0;
  font-size:.9rem;
  font-weight:500;
}

@media(max-width:850px){
  .contact-page .contacts .box{
    padding-top:21px!important;
    padding-bottom:22px!important;
  }

  .contact-page .contacts .box p{
    margin-bottom:18px!important;
  }

  .contact-data-icon{
    flex-basis:36px;
    width:36px;
    height:36px;
  }

  .contact-data-icon svg{
    width:18px;
    height:18px;
  }

  .contact-page .contacts .box .contact-data-copy a{
    font-size:.92rem;
  }
}

@media(max-width:580px){
  .contact-page .contacts .box strong{
    gap:12px!important;
  }

  .contact-data-label{
    font-size:.65rem;
  }

  .contact-page .contacts .box .contact-data-copy a{
    font-size:.93rem;
  }
}


/* =========================================================
   RC7.19 — Candidata final: cierre de Home
   ========================================================= */

/* La franja de próximo partido está fuera del header sticky:
   es visible al entrar y se desplaza naturalmente al hacer scroll. */
.ticket-strip,
.ticket-mobile-visible{
  position:relative!important;
  top:auto!important;
}

/* En móvil, una cantidad impar de sponsors termina centrada. */
@media(max-width:580px){
  .sponsors-grid > :last-child:nth-child(odd){
    grid-column:1 / -1;
    width:calc(50% - 6px);
    justify-self:center;
  }
}


/* =========================================================
   RC7.22 — Logo Institución + grilla equilibrada para 7 sponsors
   ========================================================= */

/* Cuando hay exactamente 7 sponsors en escritorio:
   4 en la primera fila + 3 centrados en la segunda. */
@media(min-width:851px){
  .sponsors-grid:has(> :nth-child(7):last-child){
    grid-template-columns:repeat(8,minmax(0,1fr))!important;
    gap:15px!important;
  }
  .sponsors-grid:has(> :nth-child(7):last-child) > *{
    grid-column:span 2;
    width:100%;
  }
  .sponsors-grid:has(> :nth-child(7):last-child) > :nth-child(5){grid-column:2 / span 2}
  .sponsors-grid:has(> :nth-child(7):last-child) > :nth-child(6){grid-column:4 / span 2}
  .sponsors-grid:has(> :nth-child(7):last-child) > :nth-child(7){grid-column:6 / span 2}
}

/* Tablet: 3 + 3 + 1 centrado. */
@media(min-width:581px) and (max-width:850px){
  .sponsors-grid:has(> :nth-child(7):last-child) > :nth-child(7){
    grid-column:2;
  }
}

/* iPhone/móvil: 2 + 2 + 2 + 1 centrado. */
@media(max-width:580px){
  .sponsors-grid:has(> :nth-child(7):last-child) > :nth-child(7){
    grid-column:1 / -1!important;
    width:calc((100% - 15px)/2)!important;
    justify-self:center!important;
  }
}
\n\n/* =========================================================\n   RC7.23 — Pulido final: Institución, partido y 7 sponsors\n   ========================================================= */\n\n/* Ambos equipos con el mismo tratamiento; “vs” funciona sólo como separador. */\n.ticket-vs{\n  display:inline-block;\n  margin:0 .12em;\n  font-size:.72em;\n  font-weight:500;\n  letter-spacing:.02em;\n  text-transform:lowercase;\n  color:#aeb6c0;\n  vertical-align:.08em;\n}\n\n/* Normalización del peso visual interno sin alterar las cajas ni la grilla 4 + 3. */\n.sponsor-logo img{\n  width:80%!important;\n  height:68px!important;\n  max-width:80%!important;\n  max-height:68px!important;\n  object-fit:contain!important;\n  transform-origin:center;\n}\n.sponsor-scale-down img{transform:scale(.88)}\n.sponsor-scale-normal img{transform:scale(1)}\n.sponsor-scale-up img{transform:scale(1.10)}\n\n@media(max-width:850px){\n  .sponsor-logo img{height:60px!important;max-height:60px!important}\n}\n@media(max-width:580px){\n  .sponsor-logo img{width:84%!important;max-width:84%!important;height:58px!important;max-height:58px!important}\n  .ticket-vs{font-size:.74em}\n}\n
/* =========================================================
   RC7.26 — Institución: cada tarjeta conserva su altura propia
   Al abrir “Leer más”, sólo crece la tarjeta seleccionada.
   ========================================================= */
.institution-cards{
  align-items:start!important;
}
.institution-card{
  height:auto!important;
  align-self:start!important;
}
.institution-card-body{
  flex:0 0 auto!important;
}
.institution-readmore{
  margin-top:17px!important;
}

/* RC7.29 — Gráficas institucionales para las tarjetas de Disciplinas.
   Mantiene exactamente la estructura/tamaño existente: sólo reemplaza
   la foto de portada de cada tarjeta por la gráfica correspondiente. */
[data-disciplines] .discipline-card .media.discipline-graphic{
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
