:root{
  --paper:#efe6d7;
  --paper2:#e7dcc9;
  --ink:#2a1e18;
  --muted:#6b5b53;
  --accent:#8b1e1e;
  --accent2:#a83a2a;
}

body{
  color:var(--ink);
  background:#1b1411;
}

.site-header .navbar{
  background:rgba(18,12,10,.75);
  backdrop-filter: blur(8px);
}
.navbar .nav-link, .navbar .navbar-brand{ color:#f4eadc; }
.navbar .nav-link:hover{ color:#fff; }

.brand-mark{
  width:34px;height:34px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.25);
  border-radius:10px;color:#fff;
}
.brand-text{ font-weight:700; letter-spacing:.3px; }

.btn-cta{
  background: linear-gradient(180deg, var(--accent2), var(--accent));
  color:#fff; border:0; border-radius:12px; padding:.7rem 1rem;
}
.btn-cta:hover{ filter: brightness(1.05); color:#fff; }
.btn-outline-cta{
  border:1px solid rgba(255,255,255,.6);
  color:#fff; border-radius:12px; padding:.7rem 1rem;
}
.section{ padding: 64px 0; }

.section-paper{
  background: linear-gradient(180deg, var(--paper), var(--paper2));
}

.section-title h2{ font-weight:800; letter-spacing:.2px; }
.section-title p{ color:var(--muted); max-width: 820px; }

.hero{
  position:relative;
  min-height: 72vh;
  display:flex;
  align-items:flex-end;
  padding: 80px 0 60px;
  overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.70) 80%),
    url("../img/hero/hero.jpg") center/cover no-repeat;
  transform: scale(1.02);
}
.hero-content{ position:relative; z-index:2; }
.hero-title{ color:#f7eee1; font-weight:900; font-size: clamp(2.2rem, 4vw, 3.6rem); margin:0; }
.hero-city{ opacity:.95; }
.hero-subtitle{ color:#f1e6d7; font-size:1.05rem; max-width: 560px; margin-top:10px; }
.hero-meta{
  display:flex; flex-wrap:wrap; gap:12px;
  color:#f1e6d7; margin-top:14px;
}
.badge-free{
  background: rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  padding:.25rem .6rem; border-radius:999px;
}
.hero-actions{ display:flex; gap:12px; margin-top:18px; flex-wrap:wrap; }
.hero-note{ color:#dbcdbf; margin-top:14px; max-width: 720px; }

.info-card{
  background: rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  padding:18px;
  height:100%;
}
.info-icon{
  width:44px;height:44px;border-radius:12px;
  display:grid;place-items:center;
  background: rgba(139,30,30,.12);
  color: var(--accent);
  margin-bottom:10px;
  font-size:1.3rem;
}
.info-card h3{ font-size:1.05rem; font-weight:800; margin:0 0 6px; }
.info-card p{ margin:0; color:var(--muted); }

.paper-box{
  background: rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  padding:18px;
  height:100%;
}
.paper-box-head{
  background: rgba(139,30,30,.12);
  color: var(--accent);
  font-weight:800;
  border-radius:14px;
  padding:10px 12px;
  margin-bottom:12px;
}

.schedule{ list-style:none; padding:0; margin:0; }
.schedule li{ padding:8px 0; border-bottom:1px solid rgba(0,0,0,.06); }
.schedule li:last-child{ border-bottom:0; }

.cast-card{
  background: rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  overflow:hidden;
}
.cast-photo{ height:150px; background:center/cover no-repeat; }
.cast-name{ padding:10px 12px; font-weight:800; text-align:center; }

.gallery-item{ display:block; border-radius:14px; overflow:hidden; }
.gallery-thumb{ aspect-ratio: 4/3; background:center/cover no-repeat; filter: contrast(1.02); }

.section-sponsors{
  background: linear-gradient(180deg, #2a1b16 0%, #1b1411 100%);
  color:#f4eadc;
}
.section-sponsors .section-title p{ color:#d7c8b9; }

.sponsor-grid{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:14px;
}
.sponsor-card{
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:88px;
}
.sponsor-card img{
  max-width: 100%;
  max-height: 60px;
  object-fit: contain;
  filter: brightness(1.05);
}
@media (max-width: 991px){
  .sponsor-grid{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575px){
  .sponsor-grid{ grid-template-columns: repeat(2, 1fr); }
}

.contact-mini{ background: linear-gradient(180deg, var(--paper), var(--paper2)); }
.contact-box{
  background: rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  padding:18px;
}

.social{ font-size:1.3rem; color:var(--ink); opacity:.8; }
.social:hover{ opacity:1; }

.site-footer{
  background:#120c0a;
  color:#e8dccb;
}
.footer-link{ color:#e8dccb; opacity:.8; text-decoration:none; }
.footer-link:hover{ opacity:1; }


/* =========================
   Marca do evento no header
   ========================= */
.brand-event{
  text-decoration:none;
  min-width: 0;
}

.brand-logo{
  width: 46px;
  height: 46px;
  object-fit: contain;
  object-position: center;
  display:block;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  padding: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
  flex-shrink: 0;
}

.brand-text-wrap{
  display:flex;
  flex-direction:column;
  line-height:1.05;
  min-width: 0;
}

.brand-text{
  font-weight: 800;
  letter-spacing: .2px;
  color:#f4eadc;
  font-size: 1.05rem;
}

.brand-subtext{
  color:#cdbba8;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .3px;
  margin-top: 2px;
}

.navbar-brand:hover .brand-logo{
  transform: translateY(-1px);
  transition: transform .16s ease, box-shadow .16s ease;
  box-shadow: 0 12px 26px rgba(0,0,0,.22);
}

.navbar-brand:hover .brand-text{
  color:#fff;
}

@media (max-width: 767px){
  .brand-logo{
    width: 42px;
    height: 42px;
  }

  .brand-text{
    font-size: 1rem;
  }

  .brand-subtext{
    display:none;
  }
}


/*PATROCINADORES*/

.sponsor-group-head{
  display:flex;
  align-items:center;
  gap:14px;
  justify-content:center;
}
.sponsor-group-title{
  margin:0;
  font-weight:900;
  letter-spacing:.2px;
  color:#f4eadc;
  font-size:1.15rem;
  text-transform: uppercase;
}
.sponsor-group-line{
  height:1px;
  flex:1;
  max-width: 420px;
  background: rgba(244,234,220,.25);
}
@media (max-width: 575px){
  .sponsor-group-head{ flex-direction:column; }
  .sponsor-group-line{ max-width: 220px; }
}


/*NOTÍCIAS*/

.news-card{
  display:block;
  text-decoration:none;
  color:inherit;
  background: rgba(255,255,255,.55);
  border:1px solid rgba(0,0,0,.06);
  border-radius:16px;
  overflow:hidden;
  height:100%;
  transition: transform .12s ease, filter .12s ease;
}
.news-card:hover{ transform: translateY(-2px); filter: brightness(1.01); }
.news-thumb{ aspect-ratio: 16/9; background:center/cover no-repeat; }
.news-body{ padding:14px; }
.news-date{ font-size:.85rem; color: var(--muted); margin-bottom:6px; }
.news-title{ font-size:1.05rem; font-weight:900; margin:0 0 8px; }
.news-text{ margin:0 0 10px; color: var(--muted); }
.news-link{ color: var(--accent); font-weight:800; }


/*ANIMAÇÕES*/

html { scroll-behavior: smooth; }
.navbar .nav-link.active{
  color:#fff !important;
  opacity:1;
  text-decoration: underline;
  text-underline-offset: 6px;
}

.site-header .navbar{
  transition: background .2s ease, box-shadow .2s ease;
}
.site-header.scrolled .navbar{
  background: rgba(18,12,10,.92);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

.reveal{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .55s ease, transform .55s ease;
}
.reveal.is-visible{
  opacity:1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

#scrollProgress{
  position:fixed; top:0; left:0; height:3px; width:0;
  background: linear-gradient(90deg, var(--accent2), var(--accent));
  z-index:9999;
}
#toTop{
  position:fixed; right:16px; bottom:16px; z-index:9999;
  opacity:0; transform: translateY(8px);
  pointer-events:none;
  transition: opacity .2s ease, transform .2s ease;
}
#toTop.show{
  opacity:1; transform: translateY(0);
  pointer-events:auto;
}


/*CONTADOR DATA*/
.countdown-wrap{ margin-top: 16px; }
.countdown-label{ color:#f1e6d7; opacity:.9; font-weight:700; margin-bottom:8px; }
.countdown{
  display:flex; gap:10px; flex-wrap:wrap;
}
.cd-box{
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 14px;
  padding: 10px 12px;
  min-width: 92px;
  text-align:center;
  backdrop-filter: blur(6px);
}
.cd-num{
  display:block;
  font-weight:900;
  font-size: 1.35rem;
  color:#fff;
  line-height:1.1;
}
.cd-txt{
  display:block;
  font-size:.82rem;
  color:#dbcdbf;
  margin-top:2px;
}
.countdown-note{ display:block; margin-top:8px; color:#dbcdbf; }



/*animações hover*/

/* =========================
   Hovers modernos (sutil)
   ========================= */
:root{
  --lift: translateY(-3px);
  --shadow-soft: 0 14px 34px rgba(0,0,0,.14);
  --shadow-dark: 0 18px 50px rgba(0,0,0,.30);
}

/* Evita animação para quem prefere reduzir movimento */
@media (prefers-reduced-motion: reduce){
  *{ transition: none !important; animation: none !important; }
}

/* Links da navbar */
.navbar .nav-link{
  position: relative;
  transition: opacity .18s ease, color .18s ease;
  opacity: .88;
}
.navbar .nav-link:hover{ opacity: 1; color:#fff; }
.navbar .nav-link::after{
  content:"";
  position:absolute; left: 10px; right: 10px; bottom: 6px;
  height: 2px;
  background: rgba(255,255,255,.85);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .18s ease;
  border-radius: 999px;
}
.navbar .nav-link:hover::after{ transform: scaleX(1); }

/* Botões (cta e outline) */
.btn-cta, .btn-outline-cta{
  transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
  will-change: transform;
}
.btn-cta:hover{
  transform: var(--lift);
  box-shadow: var(--shadow-dark);
  filter: brightness(1.04);
}
.btn-outline-cta:hover{
  transform: var(--lift);
  box-shadow: var(--shadow-dark);
  filter: brightness(1.03);
}

/* Cards comuns (Sobre/Programação/FAQ etc.) */
.info-card, .paper-box, .cast-card, .news-card{
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease, border-color .16s ease;
  will-change: transform;
}
.info-card:hover, .paper-box:hover, .cast-card:hover, .news-card:hover{
  transform: var(--lift);
  box-shadow: var(--shadow-soft);
  filter: brightness(1.01);
  border-color: rgba(0,0,0,.10);
}

/* Ícone dos cards (Sobre) ganha leve destaque */
.info-card .info-icon{
  transition: transform .16s ease, background .16s ease;
}
.info-card:hover .info-icon{
  transform: translateY(-2px) scale(1.03);
  background: rgba(139,30,30,.16);
}

/* Elenco: zoom suave na foto */
.cast-photo{
  transition: transform .35s ease;
}
.cast-card:hover .cast-photo{
  transform: scale(1.04);
}

/* Galeria: efeito "glass" + zoom */
.gallery-item{
  position: relative;
  transition: transform .16s ease, box-shadow .16s ease;
  will-change: transform;
}
.gallery-item:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-soft);
}
.gallery-thumb{
  transition: transform .35s ease, filter .35s ease;
}
.gallery-item:hover .gallery-thumb{
  transform: scale(1.05);
  filter: contrast(1.06) saturate(1.06);
}

/* Patrocinadores: card ilumina e logo "respira" */
.sponsor-card{
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
  will-change: transform;
}
.sponsor-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 40px rgba(0,0,0,.35);
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.18);
}
.sponsor-card img{
  transition: transform .16s ease, filter .16s ease, opacity .16s ease;
}
.sponsor-card:hover img{
  transform: scale(1.02);
  filter: brightness(1.10);
  opacity: 1;
}

/* Notícia: seta "anda" no hover */
.news-link i{
  transition: transform .16s ease;
}
.news-card:hover .news-link i{
  transform: translateX(3px);
}

/* Melhor foco por teclado (acessibilidade) */
:focus-visible{
  outline: 3px solid rgba(168,58,42,.55);
  outline-offset: 3px;
  border-radius: 10px;
}


/* =========================
   Glow premium (borda luminosa)
   ========================= */

/* Base para elementos com glow */
.glow{
  position: relative;
  z-index: 1;
}

/* camada glow */
.glow::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: inherit;
  background: linear-gradient(120deg,
      rgba(168,58,42,0.0),
      rgba(168,58,42,0.6),
      rgba(168,58,42,0.0)
  );
  opacity:0;
  transition: opacity .25s ease;
  z-index:-1;
  filter: blur(6px);
}

/* ativação do glow */
.glow:hover::before{
  opacity:1;
}

/* =========================================
   Glow específico para botão CTA
   ========================================= */
.btn-cta.glow{
  box-shadow: 0 0 0 rgba(168,58,42,0);
  transition: box-shadow .25s ease, transform .18s ease;
}
.btn-cta.glow:hover{
  box-shadow: 0 10px 40px rgba(168,58,42,.45);
}

/* =========================================
   Glow patrocinadores (mais discreto)
   ========================================= */
.sponsor-card.glow:hover{
  box-shadow: 0 10px 35px rgba(255,255,255,.18),
              0 0 0 1px rgba(255,255,255,.15) inset;
}

/* =========================================
   Glow outline buttons
   ========================================= */
.btn-outline-cta.glow:hover{
  box-shadow: 0 8px 30px rgba(255,255,255,.25);
}

/* =========================================
   Respeita acessibilidade
   ========================================= */
@media (prefers-reduced-motion: reduce){
  .glow::before{
    display:none;
  }
}

/* títulos em fundo escuro */
.section:not(.section-paper) .section-title h2{
  color:#fff;
}

.section:not(.section-paper) .section-title p{
  color:#dbcdbf;
}

/* =========================
   Lightbox da galeria
   ========================= */
.lb-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.88);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  z-index: 99999;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
}

.lb-overlay.show{
  opacity: 1;
  pointer-events: auto;
}

.lb-image{
  max-width: min(1200px, 92vw);
  max-height: 86vh;
  border-radius: 16px;
  box-shadow: 0 18px 60px rgba(0,0,0,.5);
  display: block;
}

.lb-nav,
.lb-close{
  position: absolute;
  border: 0;
  background: rgba(255,255,255,.12);
  color: #fff;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(6px);
  z-index: 100000;
}

.lb-prev{
  left: 18px;
  top: 50%;
  transform: translateY(-50%);
}

.lb-next{
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
}

.lb-close{
  top: 18px;
  right: 18px;
  font-size: 1.8rem;
}

.lb-nav:hover,
.lb-close:hover{
  background: rgba(255,255,255,.18);
}

@media (max-width: 767px){
  .lb-nav,
  .lb-close{
    width: 40px;
    height: 40px;
  }
}


/* =========================
   Galeria histórica - modo premium
   ========================= */
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:16px;
}

.gallery-grid-full{
  grid-template-columns: repeat(4, 1fr);
}

.gallery-item{
  position:relative;
  display:block;
  border-radius:18px;
  overflow:hidden;
  background: rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
  will-change: transform;
}

.gallery-item:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 38px rgba(0,0,0,.22);
  border-color: rgba(255,255,255,.12);
  filter: brightness(1.01);
}

