/* =========================================================
   CEMEXICANO VOCES · GALERÍA MULTIMEDIA · v0.4.1
   ========================================================= */

.cem-voces-gallery{
  --cem-blue:#213868;
  --cem-red:#dd0b21;
  --cem-text:#68758b;
  --cem-border:#e1e7ef;
  width:100%;
}

.cem-voces-gallery__toolbar{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(145px,.6fr) auto;
  gap:14px;
  align-items:end;
  margin-bottom:24px;
  padding:20px;
  background:#fff;
  border:1px solid var(--cem-border);
  border-radius:16px;
  box-shadow:0 10px 28px rgba(22,48,89,.045);
}

.cem-voces-gallery__filter-group label{
  display:block;
  margin-bottom:7px;
  color:var(--cem-blue);
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.7px;
  text-transform:uppercase;
}

.cem-voces-gallery__filter{
  width:100%;
  min-height:44px;
  padding:0 38px 0 13px;
  color:#24395f;
  background:#f8fafc;
  border:1px solid #dce3ec;
  border-radius:10px;
  font:inherit;
  font-size:14px;
  cursor:pointer;
}

.cem-voces-gallery__filter:focus{
  outline:2px solid rgba(33,56,104,.16);
  outline-offset:2px;
  border-color:rgba(33,56,104,.38);
}

.cem-voces-gallery__reset{
  min-height:44px;
  padding:0 16px;
  color:var(--cem-blue);
  background:#fff;
  border:1px solid #dce3ec;
  border-radius:10px;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}

.cem-voces-gallery__reset:hover{
  color:var(--cem-red);
  border-color:rgba(221,11,33,.30);
}

.cem-voces-gallery__summary{
  min-height:20px;
  margin:0 0 18px;
  color:#7a8798;
  font-size:13px;
}

.cem-voces-gallery__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.cem-voces-gallery__card{
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--cem-border);
  border-radius:17px;
  box-shadow:0 10px 30px rgba(22,48,89,.04);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.cem-voces-gallery__card:hover{
  transform:translateY(-4px);
  border-color:rgba(33,56,104,.20);
  box-shadow:0 18px 38px rgba(22,48,89,.09);
}

.cem-voces-gallery__card[hidden]{display:none !important;}

.cem-voces-gallery__media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#0d2349;
  text-decoration:none !important;
}

.cem-voces-gallery__media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  transition:transform .42s ease;
}

.cem-voces-gallery__media:hover img{transform:scale(1.035);}

.cem-voces-gallery__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(8,22,47,.02),rgba(8,22,47,.35));
}

.cem-voces-gallery__play{
  position:absolute;
  top:50%;
  left:50%;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%);
  background:#fff;
  border-radius:50%;
  box-shadow:0 9px 24px rgba(0,0,0,.22);
  transition:transform .2s ease;
}

.cem-voces-gallery__media:hover .cem-voces-gallery__play{
  transform:translate(-50%,-50%) scale(1.07);
}

.cem-voces-gallery__play > span{
  width:0;
  height:0;
  margin-left:4px;
  border-top:7px solid transparent;
  border-bottom:7px solid transparent;
  border-left:11px solid var(--cem-red);
}

.cem-voces-gallery__content{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:20px 20px 22px;
}

.cem-voces-gallery__topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}

.cem-voces-gallery__program{
  color:var(--cem-red);
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:1px;
  text-transform:uppercase;
}

.cem-voces-gallery__date{
  color:#8792a3;
  font-size:11px;
  line-height:1.2;
}

.cem-voces-gallery__title{
  margin:0 !important;
  padding:0 !important;
  color:var(--cem-blue);
  font-size:18px !important;
  line-height:1.28 !important;
  font-weight:800 !important;
}

.cem-voces-gallery__title a{
  color:inherit !important;
  text-decoration:none !important;
}

.cem-voces-gallery__title a:hover{color:var(--cem-red) !important;}

.cem-voces-gallery__meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:auto;
  padding-top:16px;
}

.cem-voces-gallery__topic,
.cem-voces-gallery__guest{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 9px;
  border-radius:999px;
  font-size:10px;
  line-height:1.2;
}

.cem-voces-gallery__topic{
  color:var(--cem-red);
  background:rgba(221,11,33,.065);
}

.cem-voces-gallery__guest{
  color:#4e607a;
  background:#f2f5f9;
}

.cem-voces-gallery__load-wrap{
  display:flex;
  justify-content:center;
  margin-top:34px;
}

.cem-voces-gallery__load{
  min-height:48px;
  padding:0 22px;
  color:#fff;
  background:var(--cem-blue);
  border:0;
  border-radius:9px;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease;
}

.cem-voces-gallery__load:hover{
  transform:translateY(-2px);
  background:#162d59;
}

.cem-voces-gallery__load[hidden],
.cem-voces-gallery__empty-state[hidden],
.cem-voces-gallery__reset[hidden]{display:none !important;}

.cem-voces-gallery__empty-state,
.cem-voces-gallery__empty{
  padding:34px;
  color:#66748a;
  background:#fff;
  border:1px dashed #d7dee8;
  border-radius:14px;
  text-align:center;
}


/* Episodio más reciente destacado */
.cem-voces-gallery__card--featured{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
}

.cem-voces-gallery__card--featured .cem-voces-gallery__media{
  min-height:310px;
  aspect-ratio:auto;
}

.cem-voces-gallery__card--featured .cem-voces-gallery__content{
  justify-content:center;
  padding:32px;
}

.cem-voces-gallery__card--featured .cem-voces-gallery__title{
  font-size:26px !important;
  line-height:1.2 !important;
}

.cem-voces-gallery__featured-badge{
  position:absolute;
  top:18px;
  left:18px;
  z-index:3;
  padding:8px 12px;
  color:#fff;
  background:var(--cem-red);
  border-radius:7px;
  font-size:10px;
  line-height:1;
  font-weight:800;
  letter-spacing:.8px;
  text-transform:uppercase;
  box-shadow:0 8px 20px rgba(221,11,33,.20);
}

@media(max-width:800px){
  .cem-voces-gallery__card--featured{
    grid-template-columns:1fr;
  }

  .cem-voces-gallery__card--featured .cem-voces-gallery__media{
    min-height:0;
    aspect-ratio:16/9;
  }

  .cem-voces-gallery__card--featured .cem-voces-gallery__content{
    padding:22px;
  }

  .cem-voces-gallery__card--featured .cem-voces-gallery__title{
    font-size:21px !important;
  }
}

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

@media(max-width:640px){
  .cem-voces-gallery__toolbar{grid-template-columns:1fr;padding:16px;}
  .cem-voces-gallery__grid{grid-template-columns:1fr;gap:18px;}
  .cem-voces-gallery__title{font-size:17px !important;}
  .cem-voces-gallery__play{width:54px;height:54px;}
}
