.news-section{background:#0e1014;border-bottom:1px solid rgba(255,255,255,.06);padding:54px 0}.news-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;align-items:stretch}.news-intro{padding:20px 0}.news-intro .eyebrow{margin-bottom:15px}.news-intro h2{font:600 30px/1.12 Cinzel,serif;margin:0}.news-intro h2 em{color:var(--gold);font-style:normal;font-weight:500}.news-intro>p:not(.eyebrow){color:#96989d;line-height:1.65;font-size:12px;margin:14px 0 24px}.news-controls{display:flex;align-items:center;gap:10px;color:#a3a39f;font:600 11px "Barlow Condensed",sans-serif;letter-spacing:.1em}.news-controls button{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--line);color:var(--gold-pale);background:transparent;font-size:17px;cursor:pointer;transition:.2s}.news-controls button:hover{border-color:var(--gold);background:rgba(211,165,79,.1)}.news-carousel{min-width:0;position:relative;overflow:hidden;border:1px solid var(--line);height:268px}.news-track{height:100%;display:flex;transition:transform .65s cubic-bezier(.23,.82,.33,1)}.news-slide{flex:0 0 100%;height:100%;background-size:cover;background-position:center;position:relative}.news-copy{padding:40px 45px;max-width:495px}.news-copy>span{display:block;color:var(--gold-pale);text-transform:uppercase;font:600 10px "Barlow Condensed",sans-serif;letter-spacing:.15em;margin-bottom:10px}.news-copy h3{font:600 30px/1.1 Cinzel,serif;margin:0}.news-copy h3 em{font-style:normal;color:var(--gold)}.news-copy p{max-width:405px;font-size:12px;line-height:1.65;color:#c5c3bd;margin:14px 0 19px}.news-copy a{color:var(--gold-pale);text-decoration:none;text-transform:uppercase;font:600 11px "Barlow Condensed",sans-serif;letter-spacing:.12em}.news-copy a b{font-size:16px;padding-left:7px}.news-dots{position:absolute;right:19px;bottom:18px;display:flex;gap:7px}.news-dots button{width:24px;height:2px;padding:0;border:0;background:rgba(238,230,211,.35);cursor:pointer}.news-dots button.is-active{background:var(--gold);width:38px}@media(max-width:820px){.news-layout{grid-template-columns:1fr;gap:7px}.news-intro{padding:0}.news-intro>p:not(.eyebrow){max-width:480px}.news-carousel{height:285px}}@media(max-width:540px){.news-section{padding:40px 0}.news-carousel{height:320px}.news-copy{padding:36px 25px}.news-copy h3{font-size:27px}.news-copy p{max-width:295px}}

/* Arte do banner em camada própria: dá para aproximar devagar sem mexer no texto. */
.news-slide{overflow:hidden}
.news-slide-art{position:absolute;inset:0;z-index:0;background-size:cover;background-repeat:no-repeat;transform:scale(1.01);transform-origin:70% 50%}
.news-slide.is-active .news-slide-art{animation:newsArtZoom 12s ease-out forwards}
@keyframes newsArtZoom{from{transform:scale(1.01)}to{transform:scale(1.07)}}
.news-slide-veil{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(7,9,12,.96) 2%,rgba(7,9,12,.78) 35%,rgba(7,9,12,.05) 80%);pointer-events:none}
.news-slide::before{z-index:1}
.news-copy{position:relative;z-index:2}

/* Banner de boss: próxima aparição e quanto falta, tirados da agenda do Guia. */
.news-timer{position:absolute;z-index:2;top:18px;right:19px;margin:0;padding:7px 12px;border:1px solid rgba(211,165,79,.35);background:rgba(7,9,12,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:var(--gold-pale);font:600 11px "Barlow Condensed",sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.news-timer[hidden]{display:none}
/* Celular: selo menor no topo, e o texto desse banner desce para não encostar nele. */
@media(max-width:540px){.news-timer{top:14px;right:14px;padding:5px 9px;font-size:10px;letter-spacing:.08em}.news-slide:has(.news-timer) .news-copy{padding-top:56px}}
.news-timer.is-live{color:#9fe0a6;border-color:rgba(113,188,119,.45);text-shadow:0 0 10px rgba(113,188,119,.5)}
.news-timer.is-live::before{content:"";display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#71bc77;box-shadow:0 0 8px rgba(113,188,119,.9);vertical-align:1px}

/* Bolinha ativa enche no tempo do banner e para junto quando o carrossel pausa. */
.news-dots button{position:relative;overflow:hidden}
.news-dots button.is-active{background:rgba(211,165,79,.3)}
.news-dots button.is-active::after{content:"";position:absolute;inset:0;background:var(--gold);transform-origin:left center;animation:newsProgress var(--news-ms,7s) linear forwards}
.news-carousel.is-paused .news-dots button.is-active::after{animation-play-state:paused}
@keyframes newsProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}

@media(prefers-reduced-motion:reduce){html:not(.force-motion) .news-slide.is-active .news-slide-art{animation:none}}

/* Texto grande não passa do banner: título em até 2 linhas e descrição em até 3,
   cortados com "…". O botão fica sempre dentro, no mesmo lugar em todos os banners. */
.news-copy h3,.news-copy > p{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.news-copy h3{-webkit-line-clamp:2;line-clamp:2}
.news-copy > p{-webkit-line-clamp:3;line-clamp:3}