.gallery-thumb{
  width:100%;
  aspect-ratio: 4 / 3;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  transition: transform .35s ease, filter .35s ease;
}

.gallery-item:hover .gallery-thumb{
  transform: scale(1.045);
  filter: contrast(1.04) saturate(1.04);
}

/* badge do ano */
.gallery-badge{
  position:absolute;
  left:12px;
  bottom:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:58px;
  padding:.36rem .65rem;
  border-radius:999px;
  background: rgba(18,12,10,.72);
  color:#fff;
  border:1px solid rgba(255,255,255,.14);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.2px;
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 18px rgba(0,0,0,.20);
}

/* timeline */
.gallery-timeline-wrap{
  background: rgba(255,255,255,.42);
  border:1px solid rgba(0,0,0,.06);
  border-radius:20px;
  padding:16px;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

.gallery-timeline{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.timeline-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  padding:.62rem .9rem;
  border-radius:999px;
  text-decoration:none;
  color:var(--ink);
  background: rgba(255,255,255,.74);
  border:1px solid rgba(0,0,0,.08);
  font-weight:800;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease;
}

.timeline-chip:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.08);
  color: var(--accent);
}

.timeline-chip.active{
  background: linear-gradient(180deg, var(--accent2), var(--accent));
  color:#fff;
  border-color: transparent;
  box-shadow: 0 12px 28px rgba(139,30,30,.24);
}

