:root {
  /* Colores */
  --magenta:      #e0007f;
  --magenta-lt:   #ff3399;
  --navy:         #1b1b1b;
  --dark-section: #1a1a2e;
  --footer-blue:  #2b2b6b;
  --footer-btm:   #24245e;
  /* --navy:         #0d0d2b; */

  --bg-dark:      #1a1a1a;
  --bg-card:      #ffffff;
  --navy:         #1a2a5e;
  --text-dark:    #111111;
  --text-muted:   #6b7280;
  --card-radius:  14px;
  --img-h:        240px;
  --transition:   .28s ease;




  --bg-cardmm:    #1e1e1e;
  --bg-hover:   #282828;
 
  --text-white: #f3f4f6;
  /* --text-muted: #9ca3af; */
  --text-dim:   #6b7280;
  --transition: .28s cubic-bezier(.4,0,.2,1);

  --bg-white:      #ffffff;
  --bg-black:      #000000;

  /* Tipografías */
  --font-base:    'Montserrat', sans-serif;
  --font-display: 'Montserrat', sans-serif;
  /* --font-display: 'Barlow Condensed', sans-serif; */
}




*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
/* body { font-family:'Barlow',sans-serif; background:#fff; color:#111; overflow-x:hidden; } */


body {
  font-family: var(--font-base);
  background: #fff;
  color:#111; 
  overflow-x:hidden;
}

.text-justify {
  text-align: justify;
}

/* ── NAVBAR ──────────────────────────────── */
.navbar-cultura {
  background: var(--bg-dark); /*var(--navy);  */
  padding: .55rem 0;
  position: sticky; top:0; z-index:1000;
  box-shadow: 0 2px 20px rgba(224,0,127,.2);
}
.navbar-cultura .navbar-brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; }
.logo-shield {
  width:50px; height:50px; border-radius:50%;
  border:2px solid rgba(255,255,255,.28);
  display:grid; place-items:center;
  background:rgba(255,255,255,.07); flex-shrink:0;
}
.brand-text { color:white; line-height:1.1; }
.brand-text .bt-main {
  /* font-family:'Barlow Condensed',sans-serif;  */
  font-family: var(--font-display);
  font-weight:700; 
  font-size:.95rem; 
  letter-spacing:.05em; 
  text-transform:uppercase; 
}
.brand-text .bt-sub  { font-size:.63rem; letter-spacing:.14em; color:rgba(255,255,255,.48); text-transform:uppercase; }

