/* mod_semana: weekly programme (own CSS, Radio Panamericana FM). Look recreated from the live module (dark theme, accent colour). */
.mod-semana{--semana-accent:#fcc500;--semana-veil:.35;--semana-margin:0px;--semana-fg:#fff;--semana-muted:#b8b8c2;--semana-surface:#212128;--semana-surface2:#2b2b34;
  position:relative;box-sizing:border-box;padding:14px;border-radius:14px;color:var(--semana-fg);font-family:Roboto,Helvetica,Arial,sans-serif;
  background:#15151a;overflow:hidden}
.mod-semana *{box-sizing:border-box}
.mod-semana--con-fondo{background:linear-gradient(rgba(0,0,0,var(--semana-veil)),rgba(0,0,0,var(--semana-veil))),var(--semana-bg) center/cover no-repeat}
.mod-semana--completo{margin-left:calc(var(--semana-margin) * -1);margin-right:calc(var(--semana-margin) * -1)}
.mod-semana--claro{--semana-fg:#222;--semana-muted:#555;--semana-surface:#f4f4f6;--semana-surface2:#e6e6ea;background:#fff}
.mod-semana--claro.mod-semana--con-fondo{background:linear-gradient(rgba(255,255,255,calc(var(--semana-veil) + .4)),rgba(255,255,255,calc(var(--semana-veil) + .4))),var(--semana-bg) center/cover no-repeat}

/* header */
.semana-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:rgba(20,0,0,.55);border:1px solid rgba(255,255,255,.12);margin-bottom:12px}
.mod-semana--claro .semana-head{background:rgba(255,255,255,.7)}
.semana-eq{display:inline-flex;align-items:flex-end;gap:3px;height:26px;flex:0 0 auto}
.semana-eq i{display:block;width:4px;background:var(--semana-accent);border-radius:1px;height:40%}
.semana-eq i:nth-child(2){height:100%}.semana-eq i:nth-child(3){height:65%}.semana-eq i:nth-child(4){height:85%}
.mod-semana--eq-siempre .semana-eq i{animation:semana-eq 1.1s ease-in-out infinite}
.mod-semana--eq-aire.has-onair .semana-eq i{animation:semana-eq 1.1s ease-in-out infinite}
.semana-eq i:nth-child(2){animation-delay:-.4s!important}.semana-eq i:nth-child(3){animation-delay:-.7s!important}.semana-eq i:nth-child(4){animation-delay:-.2s!important}
@keyframes semana-eq{0%,100%{transform:scaleY(.45)}50%{transform:scaleY(1)}}
.semana-eq i{transform-origin:bottom}
.semana-titles{flex:1 1 auto;min-width:0}
.semana-title{margin:0;font-size:15px;line-height:1.2;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--semana-fg)}
.semana-title::after{content:"";display:block;width:44px;height:3px;border-radius:2px;background:var(--semana-accent);margin:6px 0 4px}
.semana-subtitle{margin:0;font-size:11px;font-style:italic;color:var(--semana-muted)}
.semana-clock{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;padding:6px 12px;border-radius:10px;background:rgba(20,20,25,.85);border:1px solid rgba(255,255,255,.12);color:#fff}
.semana-clock-label{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#bbb}
.semana-clock-time{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}

/* day tabs */
.semana-tabs{display:flex;gap:4px;padding:4px;border-radius:12px;background:rgba(25,25,32,.9);margin-bottom:12px}
.mod-semana .semana-tabs button.semana-tab[role=tab]{flex:1 1 0;appearance:none;border:0;background:transparent;color:#cfcfd6;font:700 10px/1 Roboto,Helvetica,Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em;padding:10px 4px 9px;border-radius:9px;cursor:pointer;position:relative}
.mod-semana .semana-tabs button.semana-tab[role=tab]:hover{background:rgba(255,255,255,.08)}
.mod-semana .semana-tabs button.semana-tab[role=tab]:focus-visible{outline:2px solid var(--semana-accent);outline-offset:1px}
.mod-semana .semana-tabs button.semana-tab[role=tab][aria-selected="true"]{background:var(--semana-accent);color:#1a1a1a}
.mod-semana .semana-tabs button.semana-tab[role=tab].is-today::after{content:"";position:absolute;left:50%;bottom:3px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:currentColor}

/* panels and cards */
.semana-day-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.semana-panel{margin:0 0 12px}
.mod-semana.js-on .semana-panel{display:none;margin:0}
.mod-semana.js-on .semana-panel.is-active{display:block}
.semana-empty{margin:0;padding:24px;text-align:center;border-radius:12px;background:var(--semana-surface);color:var(--semana-muted)}
.semana-cards{display:grid;gap:12px}
.semana-cards--n1{grid-template-columns:1fr}
.mod-semana--cols-2 .semana-cards--n2,.mod-semana--cols-2 .semana-cards--n3,.mod-semana--cols-2 .semana-cards--n4{grid-template-columns:repeat(2,1fr)}
.mod-semana--cols-3 .semana-cards--n2{grid-template-columns:repeat(2,1fr)}
.mod-semana--cols-3 .semana-cards--n3,.mod-semana--cols-3 .semana-cards--n4{grid-template-columns:repeat(3,1fr)}
.mod-semana--cols-4 .semana-cards--n2{grid-template-columns:repeat(2,1fr)}
.mod-semana--cols-4 .semana-cards--n3{grid-template-columns:repeat(3,1fr)}
.mod-semana--cols-4 .semana-cards--n4{grid-template-columns:repeat(4,1fr)}
.semana-card{position:relative;display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--semana-surface);border:1px solid rgba(255,255,255,.08)}
.semana-media{position:relative;background:var(--semana-surface2);aspect-ratio:16/9}
.mod-semana--ratio-4-3 .semana-media{aspect-ratio:4/3}.mod-semana--ratio-1-1 .semana-media{aspect-ratio:1/1}.mod-semana--ratio-3-4 .semana-media{aspect-ratio:3/4}
.semana-media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.semana-time{position:absolute;left:10px;bottom:10px;padding:3px 9px;border-radius:999px;background:var(--semana-accent);color:#1a1a1a;font:700 10px/1.3 Roboto,Helvetica,Arial,sans-serif;font-variant-numeric:tabular-nums}
.semana-info{padding:14px 16px 16px}
.semana-prog{margin:0 0 4px;font-size:14px;font-weight:700;line-height:1.25;color:var(--semana-fg)}
.semana-presenter{margin:0;font-size:11px;color:var(--semana-muted)}
/* one programme in the day: image left, text right (as on the live site) */
.semana-cards--n1 .semana-card{flex-direction:row;align-items:stretch}
.semana-cards--n1 .semana-media{flex:0 0 45%;aspect-ratio:auto;min-height:260px}
.semana-cards--n1 .semana-info{align-self:center;padding:24px;border-left:3px solid var(--semana-accent)}
.semana-cards--n1 .semana-prog{font-size:16px}
/* on air */
.semana-card.is-on-air{border-color:var(--semana-accent);box-shadow:0 0 0 2px var(--semana-accent)}
.semana-badge{position:absolute;right:10px;top:10px;padding:3px 9px;border-radius:999px;background:#d8201f;color:#fff;font:700 10px/1.3 Roboto,Helvetica,Arial,sans-serif;letter-spacing:.06em;display:inline-flex;align-items:center;gap:5px}
.semana-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:semana-pulse 1.4s ease-in-out infinite}
@keyframes semana-pulse{50%{opacity:.25}}

@media (max-width:767px){
  .mod-semana{padding:10px}
  .semana-head{padding:10px 12px}
  .mod-semana .semana-tabs button.semana-tab[role=tab]{font-size:9px;letter-spacing:.02em;padding:9px 1px}
  .mod-semana .semana-cards{grid-template-columns:1fr!important}
  .semana-cards--n1 .semana-card{flex-direction:column}
  .semana-cards--n1 .semana-media{flex:0 0 auto;aspect-ratio:16/9;min-height:0}
  .semana-cards--n1 .semana-info{border-left:0;padding:14px 16px 16px}
}
@media (prefers-reduced-motion:reduce){
  .semana-eq i,.semana-badge::before{animation:none!important}
}