.gallery-year-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.gallery-year-head h3{
  margin:0;
  font-weight:900;
  letter-spacing:.2px;
}

.gallery-year-head span{
  color:var(--muted);
  font-size:.95rem;
  font-weight:600;
}

/* leve diferenciação visual da home */
.gallery-item-home{
  border-radius:20px;
}

/* responsivo */
@media (max-width: 991px){
  .gallery-grid-full{
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px){
  .gallery-grid,
  .gallery-grid-full{
    grid-template-columns: repeat(2, 1fr);
    gap:12px;
  }

  .gallery-year-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .gallery-item,
  .gallery-item-home{
    border-radius:16px;
  }
}

@media (max-width: 480px){
  .gallery-badge{
    left:10px;
    bottom:10px;
    min-width:52px;
    padding:.3rem .55rem;
    font-size:.74rem;
  }
}


/* =========================
   Elenco & Equipe
   ========================= */
/* personagem */
.cast-character{
font-weight:900;
font-size:1.05rem;
margin-bottom:4px;
color:#1b120d;
}

/* ator/atriz */
.cast-actor{
font-weight:700;
font-size:.95rem;
color:#7a3a2f;
margin-bottom:2px;
}

/* função */
.cast-role{
font-size:.85rem;
color:var(--muted);
}

.cast-character{
  font-weight:900;
  font-size:1.05rem;
  margin-bottom:4px;
  color:#1b120d;
}

.cast-actor{
  font-weight:700;
  font-size:.95rem;
  color:#7a3a2f;
  margin-bottom:2px;
}

.cast-role{
  font-size:.85rem;
  color:var(--muted);
}

/* =========================
   Elenco & Equipe - blocos separados
   ========================= */
.cast-card{
  display:block;
  text-decoration:none;
  color:inherit;
  border-radius: 22px;
  overflow: hidden;
  background: #3b140e;
  box-shadow: 0 18px 40px rgba(0,0,0,.16);
  transition: transform .22s ease, box-shadow .22s ease;
}

.cast-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 56px rgba(0,0,0,.24);
}

