/* Avisos Parroquiales — estilos compartidos de la pantalla (escenario 1920×1080 / 1080×1920) */
.av-stage {
  position: absolute; left: 0; top: 0;
  width: 1920px; height: 1080px;
  overflow: hidden; background: #000;
  transform-origin: 0 0;
  font-family: 'Montserrat', 'Segoe UI', Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.av-stage.portrait { width: 1080px; height: 1920px; }

.av-slide {
  position: absolute; inset: 0; overflow: hidden;
  opacity: 0; will-change: opacity, transform;
  transition: opacity 900ms ease, transform 1100ms cubic-bezier(.2,.7,.2,1);
}
.av-slide.on { opacity: 1; transform: none; }
.av-stage.t-none .av-slide { transition: none; }
.av-stage.t-slide .av-slide { transform: translateX(7%); }
.av-stage.t-slide .av-slide.off { transform: translateX(-7%); opacity: 0; }
.av-stage.t-zoom .av-slide { transform: scale(1.06); }
.av-stage.t-zoom .av-slide.off { transform: scale(.97); opacity: 0; }
.av-stage .av-slide.on { transform: none; }
.av-slide.static { opacity: 1; transform: none; transition: none; }

/* ---------- Imagen / video ---------- */
.av-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; }
.av-media.cover { object-fit: cover; }
.av-blur {
  position: absolute; inset: -60px; width: calc(100% + 120px); height: calc(100% + 120px);
  object-fit: cover; filter: blur(50px) brightness(.55) saturate(1.2);
}