.navbar-cultura .nav-link { color:rgba(255,255,255,.72)!important; font-weight:500; font-size:.93rem; padding:.45rem 1rem!important; position:relative; transition:color .2s; }
.navbar-cultura .nav-link::after { content:''; position:absolute; bottom:0; left:1rem; right:1rem; height:2px; background:var(--magenta-lt); transform:scaleX(0); transition:transform .25s; }
.navbar-cultura .nav-link:hover,.navbar-cultura .nav-link.active { color:#fff!important; }
.navbar-cultura .nav-link:hover::after,.navbar-cultura .nav-link.active::after { transform:scaleX(1); }
.navbar-cultura .nav-link.active { font-weight:700; }
.navbar-toggler { border-color:rgba(255,255,255,.25); }
.navbar-toggler-icon { background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,.8%29' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

/* ── HERO ────────────────────────────────── */
.hero {
  position:relative; min-height:370px;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  background: linear-gradient(108deg, var(--navy) 0%, #2a003a 42%, var(--magenta) 100%);
}
.hero::before {
  content:''; position:absolute; inset:0;
  background-image: radial-gradient(circle, rgba(255,255,255,.17) 1px, transparent 1px);
  background-size: 22px 22px; pointer-events:none;
}
.hero-circles { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:.32; }
.hero-content { position:relative; z-index:2; text-align:center; padding:3rem 1rem; animation:fadeUp .8s ease both; }
@keyframes fadeUp { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }
.hero-badge { display:inline-block; border:3px solid white; border-radius:10px; padding:.25rem 2rem; }
.hero-badge span { 
  font-family: var(--font-display);
  font-size:clamp(2rem,5.5vw,3.4rem); 
  font-weight:800; color:white; 
  letter-spacing:.05em; 
  text-transform:uppercase; 
}
.hero-title { 
  font-family: var(--font-display); 
  font-size:clamp(3rem,8.5vw,5.2rem); 
  font-weight:900; 
  color:white; 
  line-height:.95; 
  text-transform:uppercase;
}

.hero-sub { 
  font-family: var(--font-display); 
  font-size:clamp(.75rem,1.8vw,.95rem); 
  font-weight:400; 
  letter-spacing:.38em; 
  color:rgba(255,255,255,.82); 
  text-transform:uppercase;
  margin-top:.55rem;
}

/* ── SECTION TITLES ──────────────────────── */
.sec-title { 
  font-family:var(--font-display); 
  font-weight:800; 
  font-size:1.85rem; 
  /* text-transform:uppercase;  */
  letter-spacing:.02em; 
}

.sec-title.on-dark { color:white; }
.sec-title.on-light { color:#111; }



/* ── BANNER INSTITUCIONAL ────────────────── */
.banner-inst 
{ 
  background:#111; 
  /* padding:2.2rem 0;  */
}
.inst-item { display:flex; align-items:center; gap:1rem; padding:0 2rem; justify-content:center; }
.inst-item + .inst-item { border-left:1px solid rgba(255,255,255,.12); }
.inst-icon { width:56px; height:56px; border-radius:50%; border:2px solid rgba(255,255,255,.28); display:grid; place-items:center; background:rgba(255,255,255,.05); flex-shrink:0; }
.inst-label { font-family: var(--font-display); font-weight:700; color:white; font-size:.95rem; line-height:1.3; text-transform:uppercase; letter-spacing:.03em; }
.inst-label span { display:block; font-size:.67rem; font-weight:400; letter-spacing:.1em; color:rgba(255,255,255,.5); text-transform:uppercase; }


/* ── FOOTER MAIN ───────────── */
.footer-main { background:var(--footer-blue); padding:2.6rem 0 2rem; }
.fdivider { width:28px; height:3px; background:var(--magenta); border-radius:2px; margin:.5rem 0 .8rem; }
.flink { display:block; font-size:.82rem; color:rgba(255,255,255,.72); text-decoration:none; line-height:1.85; transition:color .2s; }
.flink:hover { color:white; }
.flink.blue { color:#7eb8f7; }
.flink.blue:hover { color:#b0d4ff; }
.fcol-title { font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.42); margin-bottom:.7rem; }

/* ── FOOTER BOTTOM ───────────────────────── */
.footer-bottom { background:var(--footer-btm); padding:1.4rem 0; }
.fb-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.2rem; }
.uls-brand { display:flex; align-items:center; gap:.8rem; }
.uls-brand .shield { width:60px; height:60px; border-radius:50%; border:2px solid rgba(255,255,255,.28); display:grid; place-items:center; background:rgba(255,255,255,.06); }
.uls-brand .un { font-family: var(--font-display); font-weight:800; font-size:1.05rem; color:white; text-transform:uppercase; letter-spacing:.04em; line-height:1.1; }
.uls-brand .us { font-size:.65rem; color:rgba(255,255,255,.42); letter-spacing:.1em; }
.contact-block { text-align:center; border-left:1px solid rgba(255,255,255,.12); border-right:1px solid rgba(255,255,255,.12); padding:0 2rem; }
.contact-block .cl { font-size:.67rem; font-weight:700; letter-spacing:.14em; color:rgba(255,255,255,.45); text-transform:uppercase; }
.contact-block a { font-size:.78rem; color:#7eb8f7; text-decoration:none; font-weight:600; display:block; }
.contact-block p { font-size:.76rem; color:rgba(255,255,255,.62); line-height:1.6; margin:0; }
.cna-badge { display:flex; align-items:center; gap:.75rem; padding:.5rem 1rem; background:rgba(255,255,255,.06); border-radius:8px; border:1px solid rgba(255,255,255,.1); }
.cna-badge .cna-num { font-family: var(--font-display); font-size:2.1rem; font-weight:900; color:white; line-height:1; }
.cna-badge .cna-txt { font-family: var(--font-display); font-weight:800; font-size:.85rem; color:white; text-transform:uppercase; line-height:1.2; letter-spacing:.03em; }
.cna-badge .cna-sub { display:block; font-size:.63rem; font-weight:400; color:rgba(255,255,255,.48); }


/* ── REVEAL ──────────────────────────────── */
.reveal { opacity:0; transform:translateY(26px); transition:opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* footer */
.subtitle {
    text-transform: none;
    color: #fff !important;
}


.subtitle a {
    text-transform: none;
    color: #fff !important;
    text-decoration: none !important;
}

.divider {
    width: 50px;
    height: 4px;
    padding: 0;
    margin: 21px 0 21px;
    background: #E6325A;
    border: none;
    opacity: 1 !important;
    border-radius: 2px;
}

.hr {
    height: 1px;
    padding: 0px;
}

.bg-gray-light {
    background: #b5b5b5;
    fill: #b5b5b5;
}


/* Cartelera */

/* nueva cartelera */
.cartelera-img-wrap {
  width: 100%;
  aspect-ratio: 1 / 1; /* ajusta al ratio real de tus imágenes */
  overflow: hidden;
  border-radius: 12px;
}

.cartelera-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.cartelera-card:hover .cartelera-img {
  transform: scale(1.04);
}


.link-more.on-light {
    color: var(--magenta);
}
/* end cartelera */



/* Multimedia */

    

    .seccion-multimedia {
      background: var(--bg-card);
      /* padding: 3.5rem 0 4rem; */
    }

    /* Header */
    .mm-header {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 2rem;
    }
    .mm-eyebrow {
      font-family: var(--font-display);
      font-size: .7rem;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--magenta);
      margin-bottom: .4rem;
    }
    .mm-titulo {
      font-family: var(--font-display);
      font-size: 1.75rem;
      font-weight: 700;
      color: var(--bg-cardmm);
      margin-bottom: 1.75rem;
      letter-spacing: -.3px;
      line-height: 1;
      margin: 0;
    }

    .mm-ver-canal {
      display: inline-flex;
      align-items: center;
      gap: .45rem;
      font-family: var(--font-display);
      font-size: .78rem;
      font-weight: 600;
      color: var(--text-muted);
      text-decoration: none;
      transition: color var(--transition);
      padding-bottom: 4px;
    }
    .mm-ver-canal:hover { color: var(--magenta); }
    .mm-ver-canal svg { flex-shrink: 0; }

    /* Grid 3 columnas */
    .mm-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
    }

    /* Card */
    .mm-card {
      background: var(--bg-cardmm);
      border-radius: 14px;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      text-decoration: none;
      transition: transform var(--transition), background var(--transition);
    }
    .mm-card:hover {
      transform: translateY(-5px);
      background: var(--bg-hover);
    }

    /* Thumbnail */
    .mm-thumb-wrap {
      position: relative;
      aspect-ratio: 16/9;
      overflow: hidden;
      flex-shrink: 0;
    }
    .mm-thumb-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .45s ease;
    }
    .mm-card:hover .mm-thumb-wrap img {
      transform: scale(1.06);
    }

    /* Play overlay */
    .mm-play-overlay {
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,.35);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      transition: opacity var(--transition);
    }
    .mm-card:hover .mm-play-overlay { opacity: 1; }

    .mm-play-btn {
      width: 52px;
      height: 52px;
      border-radius: 50%;
      background: var(--magenta);
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 0 0 8px rgba(192,0,110,.2);
    }
    .mm-play-btn svg { margin-left: 4px; }

    /* Duración */
    .mm-duracion {
      position: absolute;
      bottom: 10px;
      right: 10px;
      background: rgba(0,0,0,.75);
      color: #fff;
      font-family: var(--font-display);
      font-size: .68rem;
      font-weight: 600;
      padding: 2px 7px;
      border-radius: 4px;
    }

    /* Info */
    .mm-info {
      padding: 1rem 1.1rem 1.2rem;
      flex: 1;
      display: flex;
      flex-direction: column;
    }
    .mm-categoria {
      font-family: var(--font-display);
      font-size: .65rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 1.2px;
      color: var(--magenta);
      margin-bottom: .35rem;
    }
    .mm-titulo-video {
      font-family: var(--font-display);
      font-weight: 700;
      font-size: .9rem;
      color: var(--text-white);
      line-height: 1.45;
      margin: 0 0 auto;
      padding-bottom: .65rem;
    }
    .mm-meta {
      display: flex;
      align-items: center;
      gap: 8px;
      font-family: var(--font-display);
      font-size: .7rem;
      color: var(--text-dim);
      margin-top: auto;
    }
    .mm-meta-dot {
      width: 3px;
      height: 3px;
      border-radius: 50%;
      background: var(--text-dim);
    }

    /* Responsive */
    @media (max-width: 991px) {
      .mm-grid { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 575px) {
      .mm-grid { grid-template-columns: 1fr; }
      .mm-titulo { font-size: 1.9rem; }
    }