.cast-card-link{
  display:block;
}

/* bloco superior: função */
.cast-role-box{
  background: #4a1b14;
  padding: 14px 16px;
  text-align: center;
}

.cast-role{
  display:block;
  color:#f5ece2;
  font-size: .9rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .8px;
  line-height: 1.25;
  margin:0;
  padding:0;
  border:0;
  background:none;
}

/* bloco da imagem */
.cast-photo{
  position: relative;
  height: 320px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  transition: transform .35s ease, filter .35s ease;
}

.cast-photo::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg,
    rgba(12,8,7,.14) 0%,
    rgba(12,8,7,.08) 35%,
    rgba(12,8,7,.18) 70%,
    rgba(12,8,7,.28) 100%);
}

.cast-card:hover .cast-photo{
  transform: scale(1.03);
  filter: contrast(1.04) saturate(1.04);
}

/* bloco personagem */
.cast-character-box{
  background: #4a140e;
  padding: 16px 14px 10px;
  text-align:center;
}

.cast-character{
  color:#fff;
  font-weight: 900;
  font-size: 18px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .8px;
  margin:0;
}

/* bloco ator */
.cast-actor-box{
  background: #7a4331;
  padding: 14px 14px 18px;
  text-align:center;
}

.cast-actor{
  color:#ead7c6;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.25;
  margin:0;
}