/* ---------- Aviso de texto ---------- */
.av-text {
  display: flex; align-items: center; justify-content: center;
  color: var(--c); background: var(--bg);
}
.av-text .av-bgimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.av-text .av-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.7)); }
.av-text.has-bgimg { --c: #fff; }
.av-text .av-frame {
  position: absolute; inset: 44px; border: 2px solid var(--accent); opacity: .35; border-radius: 6px; pointer-events: none;
}
.av-text .av-body-wrap {
  position: relative; z-index: 2; display: flex; width: 100%; height: 100%;
  padding: 120px 150px; box-sizing: border-box; gap: 90px; align-items: center;
}
.av-stage.portrait .av-text .av-body-wrap { padding: 150px 90px; flex-direction: column; gap: 60px; justify-content: center; }
.av-text.bar-pad .av-body-wrap { padding-bottom: 190px; }
.av-text .av-col {
  flex: 1 1 auto; min-width: 0; max-height: 100%;
  display: flex; flex-direction: column; justify-content: center;
  font-size: calc(var(--fs, 1) * 1px);
}
.av-text.al-center .av-col { align-items: center; text-align: center; }
.av-text.al-left .av-col { align-items: flex-start; text-align: left; }
.av-text .av-side {
  flex: 0 0 42%; align-self: stretch; border-radius: 18px; overflow: hidden; position: relative;
  box-shadow: 0 30px 80px rgba(0,0,0,.35);
}
.av-stage.portrait .av-text .av-side { flex: 0 0 38%; width: 100%; }
.av-text .av-side img { width: 100%; height: 100%; object-fit: cover; display: block; }

.av-icon { font-size: 9.5em; line-height: 1; margin-bottom: .25em; }
.av-kicker {
  font-size: 3.4em; font-weight: 700; letter-spacing: .18em; text-transform: uppercase;
  color: var(--kicker); margin-bottom: .55em;
}
.av-title {
  font-family: var(--tf); font-weight: 700; font-size: 12em; line-height: 1.04;
  margin: 0; letter-spacing: -.01em; text-wrap: balance;
}
.av-rule { width: 2.4em; height: .14em; background: var(--accent); margin: .55em 0 .5em; font-size: 10em; border-radius: 9px; }
.av-body {
  font-size: 5em; line-height: 1.38; font-weight: 500; opacity: .92; white-space: pre-line; text-wrap: pretty;
}
.av-info { display: flex; flex-wrap: wrap; gap: .5em 1.6em; margin-top: 1.1em; font-size: 4.2em; font-weight: 700; }
.av-text.al-center .av-info { justify-content: center; }
.av-info span {
  display: inline-flex; align-items: center; gap: .45em;
  background: var(--chip); padding: .35em .8em; border-radius: 999px;
}

/* Plantillas */
.tpl-celeste   { --bg: linear-gradient(160deg,#d6ecff 0%,#ffffff 52%,#c9e3fa 100%); --c:#0f2f57; --accent:#c9a227; --kicker:#2f6fb3; --tf:'Playfair Display',Georgia,serif; --chip: rgba(47,111,179,.12); }
.tpl-noche     { --bg: radial-gradient(ellipse at 28% 18%,#22396a 0%,#0b1527 72%); --c:#f6f1e3; --accent:#d9b44a; --kicker:#d9b44a; --tf:'Playfair Display',Georgia,serif; --chip: rgba(217,180,74,.16); }
.tpl-pergamino { --bg: radial-gradient(ellipse at 50% 40%,#fbf4e2 0%,#ecdcb8 100%); --c:#3b2a17; --accent:#8a2c1d; --kicker:#8a2c1d; --tf:'Playfair Display',Georgia,serif; --chip: rgba(138,44,29,.1); }
.tpl-verde     { --bg: linear-gradient(150deg,#22643f,#0d3521); --c:#f4fbf6; --accent:#e7c66a; --kicker:#a8e0bd; --tf:'Playfair Display',Georgia,serif; --chip: rgba(255,255,255,.12); }
.tpl-morado    { --bg: linear-gradient(150deg,#52307a,#22113a); --c:#f7f1ff; --accent:#e9cf7a; --kicker:#d6b8ff; --tf:'Playfair Display',Georgia,serif; --chip: rgba(255,255,255,.12); }
.tpl-rojo      { --bg: linear-gradient(150deg,#9b1e1e,#4a0a0a); --c:#fff5f0; --accent:#f2c14e; --kicker:#ffcf9e; --tf:'Playfair Display',Georgia,serif; --chip: rgba(255,255,255,.13); }
.tpl-fiesta    { --bg: radial-gradient(ellipse at 50% 30%,#fffef8 0%,#f3e5c3 100%); --c:#2a2316; --accent:#b8892b; --kicker:#a07421; --tf:'Playfair Display',Georgia,serif; --chip: rgba(184,137,43,.14); }
.tpl-jovenes   { --bg: linear-gradient(135deg,#ff6a3d 0%,#ff3d7f 50%,#6d3dff 100%); --c:#fff; --accent:#ffe45c; --kicker:#fff3b0; --tf:'Montserrat','Segoe UI',sans-serif; --chip: rgba(0,0,0,.16); }
.tpl-minimal   { --bg: #ffffff; --c:#111; --accent:#1f5fa8; --kicker:#1f5fa8; --tf:'Montserrat','Segoe UI',sans-serif; --chip: #eef3fa; }
.tpl-jovenes .av-title, .tpl-minimal .av-title { font-weight: 800; letter-spacing: -.02em; }

/* ---------- Pantalla en espera ---------- */
.av-idle { background: radial-gradient(ellipse at 50% 35%,#22396a 0%,#0b1527 75%); color: #f6f1e3; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.av-idle .i-cross { font-size: 140px; color: #d9b44a; line-height: 1; }
.av-idle .i-name { font-family: 'Playfair Display', Georgia, serif; font-size: 120px; font-weight: 700; margin-top: 30px; }
.av-idle .i-text { font-size: 54px; opacity: .8; margin-top: 24px; }
.av-idle .i-clock { font-size: 64px; font-weight: 700; margin-top: 70px; color: #d9b44a; letter-spacing: .04em; }

/* ---------- Barra inferior ---------- */
.av-bar {
  position: absolute; left: 0; right: 0; bottom: 0; height: 104px; z-index: 50;
  display: flex; align-items: center; gap: 28px; padding: 0 44px;
  font-size: 34px; font-weight: 600; box-sizing: border-box;
  transition: transform .6s ease, opacity .6s ease;
}
.av-bar.hidden { transform: translateY(110%); opacity: 0; }
.av-bar.dark { background: rgba(8,16,32,.86); color: #fff; backdrop-filter: blur(8px); }
.av-bar.light { background: rgba(255,255,255,.92); color: #0f2f57; backdrop-filter: blur(8px); }
.av-bar.celeste { background: linear-gradient(90deg,#2f6fb3,#5ea6e6); color: #fff; }
.av-bar .b-logo { height: 70px; width: auto; display: block; }
.av-bar .b-name { white-space: nowrap; font-family: 'Playfair Display', Georgia, serif; font-size: 38px; font-weight: 700; }
.av-bar .b-ticker { flex: 1 1 auto; overflow: hidden; position: relative; height: 100%; mask-image: linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); }
.av-bar .b-ticker > div { position: absolute; top: 50%; white-space: nowrap; transform: translate(0,-50%); animation: avTicker var(--td,30s) linear infinite; padding-left: 100%; }
.av-bar .b-spacer { flex: 1 1 auto; }
.av-bar .b-sep { width: 3px; height: 50px; background: currentColor; opacity: .25; border-radius: 2px; }
.av-bar .b-clock { white-space: nowrap; text-align: right; line-height: 1.05; }
.av-bar .b-clock b { font-size: 46px; display: block; }
.av-bar .b-clock small { font-size: 22px; opacity: .8; font-weight: 600; }
@keyframes avTicker { from { transform: translate(0,-50%); } to { transform: translate(-100%,-50%); } }
.av-stage.portrait .av-bar { height: 120px; }
