/* Premium home hero for the default skin.
   Works with any presenter photo: an ambient, blurred copy of the same photo builds the backdrop,
   so the scene always matches the picture, and soft masks dissolve every edge into it. */
.radio-site{--hero-banner-height:620px}
/* Home follows the same fixed banner height as news and schedule, regardless of card content. */
@media(min-width:981px){
 .radio-site.is-home .radio-hero:not(.hero-promo),
 .radio-site.is-home .radio-hero:not(.hero-promo) .hero-layout{height:var(--hero-banner-height,620px)}
}
.hero-ambient,.hero-lights{display:none}
@keyframes heroPhotoIn{from{opacity:0;transform:scale(1.06) translateX(-14px)}to{opacity:1;transform:none}}
@keyframes heroRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes heroFade{from{opacity:0}to{opacity:1}}
@keyframes heroGlow{0%,100%{opacity:.75}50%{opacity:1}}

@media(min-width:981px){
 .skin-vibrante.is-home .radio-hero:is(.hero-locutor,.hero-video){min-height:600px;background:#030d20}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-layout{min-height:600px;grid-template-columns:37% 37% 26%;padding-top:150px;padding-bottom:56px}

 /* 1. Ambient backdrop: the presenter's own photo, heavily blurred, becomes a studio-like atmosphere. */
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-ambient{display:block;position:absolute;z-index:-5;inset:-60px;width:calc(100% + 120px);height:calc(100% + 120px);object-fit:cover;object-position:center 30%;filter:blur(46px) saturate(1.5) brightness(.62);transform:scale(1.08);animation:heroFade 1.2s ease both}
 /* 2. Studio lights in the station colours, so even a plain photo gets depth and warmth. */
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-lights{display:block;position:absolute;z-index:-4;inset:0;pointer-events:none;background:
  radial-gradient(circle at 8% 12%,#ffb34766 0,transparent 16%),
  radial-gradient(circle at 30% 6%,#ff8a3d40 0,transparent 12%),
  radial-gradient(circle at 46% 30%,color-mix(in srgb,var(--brand) 38%,transparent) 0,transparent 30%),
  radial-gradient(circle at 70% 18%,#2f7dff40 0,transparent 26%),
  radial-gradient(circle at 92% 75%,#6a3dff33 0,transparent 28%),
  linear-gradient(180deg,#030d2000 55%,#030d20d9 100%);mix-blend-mode:screen;animation:heroGlow 9s ease-in-out infinite}

 /* 3. The photo itself: large, frameless, dissolving into the scene on every side. */
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-scene{z-index:-3;top:0;left:0;width:54%;max-width:none;height:100%;object-fit:cover;object-position:center 22%;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 52%,#0009 70%,transparent 96%),linear-gradient(0deg,transparent 0,#000 22%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,#000 0,#000 52%,#0009 70%,transparent 96%),linear-gradient(0deg,transparent 0,#000 22%);mask-composite:intersect;
  filter:saturate(1.08) contrast(1.04);animation:heroPhotoIn 1.1s cubic-bezier(.2,.7,.2,1) both}
 /* 4. Shade: lets the photo breathe on the left and gives the copy and panel a calm, readable stage. */
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-shade{z-index:-2;background:
  linear-gradient(180deg,#020a1ae6 0,#020a1a99 90px,#020a1a00 190px),
  linear-gradient(90deg,#030d2000 0,#030d2000 30%,#030d2073 46%,#030d20c7 64%,#030d20e0 100%),
  radial-gradient(ellipse at 50% 120%,#030d20 0,transparent 55%)}

 /* 5. Menu ribbon fading into the photo instead of sitting on a solid bar. */
 .skin-vibrante .radio-nav:before{background:linear-gradient(90deg,#02132b00 0,#02132b8c 10%,#02132bd1 50%,#02132b8c 90%,#02132b00 100%);border-bottom:1px solid #ffffff14;backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
 .skin-vibrante .utility-bar{position:relative;z-index:16;background:linear-gradient(180deg,#020a1af2,#020a1acc);border-bottom-color:#ffffff12;backdrop-filter:blur(8px)}
 .skin-vibrante .station-brand img{filter:drop-shadow(0 8px 22px #000a)}

 /* 6. Copy: centred stage, script presenter line, staggered entrance. */
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy{padding:0 18px 0 0;text-shadow:0 4px 26px #000a}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy>*{animation:heroRise .8s cubic-bezier(.2,.7,.2,1) both}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy>:nth-child(2){animation-delay:.12s}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy>:nth-child(3){animation-delay:.22s}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy>:nth-child(4){animation-delay:.3s}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy>:nth-child(5){animation-delay:.38s}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy h1{font-size:clamp(58px,6.2vw,96px);line-height:.9;letter-spacing:-1px;filter:drop-shadow(0 8px 24px #0008)}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-presenter{font:400 clamp(26px,2.4vw,36px)/1.15 'Kaushan Script',Georgia,cursive;color:#fff;margin-top:14px;letter-spacing:.2px}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-description{font-size:16px;line-height:1.5;max-width:400px;color:#e6eefc;margin-top:16px}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-tags .on-air-tag{box-shadow:0 0 0 0 #ff2d55aa;animation:liveRing 2s ease-out infinite}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-tags .program-time{background:#ffffff14;border-color:#ffffff40;backdrop-filter:blur(6px)}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-buttons{margin-top:26px;gap:14px}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-buttons .btn{min-height:52px;padding:0 26px;border-radius:12px;font-size:15px;transition:transform .2s ease,box-shadow .2s ease}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-buttons .btn-yellow{box-shadow:0 10px 30px #ffc4004d,inset 0 1px 0 #fff6}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-buttons .btn-outline{background:#ffffff0f;border-color:#ffffffb3;backdrop-filter:blur(6px)}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-buttons .btn:hover{transform:translateY(-2px)}

 /* 7. On-air panel: glass card that lets the scene show through. */
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .on-air-panel{background:linear-gradient(160deg,#0b244dd0,#030c20e6);border:1px solid #ffffff1f;border-radius:16px;padding:20px 20px 16px;box-shadow:0 24px 60px #000a,inset 0 1px 0 #ffffff14;backdrop-filter:blur(16px) saturate(1.3);animation:heroRise .9s .25s cubic-bezier(.2,.7,.2,1) both}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .on-air-block{padding:12px 0}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .on-air-block+.on-air-block{border-top:1px solid #ffffff17}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .on-air-block h2{font-size:13px;letter-spacing:.6px;color:#fff}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .program-mini>img,.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .mini-cover img{object-fit:cover;border-radius:10px;box-shadow:0 6px 16px #0007}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .program-mini small{color:#4fc3ff}
}
@keyframes liveRing{0%{box-shadow:0 0 0 0 #ff2d5599}80%,100%{box-shadow:0 0 0 10px #ff2d5500}}

@media(max-width:1200px)and(min-width:981px){
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-layout{grid-template-columns:36% 38% 26%}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy h1{font-size:68px}
}

/* Phones and tablets: photo on top, melting into the copy below. */
@media(max-width:980px){
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-ambient{display:block;position:absolute;z-index:-5;inset:-40px;width:calc(100% + 80px);height:calc(100% + 80px);object-fit:cover;filter:blur(40px) saturate(1.4) brightness(.45)}
 .skin-vibrante.is-home .radio-hero:is(.hero-locutor,.hero-video){background:#030d20}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-scene{width:100%;height:340px;object-fit:cover;object-position:center 20%;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent);animation:heroFade 1s ease both}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-shade{background:linear-gradient(180deg,#030d2000 30%,#030d20cc 60%,#030d20)}
 .skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-presenter{font:400 26px/1.2 'Kaushan Script',Georgia,cursive;color:#fff}
}
@media(prefers-reduced-motion:reduce){
 .skin-vibrante.is-home .hero-scene,.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-ambient,.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-lights,.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy>*,.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .on-air-panel,.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .on-air-tag{animation:none!important}
}

/* Option 2 — video spotlight: cinematic studio frame, neon atmosphere and a glowing play control. */
.hero-video-play,.hero-video-badge{display:none}
@keyframes playPulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}
@keyframes recBlink{50%{opacity:.25}}
@media(min-width:981px){
 .skin-vibrante.is-home .hero-video .hero-scene{width:62%;object-position:center 35%;filter:saturate(1.2) contrast(1.08)}
 .skin-vibrante.is-home .hero-video .hero-lights{background:
  radial-gradient(circle at 12% 18%,#c13bff55 0,transparent 20%),
  radial-gradient(circle at 34% 8%,#ff2d9a40 0,transparent 16%),
  radial-gradient(circle at 52% 60%,#2f7dff4d 0,transparent 30%),
  radial-gradient(circle at 85% 20%,#7b3dff40 0,transparent 26%),
  linear-gradient(180deg,#030d2000 55%,#030d20d9 100%)}
 /* Fine scanlines over the picture so it reads as a live camera feed. */
 .skin-vibrante.is-home .hero-video .hero-lights:after{content:'';position:absolute;left:0;top:0;bottom:0;width:62%;background:repeating-linear-gradient(0deg,#ffffff06 0 1px,transparent 1px 3px);-webkit-mask-image:linear-gradient(90deg,#000 50%,transparent);mask-image:linear-gradient(90deg,#000 50%,transparent)}
 .skin-vibrante.is-home .hero-video .hero-shade{background:
  linear-gradient(180deg,#020a1ae6 0,#020a1a99 90px,#020a1a00 190px),
  linear-gradient(90deg,#030d2000 0,#030d2000 34%,#030d2080 50%,#030d20d9 66%,#030d20eb 100%)}
 .skin-vibrante.is-home .hero-video .hero-layout{grid-template-columns:34% 40% 26%}
 .skin-vibrante.is-home .hero-video-play{display:grid;place-items:center;position:absolute;z-index:2;left:22%;top:70%;width:104px;height:104px;margin:-52px 0 0 -52px;border:0;border-radius:50%;cursor:pointer;color:#fff;background:radial-gradient(circle at 35% 30%,#4aa3ff,#1559ff 60%,#0b2fbf);box-shadow:0 0 0 8px #ffffff1f,0 0 50px #2f7dffb3,0 18px 40px #000a;transition:transform .25s ease,box-shadow .25s ease;animation:heroFade .9s .4s ease both}
 .skin-vibrante.is-home .hero-video-ring{position:absolute;inset:0;border-radius:50%;border:2px solid #6fb6ff;animation:playPulse 2s ease-out infinite}
 .skin-vibrante.is-home .hero-video-play:hover{transform:scale(1.08);box-shadow:0 0 0 10px #ffffff2b,0 0 70px #2f7dffe6,0 18px 40px #000a}
 .skin-vibrante.is-home .hero-video-play:focus-visible{outline:3px solid #ffcf29;outline-offset:6px}
 .skin-vibrante.is-home .hero-video-badge{display:inline-flex;align-items:center;gap:7px;position:absolute;z-index:2;left:32px;bottom:34px;padding:7px 12px;border-radius:8px;background:#000a;border:1px solid #ffffff26;color:#fff;font:700 12px/1 RadioDisplay,sans-serif;letter-spacing:1.5px;backdrop-filter:blur(6px)}
 .skin-vibrante.is-home .hero-video-badge i{width:9px;height:9px;border-radius:50%;background:#ff2d55;box-shadow:0 0 10px #ff2d55;animation:recBlink 1.2s steps(1) infinite}
 .skin-vibrante.is-home .hero-video .hero-tags .on-air-tag{background:linear-gradient(90deg,#ff2d55,#e0115f);letter-spacing:.5px}
 .skin-vibrante.is-home .hero-video .hero-copy h1{font-size:clamp(56px,5.6vw,88px)}
 .skin-vibrante.is-home .hero-video .hero-buttons .btn-yellow{background:linear-gradient(180deg,#3a8dff,#1559ff);color:#fff;box-shadow:0 10px 30px #1559ff66,inset 0 1px 0 #fff5}
}
@media(max-width:980px){
 .skin-vibrante.is-home .hero-video-play{display:grid;place-items:center;position:absolute;z-index:2;left:50%;top:175px;width:76px;height:76px;margin-left:-38px;border:0;border-radius:50%;color:#fff;background:radial-gradient(circle at 35% 30%,#4aa3ff,#1559ff 60%,#0b2fbf);box-shadow:0 0 0 6px #ffffff24,0 0 40px #2f7dffb3}
 .skin-vibrante.is-home .hero-video-ring{position:absolute;inset:0;border-radius:50%;border:2px solid #6fb6ff;animation:playPulse 2s ease-out infinite}
}
@media(prefers-reduced-motion:reduce){.hero-video-ring,.hero-video-badge i,.hero-video-play{animation:none!important}}

/* Title stays on one line when it fits; otherwise it breaks only between the white and the accent part. */
.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy h1 :is(.headline-top,.headline-accent){display:inline-block}
.skin-vibrante.is-home :is(.hero-locutor,.hero-video) .hero-copy h1 .headline-top{margin-right:.22em}

/* Live studio behind the video hero. The photo is the poster and comes back if the stream fails. */
.hero-live{display:none}
.hero-video-play .icon-sound,.hero-video-play.is-on .icon-muted{display:none}
.hero-video-play.is-on .icon-sound{display:block}
@media(min-width:981px){
 .skin-vibrante.is-home .hero-video .hero-live{display:block;position:absolute;z-index:-3;top:0;left:0;width:62%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1.4s ease;
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 52%,#0009 70%,transparent 96%),linear-gradient(0deg,transparent 0,#000 22%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,#000 0,#000 52%,#0009 70%,transparent 96%),linear-gradient(0deg,transparent 0,#000 22%);mask-composite:intersect}
 .skin-vibrante.is-home .hero-video .hero-scene{transition:opacity 1.4s ease}
 .skin-vibrante.is-home .hero-video.is-live .hero-live{opacity:1}
 .skin-vibrante.is-home .hero-video.is-live .hero-scene{opacity:0}
 .skin-vibrante.is-home .hero-video-play{left:31%;top:58%}
}
/* Icon sits on the exact geometric centre of the button. */
.skin-vibrante.is-home .hero-video-play{place-items:initial}
.skin-vibrante.is-home .hero-video-play .ri{position:absolute;left:50%;top:50%;width:42%;height:42%;margin:0;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 6px #0006)}
.skin-vibrante.is-home .hero-sound-label{position:absolute;left:50%;top:calc(100% + 14px);transform:translateX(-50%);white-space:nowrap;padding:6px 12px;border-radius:20px;background:#000a;border:1px solid #ffffff26;font:700 12px/1 RadioDisplay,sans-serif;letter-spacing:1px;text-transform:uppercase;color:#fff;backdrop-filter:blur(6px)}
.skin-vibrante.is-home .hero-video-play.is-on{background:radial-gradient(circle at 35% 30%,#3df0a0,#0bb36b 60%,#07804c);box-shadow:0 0 0 8px #ffffff1f,0 0 50px #18d98bb3,0 18px 40px #000a}
.skin-vibrante.is-home .hero-video-play.is-on .hero-video-ring{border-color:#5dfbb7}
@media(max-width:980px){
 .skin-vibrante.is-home .hero-video .hero-live{display:block;position:absolute;z-index:-3;top:0;left:0;width:100%;height:340px;object-fit:cover;opacity:0;transition:opacity 1.2s ease;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
 .skin-vibrante.is-home .hero-video .hero-scene{transition:opacity 1.2s ease}
 .skin-vibrante.is-home .hero-video.is-live .hero-live{opacity:1}
 .skin-vibrante.is-home .hero-video.is-live .hero-scene{opacity:0}
 .skin-vibrante.is-home .hero-sound-label{font-size:11px;top:calc(100% + 10px)}
}
@media(min-width:981px){
 /* Streams often carry their own graphics; keep them on the left and give the copy a calm, dark stage. */
 .skin-vibrante.is-home .hero-video .hero-live{width:54%;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 40%,#0008 62%,transparent 92%),linear-gradient(0deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,#000 0,#000 40%,#0008 62%,transparent 92%),linear-gradient(0deg,transparent 0,#000 22%)}
 .skin-vibrante.is-home .hero-video.is-live .hero-shade{background:linear-gradient(180deg,#020a1ae6 0,#020a1a99 90px,#020a1a00 190px),linear-gradient(90deg,#030d2000 0,#030d2000 18%,#030d20b8 33%,#030d20f2 46%,#030d20f5 100%)}
 .skin-vibrante.is-home .hero-video-play{left:17%;top:50%}
}
@media(max-width:980px){.skin-vibrante.is-home .hero-video-play{top:120px}}
/* Once the studio is live, only the video remains: photo and its blurred backdrop leave completely. */
.skin-vibrante.is-home .hero-video .hero-scene,.skin-vibrante.is-home .hero-video .hero-ambient{transition:opacity 1.2s ease}
.skin-vibrante.is-home .hero-video.is-live .hero-scene,.skin-vibrante.is-home .hero-video.is-live .hero-ambient{animation:none!important;opacity:0!important}
/* "Assistir ao vivo": a filmed-camera icon with a pulsing REC light, distinct from the radio play icon. */
@keyframes camDot{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes camHalo{0%{r:2.1;opacity:.9}100%{r:4.6;opacity:0}}
.btn-live-cam .live-cam{width:22px;height:22px;flex:0 0 22px;overflow:visible;filter:drop-shadow(0 1px 2px #0005)}
.btn-live-cam .live-cam-dot{fill:#ff2d55;stroke:#fff;stroke-width:.9;animation:camDot 1.3s ease-in-out infinite}
.btn-live-cam:hover .live-cam{transform:scale(1.08);transition:transform .2s ease}
@media(prefers-reduced-motion:reduce){.btn-live-cam .live-cam-dot{animation:none}}

/* Option 3 — promotional slider. Any artwork works: a blurred copy fills the banner,
   the full piece floats uncropped as a poster, copy and call to action sit on the left. */
@keyframes promoKen{from{transform:scale(1.18)}to{transform:scale(1.28)}}
@keyframes promoProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hero-promo{position:relative;isolation:isolate;overflow:hidden;background:#030d20;color:#fff;border-radius:0 0 30px 30px;min-height:560px}
.promo-track{position:relative;min-height:inherit}
.promo-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s .9s}
.promo-slide.is-active{position:relative;opacity:1;visibility:visible;transition:opacity .9s ease;min-height:560px}
.promo-ambient{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(38px) saturate(1.5) brightness(.6);transform:scale(1.18)}
.promo-slide.is-active .promo-ambient{animation:promoKen 12s ease-out both}
.promo-slide:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#030d20f2 0,#030d20cc 32%,#030d2033 62%,#030d2000 80%),linear-gradient(0deg,#030d20d9 0,#030d2000 35%),linear-gradient(180deg,#020a1ae6 0,#020a1a00 180px)}
.promo-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:48px;min-height:560px;padding-top:60px;padding-bottom:64px}
.skin-vibrante.is-home .promo-layout{padding-top:140px}
.promo-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:30px;background:linear-gradient(90deg,#ff2d6f,#ff7a18);font:700 13px/1 RadioDisplay,sans-serif;letter-spacing:1.2px;text-transform:uppercase;box-shadow:0 8px 24px #ff2d6f55}
.promo-kicker .ri{width:16px;height:16px}
.promo-title{margin:18px 0 0;font:800 italic clamp(44px,5.4vw,84px)/.92 RadioDisplay,Impact,sans-serif;text-transform:uppercase;letter-spacing:-1px;text-wrap:balance;text-shadow:0 6px 30px #000a}
.promo-summary{margin:18px 0 0;max-width:470px;font-size:17px;line-height:1.5;color:#e6eefc}
.promo-cta{margin-top:28px;min-height:54px;padding:0 28px;border-radius:30px;font-size:16px;gap:10px;box-shadow:0 12px 34px #ffc4004d,inset 0 1px 0 #fff6;transition:transform .2s ease}
.promo-cta:hover{transform:translateY(-2px)}
.promo-cta .ri{width:18px;height:18px}
.promo-poster{justify-self:center;display:block;max-width:440px;width:100%;border-radius:22px;overflow:hidden;box-shadow:0 30px 70px #000b,0 0 0 1px #ffffff1f;transform:perspective(1200px) rotateY(-7deg) rotateZ(1.5deg);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.promo-poster:hover{transform:perspective(1200px) rotateY(0) rotateZ(0) scale(1.02)}
.promo-poster img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:#0006}
.promo-slide.is-active .promo-copy>*{animation:heroRise .8s cubic-bezier(.2,.7,.2,1) both}
.promo-slide.is-active .promo-copy>:nth-child(2){animation-delay:.1s}
.promo-slide.is-active .promo-copy>:nth-child(3){animation-delay:.18s}
.promo-slide.is-active .promo-copy>:nth-child(4){animation-delay:.26s}
.promo-slide.is-active .promo-poster{animation:heroFade 1s .15s ease both}
.promo-arrow{position:absolute;z-index:3;top:55%;width:54px;height:54px;margin-top:-27px;border-radius:50%;border:1px solid #ffffff40;background:#ffffff1a;color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(10px);transition:background .2s ease,transform .2s ease}
.promo-arrow:hover{background:#ffffff33;transform:scale(1.06)}
.promo-arrow:focus-visible,.promo-dots button:focus-visible{outline:3px solid #ffcf29;outline-offset:3px}
.promo-arrow .ri{width:24px;height:24px}
.promo-prev{left:22px}.promo-prev .ri{transform:scaleX(-1)}
.promo-next{right:22px}
.promo-dots{position:absolute;z-index:3;left:50%;bottom:24px;transform:translateX(-50%);display:flex;gap:10px}
.promo-dots button{width:34px;height:6px;padding:0;border:0;border-radius:6px;background:#ffffff40;cursor:pointer;overflow:hidden;position:relative}
.promo-dots button i{position:absolute;inset:0;background:#ffcf29;transform:scaleX(0);transform-origin:left}
.promo-dots button[aria-current=true]{width:54px;background:#ffffff59}
.promo-dots button[aria-current=true] i{transform:scaleX(1)}
.hero-promo.is-playing .promo-dots button[aria-current=true] i{animation:promoProgress var(--promo-delay,7s) linear both}
.hero-promo.is-paused .promo-dots button[aria-current=true] i{animation-play-state:paused}
@media(max-width:980px){
 .hero-promo,.promo-slide.is-active{min-height:0}
 .promo-layout{grid-template-columns:1fr;gap:26px;min-height:0;padding-top:28px;padding-bottom:70px}
 .skin-vibrante.is-home .promo-layout{padding-top:28px}
 .promo-poster{order:-1;max-width:300px;transform:none}
 .promo-copy{text-align:center}
 .promo-summary{margin-left:auto;margin-right:auto}
 .promo-title{font-size:clamp(36px,10vw,52px)}
 .promo-arrow{display:none}
 .promo-slide:before{background:linear-gradient(0deg,#030d20f2 0,#030d20b3 45%,#030d2066 100%)}
}
@media(prefers-reduced-motion:reduce){.promo-slide,.promo-slide *{animation:none!important;transition:none!important}}
@media(min-width:981px){.hero-promo .promo-layout{padding-left:90px;padding-right:90px}}
/* Clip instead of hide: the oversized ambient layer must never make the banner scrollable. */
.hero-promo,.promo-track,.promo-slide{overflow:clip}
/* No promotion yet: the station logo floats as the poster. */
@keyframes promoFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(2deg)}}
.promo-poster.poster-logo{max-width:320px;border-radius:28px;background:#ffffff0d;box-shadow:0 30px 80px #000b,0 0 0 1px #ffffff26,0 0 120px #ffcf2933;animation:promoFloat 6s ease-in-out infinite}
.promo-poster.poster-logo img{object-fit:contain;background:transparent}
.promo-slide.is-active .promo-poster.poster-logo{animation:promoFloat 6s ease-in-out infinite}
@media(max-width:980px){.promo-poster.poster-logo{max-width:200px}}
@media(prefers-reduced-motion:reduce){.promo-poster.poster-logo{animation:none}}
.promo-poster.poster-icon{max-width:300px;aspect-ratio:1;display:grid;place-items:center;border-radius:36px;background:radial-gradient(circle at 30% 25%,#ff7a18,#ff2d6f 55%,#9c18f9);box-shadow:0 30px 80px #000b,0 0 140px #ff2d6f55;animation:promoFloat 6s ease-in-out infinite}
.promo-gift .ri{width:150px;height:150px;color:#fff;stroke-width:1.4;filter:drop-shadow(0 10px 20px #0006)}
.hero-promo:has(.poster-icon) .promo-track{background:radial-gradient(circle at 75% 45%,#ff2d6f40,transparent 40%),radial-gradient(circle at 20% 80%,#9c18f933,transparent 40%)}
@media(max-width:980px){.promo-poster.poster-icon{max-width:180px}.promo-gift .ri{width:90px;height:90px}}

/* "Na Cidade" branches: coloured icon tiles, count below, horizontal scroll on small screens. */
.city-branches{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;margin:18px 0 22px}
.city-branches a{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px 14px;border-radius:16px;background:var(--surface,#fff);border:1px solid var(--line,#e3e9f2);color:var(--ink,#10213a);text-align:center;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.city-branches a:hover{transform:translateY(-3px);box-shadow:0 12px 26px #0b1f4014;border-color:color-mix(in srgb,var(--branch,#334155) 40%,transparent)}
.city-branch-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:15px;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--branch) 78%,#fff),var(--branch));box-shadow:0 8px 18px color-mix(in srgb,var(--branch) 35%,transparent)}
.city-branch-icon .ri{width:26px;height:26px}
.city-branch-name{font-weight:700;font-size:13px;line-height:1.2}
.city-branches small{font-size:11px;color:var(--muted,#6b7a90)}
.city-branches a.is-active{border-color:var(--branch,#334155);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand,#1559ff) 35%,transparent)}
.city-branches a.is-active .city-branch-name{color:var(--brand,#1559ff)}
.home-branches{grid-template-columns:repeat(9,minmax(0,1fr))}
@media(max-width:980px){.city-branches,.home-branches{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;margin-left:-4px;margin-right:-4px}.city-branches a{flex:0 0 108px;scroll-snap-align:start}}

/* Station logo, everywhere: the box hugs the artwork so the rounded corners land on the logo itself. */
.station-brand img,.footer-brand img,.player-brand img{width:auto!important;max-width:100%;object-fit:contain;border-radius:18%}
.program-mini>img,.mini-cover img,.player-cover img,.promo-poster.poster-logo,.promo-poster.poster-logo img{border-radius:22%}
.station-brand img{border-radius:16px}

/* "Na Cidade" company card and page. */
.company-card{position:relative;display:flex;flex-direction:column;background:var(--surface,#fff);border:1px solid var(--line,#e3e9f2);border-radius:18px;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}
.company-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #0b1f4018}
.company-card-cover{display:block;aspect-ratio:16/10;background:linear-gradient(135deg,color-mix(in srgb,var(--branch) 85%,#fff),var(--branch));overflow:hidden}
.company-card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.company-card:hover .company-card-cover img{transform:scale(1.05)}
.company-card-pattern{display:grid;place-items:center;height:100%;color:#ffffffd0;background-image:radial-gradient(circle at 20% 20%,#ffffff26 0 2px,transparent 3px);background-size:18px 18px}
.company-card-pattern .ri{width:46px;height:46px}
.company-card-logo{position:absolute;left:16px;top:calc(62.5% * 0.62);width:58px;height:58px;border-radius:18%;overflow:hidden;background:#fff;box-shadow:0 8px 20px #0b1f4026;border:3px solid #fff}
.company-card-cover+.company-card-logo{top:auto;margin-top:-34px;position:relative}
.company-card-logo img{width:100%;height:100%;object-fit:contain}
.company-card-logo span{display:grid;place-items:center;width:100%;height:100%;color:#fff;font:800 24px RadioDisplay,sans-serif;background:var(--branch)}
.company-card-copy{display:flex;flex-direction:column;gap:6px;padding:10px 16px 16px;flex:1}
.company-card-branch{align-self:flex-start;padding:3px 9px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--branch);background:color-mix(in srgb,var(--branch) 12%,transparent)}
.company-card h3{margin:2px 0 0;font-size:17px;line-height:1.25}
.company-card h3 a{color:var(--ink,#10213a);text-decoration:none}
.company-card p{margin:0;font-size:13px;line-height:1.45;color:var(--muted,#6b7a90);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.company-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px}
.company-whatsapp{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:20px;background:#e7f8ee;color:#128c4a;font-size:12px;font-weight:700;text-decoration:none}
.company-whatsapp .ri{width:15px;height:15px}
.company-card-place{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted,#6b7a90)}
.company-card-place .ri{width:13px;height:13px}
.business-grid:has(.company-card),.publication-grid:has(.company-card){display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.company-muted{color:var(--muted,#6b7a90)}
/* Card without cover photo: the company logo is the hero, over a blurred wash of its own colours. */
.company-card-cover.is-brand{position:relative;display:grid;place-items:center;isolation:isolate;background:linear-gradient(135deg,color-mix(in srgb,var(--branch) 30%,#fff),color-mix(in srgb,var(--branch) 12%,#fff))}
.company-card-backdrop{position:absolute;inset:-30%;z-index:-1;width:160%!important;height:160%!important;object-fit:cover;filter:blur(32px) saturate(1.6);opacity:.55}
.company-card-hero-logo{width:56%!important;height:auto!important;max-height:78%;aspect-ratio:1;object-fit:contain;border-radius:20%;background:#fff;box-shadow:0 14px 34px #0b1f402e;transition:transform .4s ease}
.company-card:hover .company-card-hero-logo{transform:scale(1.05)}
.company-card:hover .company-card-cover.is-brand img.company-card-backdrop{transform:none}
.company-card-initial{display:grid;place-items:center;width:92px;height:92px;border-radius:22%;background:var(--branch);color:#fff;font:800 46px RadioDisplay,sans-serif;box-shadow:0 14px 30px color-mix(in srgb,var(--branch) 45%,transparent)}
.company-card-cover.is-brand+.company-card-copy{padding-top:14px}
.company-card-logo.is-branch{display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--branch) 78%,#fff),var(--branch));border-color:#fff}
.company-card-logo.is-branch .ri{width:28px;height:28px}
.company-card-cover.is-brand+.company-card-logo{margin-top:-34px}
/* Logo as large as the area allows: almost the full height, never cropped. */
.company-card-cover.is-brand .company-card-hero-logo{width:auto!important;height:86%!important;max-height:none;max-width:88%;aspect-ratio:auto;border-radius:16%}
/* News page: image first, then title and text (portal style). */
.article-cover-top{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:18px;margin:14px 0 22px;box-shadow:0 14px 34px #0b1f4014}
.radio-article .article-cover-top+.section-kicker{margin-top:0}
.radio-article .article-cover-top{object-position:center}
.company-card-cover.is-brand .company-card-hero-logo{position:absolute;inset:7% 0;margin:auto;height:86%!important;width:auto!important;max-width:88%}
.company-card:hover .company-card-cover.is-brand .company-card-hero-logo{transform:scale(1.04)}

/* Compact company card (concept): picture, WhatsApp square on its corner, name and branch. */
.company-card.is-compact{border-radius:14px;box-shadow:0 4px 14px #0b1f400d}
.company-card.is-compact:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0b1f4018}
.company-card-media{position:relative;display:grid;place-items:center;aspect-ratio:16/9;overflow:hidden;isolation:isolate;background:linear-gradient(135deg,color-mix(in srgb,var(--branch) 25%,#fff),color-mix(in srgb,var(--branch) 10%,#fff))}
.company-card-media>img:not(.company-card-backdrop):not(.company-card-logo-fill){width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.company-card.is-compact:hover .company-card-media>img:not(.company-card-backdrop):not(.company-card-logo-fill){transform:scale(1.05)}
.company-card-media .company-card-backdrop{position:absolute;inset:-30%;z-index:-1;width:160%;height:160%;object-fit:cover;filter:blur(30px) saturate(1.6);opacity:.55}
.company-card-logo-fill{position:absolute;inset:8% 0;margin:auto;height:84%;width:auto;max-width:86%;object-fit:contain;border-radius:14%;background:#fff;box-shadow:0 10px 26px #0b1f402e;transition:transform .35s ease}
.company-card.is-compact:hover .company-card-logo-fill{transform:scale(1.04)}
.company-card-media .company-card-initial{width:64px;height:64px;font-size:32px;border-radius:20%}
.company-card-whatsapp{position:absolute;right:10px;top:calc((100% - 0px) * 0);display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#16a34a;color:#fff;box-shadow:0 6px 16px #16a34a59;transition:transform .2s ease,background .2s ease;z-index:2}
.company-card.is-compact .company-card-whatsapp{top:auto;margin-top:-22px;align-self:flex-end;margin-right:10px;position:relative;right:auto}
.company-card-whatsapp:hover{transform:scale(1.08);background:#15803d}
.company-card-whatsapp .ri{width:22px;height:22px}
.company-card.is-compact .company-card-copy{padding:8px 12px 12px;gap:2px}
.company-card.is-compact .company-card-whatsapp+.company-card-copy{margin-top:-16px}
.company-card.is-compact h3{margin:0;font-size:14.5px;line-height:1.25;padding-right:44px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.company-card.is-compact .company-card-branch{align-self:flex-start;padding:0;background:none;text-transform:none;letter-spacing:0;font-size:12px;font-weight:500;color:var(--muted,#6b7a90)}
.business-grid:has(.company-card.is-compact),.publication-grid:has(.company-card.is-compact){grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}

/* News pictures are squares: the lead story is a square card and the list uses square thumbnails. */
.home-news .first-card{aspect-ratio:1/1;min-height:0}
.home-news .first-card>.card-cover img,.home-news .card-cover img{width:100%;height:100%;object-fit:cover}
.home-news .publication-card:not(.first-card) .card-cover{width:72px;height:72px;aspect-ratio:1;border-radius:10px}
.publication-grid .publication-card.type-news .card-cover{aspect-ratio:1/1}
/* Discreet source credit under portal news. */
.source-credit{margin:22px 0 0;font-size:12px;color:var(--muted,#6b7a90)}
.source-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.source-credit a:hover{color:var(--brand,#1559ff)}
.source-credit .ri{width:11px;height:11px;margin-left:3px;vertical-align:-1px}

/* Home news: lead story = square picture on top, headline below on a clean card; list = square thumb, headline, time. */
.home-news{align-items:start;gap:18px}
.home-news .first-card{aspect-ratio:auto;min-height:0;display:flex;flex-direction:column;background:var(--surface,#fff);border:1px solid var(--line,#e3e9f2);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0b1f400f;transition:transform .25s ease,box-shadow .25s ease}
.home-news .first-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px #0b1f401a}
.home-news .first-card>.card-cover{height:auto;aspect-ratio:1/1;border-radius:0}
.home-news .first-card>.card-cover:after{display:none}
.home-news .first-card .card-copy{position:static;color:var(--ink,#10213a);padding:14px 16px 16px;pointer-events:auto}
.home-news .first-card h3{font-size:17px;line-height:1.3;margin:0}
.home-news .first-card h3 a{color:inherit}
.home-news .first-card time{display:block;margin-top:8px;font-size:12px;color:var(--muted,#6b7a90)}
.home-news .card-source{display:none}
.home-news .publication-card:not(.first-card){gap:14px;padding:0 0 14px;border-bottom:1px solid var(--line,#e3e9f2)}
.home-news .publication-card:not(.first-card):last-child{border-bottom:0;padding-bottom:0}
.home-news .publication-card:not(.first-card) .card-cover{width:84px;height:84px;border-radius:12px}
.home-news .publication-card:not(.first-card) h3{font-size:14px;line-height:1.35;font-weight:700;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.home-news .publication-card:not(.first-card) time{font-size:12px;margin-top:6px;color:var(--muted,#6b7a90)}
@media(max-width:760px){.home-news{grid-template-columns:1fr}.home-news .first-card{grid-row:auto}}
.home-news .publication-card:not(.first-card) .card-cover{width:64px;height:64px;border-radius:10px}
.home-news .publication-card:not(.first-card){gap:12px}
.home-news h3,.home-news h3 a{overflow-wrap:normal;word-break:normal;hyphens:manual}
.home-news .publication-card:not(.first-card) h3{font-size:13.5px}
.home-news .publication-card:not(.first-card) .card-copy{min-width:0;flex:1}

/* Option 4 — news spotlight: lead story with its picture and headline, glass list with three more. */
.hero-newsdesk{position:relative;isolation:isolate;overflow:clip;background:#030d20;color:#fff;border-radius:0 0 30px 30px}
.newsdesk-ambient{position:absolute;z-index:-2;inset:-60px;width:calc(100% + 120px);height:calc(100% + 120px);object-fit:cover;filter:blur(46px) saturate(1.4) brightness(.45)}
.hero-newsdesk:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#020a1ae6 0,#020a1a80 160px,#030d2000 260px),radial-gradient(ellipse at 80% 100%,#030d20 0,transparent 60%)}
.newsdesk-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:26px;align-items:stretch;padding-top:40px;padding-bottom:44px}
.skin-vibrante.is-home .newsdesk-layout{padding-top:140px}
.newsdesk-lead{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-radius:22px;overflow:hidden;background:#ffffff0d;border:1px solid #ffffff1f;text-decoration:none;color:#fff;box-shadow:0 30px 60px #0008;transition:transform .3s ease,box-shadow .3s ease;animation:heroRise .8s cubic-bezier(.2,.7,.2,1) both}
.newsdesk-lead:hover{transform:translateY(-3px);box-shadow:0 36px 70px #000a}
.newsdesk-lead-media{display:block;aspect-ratio:1/1;overflow:hidden;background:#0b2246}
.newsdesk-lead-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.newsdesk-lead:hover .newsdesk-lead-media img{transform:scale(1.04)}
.newsdesk-lead-fallback{display:grid;place-items:center;height:100%;color:#ffffff59}
.newsdesk-lead-fallback .ri{width:72px;height:72px}
.newsdesk-lead-copy{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:30px 30px 30px 32px;background:linear-gradient(160deg,#0b244dcc,#030c20f0)}
.newsdesk-tags{display:flex;align-items:center;gap:12px;font-size:12px;color:#c9d7ee}
.newsdesk-tag{display:inline-flex;padding:6px 12px;border-radius:20px;background:linear-gradient(90deg,#ff2d55,#e0115f);color:#fff;font:700 12px/1 RadioDisplay,sans-serif;letter-spacing:1.2px;text-transform:uppercase}
.newsdesk-lead h1{margin:0;font:800 clamp(26px,2.5vw,38px)/1.08 RadioDisplay,Impact,sans-serif;letter-spacing:-.2px;text-wrap:balance}
.newsdesk-lead p{margin:0;color:#d5e1f5;font-size:15px;line-height:1.5}
.newsdesk-read{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:4px;padding:11px 18px;border-radius:30px;background:var(--yellow,#ffc400);color:#10213a;font-weight:800;font-size:14px}
.newsdesk-read .ri{width:16px;height:16px}
.newsdesk-list{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:22px;background:linear-gradient(160deg,#0b244dd0,#030c20e6);border:1px solid #ffffff1f;backdrop-filter:blur(14px);box-shadow:0 24px 50px #0008;animation:heroRise .9s .15s cubic-bezier(.2,.7,.2,1) both}
.newsdesk-list h2{margin:0 0 6px;font:700 14px RadioDisplay,sans-serif;letter-spacing:.8px;text-transform:uppercase;color:#fff}
.newsdesk-item{display:flex;gap:14px;align-items:flex-start;padding:12px 8px;border-radius:14px;color:#fff;text-decoration:none;transition:background .2s ease}
.newsdesk-item+.newsdesk-item{border-top:1px solid #ffffff14}
.newsdesk-item:hover{background:#ffffff12}
.newsdesk-thumb{flex:0 0 76px;width:76px;height:76px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:#ffffff14;color:#ffffff80}
.newsdesk-thumb img{width:100%;height:100%;object-fit:cover}
.newsdesk-item strong{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:1.35}
.newsdesk-item time{display:block;margin-top:6px;font-size:12px;color:#9fb3d3}
.newsdesk-all{display:inline-flex;align-items:center;gap:6px;align-self:flex-end;margin-top:auto;padding-top:8px;color:#ffcf29;font-weight:700;font-size:13px;text-decoration:none}
.newsdesk-all .ri{width:15px;height:15px}
.hero-newsdesk.is-empty .newsdesk-layout{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);align-items:center;min-height:420px}
.newsdesk-empty h1{margin:16px 0 10px;font:800 italic clamp(44px,5vw,76px)/.95 RadioDisplay,Impact,sans-serif;text-transform:uppercase}
.newsdesk-empty p{max-width:460px;color:#d5e1f5;font-size:17px;line-height:1.5;margin:0 0 24px}
.newsdesk-empty-logo{justify-self:center;width:min(300px,100%);aspect-ratio:1;border-radius:22%;overflow:hidden;background:#fff;box-shadow:0 30px 80px #000b;animation:promoFloat 6s ease-in-out infinite}
.newsdesk-empty-logo img{width:100%;height:100%;object-fit:contain}
@media(max-width:1180px){.newsdesk-lead{grid-template-columns:1fr}.newsdesk-lead-media{aspect-ratio:16/10}}
@media(max-width:980px){
 .newsdesk-layout,.hero-newsdesk.is-empty .newsdesk-layout{grid-template-columns:1fr;padding-top:24px;padding-bottom:40px;gap:18px}
 .skin-vibrante.is-home .newsdesk-layout{padding-top:24px}
 .newsdesk-lead-media{aspect-ratio:1/1}
 .newsdesk-lead-copy{padding:20px}
 .newsdesk-empty-logo{width:180px;order:-1}
}
@media(prefers-reduced-motion:reduce){.newsdesk-lead,.newsdesk-list,.newsdesk-empty-logo{animation:none}}

/* News slider: same engine as promotions; square news photo, red kicker and time. */
.hero-news-slider .news-slide-tags{display:flex;align-items:center;gap:12px;color:#c9d7ee;font-size:13px}
.hero-news-slider .news-kicker{background:linear-gradient(90deg,#ff2d55,#e0115f);box-shadow:0 8px 24px #ff2d5555}
.hero-news-slider .news-slide-title{font-style:normal;text-transform:none;font-size:clamp(34px,3.6vw,56px);line-height:1.04;letter-spacing:-.3px}
.hero-news-slider .news-poster{transform:none;border-radius:22px}
.hero-news-slider .news-poster:hover{transform:scale(1.02)}
.hero-news-slider .news-poster img{object-fit:cover}
.news-poster-fallback{display:grid;place-items:center;aspect-ratio:1;background:linear-gradient(145deg,#0b2a5a,#06142e);color:#ffffff59}
.news-poster-fallback .ri{width:90px;height:90px}

/* News slider in the "Clube FM" spirit: sharp photo on the right two thirds fading into the dark,
   clean copy on the left, yellow outline arrows and dash indicators. */
.hero-news-slider,.hero-news-slider .promo-slide.is-active{min-height:600px}
.hero-news-slider .promo-ambient{left:auto;right:0;width:68%;filter:none;transform:none;object-fit:cover;object-position:center;
 -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.hero-news-slider .promo-slide.is-active .promo-ambient{animation:newsZoom 9s ease-out both}
@keyframes newsZoom{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero-news-slider .promo-slide:before{background:linear-gradient(90deg,#030d20 0,#030d20f2 30%,#030d2099 52%,#030d2026 75%,#030d2000 100%),linear-gradient(0deg,#030d20cc 0,#030d2000 40%),linear-gradient(180deg,#020a1ae6 0,#020a1a00 190px)}
.hero-news-slider .promo-layout{grid-template-columns:minmax(0,560px) 1fr;padding-bottom:150px}
.hero-news-slider .news-poster{display:none}
.hero-news-slider .news-slide-tags{gap:14px}
.news-kicker{position:relative;padding-bottom:10px;color:#ffcf29;font:700 14px/1 RadioDisplay,sans-serif;letter-spacing:1px;text-transform:uppercase}
.news-kicker:after{content:'';position:absolute;left:0;bottom:0;width:28px;height:2px;background:#ffcf29}
.hero-news-slider .news-slide-tags time{padding-bottom:10px;font-size:13px;color:#c9d7ee}
.hero-news-slider .news-slide-title{margin-top:20px;font:700 clamp(36px,3.8vw,58px)/1.08 RadioDisplay,sans-serif;letter-spacing:-.4px;text-wrap:balance;text-shadow:0 4px 30px #000c}
.hero-news-slider .promo-summary{color:#e3ebf8}
.hero-news-slider .promo-cta{min-height:46px;padding:0 34px;border-radius:30px;font-size:14px;letter-spacing:.6px;text-transform:uppercase}
.news-controls{position:absolute;z-index:3;left:0;right:0;bottom:44px;display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.skin-vibrante.is-home .news-controls{padding-left:clamp(16px,4vw,32px)}
.news-arrow{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:2px solid #ffcf29;background:#030d2059;color:#ffcf29;cursor:pointer;transition:background .2s ease,color .2s ease}
.news-arrow:hover{background:#ffcf29;color:#10213a}
.news-arrow .ri{width:20px;height:20px}
.news-arrow:focus-visible{outline:3px solid #fff;outline-offset:3px}
.hero-news-slider .news-dots{position:static;transform:none;flex-basis:100%;gap:8px}
.hero-news-slider .news-dots button{width:34px;height:3px;border-radius:2px;background:#ffffff59}
.hero-news-slider .news-dots button[aria-current=true]{width:34px}
.hero-news-slider .news-dots button i{background:#ffcf29}
@media(max-width:980px){
 .hero-news-slider,.hero-news-slider .promo-slide.is-active{min-height:0}
 .hero-news-slider .promo-ambient{position:relative;display:block;width:100%;height:auto;aspect-ratio:1/1;-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent);mask-image:linear-gradient(180deg,#000 60%,transparent)}
 .hero-news-slider .promo-slide{display:flex;flex-direction:column}
 .hero-news-slider .promo-layout{margin-top:-90px;position:relative;padding-top:0;padding-bottom:120px}
 .hero-news-slider .promo-copy{text-align:left}
 .hero-news-slider .promo-slide:before{background:linear-gradient(180deg,#030d2000 30%,#030d20 62%)}
 .news-controls{bottom:30px}
}
/* Follow the site pattern: photo on the left fading into the dark, copy and controls on the right. */
.hero-news-slider .news-kicker{background:none;box-shadow:none;border-radius:0;padding:0 0 10px}
.hero-news-slider .promo-ambient{left:0;right:auto;-webkit-mask-image:linear-gradient(270deg,transparent 0,#000 38%);mask-image:linear-gradient(270deg,transparent 0,#000 38%)}
.hero-news-slider .promo-slide:before{background:linear-gradient(270deg,#030d20 0,#030d20f2 30%,#030d2099 52%,#030d2026 75%,#030d2000 100%),linear-gradient(0deg,#030d20cc 0,#030d2000 40%),linear-gradient(180deg,#020a1ae6 0,#020a1a00 190px)}
.hero-news-slider .promo-layout{grid-template-columns:1fr minmax(0,560px)}
.hero-news-slider .promo-copy{grid-column:2}
@media(min-width:981px){.news-controls{justify-content:flex-end}.news-controls .news-dots{justify-content:flex-start;flex:0 0 560px;margin-left:auto}.news-controls{padding-left:0;padding-right:clamp(16px,4vw,32px)}.news-controls .news-arrow:first-child{margin-left:calc(100% - 560px)}}
@media(max-width:980px){.hero-news-slider .promo-copy{grid-column:1}}
@media(min-width:981px){
 .hero-news-slider .news-controls{justify-content:flex-start;padding-right:clamp(16px,4vw,32px)}
 .hero-news-slider .news-controls .news-arrow:first-child{margin-left:calc(100% - 560px)}
 .hero-news-slider .news-controls .news-dots{flex:0 0 100%;margin-left:0;padding-left:calc(100% - 560px)}
}
@media(min-width:981px){.hero-news-slider .news-controls{padding-right:90px}}
@media(max-width:980px){
 .hero-news-slider .promo-ambient{-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent);width:100%}
 .hero-news-slider .promo-slide:before{background:linear-gradient(180deg,#030d2000 25%,#030d20 60%)}
 .hero-news-slider .promo-layout{grid-template-columns:1fr}
 .hero-news-slider .news-controls{padding-right:16px;padding-left:16px}
 .hero-news-slider .news-controls .news-arrow:first-child{margin-left:0}
 .hero-news-slider .news-controls .news-dots{padding-left:0}
}

/* "Tudo da rádio": news/podcast slides use the sharp photo; promotion/event slides keep the whole artwork as a poster. */
.hero-content-slider .promo-slide.is-poster .promo-ambient{left:0;width:100%;filter:blur(40px) saturate(1.5) brightness(.5);transform:scale(1.15);-webkit-mask-image:none;mask-image:none}
.hero-content-slider .promo-slide.is-poster.is-active .promo-ambient{animation:none}
.content-poster{grid-column:1;justify-self:center;align-self:center;display:block;width:min(400px,100%);aspect-ratio:1;border-radius:22px;overflow:hidden;background:#0006;box-shadow:0 30px 70px #000b,0 0 0 1px #ffffff1f;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.content-poster:hover{transform:scale(1.02)}
.content-poster img{width:100%;height:100%;object-fit:contain}
.hero-content-slider .promo-slide.is-active .content-poster{animation:heroFade .9s .1s ease both}
.hero-content-slider .content-events .news-kicker,.hero-content-slider .content-promotions .news-kicker{color:#ff8fb1}
.hero-content-slider .content-events .news-kicker:after,.hero-content-slider .content-promotions .news-kicker:after{background:#ff8fb1}
@media(max-width:980px){
 .hero-content-slider .promo-slide.is-poster .promo-ambient{position:absolute;height:100%;aspect-ratio:auto}
 .hero-content-slider .promo-slide.is-poster .promo-layout{margin-top:0;padding-top:24px}
 .content-poster{grid-column:1;width:min(280px,80%)}
}

/* One fixed height for every slide: pictures and text adapt to the hero, never the other way round. */
.hero-promo{min-height:0}
.hero-promo .promo-track{position:relative;height:var(--slider-height,var(--hero-banner-height,620px));min-height:0}
.hero-promo .promo-slide,.hero-promo .promo-slide.is-active{position:absolute;inset:0;min-height:0;overflow:hidden}
.hero-promo .promo-layout{height:100%;min-height:0;box-sizing:border-box;overflow:hidden}
.hero-promo .promo-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hero-promo .promo-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hero-promo .promo-ambient{height:100%}
.hero-promo .content-poster,.hero-promo .promo-poster{max-height:calc(var(--slider-height,620px) - 220px);width:auto;aspect-ratio:1}
@media(max-width:980px){
 .hero-promo{--slider-height:calc(72vw + 330px)}
 .hero-promo .promo-slide{display:block}
 .hero-promo .promo-ambient,.hero-news-slider .promo-ambient{position:absolute;top:0;left:0;right:0;width:100%;height:72vw;aspect-ratio:auto;object-fit:cover}
 .hero-content-slider .promo-slide.is-poster .promo-ambient{height:100%}
 .hero-promo .promo-layout,.hero-news-slider .promo-layout{position:absolute;left:0;right:0;bottom:0;top:calc(72vw - 70px);margin:0;padding:0 16px 96px;display:flex;flex-direction:column;justify-content:flex-start}
 .hero-content-slider .promo-slide.is-poster .promo-layout{top:0;padding-top:20px}
 .hero-content-slider .content-poster{max-height:none;width:min(52vw,220px);margin:0 auto 14px}
 .hero-promo .promo-title{-webkit-line-clamp:3}
 .hero-promo .news-controls{bottom:22px}
}

/* Guide advertisers keep the Na Cidade composition even in a mixed home carousel. */
@media(min-width:981px){
 .hero-news-slider .is-guide-ad .promo-layout{grid-template-columns:minmax(0,1fr) auto;gap:48px}
 .hero-news-slider .is-guide-ad .promo-copy{grid-column:1;grid-row:1}
 .hero-news-slider .is-guide-ad .content-poster{grid-column:2;grid-row:1;justify-self:end}
 /* Match the shared right-hand controls, including advertiser-only carousels. */
 .hero-news-slider.is-guide-slider .news-controls{justify-content:flex-start}
 .hero-news-slider.is-guide-slider .news-controls .news-arrow:first-child{margin-left:calc(100% - 560px)}
 .hero-news-slider.is-guide-slider .news-controls .news-dots{flex:0 0 100%;margin-left:0;padding-left:calc(100% - 560px)}
}

/* Advertiser slides: main call to action plus WhatsApp; green kicker marks paid placements. */
.slide-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px}
.slide-actions .promo-cta{margin-top:0}
.slide-whatsapp{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 22px;border-radius:30px;border:2px solid #25d366;background:#25d3661f;color:#fff;font-weight:700;font-size:14px;text-decoration:none;transition:background .2s ease}
.slide-whatsapp:hover{background:#25d366}
.slide-whatsapp .ri{width:18px;height:18px}
.hero-content-slider .content-advertisers .news-kicker{color:#5fe39a}
.hero-content-slider .content-advertisers .news-kicker:after{background:#5fe39a}
.hero-content-slider .content-advertisers .content-poster img{background:#fff}
@media(max-width:980px){.slide-actions{margin-top:20px;gap:10px}.slide-whatsapp{min-height:44px;padding:0 16px}}
/* Últimas notícias: manchete em destaque + lista lateral, largura total */
.news-showcase-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:28px;align-items:stretch}
.news-lead{position:relative;border-radius:14px;overflow:hidden;background:#0b1f40;min-height:420px}
.news-lead>a{position:absolute;inset:0;display:block;color:#fff}
.news-lead img,.news-lead .cover-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.news-lead .cover-fallback{display:grid;place-items:center;color:#ffffff66}
.news-lead>a:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 35%,#000000d9 100%)}
.news-lead>a:hover img{transform:scale(1.03)}
.news-lead-copy{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:32px}
.news-lead h3{margin:0;font-size:clamp(22px,2.4vw,32px);line-height:1.18;font-weight:700;color:#fff;text-wrap:balance}
.news-lead time{display:block;margin-top:12px;font-size:13px;color:#ffffffc7}
.news-tag{display:inline-block;margin-bottom:14px;padding:6px 14px;border-radius:99px;background:var(--yellow);color:#10213a;font-size:12px;font-weight:700;text-transform:uppercase}
.news-side{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.news-side li{flex:1;border-bottom:1px solid var(--line,#e3e9f2)}
.news-side li:last-child{border-bottom:0}
.news-side a{display:flex;gap:16px;align-items:center;height:100%;padding:12px 0;color:var(--ink,#10213a)}
.news-side li:first-child a{padding-top:0}.news-side li:last-child a{padding-bottom:0}
.news-thumb{flex:0 0 132px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--page,#f3f6fb);display:grid;place-items:center;color:var(--muted,#6b7a90)}
.news-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.news-side a:hover img{transform:scale(1.05)}
.news-side a:hover strong{color:var(--blue)}
.news-side-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.news-kicker{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--blue)}
.news-side strong{font-size:16px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;transition:color .2s}
.news-side time{font-size:12px;color:var(--muted,#6b7a90)}
.news-showcase+.editorial-columns{margin-top:32px}
@media(max-width:980px){.news-showcase-grid{grid-template-columns:1fr}.news-lead{min-height:0;aspect-ratio:16/10}.news-thumb{flex-basis:112px}}
@media(max-width:760px){.news-lead{aspect-ratio:4/3}.news-lead-copy{padding:18px}.news-lead h3{font-size:21px}.news-thumb{flex-basis:96px}.news-side strong{font-size:14.5px}.editorial-columns{flex-direction:column}}
/* Card flutuante "Tocando agora": capa da música, foto do locutor (INFO) ou arte do comercial */
.now-card{position:fixed;z-index:49;right:28px;bottom:calc(108px + env(safe-area-inset-bottom));width:172px;background:var(--surface,#fff);border-radius:18px;box-shadow:0 18px 44px #03142d40;overflow:hidden;transition:opacity .25s,transform .25s}
.now-card.is-hidden{opacity:0;transform:translateY(12px);pointer-events:none}
.now-card-close{position:absolute;z-index:3;top:8px;left:50%;translate:-50% 0;width:26px;height:26px;border:0;border-radius:99px;background:#0009;color:#fff;display:grid;place-items:center;opacity:0;transition:opacity .2s;cursor:pointer}
.now-card:hover .now-card-close,.now-card-close:focus-visible{opacity:1}
.now-card-close .ri{width:14px;height:14px}
.now-card-cover{position:relative;aspect-ratio:1;background:var(--deep,#03142d)}
.now-card-cover img{width:100%;height:100%;object-fit:cover;display:block}
.now-card-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 45%,#000000c7 100%);pointer-events:none}
.now-card-copy{position:absolute;z-index:1;left:12px;right:12px;bottom:10px;display:flex;flex-direction:column;color:#fff;text-transform:uppercase;line-height:1.15}
.now-card-copy span{margin-top:2px;font-size:10px;font-weight:600;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.now-card-copy strong{font:700 14px/1.1 RadioDisplay,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.now-card-votes{position:absolute;z-index:2;top:8px;left:8px;right:8px;display:flex;justify-content:space-between}
.now-card-votes button,.player-votes button{width:28px;height:28px;border:0;border-radius:99px;display:grid;place-items:center;cursor:pointer;background:#ffffffe6;transition:transform .15s,background .2s}
.now-card-votes button:not(:disabled):hover,.player-votes button:not(:disabled):hover{transform:scale(1.08)}
.now-card-votes button:disabled,.player-votes button:disabled{cursor:default}.now-card-votes button:disabled:not([aria-pressed="true"]),.player-votes button:disabled:not([aria-pressed="true"]){opacity:.45}
.now-card-votes .ri,.player-votes .ri{width:15px;height:15px}
[data-vote="like"]{color:#14a44d}[data-vote="dislike"]{color:#e0343f}
[data-vote="like"][aria-pressed="true"]{background:#14a44d;color:#fff}[data-vote="dislike"][aria-pressed="true"]{background:#e0343f;color:#fff}
.now-card-foot{display:flex;align-items:center;gap:10px;padding:12px 14px 14px}
.now-card-play{flex:0 0 42px;height:42px;border:0;border-radius:99px;background:var(--blue,#075cfa);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 4px color-mix(in srgb,var(--blue,#075cfa) 18%,transparent);cursor:pointer}
.now-card-play .ri{width:18px;height:18px}
.now-card-foot div{min-width:0;display:flex;flex-direction:column}
.now-card-live{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;text-transform:uppercase;color:#e0343f}
.now-card-live:before{content:"";width:7px;height:7px;border-radius:99px;background:currentColor;animation:now-live 1.6s infinite}
.now-card-foot strong{font:700 15px/1.2 RadioDisplay,sans-serif;color:var(--blue,#075cfa);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes now-live{50%{opacity:.35}}
.player-votes{display:flex;gap:6px;flex:0 0 auto}
.player-votes[hidden],.now-card-votes[hidden]{display:none}
.player-votes button{width:30px;height:30px;background:#ffffff1f}
.player-votes [data-vote="like"]{color:#4ade80}.player-votes [data-vote="dislike"]{color:#ff6b74}
@media(max-width:980px){.now-card{display:none}}
@media(prefers-reduced-motion:reduce){.now-card-live:before{animation:none}}
.player-cover{cursor:pointer}
[data-track-cover]{transition:opacity .35s ease}[data-track-cover].cover-fading{opacity:0}
/* Player de baixo: os votos acompanham o nome da música; nomes longos encolhem com reticências até o limite */
.player-track{max-width:380px}
.player-track>div:not(.player-cover):not(.player-votes){flex:0 1 auto;min-width:0}
.player-votes{flex:0 0 auto}
/* Botão play no mesmo padrão do card; anel girando enquanto toca */
.persistent-player .main-play,.now-card-play{position:relative;isolation:isolate;background:var(--blue,#075cfa);border:0;box-shadow:0 0 0 5px color-mix(in srgb,var(--blue,#075cfa) 18%,transparent),0 8px 22px color-mix(in srgb,var(--blue,#075cfa) 35%,transparent);transition:transform .2s ease}
.main-play:hover,.now-card-play:hover{transform:scale(1.05)}
.persistent-player .main-play:before,.now-card-play:before{content:"";position:absolute;inset:-5px;z-index:-1;border-radius:50%;background:conic-gradient(from 0deg,#ffffff00 0 60%,#ffffff40 85%,#ffffff00 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1.5px));opacity:0;transition:opacity .6s}
.now-card-play:before{background:conic-gradient(from 0deg,transparent 0 60%,color-mix(in srgb,var(--blue,#075cfa) 45%,transparent) 85%,transparent 100%)}
/* Movimento discreto, como um disco girando devagar: uma volta a cada 6 s */
body.is-playing .main-play:before,body.is-playing .now-card-play:before{opacity:1;animation:play-ring 6s linear infinite}
@keyframes play-ring{to{transform:rotate(1turn)}}
@media(prefers-reduced-motion:reduce){body.is-playing .main-play:before,body.is-playing .now-card-play:before{animation:none}}
/* Shared header: every page starts below the utility bar, behind the floating logo and menu. */
.radio-site:not(.is-home) [data-header-spacer]{display:none}
@media(max-width:980px){.is-home [data-header-spacer]{display:none}}
@media(max-width:760px){.is-home .hero-news-slider .promo-title{font-size:clamp(28px,7.5vw,32px);-webkit-line-clamp:4}}
@media(min-width:981px){
 [data-header-spacer]{display:none}
 .skin-vibrante:not(.is-home):not(.header-stuck) .header-inner:before{content:'';position:absolute;top:0;left:-32px;width:calc(50% + 50vw + 32px);height:74px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,#030d20 202px);clip-path:inset(0)}
 .skin-vibrante:not(.is-home) main>.page-masthead:first-child{padding-top:150px}
 .skin-vibrante:not(.is-home) main>.article-layout:first-child{padding-top:150px}
 .skin-vibrante:not(.is-home) main>.company-page-hero:first-child,.skin-vibrante:not(.is-home) main>.promo-hero:first-child{padding-top:150px}
}

/* Menu fixo ao rolar (computador): barra compacta com logo pequena, no mesmo azul do cabeçalho */
@media(min-width:981px){
 body.header-stuck.radio-site .radio-header{position:fixed;top:0;left:0;right:0;z-index:60;padding:0;background:#030d20eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 28px #00000040;animation:header-drop .35s cubic-bezier(.2,.7,.2,1)}
 body.header-stuck .header-inner{align-items:center;min-height:64px}
 body.header-stuck .header-inner:before{display:none}
 body.header-stuck .station-brand{margin-top:0;height:52px;align-self:center}
 body.header-stuck .station-brand img{height:48px;max-height:48px;width:auto;filter:none}
 body.header-stuck .radio-nav{margin-top:0}
 body.header-stuck .radio-nav:before{display:none}
 body.header-stuck:not(.is-home):not(.skin-vibrante) [data-header-spacer]{display:block}
}
@keyframes header-drop{from{transform:translateY(-100%)}}
@media(prefers-reduced-motion:reduce){body.header-stuck .radio-header{animation:none}}