/* página completa */
.cast-card-page .cast-photo{
  height: 360px;
}

/* títulos das categorias */
.cast-group-head h3{
  margin:0;
  font-weight:900;
  letter-spacing:.2px;
}

/* limpa estilos antigos que não serão usados */
.cast-body,
.cast-inner,
.cast-tag{
  display:none !important;
}

/* responsivo */
@media (max-width: 991px){
  .cast-photo{
    height: 280px;
  }

  .cast-card-page .cast-photo{
    height: 300px;
  }

  .cast-character{
    font-size: 1.55rem;
  }
}

@media (max-width: 767px){
  .cast-role-box{
    padding: 12px 10px;
  }

  .cast-role{
    font-size: .76rem;
  }

  .cast-photo{
    height: 220px;
  }

  .cast-card-page .cast-photo{
    height: 240px;
  }

  .cast-character-box{
    padding: 14px 10px 8px;
  }

  .cast-character{
    font-size: 1.2rem;
  }

  .cast-actor-box{
    padding: 12px 10px 14px;
  }

  .cast-actor{
    font-size: .9rem;
  }
}


/* =========================
   Página de notícia
   ========================= */
.news-hero{
  position:relative;
  min-height: 52vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#140d0a;
}

.news-hero-bg{
  position:absolute;
  inset:0;
  background:center/cover no-repeat;
}

.news-hero-bg::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(7,5,4,.55) 0%, rgba(7,5,4,.35) 28%, rgba(7,5,4,.72) 100%);
}

.news-hero-content{
  position:relative;
  z-index:2;
  padding-top:120px;
  padding-bottom:44px;
}

.news-breadcrumb .breadcrumb-item,
.news-breadcrumb .breadcrumb-item a{
  color:#e6d8c9;
}

.news-breadcrumb .breadcrumb-item.active{
  color:#fff;
}

.news-meta-top{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin-bottom:16px;
}

.news-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.38rem .7rem;
  border-radius:999px;
  background: rgba(255,255,255,.14);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.5px;
  border:1px solid rgba(255,255,255,.14);
}

.news-meta-inline{
  color:#f1e6d7;
  font-size:.92rem;
}

.news-hero-title{
  color:#fff;
  font-weight:900;
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height:1.04;
  max-width:900px;
  margin:0 0 14px;
}

.news-hero-summary{
  color:#e7d8c6;
  font-size:1.08rem;
  line-height:1.7;
  max-width:860px;
  margin:0;
}

.news-page .row{
  align-items:flex-start;
}

.news-article{
  background: rgba(255,255,255,.5);
  border:1px solid rgba(0,0,0,.06);
  border-radius:22px;
  padding:22px;
}

.news-share-top{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:18px;
  flex-wrap:wrap;
}

.news-share-label{
  color:var(--muted);
  font-weight:700;
}

.share-btn{
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  text-decoration:none;
  color:var(--ink);
  background: rgba(255,255,255,.7);
  border:1px solid rgba(0,0,0,.08);
  transition: transform .16s ease, box-shadow .16s ease;
}

.share-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(0,0,0,.08);
}

.news-content{
  font-size:1.05rem;
  line-height:1.85;
  color:#2d231d;
}

.news-content p{
  margin:0 0 1.2rem;
}

.news-content h2,
.news-content h3{
  margin:2rem 0 1rem;
  font-weight:900;
  color:#1a120e;
}

.news-content blockquote{
  margin:1.6rem 0;
  padding:1rem 1.2rem;
  border-left:4px solid var(--accent);
  background: rgba(255,255,255,.45);
  border-radius:12px;
  color:#3b2d25;
}

.news-bottom-actions{
  margin-top:24px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.news-sidebar{
  position:sticky;
  top:96px;
}

.news-sidebar-box{
  background: rgba(255,255,255,.5);
  border:1px solid rgba(0,0,0,.06);
  border-radius:20px;
  padding:18px;
  margin-bottom:18px;
}

.news-sidebar-box h3{
  margin:0 0 12px;
  font-size:1.05rem;
  font-weight:900;
}

.news-info-list{
  list-style:none;
  padding:0;
  margin:0;
}

.news-info-list li{
  padding:8px 0;
  border-bottom:1px solid rgba(0,0,0,.06);
}

.news-info-list li:last-child{
  border-bottom:0;
}

.related-news-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.related-news-item{
  display:block;
  text-decoration:none;
  padding:12px 14px;
  background: rgba(255,255,255,.58);
  border:1px solid rgba(0,0,0,.06);
  border-radius:14px;
  transition: transform .16s ease, box-shadow .16s ease;
}

.related-news-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 20px rgba(0,0,0,.06);
}

.related-news-title{
  color:#231813;
  font-weight:800;
  line-height:1.35;
  margin-bottom:4px;
}

.related-news-date{
  color:var(--muted);
  font-size:.88rem;
}

@media (max-width: 991px){
  .news-sidebar{
    position:static;
  }
}

@media (max-width: 767px){
  .news-hero-content{
    padding-top:96px;
    padding-bottom:30px;
  }

  .news-article,
  .news-sidebar-box{
    border-radius:16px;
    padding:16px;
  }

  .news-content{
    font-size:1rem;
    line-height:1.75;
  }
}