/* ==========================================================================
   site.css — componentes do site público (cores remapeadas para a paleta Cinemas Premier)
   Preto Cinema + Marrom Noturno + Ouro Envelhecido + luz quente + vidro fumê.
   Usa somente design tokens (tokens.css + Aparência). Mobile first.
   ========================================================================== */
:root {
  --link: color-mix(in srgb, var(--accent) 82%, var(--text));
  --overlay: rgba(12, 9, 7, .72);
  --gold: var(--primary);
  --champagne: var(--accent);
  --line: color-mix(in srgb, var(--accent) 16%, transparent);
  --line-strong: color-mix(in srgb, var(--accent) 34%, transparent);
  /* Vidro fumê Sunset */
  --glass-bg: color-mix(in srgb, var(--surface) 72%, transparent);
  --glass-bg-strong: color-mix(in srgb, var(--surface) 88%, transparent);
  --glass-border: 1px solid var(--line);
  --glass-blur: saturate(1.15) blur(14px);
  --glass-shadow: 0 18px 40px -18px rgba(0,0,0,.75), 0 2px 0 0 rgba(255,255,255,.02) inset;
  --glow: 0 0 0 1px color-mix(in srgb, var(--primary) 28%, transparent), 0 14px 38px -14px color-mix(in srgb, var(--primary) 40%, transparent);
  --metal: linear-gradient(180deg, color-mix(in srgb, var(--primary) 82%, #fff 18%) 0%, var(--primary) 46%, color-mix(in srgb, var(--primary) 70%, #000 30%) 100%);
  --horizon: linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 45%, transparent) 50%, transparent);
  --ease: cubic-bezier(.2,.7,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; background: var(--background); }
body.site {
  margin: 0; font-family: var(--font-sans); font-size: 15px; line-height: 1.6; color: var(--text); overflow-x: clip; -webkit-font-smoothing: antialiased;
  background:
    radial-gradient(1100px 520px at 50% -180px, color-mix(in srgb, var(--primary) 16%, transparent), transparent 70%),
    radial-gradient(700px 480px at 100% 38%, color-mix(in srgb, var(--secondary) 55%, transparent), transparent 70%),
    radial-gradient(640px 520px at 0% 78%, color-mix(in srgb, var(--secondary) 45%, transparent), transparent 70%),
    var(--background);
  background-attachment: fixed;
}
@media (max-width: 767px) { body.site { background-attachment: scroll; } }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; }
button, input, select, textarea { font: inherit; }
a { color: var(--link); text-underline-offset: 3px; }
::selection { background: color-mix(in srgb, var(--primary) 55%, transparent); color: var(--text); }
:focus-visible { outline: 1.5px solid var(--accent); outline-offset: 3px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -48px; z-index: 3000; background: var(--primary); color: var(--primary-contrast); padding: 10px 14px; border-radius: var(--radius); text-decoration: none; font-weight: 700; }
.skip-link:focus { top: 12px; }
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

/* ── Botões ────────────────────────────────────────────────────────── */
.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 46px; padding: 0 22px;
  border-radius: var(--radius); border: 1px solid transparent; font-family: var(--font-sans); font-weight: 600; font-size: 12.5px; line-height: 1;
  letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; white-space: nowrap; isolation: isolate;
  transition: background .22s var(--ease), border-color .22s var(--ease), color .22s var(--ease), box-shadow .22s var(--ease), transform .18s var(--ease);
}
.btn i { font-size: 13px; letter-spacing: 0; }
.btn:active { transform: translateY(1px); }
.btn-primary {
  background: var(--metal); color: var(--primary-contrast); border-color: color-mix(in srgb, var(--accent) 40%, var(--primary));
  box-shadow: 0 1px 0 rgba(255,255,255,.28) inset, 0 10px 24px -14px color-mix(in srgb, var(--primary) 70%, transparent);
}
.btn-primary:hover { color: var(--primary-contrast); filter: brightness(1.06); box-shadow: 0 1px 0 rgba(255,255,255,.35) inset, 0 14px 30px -12px color-mix(in srgb, var(--primary) 75%, transparent); transform: translateY(-1px); }
.btn-secondary { background: var(--glass-bg-strong); color: var(--text); border-color: var(--line-strong); }
.btn-secondary:hover { border-color: color-mix(in srgb, var(--accent) 60%, transparent); color: var(--accent); }
.btn-ghost { background: transparent; color: var(--text); border-color: var(--line); }
.btn-ghost:hover { border-color: color-mix(in srgb, var(--accent) 55%, transparent); color: var(--accent); background: color-mix(in srgb, var(--accent) 5%, transparent); }
.btn-accent { background: var(--accent); color: var(--accent-contrast); }
.btn-sm { min-height: 38px; padding: 0 14px; font-size: 11px; letter-spacing: .1em; }
.btn-block { width: 100%; }
.btn-icon, .menu-btn { display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 1px solid var(--line); background: var(--glass-bg); color: var(--text); cursor: pointer; font-size: 16px; flex-shrink: 0; transition: border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); }
.btn-icon:hover, .menu-btn:hover { border-color: var(--line-strong); color: var(--accent); }

/* ── Selos ─────────────────────────────────────────────────────────── */
.chip {
  display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 3px; font-size: 10px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; line-height: 1.5; white-space: nowrap; color: var(--text-muted); background: transparent; border: 1px solid var(--line);
}
.chip--dub, .chip--leg { color: var(--text); border-color: var(--line-strong); }
.chip--3d { color: var(--primary-contrast); background: var(--accent); border-color: var(--accent); }
.chip--vip { color: var(--accent); border-color: color-mix(in srgb, var(--primary) 70%, transparent); background: color-mix(in srgb, var(--primary) 12%, transparent); }
.rating { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 5px; border-radius: 4px; font-size: 11px; font-weight: 700; color: #fff; background: #5F5445; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.rating--L { background: #2E9E50; } .rating--10 { background: #2A7FC4; } .rating--12 { background: #D9A21B; color: #1A120D; }
.rating--14 { background: #D8692A; } .rating--16 { background: #C8352F; } .rating--18 { background: #0E0C0B; box-shadow: 0 0 0 1px rgba(255,255,255,.25); }

/* ── Header ─────────────────────────────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 1000; background: linear-gradient(180deg, rgba(12, 9, 7,.78), rgba(12, 9, 7,0));
  border-bottom: 1px solid transparent; transition: background .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header.is-scrolled {
  background: color-mix(in srgb, var(--background) 72%, transparent);
  -webkit-backdrop-filter: saturate(1.2) blur(16px); backdrop-filter: saturate(1.2) blur(16px);
  border-bottom-color: var(--line); box-shadow: 0 18px 40px -30px rgba(0,0,0,.9);
}
.site-header__bar { display: flex; align-items: center; gap: 14px; min-height: var(--header-h); }
.site-logo { display: flex; align-items: center; text-decoration: none; color: var(--text); flex-shrink: 0; min-width: 0; padding-block: 8px; }
.site-logo img { height: var(--logo-h-mobile, 36px); width: auto; max-width: 170px; object-fit: contain; display: block; }
.logo-nome { font-weight: 700; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 58vw; }
.site-nav { display: none; }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.site-nav a, .nav-dd > button {
  position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 12px 10px; color: var(--text-muted); text-decoration: none; white-space: nowrap;
  font-weight: 500; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; background: none; border: 0; cursor: pointer; transition: color .2s var(--ease);
}
.site-nav a::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 4px; height: 1px; background: var(--horizon); opacity: 0; transform: scaleX(.4); transition: opacity .25s var(--ease), transform .25s var(--ease); }
.site-nav a:hover, .nav-dd > button:hover, .nav-dd.open > button { color: var(--text); }
.site-nav a:hover::after { opacity: .6; transform: scaleX(1); }
.site-nav a[aria-current="page"] { color: var(--accent); }
.site-nav a[aria-current="page"]::after { opacity: 1; transform: scaleX(1); background: linear-gradient(90deg, transparent, var(--primary), transparent); }
.nav-dd { position: relative; }
.nav-dd__menu {
  position: absolute; top: calc(100% + 8px); right: 0; min-width: 230px; padding: 8px; display: none; flex-direction: column;
  background: var(--glass-bg-strong); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: var(--glass-border); border-radius: var(--radius-lg); box-shadow: var(--glass-shadow);
}
.nav-dd.open .nav-dd__menu, .nav-dd:focus-within .nav-dd__menu { display: flex; animation: fadeUp .2s var(--ease); }
.nav-dd__menu a { width: 100%; padding: 11px 12px; letter-spacing: .08em; font-size: 12px; text-transform: none; border-radius: var(--radius-sm); }
.nav-dd__menu a::after { display: none; }
.nav-dd__menu a:hover { background: color-mix(in srgb, var(--accent) 6%, transparent); color: var(--accent); }
.site-header__actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.unit-picker { position: relative; display: flex; align-items: center; min-width: 0; }
.unit-picker i { position: absolute; left: 14px; color: var(--primary); font-size: 13px; pointer-events: none; }
.unit-picker select {
  appearance: none; -webkit-appearance: none; min-height: 42px; max-width: 210px; padding: 0 34px 0 34px; border-radius: var(--radius);
  border: 1px solid var(--line); color: var(--text); font-weight: 500; font-size: 12.5px; cursor: pointer; text-overflow: ellipsis;
  background: var(--glass-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23B8924A' d='M6 8L1 3h10z'/%3E%3C/svg%3E") no-repeat right 13px center;
}
.unit-picker select:hover { border-color: var(--line-strong); }
.unit-picker select:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 22%, transparent); }
.unit-picker select option { background: var(--surface); color: var(--text); }
.header-cta { display: none; }
.ticker { background: var(--secondary); color: var(--accent); overflow: hidden; height: 30px; display: flex; align-items: center; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; border-top: 1px solid var(--line); }
.ticker__track { display: flex; white-space: nowrap; animation: ticker 40s linear infinite; }
.ticker__item { padding: 0 30px; } .ticker__item::before { content: ""; display: inline-block; width: 4px; height: 4px; margin-right: 14px; vertical-align: middle; background: var(--primary); transform: rotate(45deg); }
@keyframes ticker { to { transform: translateX(-50%); } }

/* Drawer mobile */
.drawer { position: fixed; inset: 0; z-index: 2000; display: none; }
.drawer.open { display: block; }
.drawer__backdrop { position: absolute; inset: 0; background: var(--overlay); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); animation: fade .2s ease; }
.drawer__panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(90vw, 380px); display: flex; flex-direction: column; gap: 16px; padding: 18px 20px 24px; overflow-y: auto;
  background:
    radial-gradient(420px 260px at 100% 0%, color-mix(in srgb, var(--primary) 16%, transparent), transparent 70%),
    color-mix(in srgb, var(--background) 86%, transparent);
  -webkit-backdrop-filter: saturate(1.2) blur(18px); backdrop-filter: saturate(1.2) blur(18px);
  border-left: 1px solid var(--line); box-shadow: -30px 0 60px -30px rgba(0,0,0,.9); animation: drawerIn .26s var(--ease);
}
@keyframes drawerIn { from { transform: translateX(28px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.drawer__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.drawer__head .site-logo img { height: 40px; }
.drawer__nav { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.drawer__nav a { display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 0 6px; color: var(--text); text-decoration: none; font-weight: 500; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid color-mix(in srgb, var(--accent) 8%, transparent); transition: color .2s var(--ease), padding .2s var(--ease); }
.drawer__nav a i { width: 18px; color: var(--primary); text-align: center; font-size: 14px; }
.drawer__nav a:hover, .drawer__nav a[aria-current="page"] { color: var(--accent); padding-left: 10px; }
.drawer__nav + .drawer__label + .drawer__nav a { min-height: 46px; font-size: 13px; letter-spacing: .04em; text-transform: none; color: var(--text-muted); }
.drawer__label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .24em; color: var(--primary); margin: 10px 6px 0; display: flex; align-items: center; gap: 10px; }
.drawer__label::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--line-strong), transparent); }
.drawer .unit-picker select { max-width: none; width: 100%; min-height: 50px; }

@media (min-width: 560px) { .header-cta { display: inline-flex; } }
@media (min-width: 1200px) and (max-width: 1339px) { .site-nav a, .nav-dd > button { padding-inline: 7px; letter-spacing: .08em; } .header-cta { padding: 0 14px; } }
@media (max-width: 559px) { .site-header__actions .unit-picker { display: none; } }
@media (min-width: 1200px) {
  :root { --header-h: 84px; }
  .site-logo img { height: var(--logo-h, 48px); max-width: 220px; }
  .site-nav { display: block; margin-left: 8px; min-width: 0; }
  .logo-nome { font-size: 13px; letter-spacing: .2em; }
  .menu-btn { display: none; }
}

/* ── Seções / títulos ───────────────────────────────────────────────── */
.section { padding-block: var(--space-6); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: var(--space-5); flex-wrap: wrap; }
.section-head h1, .section-head h2 { margin: 6px 0 0; font-size: var(--fs-xl); line-height: 1.15; font-weight: 600; letter-spacing: .02em; color: var(--text); }
.section-head p { margin: 6px 0 0; color: var(--text-muted); font-size: 13.5px; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 10.5px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--primary); }
.eyebrow i { font-size: 11px; }
.eyebrow::before { content: ""; width: 22px; height: 1px; background: linear-gradient(90deg, transparent, var(--primary)); }
.page-hero { position: relative; padding-block: var(--space-6) var(--space-4); }
.page-hero h1 { margin: 10px 0 0; font-size: var(--fs-2xl); line-height: 1.1; font-weight: 600; letter-spacing: .01em; }
.page-hero p { margin: 10px 0 0; color: var(--text-muted); max-width: 58ch; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 14px; padding: 0; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.breadcrumbs a { color: var(--text-muted); text-decoration: none; transition: color .2s var(--ease); } .breadcrumbs a:hover { color: var(--accent); }
.breadcrumbs li + li::before { content: ""; display: inline-block; width: 3px; height: 3px; margin-right: 8px; vertical-align: middle; background: var(--primary); border-radius: 50%; opacity: .8; }

/* Divisor horizonte (derivado da linha central do símbolo) */
.section + .section::before, .footer-principal::before {
  content: ""; display: block; height: 1px; width: min(560px, 70%); margin: 0 auto var(--space-6); background: var(--horizon); opacity: .7;
}

/* ── Hero da home ───────────────────────────────────────────────────── */
.hero { position: relative; overflow: hidden; background: var(--background); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 45%; z-index: 1; pointer-events: none; background: linear-gradient(180deg, transparent, var(--background)); }
.hero__slides { position: relative; aspect-ratio: 4 / 3; max-height: 620px; width: 100%; }
@media (min-width: 640px) { .hero__slides { aspect-ratio: 16 / 9; } }
@media (min-width: 1024px) { .hero__slides { aspect-ratio: 21 / 8; } }
.hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease; }
.hero__slide.is-active { opacity: 1; z-index: 1; }
.hero__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hero__slide a { display: block; height: 100%; }
.hero__dots { position: absolute; z-index: 3; bottom: 18px; left: 0; right: 0; display: flex; justify-content: center; gap: 8px; }
.hero__dots button { width: 18px; height: 2px; border: 0; padding: 8px 0; background: none; cursor: pointer; position: relative; }
.hero__dots button::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: rgba(216, 196, 154,.35); transition: background .25s var(--ease); }
.hero__dots button.is-active { width: 32px; }
.hero__dots button.is-active::before { background: var(--primary); }

/* ── Seletor de datas ───────────────────────────────────────────────── */
.date-strip { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; padding: 4px 2px 10px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; }
.date-strip::-webkit-scrollbar { display: none; }
.date-btn {
  position: relative; scroll-snap-align: start; flex: 0 0 auto; min-width: 68px; min-height: 76px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 10px 10px;
  border-radius: var(--radius); border: var(--glass-border); background: var(--glass-bg); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  color: var(--text); text-decoration: none; cursor: pointer; font-family: var(--font-sans); transition: border-color .22s var(--ease), background .22s var(--ease), transform .18s var(--ease);
}
.date-btn:hover { border-color: var(--line-strong); color: var(--text); transform: translateY(-1px); }
.date-btn__wd { font-size: 9.5px; font-weight: 600; text-transform: uppercase; color: var(--text-muted); letter-spacing: .18em; }
.date-btn__day { font-size: 22px; font-weight: 600; line-height: 1.1; letter-spacing: .02em; }
.date-btn__mon { font-size: 10px; color: var(--text-muted); letter-spacing: .12em; text-transform: uppercase; }
.date-btn.is-active {
  border-color: color-mix(in srgb, var(--primary) 75%, transparent);
  background: linear-gradient(180deg, color-mix(in srgb, var(--primary) 26%, var(--surface)), color-mix(in srgb, var(--primary) 8%, var(--surface)));
  box-shadow: var(--glow); color: var(--text);
}
.date-btn.is-active::before { content: ""; position: absolute; top: -1px; left: 50%; width: 22px; height: 2px; transform: translateX(-50%); background: var(--accent); border-radius: 0 0 2px 2px; }
.date-btn.is-active .date-btn__wd { color: var(--accent); }
.date-btn.is-active .date-btn__mon { color: var(--text); opacity: .8; }
.date-btn.is-empty { opacity: .45; }
.date-current { font-size: 12.5px; color: var(--text-muted); margin: 6px 0 0; letter-spacing: .02em; }
.date-current strong { color: var(--accent); font-weight: 600; }

/* ── Filtros da programação ─────────────────────────────────────────── */
.schedule-toolbar {
  position: sticky; top: var(--header-h); z-index: 50; padding-block: 12px 6px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter);
  background: color-mix(in srgb, var(--background) 80%, transparent); -webkit-backdrop-filter: saturate(1.2) blur(14px); backdrop-filter: saturate(1.2) blur(14px);
  border-bottom: 1px solid var(--line);
}
.filter-pills { display: flex; gap: 8px; overflow-x: auto; padding: 10px 0 6px; scrollbar-width: none; }
.filter-pills::-webkit-scrollbar { display: none; }
.filter-pill { flex: 0 0 auto; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--text-muted); font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: all .2s var(--ease); }
.filter-pill:hover { color: var(--text); border-color: var(--line-strong); }
.filter-pill[aria-pressed="true"] { color: var(--primary-contrast); background: var(--accent); border-color: var(--accent); }

/* ── Programação: filme + sessões ───────────────────────────────────── */
.schedule { display: grid; gap: 18px; padding-block: var(--space-5) var(--space-7); }
.unit-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 14px 4px 10px; margin-top: 10px; border-bottom: 1px solid var(--line); }
.unit-heading h2 { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); display: flex; align-items: center; gap: 10px; }
.unit-heading a { color: var(--text-muted); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.unit-heading a:hover { color: var(--accent); }

/* Card de vidro Sunset (filmes, sessões, unidades) */
.movie-row, .card, .info-card, .empty-state, .vp-box, .cookie-message {
  background: linear-gradient(160deg, color-mix(in srgb, var(--surface) 82%, transparent), color-mix(in srgb, var(--background) 70%, transparent));
  -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
  border: var(--glass-border); box-shadow: var(--glass-shadow);
}
.movie-row {
  position: relative; display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 16px; padding: 16px; border-radius: var(--radius-lg);
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
}
.movie-row::before { content: ""; position: absolute; top: 0; left: 18px; right: 18px; height: 1px; background: var(--horizon); opacity: .45; pointer-events: none; }
@media (hover: hover) { .movie-row:hover { border-color: var(--line-strong); box-shadow: var(--glass-shadow), 0 20px 50px -30px color-mix(in srgb, var(--primary) 55%, transparent); transform: translateY(-2px); } }
@media (min-width: 640px) { .movie-row { grid-template-columns: 150px minmax(0,1fr); grid-template-rows: auto 1fr; gap: 6px 26px; padding: 22px; } .movie-row__poster { grid-row: 1 / span 2; } }
@media (min-width: 1024px) { .movie-row { grid-template-columns: 168px minmax(0,1fr); } }
.movie-row__poster { position: relative; display: block; border-radius: var(--radius); overflow: hidden; background: var(--surface-2); aspect-ratio: 2 / 3; align-self: start; box-shadow: 0 18px 30px -16px rgba(0,0,0,.9); outline: 1px solid color-mix(in srgb, var(--accent) 12%, transparent); outline-offset: -1px; }
.movie-row__poster img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
@media (hover: hover) { .movie-row:hover .movie-row__poster img { transform: scale(1.025); } }
.movie-row__poster .rating { position: absolute; left: 6px; bottom: 6px; }
.poster-ph { width: 100%; height: 100%; display: grid; place-items: center; color: color-mix(in srgb, var(--accent) 45%, transparent); font-size: 26px; background: radial-gradient(circle at 50% 38%, color-mix(in srgb, var(--primary) 16%, transparent), transparent 60%), var(--surface-2); }
h2.movie-row__title, .movie-row__title { margin: 2px 0 0; font-size: 17px; line-height: 1.25; font-weight: 600; letter-spacing: .01em; }
.movie-row__title a { color: var(--text); text-decoration: none; transition: color .2s var(--ease); }
.movie-row__title a:hover { color: var(--accent); }
.movie-row__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 8px 0 0; color: var(--text-muted); font-size: 12.5px; }
.movie-row__meta span { display: inline-flex; align-items: center; gap: 6px; }
.movie-row__meta i { color: var(--primary); font-size: 11px; }
.movie-row__more { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.movie-row__more:hover { color: var(--text); }
.movie-row__more i { transition: transform .2s var(--ease); } .movie-row__more:hover i { transform: translateX(3px); }
.showtimes { grid-column: 1 / -1; display: grid; gap: 14px; margin-top: 4px; }
@media (min-width: 640px) { .showtimes { grid-column: 2; } }
.showtime-group { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid color-mix(in srgb, var(--accent) 9%, transparent); }
.showtime-group__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 11px; color: var(--text-muted); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.showtime-group__head strong { color: var(--text); font-weight: 600; margin-right: 4px; }
.showtime-list { display: flex; flex-wrap: wrap; gap: 10px; }

/* Session pills */
.showtime {
  position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 84px; min-height: 54px; padding: 8px 14px;
  border-radius: var(--radius); border: 1px solid var(--line-strong);
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 70%, transparent), color-mix(in srgb, var(--background) 55%, transparent));
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  color: var(--text); text-decoration: none; font-weight: 600; font-size: 17px; letter-spacing: .04em; line-height: 1.05; font-variant-numeric: tabular-nums;
  transition: border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform .18s var(--ease);
}
.showtime small { font-size: 8.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .22em; color: var(--primary); margin-top: 5px; transition: color .2s var(--ease); }
.showtime:hover, .showtime:focus-visible {
  border-color: var(--primary); color: var(--primary-contrast); transform: translateY(-2px);
  background: var(--metal); box-shadow: 0 1px 0 rgba(255,255,255,.3) inset, 0 14px 26px -12px color-mix(in srgb, var(--primary) 75%, transparent);
}
.showtime:hover small, .showtime:focus-visible small { color: var(--primary-contrast); }
.showtime:active { transform: translateY(0); }
.showtime.is-soon { border-color: color-mix(in srgb, var(--accent) 70%, transparent); }
.showtime.is-disabled { border-style: dashed; border-color: var(--line); background: transparent; color: color-mix(in srgb, var(--text-muted) 70%, transparent); cursor: not-allowed; text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--text-muted) 60%, transparent); transform: none; box-shadow: none; }
.showtime.is-disabled small { text-decoration: none; color: var(--text-muted); }
.showtime.is-nolink { border-color: var(--line); background: transparent; color: var(--text-muted); cursor: default; transform: none; box-shadow: none; }
.showtime.is-nolink small { color: var(--text-muted); }
.showtime-help { font-size: 12px; color: var(--text-muted); margin: 0; display: flex; align-items: center; gap: 8px; letter-spacing: .01em; }
.showtime-help i { color: var(--primary); }

/* Empty / feedback */
.empty-state { position: relative; overflow: hidden; text-align: center; padding: var(--space-7) var(--space-4); border-radius: var(--radius-lg); }
.empty-state::before { content: ""; position: absolute; left: 50%; top: -120px; width: 320px; height: 240px; transform: translateX(-50%); border-radius: 50%; border: 1px solid var(--line); border-bottom-color: transparent; pointer-events: none; }
.empty-state i { font-size: 34px; color: var(--primary); display: block; margin-bottom: 14px; }
.empty-state h2, .empty-state h3 { margin: 0 0 8px; font-size: var(--fs-lg); font-weight: 600; letter-spacing: .02em; }
.empty-state p { margin: 0 auto; max-width: 48ch; color: var(--text-muted); font-size: 13.5px; }
.empty-state .btn { margin-top: 20px; }
.notice { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--radius); background: color-mix(in srgb, var(--primary) 8%, var(--surface)); border: 1px solid var(--line-strong); color: var(--text); font-size: 13px; }
.notice--warning { background: color-mix(in srgb, var(--warning) 12%, var(--surface)); }

/* ── Grid / trilho de pôsteres ──────────────────────────────────────── */
.poster-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
@media (min-width: 560px) { .poster-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 900px) { .poster-grid { grid-template-columns: repeat(5, minmax(0,1fr)); gap: 22px; } }
.poster-card { position: relative; display: flex; flex-direction: column; text-decoration: none; color: var(--text); min-width: 0; }
.poster-card__img {
  position: relative; aspect-ratio: 2/3; border-radius: var(--radius-lg); overflow: hidden; background: var(--surface-2);
  border: 1px solid color-mix(in srgb, var(--accent) 12%, transparent); box-shadow: 0 22px 40px -22px rgba(0,0,0,.95);
  transition: border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.poster-card__img::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(12, 9, 7,0) 55%, rgba(12, 9, 7,.55)); }
.poster-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--ease); }
@media (hover: hover) {
  .poster-card:hover .poster-card__img { transform: translateY(-3px); border-color: color-mix(in srgb, var(--accent) 38%, transparent); box-shadow: 0 26px 44px -22px rgba(0,0,0,.95), 0 0 36px -16px color-mix(in srgb, var(--primary) 70%, transparent); }
  .poster-card:hover .poster-card__img img { transform: scale(1.03); }
  .poster-card:hover .poster-card__title { color: var(--accent); }
}
.poster-card__tag { position: absolute; top: 10px; left: 10px; z-index: 2; }
.poster-card__tag .chip { background: color-mix(in srgb, var(--background) 70%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--accent); border-color: var(--line-strong); }
.poster-card__rating { position: absolute; right: 10px; bottom: 10px; z-index: 2; }
.poster-card__title { margin: 12px 2px 0; font-size: 13.5px; font-weight: 600; line-height: 1.35; letter-spacing: .01em; transition: color .2s var(--ease); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.poster-card__sub { font-size: 11.5px; color: var(--text-muted); margin: 3px 2px 0; letter-spacing: .02em; }
.rail { display: grid; grid-auto-flow: column; grid-auto-columns: 44%; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; }
.rail::-webkit-scrollbar { display: none; }
.rail > * { scroll-snap-align: start; }
@media (min-width: 560px) { .rail { grid-auto-columns: 29%; } }
@media (min-width: 900px) { .rail { grid-auto-columns: calc((100% - 4 * 22px) / 5); gap: 22px; margin-inline: 0; padding-inline: 0; } }
.icon-btn { position: absolute; top: 10px; right: 10px; z-index: 3; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); background: color-mix(in srgb, var(--background) 60%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--text); cursor: pointer; font-size: 13px; transition: color .2s var(--ease), border-color .2s var(--ease); }
.icon-btn:hover, .fav-btn.on { color: var(--primary); border-color: var(--line-strong); }

/* ── Cartões genéricos ─────────────────────────────────────────────── */
.card { border-radius: var(--radius-lg); }
.card-body { padding: 18px; }
@media (min-width: 640px) { .card-body { padding: 22px; } }
.info-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.info-card { position: relative; display: flex; gap: 14px; padding: 18px; border-radius: var(--radius-lg); text-decoration: none; color: var(--text); overflow: hidden; transition: border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease); }
.info-card::after { content: ""; position: absolute; right: -40px; top: -40px; width: 110px; height: 110px; border-radius: 50%; border: 1px solid var(--line); pointer-events: none; }
@media (hover: hover) { a.info-card:hover { border-color: var(--line-strong); transform: translateY(-2px); box-shadow: var(--glass-shadow), 0 18px 40px -26px color-mix(in srgb, var(--primary) 60%, transparent); } }
.info-card i { font-size: 16px; color: var(--primary); margin-top: 3px; }
.info-card strong { display: block; font-weight: 600; letter-spacing: .02em; }
.info-card span { color: var(--text-muted); font-size: 12.5px; }

/* ── Rodapé ─────────────────────────────────────────────────────────── */
.footer-principal { position: relative; margin-top: var(--space-7); padding-top: 1px; color: var(--text); background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--secondary) 55%, var(--background)) 30%, var(--background)); }
.container-footer { max-width: var(--container); margin: 0 auto; padding: var(--space-4) var(--gutter) var(--space-5); }
.footer-news {
  position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; padding: 24px; margin-bottom: var(--space-7); border-radius: var(--radius-lg);
  background: radial-gradient(520px 200px at 0% 0%, color-mix(in srgb, var(--primary) 20%, transparent), transparent 70%), color-mix(in srgb, var(--surface) 80%, transparent);
  border: var(--glass-border); box-shadow: var(--glass-shadow);
}
.footer-news .fn-txt h3 { margin: 0 0 6px; font-size: 16px; font-weight: 600; letter-spacing: .04em; color: var(--text); }
.footer-news .fn-txt h3 i { color: var(--primary); margin-right: 6px; }
.footer-news .fn-txt p { margin: 0; color: var(--text-muted); font-size: 13px; }
.footer-news form { display: flex; flex-wrap: wrap; gap: 10px; flex: 1 1 320px; max-width: 560px; }
.footer-news input { flex: 1 1 170px; min-height: 48px; border-radius: var(--radius); border: 1px solid var(--line); padding: 0 14px; background: color-mix(in srgb, var(--background) 60%, transparent); color: var(--text); }
.footer-news input::placeholder { color: var(--text-muted); }
.footer-news button { min-height: 48px; padding: 0 20px; border-radius: var(--radius); border: 1px solid transparent; font-weight: 600; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; background: var(--metal); color: var(--primary-contrast); cursor: pointer; }
.fn-msg { width: 100%; font-size: 12.5px; font-weight: 600; color: var(--accent); }
.footer-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 30px 24px; }
@media (min-width: 900px) { .footer-grid { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.footer-coluna h3 { margin: 0 0 16px; font-size: 10.5px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--primary); }
.footer-coluna h3.mt { margin-top: 24px; }
.footer-coluna ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.footer-coluna a { color: var(--text-muted); text-decoration: none; font-size: 13.5px; display: inline-flex; align-items: center; gap: 8px; transition: color .2s var(--ease); }
.footer-coluna a i { color: color-mix(in srgb, var(--primary) 80%, transparent); font-size: 12px; }
.footer-coluna a:hover { color: var(--accent); }
.footer-selos { display: flex; flex-wrap: wrap; gap: 22px 36px; justify-content: center; padding: var(--space-5) 0; margin-top: var(--space-6); border-top: 1px solid var(--line); }
.selo-item { display: flex; align-items: center; gap: 12px; }
.selo-icon { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line-strong); color: var(--primary); background: transparent; }
.selo-titulo { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; } .selo-desc { font-size: 12px; color: var(--text-muted); }
.footer-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: var(--space-5); border-top: 1px solid var(--line); }
.footer-logo { height: 44px; width: auto; opacity: .9; }
.copyright, .desenvolvedor { margin: 0; font-size: 11.5px; letter-spacing: .06em; color: var(--text-muted); }
.desenvolvedor a { color: var(--accent); font-weight: 600; text-decoration: none; }
.footer-social { display: flex; gap: 10px; }
.social-icon { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: var(--accent); border: 1px solid var(--line); background: transparent; text-decoration: none; transition: border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease); }
.social-icon:hover { border-color: var(--primary); color: var(--primary-contrast); background: var(--primary); }
@media (max-width: 640px) { .footer-bottom { flex-direction: column; text-align: center; } .footer-news { padding: 20px; } }

/* Sobrescreve cores fixas do legacy no rodapé */
body.site footer.footer-principal { background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--secondary) 55%, var(--background)) 30%, var(--background)) !important; color: var(--text) !important; border: 0 !important; }
body.site .footer-coluna h3 { color: var(--primary) !important; font-size: 10.5px !important; }
body.site .selo-titulo { color: var(--text) !important; }
body.site .copyright, body.site .desenvolvedor, body.site .footer-coluna ul li a, body.site .selo-desc { color: var(--text-muted) !important; }
body.site .footer-coluna ul li a:hover { color: var(--accent) !important; }
body.site .footer-news { background: radial-gradient(520px 200px at 0% 0%, color-mix(in srgb, var(--primary) 20%, transparent), transparent 70%), color-mix(in srgb, var(--surface) 80%, transparent) !important; border-radius: var(--radius-lg) !important; }
body.site .footer-news button { background: var(--metal) !important; color: var(--primary-contrast) !important; }
body.site .footer-news input { background-color: color-mix(in srgb, var(--background) 60%, transparent) !important; color: var(--text) !important; border-color: var(--line) !important; }
body.site .social-icon { color: var(--accent) !important; } body.site .selo-icon { color: var(--primary) !important; background: transparent !important; border-color: var(--line-strong) !important; }

/* Cookies */
.cookie-message { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 10000; max-width: 520px; display: none; padding: 18px; border-radius: var(--radius-lg); color: var(--text); }
.cookie-message h4, .cookie-message .cookie-title { margin: 0 0 6px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.cookie-message h4 i { color: var(--primary); }
.cookie-message p { margin: 0 0 14px; font-size: 12.5px; color: var(--text-muted); }
.cookie-buttons { display: flex; gap: 10px; flex-wrap: wrap; }
.btn-cookie { min-height: 42px; padding: 0 16px; border-radius: var(--radius); font-weight: 600; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; border: 1px solid var(--line-strong); }
.btn-aceitar { background: var(--metal) !important; color: var(--primary-contrast) !important; border-color: transparent !important; }
.btn-configurar { background: transparent !important; color: var(--text) !important; border-color: var(--line-strong) !important; }
body.site .cookie-message { background: color-mix(in srgb, var(--surface) 90%, transparent) !important; border: var(--glass-border) !important; border-radius: var(--radius-lg) !important; }

/* Modais compartilhados */
.vp-overlay { position: fixed; inset: 0; z-index: 10001; display: none; align-items: center; justify-content: center; padding: 16px; background: var(--overlay); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.vp-overlay.show { display: flex; animation: fade .2s ease; }
.vp-box { position: relative; width: 100%; max-width: 560px; max-height: 88vh; overflow-y: auto; padding: 28px 24px; border-radius: var(--radius-lg); color: var(--text); animation: fadeUp .25s var(--ease); }
body.site .vp-box { background: color-mix(in srgb, var(--surface) 94%, transparent) !important; border: var(--glass-border) !important; border-radius: var(--radius-lg) !important; }
.vp-close { position: absolute; top: 10px; right: 12px; width: 40px; height: 40px; border: 0; background: none; color: var(--text-muted); font-size: 26px; line-height: 1; cursor: pointer; }
.vp-close:hover { color: var(--accent); }
.vp-box h2 { margin: 0 0 16px; padding-right: 36px; font-size: var(--fs-lg); font-weight: 600; letter-spacing: .03em; display: flex; align-items: center; gap: 10px; }
.vp-box h2 i { color: var(--primary); }
.vp-unidade { margin-bottom: 18px; } .vp-unidade h3 { margin: 0 0 6px; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--primary); }
.vp-texto { line-height: 1.8; color: var(--text); } .vp-empty { color: var(--text-muted); }

/* ── Detalhes do filme (estilos da página ajustados à identidade) ───── */
body.site .movie-hero { background-color: var(--background) !important; min-height: 480px; margin-bottom: 0; }
body.site .hero-overlay { background: linear-gradient(90deg, rgba(12, 9, 7,.96) 0%, rgba(42, 27, 19,.86) 55%, rgba(42, 27, 19,.45) 100%), linear-gradient(0deg, var(--background) 0%, transparent 35%) !important; }
body.site .movie-poster-box img.poster { border-radius: var(--radius-lg); box-shadow: 0 30px 60px -24px rgba(0,0,0,.95), 0 0 0 1px color-mix(in srgb, var(--accent) 16%, transparent); }
body.site .tag-status { right: 12px; top: 12px; border-radius: 3px; font-size: 10px; letter-spacing: .16em; background: color-mix(in srgb, var(--background) 70%, transparent) !important; color: var(--accent) !important; border: 1px solid var(--line-strong); box-shadow: none; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body.site .btn-trailer { background: color-mix(in srgb, var(--surface) 70%, transparent) !important; color: var(--text) !important; border: 1px solid var(--line-strong) !important; border-radius: var(--radius) !important; font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; box-shadow: none !important; }
body.site .btn-trailer:hover { border-color: var(--primary) !important; color: var(--accent) !important; }
body.site .movie-info { color: var(--text); }
body.site .movie-info h1 { font-weight: 600; letter-spacing: .01em; color: var(--text) !important; }
body.site .meta-item { background: color-mix(in srgb, var(--background) 45%, transparent); border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: 12.5px; color: var(--text); }
body.site .meta-item i { color: var(--primary); }
body.site .movie-synopsis { color: color-mix(in srgb, var(--text) 86%, transparent); }
body.site .movie-rating .stars, body.site .movie-rating .rating-num { color: var(--primary); }
body.site .credit-label { color: var(--primary); letter-spacing: .12em; text-transform: uppercase; font-size: 11px; }
body.site .credit-value { color: var(--text); }
body.site .page-title { font-weight: 600 !important; letter-spacing: .14em; text-transform: uppercase; font-size: 15px !important; border-left: 0 !important; padding-left: 0 !important; display: flex; align-items: center; gap: 14px; color: var(--text) !important; }
body.site .page-title::before { content: ""; width: 26px; height: 1px; background: var(--primary); }
body.site .breadcrumb-custom a { color: var(--text-muted) !important; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
body.site .breadcrumb-custom .active { color: var(--accent) !important; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
body.site .cast-photo { border: 1px solid var(--line-strong) !important; background: var(--surface-2) !important; }

body.site .logo-nome { font-size: 12px !important; letter-spacing: .14em !important; }
@media (min-width: 1200px) { body.site .logo-nome { font-size: 13px !important; letter-spacing: .2em !important; } }

/* Utilidades */
.muted { color: var(--text-muted); }
.stack { display: grid; gap: var(--space-3); }
.hide-mobile { display: none; } @media (min-width: 768px) { .hide-mobile { display: initial; } .hide-desktop { display: none; } }

/* Tamanhos dos componentes novos têm prioridade sobre as regras globais do legacy.css */
body.site .movie-row__title { font-size: 17px !important; }
body.site .section-head h1, body.site .section-head h2 { font-size: var(--fs-xl) !important; }
body.site .page-hero h1 { font-size: var(--fs-2xl) !important; }
body.site .empty-state h2, body.site .empty-state h3 { font-size: var(--fs-lg) !important; }
body.site .unit-heading h2 { font-size: 13px !important; }
body.site .vp-box h2 { font-size: var(--fs-lg) !important; }
@media (min-width: 640px) { body.site .movie-row__title { font-size: 21px !important; } }
body.site h1, body.site h2, body.site h3 { letter-spacing: .01em !important; }

/* Superfícies legadas (páginas institucionais): vidro Sunset discreto */
body.site .cinema-card, body.site .projeto-card, body.site .promo-card, body.site .blog-card, body.site .faq-item, body.site .hb-card, body.site .evc, body.site .sidebar-card, body.site .texto-institucional, body.site .atendimento-content, body.site .channel-card, body.site .mvv-card, body.site .uni-local-inner {
  background: linear-gradient(160deg, color-mix(in srgb, var(--surface) 82%, transparent), color-mix(in srgb, var(--background) 70%, transparent)) !important;
  border: var(--glass-border) !important; border-radius: var(--radius-lg) !important; box-shadow: var(--glass-shadow) !important;
}
body.site .btn-precos, body.site .btn-submit, body.site .contact-submit, body.site .project-submit, body.site .btn-programacao, body.site .uni-btn-mapa, body.site .blog-busca button {
  background: var(--metal) !important; color: var(--primary-contrast) !important; border-color: transparent !important; border-radius: var(--radius) !important; letter-spacing: .1em; text-transform: uppercase; font-weight: 600 !important; font-size: 12px !important;
}
body.site input, body.site select, body.site textarea { border-radius: var(--radius); }
body.site input:focus, body.site select:focus, body.site textarea:focus { border-color: var(--primary) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent) !important; }
body.site .faq-item summary i, body.site .home-blog-head h2 i, body.site .home-faq-title i { color: var(--primary) !important; }

/* ══════════════════════════════════════════════════════════════════════════════
   SUNSET v2 — implementação dos mockups aprovados (home + detalhe do filme)
   Vidro fumê e moldura dourada da marca Sunset. Só apresentação.
   ══════════════════════════════════════════════════════════════════════════════ */
:root {
  --sunset-black: #080706; --sunset-night: #1A120D; --sunset-coffee: #2A1B13;
  --sunset-gold: #B8924A; --sunset-champagne: #D8C49A; --sunset-bronze: #7A552A; --sunset-text: #FFFFFF;
  --serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --container: 1296px;
  --frame-line: rgba(216, 196, 154,.22);
  --gold-line: rgba(184, 146, 74,.62);
  --smoke: rgba(16, 12, 9,.62);
  --smoke-strong: rgba(16, 12, 9,.84);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { :root { --smoke: rgba(16, 12, 9,.92); --smoke-strong: rgba(16,12,9,.96); } }

body.site {
  color: var(--sunset-text);
  background:
    radial-gradient(900px 480px at 88% 8%, rgba(184, 146, 74,.16), transparent 70%),
    radial-gradient(760px 520px at 0% 46%, rgba(42, 27, 19,.55), transparent 72%),
    radial-gradient(900px 600px at 100% 88%, rgba(42, 27, 19,.45), transparent 72%),
    linear-gradient(180deg, #0B0908 0%, #080706 40%, #0A0807 100%);
}
.glass {
  background: linear-gradient(180deg, rgba(42, 27, 19,.55), rgba(16, 12, 9,.72));
  -webkit-backdrop-filter: saturate(1.1) blur(12px); backdrop-filter: saturate(1.1) blur(12px);
  border: 1px solid var(--frame-line); border-radius: 12px;
  box-shadow: inset 0 1px 0 rgba(216, 196, 154,.08), 0 22px 44px -28px rgba(0,0,0,.9);
}
.serif-title, .display-title { font-family: var(--serif); font-weight: 500; letter-spacing: .005em; color: var(--sunset-text); }
body.site .serif-title { font-size: clamp(28px, 1.6rem + .9vw, 36px) !important; line-height: 1.1; margin: 0; text-transform: none; letter-spacing: 0 !important; font-weight: 500 !important; }
.eyebrow-gold { display: block; font-size: 11px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--sunset-champagne); }

/* ── Botões (primary gold · glass · ghost) ─────────────────────────────────── */
.btn-gold, .btn-glass {
  min-height: 48px; padding: 0 26px; border-radius: 999px; font-size: 12px; letter-spacing: .12em; font-weight: 600; text-transform: uppercase; gap: 12px;
}
.btn-gold {
  color: #FFFFFF; border: 1px solid rgba(184, 146, 74,.9);
  background:
    radial-gradient(120% 140% at 50% 120%, rgba(184, 146, 74,.34), transparent 55%),
    linear-gradient(180deg, rgba(42, 27, 19,.9), rgba(16, 12, 9,.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), inset 0 0 18px rgba(184, 146, 74,.22), 0 0 22px -6px rgba(184, 146, 74,.45), 0 14px 30px -18px rgba(0,0,0,.9);
}
.btn-gold:hover, .btn-gold:focus-visible { color: #fff; border-color: #D8C49A; box-shadow: inset 0 1px 0 rgba(255,255,255,.36), inset 0 0 22px rgba(184, 146, 74,.32), 0 0 28px -4px rgba(184, 146, 74,.55), 0 16px 32px -18px rgba(0,0,0,.9); transform: translateY(-1px); }
.btn-gold i, .btn-glass i { color: var(--sunset-champagne); font-size: 13px; }
.btn-glass { color: #FFFFFF; background: rgba(16, 12, 9,.55); border: 1px solid rgba(216, 196, 154,.32); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: inset 0 1px 0 rgba(216, 196, 154,.08); }
.btn-glass:hover, .btn-glass:focus-visible { border-color: rgba(216, 196, 154,.6); color: #fff; background: rgba(42, 27, 19,.66); }
.btn-gold.btn-sm, .btn-glass.btn-sm { min-height: 40px; padding: 0 18px; font-size: 11px; }
.link-arrow { display: inline-flex; align-items: center; gap: 10px; color: rgba(255,255,255,.78); font-size: 13px; text-decoration: none; white-space: nowrap; transition: color .2s var(--ease); }
.link-arrow i { font-size: 11px; transition: transform .2s var(--ease); }
.link-arrow:hover { color: var(--sunset-champagne); } .link-arrow:hover i { transform: translateX(3px); }
.rating--box { min-width: 34px; height: 34px; font-size: 16px; border-radius: 6px; font-weight: 700; }
.rating--18 { background: #0B0908; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.9); }
.rating--16 { background: #C62828; } .rating--14 { background: #C0540A; } .rating--12 { background: #F2B41B; color: #1A120D; } .rating--10 { background: #1565C0; } .rating--L { background: #1E7E3E; }

/* ── Header ────────────────────────────────────────────────────────────────── */
body.site .site-header { background: linear-gradient(180deg, rgba(12, 9, 7,.82), rgba(12, 9, 7,0)); }
body.site .site-header.is-scrolled { background: rgba(16, 12, 9,.8); }
.site-header__bar { gap: 18px; }
.site-header .site-logo img { height: var(--logo-h-mobile, 40px); max-width: 190px; }
.site-header .logo-nome, .footer-sunset .logo-nome { font-family: var(--serif); font-size: 22px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--sunset-text); }
.header-search { display: none; width: 40px; height: 40px; font-size: 14px; color: var(--sunset-text); text-decoration: none; }
.header-cta.btn-gold { min-height: 44px; padding: 0 22px; font-size: 11px; }
.menu-btn { border: 0; background: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; width: 44px; height: 44px; }
.burger { display: grid; gap: 6px; width: 26px; }
.burger span { display: block; height: 2px; border-radius: 2px; background: var(--sunset-champagne); }
.burger span:nth-child(2) { width: 100%; }
body.site .site-nav ul { gap: 18px; }
body.site .site-nav a, body.site .nav-dd > button { font-size: 14px; letter-spacing: .01em; text-transform: none; color: rgba(255,255,255,.84); font-weight: 400; padding: 10px 6px; }
body.site .site-nav a:hover, body.site .nav-dd > button:hover, body.site .nav-dd > button.is-current, body.site .site-nav a[aria-current="page"] { color: #fff; }
body.site .site-nav a[aria-current="page"]::after { background: linear-gradient(90deg, transparent, var(--sunset-gold), transparent); left: 6px; right: 6px; bottom: 2px; }
.nav-dd > button i { font-size: 10px; color: var(--sunset-champagne); }
@media (min-width: 560px) { .header-search { display: inline-grid; } }
@media (min-width: 1024px) {
  :root { --header-h: 96px; }
  .site-header .site-logo img { height: var(--logo-h, 58px); max-width: 240px; }
  body.site .site-nav { display: block; margin-inline: auto; }
  .site-header__actions { margin-left: 0; gap: 14px; }
  body.site .menu-btn { display: none; }
}
@media (min-width: 1024px) and (max-width: 1199px) { body.site .site-nav ul { gap: 6px; } body.site .site-nav a, body.site .nav-dd > button { font-size: 13px; } }
/* drawer */
body.site .drawer__panel { background: radial-gradient(420px 260px at 100% 0%, rgba(184, 146, 74,.14), transparent 70%), rgba(16, 12, 9,.94); }
body.site .drawer__nav a { font-size: 17px; letter-spacing: .02em; text-transform: none; min-height: 54px; }
body.site .drawer__nav a i { color: var(--sunset-gold); }

/* ── Hero da home ──────────────────────────────────────────────────────────── */
body.page-index main.home { margin-top: calc(var(--header-h) * -1); }
.hero-sunset { position: relative; isolation: isolate; padding-top: var(--header-h); overflow: hidden; }
.hero-sunset__bg { position: absolute; inset: 0 0 auto 0; height: 100%; z-index: -1; background: radial-gradient(70% 90% at 70% 30%, rgba(184, 146, 74,.22), transparent 70%), #080706; }
.hero-sunset__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; display: block; opacity: .9; }
.hero-sunset__bg::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(12, 9, 7,.94) 0%, rgba(12, 9, 7,.72) 32%, rgba(12, 9, 7,.12) 62%, rgba(12, 9, 7,.45) 100%),
    linear-gradient(180deg, rgba(12, 9, 7,.55) 0%, rgba(12, 9, 7,0) 22%, rgba(12, 9, 7,.15) 60%, #080706 100%),
    radial-gradient(60% 60% at 60% 50%, rgba(184, 146, 74,.12), transparent 70%);
}
.hero-sunset__inner { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; min-height: clamp(420px, 44vw, 560px); padding-block: 12px 36px; }
.hero-sunset__content { max-width: 640px; }
.display-title { margin: 14px 0 14px; font-size: clamp(44px, 2.2rem + 3.2vw, 78px); line-height: .98; font-weight: 400; max-width: 11.5ch; color: #FFFFFF; text-shadow: 0 2px 30px rgba(0,0,0,.45); }
body.site h1.display-title { letter-spacing: -.005em !important; }
.hero-sunset__lead { margin: 0 0 28px; font-size: clamp(15px, .9rem + .3vw, 19px); color: rgba(255,255,255,.9); max-width: 34ch; }
.hero-sunset__actions { display: flex; flex-wrap: wrap; gap: 18px; }
.hero-sunset__actions .btn { min-width: 260px; min-height: 54px; }
.hero-sunset__film { display: flex; align-items: center; gap: 12px; color: var(--sunset-text); text-decoration: none; }
.hero-sunset__film strong { display: block; font-weight: 500; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
.hero-sunset__film small { display: block; font-size: 11px; color: rgba(255,255,255,.7); letter-spacing: .04em; }
.hero-sunset__film--desktop { display: none; margin-bottom: 8px; }
.hero-sunset__film--mobile { justify-content: space-between; margin: 0 0 22px; }
.hero-sunset__film--mobile strong { font-size: 20px; text-transform: none; letter-spacing: 0; }
.hero-sunset__film--mobile small { font-size: 14px; }
@media (min-width: 1024px) {
  .hero-sunset__film--desktop { display: flex; }
  .hero-sunset__film--mobile { display: none; }
}
@media (max-width: 767px) {
  .hero-sunset__inner { min-height: 0; padding-block: 64px 26px; }
  .hero-sunset__bg img { object-position: 60% 20%; }
  .hero-sunset__bg::after { background: linear-gradient(180deg, rgba(12, 9, 7,.5) 0%, rgba(12, 9, 7,.15) 30%, rgba(12, 9, 7,.55) 62%, #080706 100%), linear-gradient(90deg, rgba(12, 9, 7,.7), rgba(12, 9, 7,0) 70%); }
  .hero-sunset__actions { flex-direction: column; gap: 14px; }
  .hero-sunset__actions .btn { width: 100%; min-width: 0; }
  .display-title { font-size: clamp(44px, 12.5vw, 60px); }
}

/* Barra de ação */
.action-bar { display: grid; grid-template-columns: 1fr; gap: 14px; padding: 16px; margin: 0 0 8px; }
.action-bar__select { position: relative; display: flex; align-items: center; }
.action-bar__select i { position: absolute; left: 18px; color: var(--sunset-text); font-size: 12px; pointer-events: none; }
.action-bar__select select {
  appearance: none; -webkit-appearance: none; width: 100%; min-height: 54px; padding: 0 44px 0 44px; border-radius: 8px; cursor: pointer;
  color: var(--sunset-text); font-size: 15px; border: 1px solid rgba(216, 196, 154,.2);
  background: rgba(16, 12, 9,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23F4EEE6' stroke-width='1.5' d='M2 4l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 18px center;
}
.action-bar__select select:focus { outline: none; border-color: var(--sunset-gold); box-shadow: 0 0 0 3px rgba(184, 146, 74,.2); }
.action-bar__select select option { background: #1A120D; color: #FFFFFF; }
.action-bar .btn { border-radius: 8px; min-height: 54px; }
.action-bar__comprar { display: none; }
.action-bar__horarios { border-color: rgba(184, 146, 74,.75); }
@media (max-width: 767px) { .action-bar__horarios { color: #fff; background: radial-gradient(120% 140% at 50% 120%, rgba(184, 146, 74,.3), transparent 55%), linear-gradient(180deg, rgba(42, 27, 19,.9), rgba(16, 12, 9,.92)); box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 0 20px -6px rgba(184, 146, 74,.45); } }
@media (min-width: 768px) {
  .action-bar { grid-template-columns: minmax(0, 1.95fr) minmax(0, 1fr) minmax(0, 1.1fr); gap: 16px; padding: 14px 16px; }
  .action-bar__comprar { display: inline-flex; }
  .action-bar__horarios { border-color: rgba(216, 196, 154,.3); }
}

/* ── Seções da home ────────────────────────────────────────────────────────── */
.home-sec { padding-block: 34px 8px; }
.home-sec__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-bottom: 18px; padding-bottom: 2px; border-bottom: 1px solid rgba(216, 196, 154,.12); flex-wrap: wrap; }
.home-sec__head .serif-title { padding-bottom: 8px; }
.tabs-serif { display: flex; gap: 34px; }
.tabs-serif__item { margin: 0; }
.tabs-serif button {
  position: relative; background: none; border: 0; padding: 0 0 10px; cursor: pointer;
  font-family: var(--serif); font-size: clamp(28px, 1.6rem + .9vw, 36px); font-weight: 500; line-height: 1.1; color: rgba(255,255,255,.6); transition: color .2s var(--ease);
}
.tabs-serif button[aria-selected="true"] { color: #FFFFFF; }
.tabs-serif button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 2px; background: linear-gradient(90deg, #7A552A, #D8C49A 50%, #B8924A); border-radius: 2px; }
.tabs-serif button:hover { color: #FFFFFF; }
body.site .section + .section::before { display: none; }

.poster-grid-5 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 12px; }
@media (min-width: 640px) { .poster-grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px 18px; } }
@media (min-width: 1024px) { .poster-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 30px 26px; } }

/* Card de filme da home: pôster emoldurado + informações abaixo */
body.site .poster-card { display: flex; flex-direction: column; gap: 12px; color: var(--sunset-text); text-decoration: none; transition: transform .3s var(--ease); }
body.site .poster-card__img { aspect-ratio: 2/3; border-radius: 8px; border: 0; background: #1A120D; box-shadow: 0 24px 40px -22px rgba(0,0,0,.95), 0 0 26px -14px rgba(184, 146, 74,.35); transform: none; isolation: isolate; }
body.site .poster-card__img::after { background: linear-gradient(180deg, rgba(12, 9, 7,.35) 0%, rgba(12, 9, 7,0) 20%, rgba(12, 9, 7,0) 82%, rgba(12, 9, 7,.3) 100%); z-index: 1; }
body.site .poster-card__img img { transition: transform .35s var(--ease); }
.poster-card__tag, .poster-card__date {
  position: absolute; z-index: 3; top: 10px; font-size: 10.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #FFFFFF;
  background: rgba(16, 12, 9,.7); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1px solid rgba(216, 196, 154,.28);
}
body.site .poster-card__tag { left: 10px; padding: 5px 10px; border-radius: 4px; }
.poster-card__date { left: 8px; right: 8px; text-align: center; padding: 5px 6px; border-radius: 6px; font-size: 12.5px; letter-spacing: .04em; color: #FFFFFF; background: rgba(16, 12, 9,.78); border-color: rgba(216, 196, 154,.2); }
body.site .poster-card .icon-btn { top: auto; bottom: 10px; right: 10px; width: 32px; height: 32px; font-size: 12px; opacity: 0; background: rgba(12, 9, 7,.55); border-color: rgba(216, 196, 154,.25); transition: opacity .25s var(--ease); z-index: 4; }
body.site .poster-card:hover .icon-btn, body.site .poster-card .icon-btn:focus-visible, body.site .poster-card .fav-btn.on { opacity: 1; }
@media (hover: none) { body.site .poster-card .icon-btn { opacity: .9; } }
.poster-card__info { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 0 2px; }
.poster-card__txt { min-width: 0; display: grid; gap: 1px; }
body.site .poster-card__title { margin: 0; padding: 0; font-size: 15px; font-weight: 500; line-height: 1.3; color: #FFFFFF; text-shadow: none; -webkit-line-clamp: 2; }
body.site .poster-card__sub { margin: 0; padding: 0; font-size: 13px; line-height: 1.35; color: rgba(255,255,255,.62); letter-spacing: 0; white-space: normal; }
body.site .poster-card__rating { position: static; flex-shrink: 0; min-width: 32px; height: 32px; font-size: 16px; border-radius: 5px; }
@media (max-width: 639px) { body.site .poster-card__title { font-size: 14px; } body.site .poster-card__sub { font-size: 12.5px; } body.site .poster-card__rating { min-width: 28px; height: 28px; font-size: 14px; } .poster-card__date { font-size: 11.5px; } }

/* Moldura com reflexo percorrendo o contorno (pôsteres) */
@property --frame-ang { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes frame-orbit { to { --frame-ang: 360deg; } }
body.site .poster-card__img, body.site .filme-card, body.site .poster-frame {
  --frame-base: rgba(184, 146, 74,.5); --frame-beam: rgba(255,255,255,.98); --frame-beam-2: rgba(184, 146, 74,.9); --frame-speed: 6s;
}
body.site .poster-card__img::before, body.site .filme-card::before, body.site .poster-frame::before {
  content: ""; position: absolute; inset: 0; z-index: 5; pointer-events: none; border-radius: inherit; padding: 1px;
  background:
    conic-gradient(from var(--frame-ang), transparent 0deg, transparent 334deg, rgba(184, 146, 74,0) 336deg, var(--frame-beam-2) 347deg, var(--frame-beam) 355deg, rgba(216, 196, 154,0) 360deg),
    linear-gradient(var(--frame-base), var(--frame-base));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: frame-orbit var(--frame-speed) linear infinite; transition: opacity .3s var(--ease);
}
body.site .poster-grid-5 > :nth-child(3n+2) .poster-card__img::before, body.site .filmes-grid > :nth-child(3n+2)::before { animation-delay: -2s; }
body.site .poster-grid-5 > :nth-child(3n) .poster-card__img::before, body.site .filmes-grid > :nth-child(3n)::before { animation-delay: -4s; }
@media (hover: hover) {
  body.site .poster-card:hover { transform: translateY(-3px); }
  body.site .poster-card:hover .poster-card__img { box-shadow: 0 28px 46px -22px rgba(0,0,0,.95), 0 0 34px -12px rgba(184, 146, 74,.5); }
  body.site .poster-card:hover .poster-card__img::before, body.site .filme-card:hover::before { --frame-base: rgba(216, 196, 154,.72); }
  body.site .poster-card:hover .poster-card__img img { transform: scale(1.02); }
  body.site .poster-card:hover .poster-card__title { color: var(--sunset-champagne); }
}
@media (max-width: 639px) { body.site .poster-card__img, body.site .filme-card, body.site .poster-frame { --frame-speed: 7s; --frame-beam: rgba(230,214,180,.8); --frame-beam-2: rgba(184, 146, 74,.65); } }

/* /filmes (cards existentes) */
body.site .filme-card {
  position: relative; isolation: isolate; overflow: hidden; border-radius: 8px !important; border: 0 !important;
  background: #1A120D !important; box-shadow: 0 24px 40px -22px rgba(0,0,0,.95), 0 0 26px -14px rgba(184, 146, 74,.35) !important;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease) !important;
}
body.site .filme-card .filme-img-wrapper { background: #1A120D !important; }
body.site .filme-card .filme-img-wrapper::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(12, 9, 7,.3) 0%, rgba(12, 9, 7,0) 22%, rgba(12, 9, 7,0) 52%, rgba(12, 9, 7,.78) 84%, rgba(12, 9, 7,.95) 100%); }
body.site .filme-card img { transition: transform .35s var(--ease) !important; }
body.site .filme-card .filme-titulo { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; background: transparent !important; border: 0 !important; text-align: left; padding: 0 14px 15px; color: #FFFFFF !important; font-size: 14px; font-weight: 500; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.site .filme-card:hover .filme-titulo { background: transparent !important; color: #D8C49A !important; }
body.site .filme-card .filme-tag { top: 10px; right: 10px; padding: 4px 9px; border-radius: 4px; font-size: 10px !important; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; background: rgba(12, 9, 7,.7) !important; color: #FFFFFF !important; border: 1px solid rgba(216, 196, 154,.28); box-shadow: none; }
body.site .filme-card .card-actions button { width: 32px; height: 32px; background: rgba(12, 9, 7,.5); border: 1px solid rgba(216, 196, 154,.22); color: #FFFFFF; }
body.site .filme-card .card-actions .fav-btn.on { color: #B8924A; border-color: rgba(184, 146, 74,.6); background: rgba(12, 9, 7,.6); }
body.site .filme-card .play-overlay button { background: rgba(12, 9, 7,.55); border: 1px solid rgba(216, 196, 154,.5); color: #D8C49A; }
@media (hover: hover) { body.site .filme-card:hover { transform: translateY(-3px) !important; } body.site .filme-card:hover img { transform: scale(1.02) !important; } }
@media (max-width: 640px) { body.site .filme-card .filme-tag { font-size: 9px !important; padding: 3px 7px; } body.site .filme-card .card-actions button { width: 30px; height: 30px; } }
@media (prefers-reduced-motion: reduce) { body.site .poster-card__img::before, body.site .filme-card::before, body.site .poster-frame::before { animation: none; } }

/* Destaques */
.feature-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 640px) { .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } }
.feature-card {
  position: relative; display: flex; align-items: flex-end; min-height: 190px; aspect-ratio: 16 / 8.5; overflow: hidden; border-radius: 8px; text-decoration: none; color: var(--sunset-text);
  border: 1px solid rgba(184, 146, 74,.55); box-shadow: 0 22px 40px -24px rgba(0,0,0,.95), 0 0 24px -14px rgba(184, 146, 74,.35); isolation: isolate; transition: transform .3s var(--ease), border-color .3s var(--ease);
}
.feature-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .4s var(--ease); }
.feature-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(12, 9, 7,.78), rgba(12, 9, 7,.1) 70%); }
.feature-card--arte::after { background: linear-gradient(180deg, rgba(12, 9, 7,0) 55%, rgba(12, 9, 7,.55)); }
.feature-card__body { display: grid; gap: 8px; justify-items: start; padding: 22px; max-width: 70%; }
.feature-card__body strong { font-family: var(--serif); font-size: 26px; font-weight: 500; line-height: 1.05; }
.feature-card__body small { font-size: 12px; color: rgba(255,255,255,.8); letter-spacing: .04em; }
.feature-card--arte .feature-card__body { margin-left: auto; margin-right: 0; padding: 18px; max-width: none; }
@media (hover: hover) { .feature-card:hover { transform: translateY(-3px); border-color: rgba(216, 196, 154,.8); } .feature-card:hover img { transform: scale(1.02); } }

/* Newsletter */
.newsletter-band { margin-top: 44px; }
.newsletter { position: relative; display: grid; grid-template-columns: 1fr; gap: 16px; padding: 22px 18px; overflow: hidden; }
.newsletter::before { content: ""; position: absolute; left: -60px; bottom: -80px; width: 280px; height: 200px; background: radial-gradient(closest-side, rgba(184, 146, 74,.22), transparent); pointer-events: none; }
.newsletter__title { font-size: clamp(22px, 1.2rem + .8vw, 30px) !important; line-height: 1.15 !important; }
.newsletter__title span { display: block; }
.newsletter__form { display: grid; gap: 12px; }
.newsletter__field { position: relative; display: flex; align-items: center; }
.newsletter__field i { position: absolute; left: 18px; color: rgba(255,255,255,.8); }
.newsletter__field input { width: 100%; min-height: 50px; padding: 0 18px 0 48px; border-radius: 8px; border: 1px solid rgba(216, 196, 154,.22); background: rgba(12, 9, 7,.6); color: #FFFFFF; font-size: 14px; }
.newsletter__field input::placeholder { color: rgba(255,255,255,.6); }
.newsletter__field input:focus { outline: none; border-color: var(--sunset-gold); }
.newsletter__form .btn-gold { border-radius: 8px; }
.newsletter .fn-msg { grid-column: 1 / -1; }
@media (min-width: 900px) {
  .newsletter { grid-template-columns: 1fr minmax(0, 1.15fr); align-items: center; padding: 16px 20px 16px clamp(24px, 12vw, 190px); border-radius: 12px; }
  .newsletter__form { grid-template-columns: 1fr auto; gap: 0; position: relative; }
  .newsletter__field input { border-radius: 999px; min-height: 56px; padding-right: 190px; }
  .newsletter__form .btn-gold { position: absolute; right: 4px; top: 4px; min-height: 48px; border-radius: 999px; padding: 0 30px; }
}

/* Rodapé */
body.site .footer-principal { margin-top: 0; padding: 30px 0 18px; background: transparent; }
body.site .footer-principal::before { display: none; }
.footer-sunset__row { display: grid; gap: 22px; justify-items: center; text-align: center; padding-bottom: 22px; border-bottom: 1px solid rgba(216, 196, 154,.14); }
.footer-sunset__brand { display: flex; align-items: center; gap: 16px; }
.footer-sunset__brand p { margin: 0; font-size: 12px; line-height: 1.35; color: rgba(255,255,255,.7); max-width: 16ch; text-align: left; }
.footer-sunset .footer-logo { height: 44px; }
.footer-sunset__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 0; }
.footer-sunset__links a { color: rgba(255,255,255,.82); font-size: 13px; text-decoration: none; padding: 4px 14px; line-height: 1.2; border-left: 1px solid rgba(216, 196, 154,.28); }
.footer-sunset__links a:first-child { border-left: 0; }
.footer-sunset__links a:hover { color: var(--sunset-champagne); }
body.site .footer-social { gap: 16px; }
body.site .social-icon { width: 32px; height: 32px; border: 0; color: #FFFFFF; font-size: 20px; background: none; }
body.site .social-icon:hover { color: var(--sunset-champagne); background: none; }
.footer-sunset__bottom { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 24px; padding-top: 16px; text-align: center; }
.footer-sunset__bottom .copyright { font-size: 12px; letter-spacing: .02em; color: rgba(255,255,255,.7); }
.footer-sunset__extra { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; font-size: 12px; }
.footer-sunset__extra a { color: rgba(255,255,255,.62); text-decoration: none; } .footer-sunset__extra a:hover { color: var(--sunset-champagne); }
.footer-sunset__extra i { color: var(--sunset-gold); margin-right: 4px; }
@media (min-width: 1024px) {
  .footer-sunset__row { grid-template-columns: auto 1fr auto; justify-items: stretch; text-align: left; gap: 24px; }
  .footer-sunset__links { justify-content: center; }
  .footer-sunset__bottom { justify-content: space-between; text-align: left; }
}

/* ── Detalhe do filme ──────────────────────────────────────────────────────── */
body.page-detalhes-filme .film-page { margin-top: calc(var(--header-h) * -1); }
.film-page { position: relative; isolation: isolate; padding-top: var(--header-h); }
.film-page__bg { position: absolute; top: 0; left: 0; right: 0; height: 620px; z-index: -1; overflow: hidden; }
.film-page__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; opacity: .42; filter: saturate(.85); }
.film-page__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12, 9, 7,.55), rgba(12, 9, 7,.35) 40%, #080706 100%), linear-gradient(90deg, rgba(12, 9, 7,.85), rgba(12, 9, 7,.1) 60%, rgba(12, 9, 7,.6)); }
.breadcrumb-sunset ol { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; padding: 0; font-size: 13px; color: rgba(255,255,255,.9); }
.breadcrumb-sunset li + li::before { content: "/"; margin-right: 8px; color: rgba(255,255,255,.55); }
.breadcrumb-sunset a { color: var(--sunset-gold); text-decoration: none; } .breadcrumb-sunset a:hover { color: var(--sunset-champagne); }
.back-link { display: none; align-items: center; gap: 10px; min-height: 40px; margin-bottom: 8px; color: #FFFFFF; text-decoration: none; font-size: 14px; }
.film-detail { display: grid; grid-template-columns: minmax(0, 118px) minmax(0, 1fr); grid-template-areas: "poster head" "body body"; gap: 18px 14px; align-items: start; }
.film-detail__poster { grid-area: poster; }
.film-detail__head { grid-area: head; min-width: 0; }
.film-detail__body { grid-area: body; min-width: 0; display: grid; gap: 20px; }
body.site .poster-frame { position: relative; aspect-ratio: 2/3; border-radius: 6px; overflow: hidden; background: #1A120D; box-shadow: 0 30px 60px -28px rgba(0,0,0,.95), 0 0 34px -12px rgba(184, 146, 74,.45); }
.poster-frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.poster-frame .poster-ph { font-size: 40px; }
.film-detail__title { margin: 0; font-family: var(--serif); font-weight: 500; font-size: clamp(30px, 1.2rem + 4vw, 72px); line-height: 1; color: #FFFFFF; overflow-wrap: anywhere; }
body.site h1.film-detail__title { letter-spacing: 0 !important; }
.film-detail__orig { margin: 6px 0 10px; font-size: 13px; color: rgba(255,255,255,.82); }
.meta-strip { margin: 12px 0 0; padding: 0; display: grid; gap: 4px; background: none; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.meta-strip div { margin: 0; }
.meta-strip dd { margin: 0; font-size: 14px; color: #FFFFFF; }
.meta-strip dt { display: none; }
.meta-strip__rating { margin-bottom: 8px !important; }
.meta-strip__item:nth-child(2) dd, .meta-strip__item:nth-child(3) dd { display: inline; }
.film-synopsis h2, .credits-strip dt { margin: 0 0 6px; font-size: 16px; font-weight: 600; color: #FFFFFF; letter-spacing: 0; text-transform: none; }
body.site .film-synopsis h2 { font-size: 16px !important; }
.film-synopsis p { margin: 0; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.9); max-width: 70ch; }
.film-synopsis.is-collapsible:not(.is-open) p { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.link-more { margin-top: 6px; background: none; border: 0; padding: 6px 0; color: var(--sunset-gold); font-size: 14px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.link-more i { font-size: 10px; margin-left: 4px; transition: transform .2s; } .is-open .link-more i { transform: rotate(180deg); }
.credits-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.credits-strip div { padding: 0 12px; border-left: 1px solid rgba(216, 196, 154,.2); min-width: 0; }
.credits-strip div:first-child { padding-left: 0; border-left: 0; }
.credits-strip dt { font-size: 12.5px; margin-bottom: 2px; }
.credits-strip dd { margin: 0; font-size: 12px; line-height: 1.4; color: rgba(255,255,255,.85); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.trailer-card {
  position: relative; display: grid; place-items: center; align-content: center; gap: 10px; width: 100%; aspect-ratio: 16 / 5; min-height: 120px; padding: 0; overflow: hidden; cursor: pointer;
  border-radius: 8px; border: 1px solid rgba(216, 196, 154,.22); background: #0E0B09; color: #FFFFFF; isolation: isolate; font: inherit;
}
.trailer-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: .75; transition: transform .4s var(--ease); }
.trailer-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 90% at 50% 50%, rgba(12, 9, 7,.25), rgba(12, 9, 7,.78)); }
.trailer-card__play { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; border: 1.5px solid #D8C49A; background: rgba(12, 9, 7,.45); font-size: 18px; color: #FFFFFF; box-shadow: 0 0 22px -4px rgba(184, 146, 74,.6); transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.trailer-card__play i { margin-left: 3px; }
.trailer-card__label { font-size: 11.5px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.trailer-card:hover .trailer-card__play, .trailer-card:focus-visible .trailer-card__play { transform: scale(1.06); box-shadow: 0 0 30px -2px rgba(184, 146, 74,.8); }
.trailer-card:hover img { transform: scale(1.02); }
.film-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.film-note { margin-top: 30px; padding: 22px; }
.film-note p { margin: 8px 0 0; color: rgba(255,255,255,.88); }

@media (max-width: 1023px) {
  .breadcrumb-sunset { display: none; }
  .back-link { display: inline-flex; }
}
@media (min-width: 560px) and (max-width: 1023px) { .film-detail { grid-template-columns: minmax(0, 190px) minmax(0, 1fr); gap: 22px; } }
@media (min-width: 1024px) {
  .film-detail { grid-template-columns: minmax(0, 29%) minmax(0, 1fr); grid-template-areas: "poster head" "poster body"; gap: 16px 32px; }
  .film-detail__poster { grid-row: 1 / span 2; }
  body.site .poster-frame { border-radius: 8px; }
  .film-detail__orig { margin: 8px 0 22px; font-size: 14px; }
  .meta-strip {
    display: flex; align-items: stretch; margin: 0; padding: 14px 18px;
    background: linear-gradient(180deg, rgba(42, 27, 19,.55), rgba(16, 12, 9,.72)); border: 1px solid rgba(184, 146, 74,.6); border-radius: 10px;
    box-shadow: inset 0 1px 0 rgba(216, 196, 154,.08), 0 0 24px -12px rgba(184, 146, 74,.4); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  }
  .meta-strip > div { padding: 0 28px; border-left: 1px solid rgba(216, 196, 154,.22); display: flex; flex-direction: column; justify-content: center; }
  .meta-strip > div:first-child { padding-left: 0; border-left: 0; }
  .meta-strip__rating { margin: 0 !important; padding-right: 22px !important; }
  .meta-strip dt { display: block; font-size: 12px; color: rgba(255,255,255,.72); }
  .meta-strip dd { font-size: 15px; }
  .meta-strip__pre { display: none; }
  .film-detail__body { gap: 18px; }
  .credits-strip div { padding: 0 24px; }
  .credits-strip dd { font-size: 14px; }
  .credits-strip dt { font-size: 14px; }
  .trailer-card { aspect-ratio: auto; min-height: 124px; height: clamp(124px, 12vw, 170px); }
}

/* Escolha sua sessão */
.sessions { margin-top: 28px; }
.sessions__head { display: flex; align-items: center; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid rgba(216, 196, 154,.12); }
.sessions__head p { margin: 4px 0 0; font-size: 14px; color: rgba(255,255,255,.82); }
.sessions__head .btn-glass { border-color: rgba(184, 146, 74,.7); }
.date-cards { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; padding: 6px 2px 12px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; }
.date-cards::-webkit-scrollbar { display: none; }
.date-card {
  flex: 0 0 auto; min-width: 76px; min-height: 52px; padding: 7px 12px; display: grid; place-items: center; gap: 1px; scroll-snap-align: start; cursor: pointer;
  border-radius: 8px; border: 1px solid rgba(216, 196, 154,.22); background: rgba(16, 12, 9,.72); color: #FFFFFF; font: inherit; transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
.date-card strong { font-size: 15px; font-weight: 600; line-height: 1.15; }
.date-card span { font-size: 13px; line-height: 1.15; color: rgba(255,255,255,.9); }
.date-card:hover { border-color: rgba(216, 196, 154,.45); }
.date-card.is-active { border-color: #B8924A; background: radial-gradient(120% 130% at 50% 120%, rgba(184, 146, 74,.3), transparent 60%), linear-gradient(180deg, rgba(42, 27, 19,.85), rgba(16, 12, 9,.9)); box-shadow: inset 0 1px 0 rgba(255,255,255,.25), inset 0 0 16px rgba(184, 146, 74,.22), 0 0 20px -6px rgba(184, 146, 74,.5); }
@media (min-width: 1024px) {
  .date-cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 12px; margin-inline: 0; padding-inline: 0; overflow: visible; }
  .date-card { min-height: 60px; } .date-card strong { font-size: 17px; } .date-card span { font-size: 15px; }
}
.rooms { display: grid; gap: 12px; margin-top: 4px; }
.rooms__unit { margin: 8px 0 0; font-size: 14px; font-weight: 600; color: var(--sunset-champagne); }
.room { display: grid; gap: 12px; padding: 14px; }
.room__info strong { display: block; font-size: 18px; font-weight: 500; color: #FFFFFF; line-height: 1.2; }
.room__info span { font-size: 13px; color: rgba(255,255,255,.78); }
.room__times { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 359px) { .room__times { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body.site .room .showtime {
  min-width: 0; min-height: 56px; border-radius: 6px; border: 1px solid rgba(184, 146, 74,.85); color: #FFFFFF; font-size: 16px; font-weight: 600;
  background: linear-gradient(180deg, rgba(42, 27, 19,.6), rgba(16, 12, 9,.8)); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 16px -8px rgba(184, 146, 74,.5); -webkit-backdrop-filter: none; backdrop-filter: none;
}
body.site .room .showtime small { font-size: 12.5px; letter-spacing: 0; text-transform: none; font-weight: 400; color: rgba(255,255,255,.85); margin-top: 3px; }
body.site .room a.showtime:hover, body.site .room a.showtime:focus-visible { color: #fff; transform: translateY(-2px); border-color: #D8C49A; background: radial-gradient(120% 130% at 50% 120%, rgba(184, 146, 74,.32), transparent 60%), linear-gradient(180deg, rgba(42, 27, 19,.9), rgba(16, 12, 9,.92)); box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 0 22px -6px rgba(184, 146, 74,.6); }
body.site .room a.showtime:hover small { color: #FFFFFF; }
body.site .room .showtime.is-disabled, body.site .room .showtime.is-nolink { border-color: rgba(216, 196, 154,.18); box-shadow: none; opacity: .6; }
@media (min-width: 1024px) {
  .room { grid-template-columns: minmax(180px, 26%) 1fr; align-items: center; padding: 18px 24px; }
  .room__info strong { font-size: 22px; } .room__info span { font-size: 15px; }
  .room__times { grid-template-columns: repeat(auto-fill, minmax(150px, 190px)); gap: 22px; }
  body.site .room .showtime { min-height: 62px; font-size: 17px; }
}
.cast-sec { margin-top: 36px; }
.cast-sec .cast-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 18px 12px; margin-top: 16px; }
.cast-sec .cast-card { text-align: center; }
.cast-sec .cast-photo { width: 72px; height: 72px; border-radius: 50%; overflow: hidden; margin: 0 auto 8px; display: grid; place-items: center; background: #1A120D !important; border: 1px solid rgba(216, 196, 154,.25); color: rgba(216, 196, 154,.5); }
.cast-sec .cast-photo img { width: 100%; height: 100%; object-fit: cover; }
.cast-sec .cast-name { font-size: 12.5px; font-weight: 600; color: #FFFFFF; } .cast-sec .cast-char { font-size: 11.5px !important; color: rgba(255,255,255,.6); }
.modal-overlay { position: fixed; inset: 0; z-index: 10002; display: none; align-items: center; justify-content: center; padding: 16px; background: rgba(12, 9, 7,.88); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.modal-content { position: relative; width: 100%; max-width: 960px; background: #000; border-radius: 10px; overflow: hidden; border: 1px solid rgba(184, 146, 74,.55); box-shadow: 0 30px 70px -20px rgba(0,0,0,.9); }
.modal-content iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.modal-close { position: absolute; top: 10px; right: 10px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(216, 196, 154,.4); background: rgba(12, 9, 7,.7); color: #FFFFFF; font-size: 24px; line-height: 1; cursor: pointer; }

/* Blocos legados da home/detalhe (blog, FAQ) no tema escuro */
body.site .home-blog-head h2, body.site .home-faq-title, body.site .filme-blog h2 { font-family: var(--serif); font-weight: 500 !important; font-size: clamp(26px, 1.4rem + .8vw, 34px) !important; color: #FFFFFF !important; }
body.site .home-blog-head h2 i, body.site .home-faq-title i, body.site .filme-blog h2 i { display: none; }
body.site .hb-body h3 a, body.site .fb-tit, body.site .faq-item summary { color: #FFFFFF !important; }
body.site .hb-body p, body.site .faq-answer { color: rgba(255,255,255,.75) !important; }
body.site .home-blog-all, body.site .hb-leia { color: var(--sunset-champagne) !important; }
body.site .fb-card { background: rgba(16, 12, 9,.7) !important; border-color: rgba(216, 196, 154,.18) !important; }
body.site .home-blog, body.site .home-faq { max-width: var(--container); margin: 0 auto; }


/* ajustes de fidelidade */
body.site h1.display-title { font-size: clamp(44px, 2.2rem + 3.2vw, 80px) !important; line-height: .98 !important; font-weight: 400 !important; max-width: 7.4em; }
.display-title__l1 { display: block; }
@media (min-width: 768px) { .display-title__l1 { white-space: nowrap; } }
@media (max-width: 767px) { body.site h1.display-title { font-size: clamp(42px, 12.8vw, 58px) !important; } .hero-sunset__content { max-width: none; width: 100%; } }
body.site h1.film-detail__title { font-size: clamp(30px, 1.2rem + 4vw, 72px) !important; font-weight: 500 !important; line-height: 1.02 !important; }
.home-sec__head { flex-wrap: nowrap; }
@media (max-width: 639px) { .home-sec__head .link-arrow { font-size: 12px; padding-bottom: 12px; } .tabs-serif { gap: 22px; } .tabs-serif + .link-arrow { display: none; } }
.newsletter__title span { display: block; }
.film-detail { grid-template-rows: auto 1fr; }
@media (min-width: 1024px) {
  .date-cards { display: flex; gap: 12px; }
  .date-card { flex: 1 1 0; max-width: 200px; }
}
@media (max-width: 1023px) {
  .meta-strip { display: flex; flex-wrap: wrap; align-items: baseline; row-gap: 4px; }
  .meta-strip > div { flex: 0 0 100%; }
  .meta-strip > .meta-strip__item--genero, .meta-strip > .meta-strip__item--duracao { flex: 0 0 auto; }
  .meta-strip__item--genero + .meta-strip__item--duracao::before { content: "|"; margin: 0 10px; color: rgba(255,255,255,.5); }
}
@media (max-width: 1023px) {
  .footer-sunset__brand p { display: none; }
  .footer-sunset__links { gap: 10px 20px; max-width: 360px; }
  .footer-sunset__links a { border-left: 0; padding: 4px 0; }
}


/* ── Programação completa ──────────────────────────────────────────────────── */
body.site .site-nav a[aria-current="page"] { color: #B8924A; }
body.page-programacao .prog-page { margin-top: calc(var(--header-h) * -1); padding-top: var(--header-h); position: relative; isolation: isolate; }
.prog-page::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 520px; z-index: -1; pointer-events: none;
  background: radial-gradient(520px 320px at 78% 12%, rgba(184, 146, 74,.16), transparent 70%), radial-gradient(700px 380px at 60% 0%, rgba(184, 146, 74,.14), transparent 70%); }
.prog-hero { display: grid; gap: 14px; align-items: end; padding: 8px 0 18px; }
.prog-hero__title { margin: 0; font-family: var(--serif); font-weight: 500; font-size: clamp(30px, 1.3rem + 3.4vw, 64px); line-height: 1.02; color: #FFFFFF; }
body.site h1.prog-hero__title { font-size: clamp(30px, 1.3rem + 3.4vw, 64px) !important; font-weight: 500 !important; letter-spacing: 0 !important; line-height: 1.02 !important; }
.prog-hero__lead { margin: 6px 0 0; font-size: clamp(13px, .8rem + .35vw, 19px); color: rgba(255,255,255,.9); }
.prog-hero__price { justify-self: start; min-height: 40px; padding: 0 18px; font-size: 11px; }
@media (min-width: 1024px) { .prog-hero { grid-template-columns: 1fr auto; padding-bottom: 22px; } .prog-hero__price { min-height: 46px; padding: 0 24px; font-size: 12px; } }

.prog-layout { display: grid; gap: 22px; align-items: start; }
@media (min-width: 1024px) { .prog-layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 18px; } }
@media (min-width: 1280px) { .prog-layout { grid-template-columns: minmax(0, 1fr) 300px; } }
.prog-main { min-width: 0; }

.prog-toolbar { position: sticky; top: var(--header-h); z-index: 20; display: grid; gap: 12px; padding: 10px 0 12px; margin-bottom: 4px;
  background: linear-gradient(180deg, rgba(12, 9, 7,.94) 70%, rgba(12, 9, 7,0)); }
@supports (backdrop-filter: blur(1px)) { .prog-toolbar { background: linear-gradient(180deg, rgba(12, 9, 7,.8) 70%, rgba(12, 9, 7,0)); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); } }

.prog-dates { position: relative; display: flex; align-items: center; gap: 8px; min-width: 0; }
.prog-dates .date-cards { flex: 1; min-width: 0; display: flex; overflow-x: auto; margin-inline: 0; padding: 4px 2px; scroll-behavior: smooth; }
.prog-dates .date-card { text-decoration: none; flex: 0 0 auto; }
.prog-dates .date-card.is-empty { opacity: .5; }
.prog-dates__next { flex-shrink: 0; width: 34px; height: 44px; border: 0; background: none; color: #FFFFFF; font-size: 18px; cursor: pointer; }
.prog-dates__next:hover { color: var(--sunset-champagne); }
@media (min-width: 1024px) { .prog-dates .date-cards { display: flex; gap: 12px; } .prog-dates .date-card { flex: 0 0 calc((100% - 5 * 12px) / 6); max-width: none; min-height: 56px; } }
.prog-filter { position: relative; display: flex; align-items: center; width: 100%; }
.prog-filter i { position: absolute; left: 14px; color: rgba(255,255,255,.9); font-size: 13px; pointer-events: none; }
.prog-filter select { appearance: none; -webkit-appearance: none; width: 100%; min-height: 44px; padding: 0 40px 0 42px; border-radius: 6px; color: #FFFFFF; font-size: 14px; cursor: pointer; border: 1px solid rgba(216, 196, 154,.28);
  background: rgba(16, 12, 9,.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23F4EEE6' stroke-width='1.5' d='M2 4l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center; }
.prog-filter select:focus { outline: none; border-color: var(--sunset-gold); box-shadow: 0 0 0 3px rgba(184, 146, 74,.2); }
.prog-filter select option { background: #1A120D; color: #FFFFFF; }
@media (min-width: 1024px) { .prog-filter { width: 260px; } }

.prog-list { display: grid; gap: 14px; }
.prog-unit { margin: 8px 0 0; font-size: 15px; color: var(--sunset-champagne); font-weight: 600; }
.prog-movie {
  display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-areas: "poster head" "rooms rooms" "more more"; gap: 12px 12px; padding: 8px 10px 10px;
  border: 1px solid rgba(184, 146, 74,.62); border-radius: 8px; box-shadow: inset 0 1px 0 rgba(216, 196, 154,.08), 0 0 26px -16px rgba(184, 146, 74,.5), 0 24px 44px -30px rgba(0,0,0,.9);
}
.prog-movie[hidden] { display: none !important; }
.prog-movie__poster { grid-area: poster; display: block; align-self: start; border-radius: 4px; }
.prog-movie__head { grid-area: head; min-width: 0; padding-top: 4px; }
.prog-movie__title { margin: 0 0 8px; font-family: var(--serif); font-weight: 500; font-size: 19px; line-height: 1.1; }
body.site h2.prog-movie__title { font-size: clamp(19px, .9rem + 1.6vw, 34px) !important; font-weight: 500 !important; letter-spacing: 0 !important; }
.prog-movie__title a { color: #FFFFFF; text-decoration: none; } .prog-movie__title a:hover { color: var(--sunset-champagne); }
.prog-movie__meta { display: flex; align-items: flex-start; gap: 10px; }
.prog-movie__meta .rating--box { min-width: 28px; height: 28px; font-size: 14px; flex-shrink: 0; }
.prog-movie__meta ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 2px 0; font-size: 12px; color: rgba(255,255,255,.85); line-height: 1.35; }
.prog-movie__meta li { display: inline; }
.prog-movie__meta li:nth-child(1)::after { content: "|"; margin: 0 8px; color: rgba(255,255,255,.4); }
.prog-movie__meta li:nth-child(n+3) { flex-basis: 100%; }
.prog-movie__rooms { grid-area: rooms; display: grid; }
.prog-room { display: grid; gap: 8px; padding: 10px 0; border-top: 1px solid rgba(216, 196, 154,.14); }
.prog-room:first-child { border-top-color: rgba(216, 196, 154,.22); }
.prog-room__label { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.prog-room__label strong { font-weight: 600; color: #FFFFFF; }
.prog-room__label span { color: #B8924A; font-size: 12.5px; }
.prog-room__label span::before { content: "•"; margin-right: 8px; color: rgba(255,255,255,.6); }
.prog-room__times { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
body.site .prog-room .showtime {
  min-width: 0; min-height: 44px; padding: 5px 8px; border-radius: 5px; border: 1px solid rgba(184, 146, 74,.85); color: #FFFFFF; font-size: 14px; font-weight: 600;
  background: linear-gradient(180deg, rgba(42, 27, 19,.6), rgba(16, 12, 9,.8)); box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 14px -8px rgba(184, 146, 74,.5); -webkit-backdrop-filter: none; backdrop-filter: none;
}
body.site .prog-room .showtime small { font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 400; color: rgba(255,255,255,.85); margin-top: 2px; }
body.site .prog-room a.showtime:hover, body.site .prog-room a.showtime:focus-visible { color: #fff; transform: translateY(-2px); border-color: #D8C49A; background: radial-gradient(120% 130% at 50% 120%, rgba(184, 146, 74,.32), transparent 60%), linear-gradient(180deg, rgba(42, 27, 19,.9), rgba(16, 12, 9,.92)); box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 0 22px -6px rgba(184, 146, 74,.6); }
body.site .prog-room a.showtime:hover small { color: #FFFFFF; }
body.site .prog-room .showtime.is-disabled, body.site .prog-room .showtime.is-nolink { border-color: rgba(216, 196, 154,.2); box-shadow: none; opacity: .6; }
.prog-movie__more { grid-area: more; justify-self: start; display: inline-flex; align-items: center; gap: 8px; min-height: 32px; font-size: 12px; color: rgba(255,255,255,.9); text-decoration: none; }
.prog-movie__more i { font-size: 15px; color: #FFFFFF; }
.prog-movie__more:hover { color: var(--sunset-champagne); }
@media (min-width: 640px) {
  .prog-movie { grid-template-columns: 150px minmax(0, 1fr); grid-template-areas: "poster head" "poster rooms" "poster more"; grid-template-rows: auto auto 1fr; gap: 0 20px; padding: 10px 16px 12px 10px; }
  .prog-movie__head { padding: 10px 0 14px; border-bottom: 1px solid rgba(216, 196, 154,.2); }
  .prog-room:first-child { border-top: 0; }
  .prog-movie__more { align-self: end; margin-top: 6px; }
}
@media (min-width: 1024px) {
  .prog-movie { grid-template-columns: 196px minmax(0, 1fr); gap: 0 26px; }
  .prog-movie__meta { align-items: center; gap: 16px; }
  .prog-movie__meta .rating--box { min-width: 34px; height: 34px; font-size: 17px; }
  .prog-movie__meta ul { font-size: 14px; flex-wrap: wrap; gap: 4px 0; }
  .prog-movie__meta li { display: inline-flex; align-items: center; }
  .prog-movie__meta li:nth-child(n+3) { flex-basis: auto; }
  .prog-movie__meta li:not(:last-child)::after { content: ""; display: inline-block; width: 1px; height: 18px; margin: 0 16px; background: rgba(255,255,255,.35); }
  .prog-room { grid-template-columns: 136px 1fr; align-items: center; gap: 12px; padding: 12px 0; }
  .prog-room__label { font-size: 15px; flex-wrap: wrap; }
  .prog-room__label span { font-size: 14px; }
  .prog-room__times { grid-template-columns: repeat(auto-fill, minmax(92px, 96px)); gap: 10px; }
  body.site .prog-room .showtime { min-height: 46px; font-size: 15px; }
}
@media (min-width: 1280px) { .prog-room__times { grid-template-columns: repeat(auto-fill, minmax(96px, 106px)); } }

.prog-aside { display: grid; gap: 14px; align-content: start; min-width: 0; }
@media (min-width: 1024px) { .prog-aside { position: sticky; top: calc(var(--header-h) + 8px); margin-top: 10px; } }
.aside-card { position: relative; border-radius: 8px; overflow: hidden; }
.aside-card.glass { padding: 16px 18px; border-color: rgba(216, 196, 154,.2); }
.aside-local__head { display: flex; align-items: flex-start; gap: 12px; }
.aside-local__head > i { font-size: 30px; color: #C79A52; margin-top: 2px; }
.aside-card h2 { margin: 0; font-family: var(--serif); font-weight: 500; font-size: 20px; line-height: 1.15; color: #FFFFFF; }
body.site .aside-card h2 { font-size: 20px !important; font-weight: 500 !important; letter-spacing: 0 !important; }
.aside-local__head p { margin: 2px 0 0; font-size: 12.5px; color: rgba(255,255,255,.8); }
.aside-local__desc { margin: 10px 0 0; font-size: 13px; color: rgba(255,255,255,.85); }
.aside-local__list { list-style: none; margin: 10px 0 14px; padding: 0; display: grid; gap: 6px; font-size: 13px; color: rgba(255,255,255,.85); }
.aside-local__list a { color: inherit; }
.aside-local .btn { width: 100%; }
.aside-promo { display: flex; align-items: flex-end; min-height: 170px; text-decoration: none; color: #FFFFFF; border: 1px solid rgba(184, 146, 74,.55); box-shadow: 0 0 24px -14px rgba(184, 146, 74,.4); isolation: isolate; }
.aside-promo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .35s var(--ease); }
.aside-promo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(12, 9, 7,.1), rgba(12, 9, 7,.88) 62%); }
.aside-promo--arte::after { background: linear-gradient(180deg, rgba(12, 9, 7,0) 55%, rgba(12, 9, 7,.6)); }
.aside-promo__body { margin-left: auto; width: 60%; display: grid; gap: 6px; justify-items: start; padding: 14px; }
.aside-promo--arte .aside-promo__body { width: auto; justify-items: end; }
.aside-promo__body strong { font-family: var(--serif); font-size: 22px; font-weight: 500; line-height: 1.05; }
.aside-promo__body small { font-size: 12px; color: rgba(255,255,255,.85); line-height: 1.35; }
@media (hover: hover) { .aside-promo:hover img { transform: scale(1.02); } }
.aside-news h2 { font-size: 16px !important; margin-bottom: 12px !important; }
.aside-news form { display: grid; gap: 10px; }
.aside-news .newsletter__field input { min-height: 44px; border-radius: 6px; font-size: 13px; }
.aside-news .btn { min-height: 44px; border-radius: 999px; }
@media (min-width: 640px) and (max-width: 1023px) { .prog-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.prog-page .breadcrumb-sunset { display: block; }
.aside-news .newsletter__field input { padding-right: 14px !important; border-radius: 6px !important; min-height: 44px !important; }
@media (min-width: 1024px) {
  .prog-movie { grid-template-columns: 176px minmax(0, 1fr); }
  .prog-room { grid-template-columns: 190px 1fr; }
  .prog-room__label { overflow: hidden; } .prog-room__label span { overflow: hidden; text-overflow: ellipsis; }
  .prog-room__label { flex-wrap: nowrap; white-space: nowrap; }
}


/* ── Fundo cinematográfico (Home, Programação, Detalhe) e pipoca da newsletter ── */
html:has(body.page-index, body.page-programacao, body.page-detalhes-filme, body.page-promocoes, body.page-central-de-atendimento, body.page-meia-entrada) { background: #0B0806; }
body.site.page-index, body.site.page-programacao, body.site.page-detalhes-filme, body.site.page-promocoes, body.site.page-central-de-atendimento, body.site.page-meia-entrada { background: transparent !important; }
body.site.page-index::before, body.site.page-programacao::before, body.site.page-detalhes-filme::before, body.site.page-promocoes::before, body.site.page-central-de-atendimento::before, body.site.page-meia-entrada::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-color: #0B0806;
  background-image:
    linear-gradient(180deg, rgba(12, 9, 7,.35) 0%, rgba(12, 9, 7,.18) 40%, rgba(12, 9, 7,.4) 100%),
    url("/assets/images/background-sunset.png");
  background-image:
    linear-gradient(180deg, rgba(12, 9, 7,.35) 0%, rgba(12, 9, 7,.18) 40%, rgba(12, 9, 7,.4) 100%),
    image-set(url("/assets/images/background-sunset.webp") type("image/webp"), url("/assets/images/background-sunset.png") type("image/png"));
  background-size: cover; background-position: center; background-repeat: no-repeat;
}
/* seções sem fundo próprio deixam o fundo aparecer; o hero do filme mantém a imagem dele */
body.site.page-index .hero-sunset__bg { background: transparent; }
body.site.page-index .hero-sunset__bg:not(:has(img)) { background: radial-gradient(70% 90% at 70% 30%, rgba(184, 146, 74,.18), transparent 70%); }
.newsletter { isolation: isolate; }
.newsletter::before { display: none; }
.newsletter__pipoca { position: absolute; z-index: -1; pointer-events: none; left: 6px; top: 4px; width: 150px; line-height: 0; }
.newsletter__pipoca img { display: block; width: 100%; height: auto; }
@media (max-width: 899px) { .newsletter { padding-top: 96px; } }
@media (min-width: 900px) {
  .newsletter { padding-left: clamp(210px, 19vw, 270px); min-height: 118px; }
  .newsletter__pipoca { right: auto; top: auto; left: 8px; bottom: 0; width: clamp(180px, 17vw, 240px); }
}


/* ══ QA de fidelidade (medidas normalizadas dos mockups) + estados de interação ══ */
:root {
  --container: 1440px;
  --gutter: clamp(16px, 5vw, 72px);
  --dur-hover: 220ms;
  --gold-frame: rgba(184, 146, 74,.82);
  --gold-frame-hover: rgba(184, 146, 74,.95);
  --gold-glow: 0 0 22px -8px rgba(184, 146, 74,.55);
  --glass-fill: linear-gradient(180deg, rgba(42, 27, 19,.55), rgba(16, 12, 9,.72));
  --tap: 44px;
}
.hide-sm { display: none; } @media (min-width: 640px) { .hide-sm { display: inline; } }

/* Header */
body.site .site-nav a, body.site .nav-dd > button { font-size: 15px; padding: 12px 2px; transition: color var(--dur-hover) var(--ease); }
body.site .site-nav a::after { left: 2px; right: 2px; bottom: 4px; }
body.site .site-nav a:not([aria-current]):hover::after { opacity: .55; background: linear-gradient(90deg, transparent, rgba(216, 196, 154,.8), transparent); }
body.site .site-nav a[aria-current="page"]::after { height: 2px; bottom: 2px; opacity: 1; transform: none; background: linear-gradient(90deg, rgba(184, 146, 74,.2), #B8924A 50%, rgba(184, 146, 74,.2)); }
.header-search { width: 44px; height: 44px; border: 1px solid rgba(216, 196, 154,.35); background: rgba(16, 12, 9,.4); }
.header-search:hover { border-color: var(--gold-frame-hover); color: #fff; }
@media (min-width: 1024px) {
  body.site .site-nav { margin-left: clamp(24px, 4vw, 60px); margin-right: auto; }
  body.site .site-nav ul { gap: clamp(20px, 2.6vw, 40px); }
  .header-search { width: 50px; height: 50px; font-size: 16px; }
  .header-cta.btn-gold { min-height: 52px; padding: 0 24px; font-size: 11.5px; }
}
@media (min-width: 1280px) { .site-header__bar { padding-inline: calc(var(--gutter) + 26px); } }

/* Hero (desktop mais compacto, como o mockup) */
.hero-sunset__inner { min-height: clamp(360px, 30vw, 460px); padding-block: 28px 34px; }
body.site h1.display-title { font-size: clamp(46px, 2.1rem + 3.1vw, 76px) !important; line-height: .94 !important; margin: 12px 0 14px; }
.hero-sunset__lead { font-size: clamp(16px, .95rem + .3vw, 19px); margin-bottom: 30px; }
.hero-sunset__actions .btn { min-height: 56px; min-width: 318px; font-size: 12.5px; letter-spacing: .1em; }
.hero-sunset__film .rating--box { min-width: 40px; height: 40px; font-size: 20px; }
@media (max-width: 767px) {
  body.site h1.display-title { font-size: clamp(40px, 13.4vw, 58px) !important; max-width: none; }
  .display-title__l1 { white-space: normal; }
  .hero-sunset__lead { font-size: 17px; max-width: 26ch; line-height: 1.35; text-wrap: balance; }
  .hero-sunset__inner { padding-block: 72px 22px; }
  .hero-sunset__film--mobile strong { font-size: 19px; }
  .hero-sunset__film--mobile small { font-size: 15px; }
  .hero-sunset__actions .btn { min-height: 54px; font-size: 13px; }
}

/* Barra de ação */
@media (min-width: 768px) {
  .action-bar { grid-template-columns: minmax(0, 533fr) minmax(0, 320fr) minmax(0, 347fr); gap: 18px; padding: 16px; border-color: rgba(216, 196, 154,.3); }
  .action-bar__select select, .action-bar .btn { min-height: 58px; }
}

/* Seções da home */
.home-sec { padding-block: 26px 4px; }
.home-sec__head { margin-bottom: 14px; }
.home-prog-cta { margin-top: 22px; }
@media (min-width: 640px) { .home-prog-cta { display: none; } }
@media (min-width: 1024px) { .poster-grid-5 { gap: 26px 26px; } }

/* Cards de cartaz: moldura dourada visível em repouso (mockup) */
body.site .poster-card__img, body.site .filme-card, body.site .poster-frame { --frame-base: var(--gold-frame); }
body.site .poster-card__img { border-radius: 6px; box-shadow: 0 22px 40px -22px rgba(0,0,0,.95), var(--gold-glow); }
body.site .poster-card__tag { top: 8px; left: 8px; font-size: 11px; padding: 6px 10px; border-radius: 4px; background: rgba(16, 12, 9,.62); border-color: rgba(216, 196, 154,.45); }
.poster-card__date { top: 8px; font-size: 13px; padding: 5px 6px; }
body.site .poster-card__title { font-size: 16px; font-weight: 500; }
body.site .poster-card__sub { font-size: 14px; }
body.site .poster-card__rating { min-width: 38px; height: 38px; font-size: 20px; border-radius: 5px; }
.poster-card__info { gap: 12px; }
@media (max-width: 639px) { body.site .poster-card__title { font-size: 14.5px; } body.site .poster-card__sub { font-size: 13px; } body.site .poster-card__rating { min-width: 30px; height: 30px; font-size: 16px; } body.site .poster-card__tag { font-size: 10.5px; padding: 5px 8px; } }

/* Reflexo da luz: só aparece no hover (repouso = mockup) */
body.site .poster-card__img::before, body.site .filme-card::before, body.site .poster-frame::before { animation-play-state: paused; }
body.site .poster-card__img::before, body.site .filme-card::before { background:
    conic-gradient(from var(--frame-ang), transparent 0deg, transparent 334deg, rgba(184, 146, 74,0) 336deg, var(--frame-beam-2) 347deg, var(--frame-beam) 355deg, rgba(216, 196, 154,0) 360deg) padding-box,
    linear-gradient(var(--frame-base), var(--frame-base)); }
@property --beam-a { syntax: "<number>"; inherits: true; initial-value: 0; }
body.site .poster-card__img, body.site .filme-card, body.site .poster-frame { --frame-beam: rgba(255,255,255, calc(var(--beam-a) * .98)); --frame-beam-2: rgba(184, 146, 74, calc(var(--beam-a) * .9)); transition: --beam-a .3s var(--ease), box-shadow var(--dur-hover) var(--ease); }

/* Reflexo sobre o vidro seguindo o cursor */
@property --glare { syntax: "<number>"; inherits: true; initial-value: 0; }
.fx-glare { --mx: 50%; --my: 30%; position: relative; }
.fx-glare > .fx-glare__layer { position: absolute; inset: 0; z-index: 4; pointer-events: none; border-radius: inherit; opacity: var(--glare); transition: opacity var(--dur-hover) var(--ease);
  background: radial-gradient(260px circle at var(--mx) var(--my), rgba(255,255,255,.16), rgba(255,255,255,.05) 40%, transparent 70%); }

@media (hover: hover) and (pointer: fine) {
  body.site .poster-card:hover { transform: translateY(-3px); }
  body.site .poster-card:hover .poster-card__img, body.site .filme-card:hover { --beam-a: 1; --glare: 1; box-shadow: 0 28px 46px -22px rgba(0,0,0,.95), 0 0 30px -8px rgba(184, 146, 74,.6) !important; }
  body.site .poster-card:hover .poster-card__img::before, body.site .filme-card:hover::before { --frame-base: var(--gold-frame-hover); animation-play-state: running; }
  body.site .poster-card:hover .poster-card__img img { transform: scale(1.02); }
  .fx-glare:hover { --glare: 1; }
  body.site .feature-card:hover, body.site .aside-promo:hover, body.site .trailer-card:hover { transform: translateY(-2px); border-color: var(--gold-frame-hover); box-shadow: 0 26px 44px -24px rgba(0,0,0,.95), 0 0 30px -10px rgba(184, 146, 74,.55); }
  body.site .prog-movie:hover { border-color: rgba(184, 146, 74,.9); box-shadow: inset 0 1px 0 rgba(216, 196, 154,.1), 0 0 30px -12px rgba(184, 146, 74,.55), 0 24px 44px -30px rgba(0,0,0,.9); }
}
body.site .feature-card, body.site .aside-promo, body.site .trailer-card, body.site .prog-movie { transition: transform var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease); }

/* Botões e horários: hover ≤1px, pressionar 0.98, desabilitado distinto */
body.site .btn { transition: transform var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease), color var(--dur-hover) var(--ease), filter var(--dur-hover) var(--ease); }
body.site .btn:hover, body.site .btn-gold:hover, body.site .btn-primary:hover { transform: translateY(-1px); }
body.site .btn:active, body.site a.showtime:active, body.site .date-card:active, body.site .tabs-serif button:active, body.site .header-search:active { transform: scale(.98); }
body.site .btn-glass:hover { box-shadow: inset 0 1px 0 rgba(216, 196, 154,.16), 0 0 18px -8px rgba(184, 146, 74,.5); }
body.site .room a.showtime:hover, body.site .prog-room a.showtime:hover, body.site .room a.showtime:focus-visible, body.site .prog-room a.showtime:focus-visible { transform: translateY(-1px); }
body.site .showtime.is-disabled { cursor: not-allowed; opacity: .5 !important; border-style: dashed !important; background: rgba(16, 12, 9,.5) !important; box-shadow: none !important; }
body.site .showtime.is-disabled small { color: rgba(255,255,255,.6) !important; }
body.site .showtime.is-nolink { cursor: default; opacity: .7 !important; border-color: rgba(216, 196, 154,.3) !important; box-shadow: none !important; }
body.site .btn[disabled], body.site button:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }

/* Abas e datas: hover ≠ selecionado, sem mudança de largura */
.tabs-serif button:not([aria-selected="true"]):hover { color: rgba(255,255,255,.9); }
.tabs-serif button:not([aria-selected="true"])::after { content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 1px; background: rgba(216, 196, 154,.4); opacity: 0; transition: opacity var(--dur-hover) var(--ease); }
.tabs-serif button:not([aria-selected="true"]):hover::after { opacity: 1; }
.date-card { transition: border-color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease), transform var(--dur-hover) var(--ease); }
.date-card:not(.is-active):hover { border-color: rgba(216, 196, 154,.55); background: rgba(42, 27, 19,.6); }

/* Campos e foco por teclado */
body.site input:focus-visible, body.site select:focus-visible, body.site textarea:focus-visible { outline: 2px solid rgba(216, 196, 154,.8); outline-offset: 2px; }
body.site a:focus-visible, body.site button:focus-visible, body.site [role="tab"]:focus-visible { outline: 2px solid #D8C49A; outline-offset: 3px; border-radius: 4px; }
body.site .poster-card:focus-visible { outline: none; } body.site .poster-card:focus-visible .poster-card__img { outline: 2px solid #D8C49A; outline-offset: 3px; }

/* Alvos de toque */
@media (pointer: coarse) { body.site .link-arrow, body.site .prog-movie__more, body.site .footer-sunset__links a, body.site .footer-sunset__extra a, body.site .breadcrumb-sunset a { min-height: 44px; display: inline-flex; align-items: center; } }
.back-link { min-height: 44px; }

/* Newsletter: pipoca maior e sangrando à esquerda no desktop (mockup) */
@media (min-width: 900px) {
  .newsletter { overflow: visible; padding-left: clamp(230px, 18vw, 262px); min-height: 115px; }
  .newsletter__pipoca { left: calc(var(--gutter) * -1 - 2px); bottom: -14px; width: clamp(230px, 21vw, 300px); }
  .newsletter__title { font-size: clamp(26px, 1.2rem + .8vw, 31px) !important; font-weight: 400 !important; }
}
.newsletter-band { overflow-x: clip; overflow-y: visible; padding-top: 40px; margin-top: 10px; }

/* Rodapé: linha única como o mockup */
.footer-sunset__links a { font-size: 13.5px; }
.footer-sunset .logo-nome { font-size: 24px; }
@media (max-width: 1023px) {
  .footer-sunset__links { gap: 4px 0; max-width: none; }
  .footer-sunset__links a { padding: 2px 12px; border-left: 1px solid rgba(216, 196, 154,.28); font-size: 13px; }
  .footer-sunset__links a:first-child { border-left: 0; }
}

/* Movimento reduzido: sem deslocamentos nem luz animada, estados mantidos */
@media (prefers-reduced-motion: reduce) {
  body.site .poster-card:hover, body.site .btn:hover, body.site .feature-card:hover, body.site .aside-promo:hover, body.site .trailer-card:hover, body.site a.showtime:hover, body.site .btn:active, body.site a.showtime:active { transform: none !important; }
  body.site .poster-card:hover .poster-card__img img { transform: none !important; }
  body.site .poster-card__img::before, body.site .filme-card::before, body.site .poster-frame::before { animation: none !important; }
  .fx-glare > .fx-glare__layer { display: none; }
}


/* ── QA: detalhe do filme ── */
@media (min-width: 1024px) { .film-detail { grid-template-columns: minmax(0, 25%) minmax(0, 1fr); gap: 16px 36px; } }
body.site .poster-frame { box-shadow: 0 30px 60px -28px rgba(0,0,0,.95), 0 0 34px -10px rgba(184, 146, 74,.55); }
.meta-strip .rating--box, .film-detail .rating--box { background-clip: padding-box; }
.sessions .serif-title { font-size: clamp(25px, 1.3rem + 1.4vw, 42px) !important; }
.sessions .prog-dates { margin-bottom: 4px; }
.sessions .prog-dates .date-cards { padding-inline: 2px; }
@media (max-width: 1023px) {
  .film-detail { grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 16px 14px; }
  body.site h1.film-detail__title { font-size: clamp(26px, 7.6vw, 34px) !important; }
  .sessions__head { flex-wrap: nowrap; }
  .sessions__head .btn-sm { min-height: 40px; padding: 0 12px; font-size: 10.5px; flex-shrink: 0; }
}
@media (max-width: 380px) { .sessions__head { flex-wrap: wrap; } }
@media (min-width: 1024px) { .room__times { grid-template-columns: repeat(auto-fill, minmax(160px, 216px)); } body.site .room .showtime { min-height: 60px; } }

/* ── QA: programação ── */
.prog-toolbar { background: transparent !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; transition: background var(--dur-hover) var(--ease); }
.prog-toolbar.is-stuck { background: linear-gradient(180deg, rgba(12, 9, 7,.92) 75%, rgba(12, 9, 7,0)) !important; }
.prog-sticky-sentinel { height: 1px; margin-bottom: -1px; }
.prog-room__label span { color: rgba(255,255,255,.8); }
body.site .prog-room .showtime, body.site .room .showtime { border: 1.5px solid rgba(184, 146, 74,.95); box-shadow: inset 0 1px 0 rgba(255,255,255,.14), inset 0 0 14px rgba(184, 146, 74,.12), 0 0 16px -8px rgba(184, 146, 74,.6); }
@media (min-width: 1024px) {
  .prog-layout { grid-template-columns: minmax(0, 1fr) 280px; }
  .prog-movie { grid-template-columns: 214px minmax(0, 1fr); gap: 0 26px; padding: 10px 16px 10px 10px; }
  body.site h2.prog-movie__title { font-size: 40px !important; }
  .prog-movie__meta .rating--box { min-width: 40px; height: 40px; font-size: 20px; }
  .prog-movie__meta ul { font-size: 15px; }
  .prog-room__times { grid-template-columns: repeat(auto-fill, minmax(112px, 118px)); gap: 12px; }
  body.site .prog-room .showtime { min-height: 54px; font-size: 16px; }
  body.site .prog-room .showtime small { font-size: 12px; }
}
@media (max-width: 639px) {
  .prog-movie { grid-template-columns: minmax(0, 36%) minmax(0, 1fr); gap: 12px 14px; padding: 10px 12px 8px; }
  body.site h2.prog-movie__title { font-size: 21px !important; }
  .prog-movie__meta .rating--box { min-width: 34px; height: 34px; font-size: 17px; }
  .prog-movie__meta ul { font-size: 13.5px; }
  .prog-room__times { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .prog-room__times.n-1, .prog-room__times.n-2, .prog-room__times.n-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site .prog-room .showtime { min-height: 48px; font-size: 15px; }
}

/* ── QA: newsletter compacta no mobile (pipoca pequena à direita do título) ── */
@media (max-width: 899px) {
  .newsletter { padding-top: 20px; }
  .newsletter__pipoca { left: auto; right: 4px; top: 6px; width: clamp(96px, 28vw, 140px); }
  .newsletter__title { padding-right: clamp(92px, 27vw, 136px); font-size: clamp(21px, 5.6vw, 26px) !important; }
}


/* ── QA: larguras mínimas, alvos de toque ── */
body.site .site-logo { min-height: 44px; }
@media (max-width: 767px) { .hero-sunset__actions .btn { min-width: 0; } }
body.site .empty-state .btn { white-space: normal; text-align: center; line-height: 1.3; padding-block: 10px; max-width: 100%; }
@media (pointer: coarse) {
  body.site .poster-card .icon-btn, body.site .filme-card .card-actions button { width: 40px; height: 40px; }
  body.site .breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
  body.site .prog-movie__title a { display: inline-block; padding-block: 8px; margin-block: -8px; }
}


/* ══ Páginas institucionais: Promoções, Contato, Meia-entrada ══ */
body.site .nav-dd > button.is-current { color: #B8924A; }
body.site .nav-dd > button.is-current::after { content: ""; position: absolute; left: 2px; right: 14px; bottom: 2px; height: 2px; background: linear-gradient(90deg, rgba(184, 146, 74,.2), #B8924A 50%, rgba(184, 146, 74,.2)); }
.footer-sunset__links a[aria-current="page"] { color: #B8924A; }
body.page-promocoes .page-sunset, body.page-central-de-atendimento .page-sunset, body.page-meia-entrada .page-sunset { margin-top: calc(var(--header-h) * -1); padding-top: var(--header-h); }
.page-sunset { position: relative; isolation: isolate; padding-bottom: 8px; }
.page-sunset::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 460px; z-index: -1; pointer-events: none; background: radial-gradient(560px 300px at 80% 10%, rgba(184, 146, 74,.16), transparent 70%); }
.page-sunset__head { padding: 6px 0 22px; }
.page-sunset__title { margin: 0; font-family: var(--serif); font-weight: 500; color: #FFFFFF; line-height: 1.02; }
body.site h1.page-sunset__title { font-size: clamp(32px, 1.3rem + 3.6vw, 66px) !important; font-weight: 500 !important; letter-spacing: 0 !important; line-height: 1.02 !important; }
.page-sunset__lead { margin: 8px 0 0; font-family: var(--serif); font-size: clamp(17px, .9rem + .55vw, 23px); color: rgba(255,255,255,.92); max-width: 62ch; line-height: 1.25; }
.page-sunset .serif-title { font-size: clamp(22px, 1.1rem + 1vw, 32px) !important; }
.page-layout { display: grid; gap: 14px; align-items: start; }
.page-layout__main { display: grid; gap: 14px; min-width: 0; }
@media (min-width: 1024px) { .page-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; } .page-layout__aside { position: static; margin-top: 0; } }
@media (min-width: 640px) and (max-width: 1023px) { .page-layout__aside { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Ícone em anel dourado */
.icon-ring { flex-shrink: 0; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1.5px solid rgba(184, 146, 74,.85); color: #B8924A; font-size: 22px; box-shadow: inset 0 0 14px rgba(184, 146, 74,.18); }
@media (min-width: 1024px) { .icon-ring { width: 80px; height: 80px; font-size: 32px; } }

/* Promoções */
.page-sunset__title--mobile { margin-bottom: 12px !important; }
@media (min-width: 768px) { .page-sunset__title--mobile { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; } }
.promo-hero { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 250px; padding: 0; border: 1.5px solid rgba(184, 146, 74,.7); border-radius: 10px; box-shadow: 0 0 30px -12px rgba(184, 146, 74,.55), 0 30px 60px -30px rgba(0,0,0,.9); }
.promo-hero__img { position: absolute; inset: 0; z-index: -1; }
.promo-hero__img img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 30%; display: block; }
.promo-hero.has-img::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(12, 9, 7,.1) 20%, rgba(12, 9, 7,.85) 78%); pointer-events: none; }
.promo-hero__body { position: relative; z-index: 1; padding: 22px 14px 14px; width: 100%; }
.promo-hero__title { margin: 0 0 8px; font-family: var(--serif); font-weight: 500; font-size: clamp(30px, 1.2rem + 3.6vw, 64px) !important; line-height: 1 !important; color: #FFFFFF; letter-spacing: 0 !important; max-width: 12ch; }
.promo-hero__lead { margin: 0 0 16px; font-size: clamp(13px, .8rem + .45vw, 19px); color: rgba(255,255,255,.92); max-width: 36ch; line-height: 1.35; }
.promo-hero__actions { display: grid; gap: 10px; }
.promo-hero__actions .btn { min-height: 44px; }
@media (min-width: 768px) {
  .promo-hero { min-height: clamp(300px, 26vw, 390px); align-items: center; }
  .promo-hero.has-img::before { background: linear-gradient(90deg, rgba(12, 9, 7,.92) 0%, rgba(12, 9, 7,.7) 34%, rgba(12, 9, 7,0) 62%), linear-gradient(0deg, rgba(12, 9, 7,.4), transparent 40%); }
  .promo-hero__body { padding: clamp(24px, 3vw, 44px); max-width: 60%; }
  .promo-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; }
  .promo-hero__actions .btn { min-height: 52px; min-width: 210px; }
}
.info-sec { margin-top: 24px; }
.info-sec .serif-title { margin-bottom: 12px !important; }
.icon-cards { display: grid; gap: 8px; }
@media (min-width: 768px) { .icon-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } }
.icon-card { display: flex; align-items: center; gap: 16px; padding: 10px 14px; text-decoration: none; color: #FFFFFF; border-color: rgba(184, 146, 74,.6); border-radius: 8px; transition: transform var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease); }
.icon-card strong { display: block; font-family: var(--serif); font-weight: 500; font-size: clamp(18px, 1rem + .6vw, 26px); line-height: 1.1; }
.icon-card small { display: block; margin-top: 4px; font-size: clamp(12px, .72rem + .2vw, 15px); color: rgba(255,255,255,.85); line-height: 1.35; }
@media (min-width: 1024px) { .icon-card { padding: 18px 28px; min-height: 118px; gap: 26px; } }
@media (hover: hover) and (pointer: fine) { .icon-card:hover, .aside-cta:hover, .intro-band:hover { border-color: rgba(184, 146, 74,.95); box-shadow: 0 0 28px -10px rgba(184, 146, 74,.55); } .icon-card:hover { transform: translateY(-2px); } .icon-card:hover .icon-ring { box-shadow: inset 0 0 18px rgba(184, 146, 74,.32), 0 0 16px -4px rgba(184, 146, 74,.5); } }
.icon-card:active { transform: scale(.98); }

/* Accordions (details/summary nativos: toque e teclado) */
.acc-panel { margin-top: 14px; padding: 12px 12px; border-color: rgba(184, 146, 74,.55); border-radius: 8px; }
.acc-panel .serif-title { margin: 0 0 10px 4px !important; }
@media (min-width: 1024px) { .acc-panel { padding: 16px 20px 20px; } }
.acc-list { display: grid; gap: 8px; }
.acc { border: 1px solid rgba(184, 146, 74,.55); border-radius: 6px; background: rgba(16, 12, 9,.55); transition: border-color var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease); }
.acc summary { list-style: none; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 14px; cursor: pointer; color: #FFFFFF; font-size: clamp(14px, .8rem + .3vw, 17px); border-radius: 6px; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary span { flex: 1; min-width: 0; }
.acc__chev { font-size: 13px; color: #FFFFFF; transition: transform var(--dur-hover) var(--ease); }
.acc--icon .acc__chev { transform: rotate(-90deg); }
.acc[open] .acc__chev { transform: rotate(180deg); }
.acc__icon { width: 30px; text-align: center; font-size: 22px; color: #B8924A; }
.acc--sm .acc__icon { font-size: 18px; }
.acc__body { padding: 0 14px 14px; color: rgba(255,255,255,.86); font-size: clamp(13px, .78rem + .2vw, 15px); line-height: 1.55; }
.acc--icon .acc__body { padding-left: 56px; margin-top: -4px; }
.acc__body p { margin: 0 0 8px; } .acc__body p:last-child { margin-bottom: 0; }
.acc__body ul { margin: 0 0 8px; padding-left: 18px; }
.acc__body a, .rich a { color: #B8924A; }
.acc__pending { display: flex; gap: 8px; align-items: flex-start; color: rgba(255,255,255,.72); font-style: italic; }
.acc__pending i { color: #B8924A; margin-top: 3px; font-style: normal; }
.acc[open] { border-color: rgba(184, 146, 74,.9); box-shadow: inset 0 0 16px rgba(184, 146, 74,.1), 0 0 18px -10px rgba(184, 146, 74,.5); }
@media (hover: hover) and (pointer: fine) { .acc summary:hover { background: rgba(42, 27, 19,.45); } .acc:hover { border-color: rgba(184, 146, 74,.85); } }
.acc summary:focus-visible { outline: 2px solid #D8C49A; outline-offset: 2px; }
@media (min-width: 1024px) { .acc summary { min-height: 46px; padding: 8px 18px; } .acc--icon summary { min-height: 52px; } }

/* Faixa de ajuda (Promoções) */
.help-band { margin-top: 14px; display: grid; grid-template-columns: auto 1fr; gap: 10px 14px; align-items: center; padding: 12px 14px; border-color: rgba(184, 146, 74,.55); border-radius: 8px; }
.help-band h2 { margin: 0; font-family: var(--serif); font-weight: 500; font-size: clamp(16px, .9rem + .5vw, 22px) !important; color: #FFFFFF; letter-spacing: 0 !important; }
.help-band p { margin: 2px 0 0; font-size: clamp(12px, .72rem + .2vw, 14px); color: rgba(255,255,255,.82); }
.help-band .btn { grid-column: 1 / -1; justify-self: center; border-color: rgba(184, 146, 74,.85); min-height: 44px; }
@media (min-width: 768px) { .help-band { grid-template-columns: auto 1fr auto; padding: 14px 26px; } .help-band .btn { grid-column: auto; min-width: 210px; } .help-band .icon-ring { width: 56px; height: 56px; font-size: 22px; } }

/* Meia-entrada */
.intro-band { position: relative; overflow: hidden; display: flex; gap: 18px; align-items: flex-start; padding: 16px 16px; border-color: rgba(184, 146, 74,.65); border-radius: 8px; margin-bottom: 14px; }
.intro-band__icon { flex-shrink: 0; font-size: 40px; color: #B8924A; line-height: 1; margin-top: 4px; }
.intro-band h2 { margin: 0 0 6px; font-family: var(--serif); font-weight: 500; font-size: clamp(20px, 1rem + 1vw, 30px) !important; color: #FFFFFF; letter-spacing: 0 !important; line-height: 1.1; }
.intro-band p, .intro-band__text { margin: 0; font-size: clamp(13px, .78rem + .3vw, 17px); color: rgba(255,255,255,.9); }
.intro-band__text + .intro-band__text { margin-top: 8px; }
@media (min-width: 1024px) { .intro-band { padding: 24px 30px; align-items: center; } .intro-band__icon { font-size: 64px; } }
.aside-cta .btn, .aside-local .btn { width: 100%; margin-top: 12px; }
.aside-cta .aside-local__head > i, .aside-links .aside-local__head > i { font-size: 30px; color: #B8924A; }

/* Contato */
.form-panel { padding: 16px 12px; border-color: rgba(184, 146, 74,.65); border-radius: 8px; }
@media (min-width: 1024px) { .form-panel { padding: 24px 24px 20px; } }
.sunset-form { display: grid; gap: 12px 22px; }
@media (min-width: 768px) { .sunset-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .field--full { grid-column: 1 / -1; } }
.field label { display: block; margin-bottom: 6px; font-size: clamp(13px, .78rem + .25vw, 16px); font-weight: 600; color: #FFFFFF; }
.field input, .field select, .field textarea {
  width: 100%; min-height: 44px; padding: 10px 14px; border-radius: 5px; color: #FFFFFF; font-size: 15px;
  background: rgba(12, 9, 7,.62); border: 1px solid rgba(184, 146, 74,.6); box-shadow: inset 0 0 12px rgba(184, 146, 74,.06); transition: border-color var(--dur-hover) var(--ease), box-shadow var(--dur-hover) var(--ease);
}
.field input::placeholder, .field textarea::placeholder { color: rgba(255,255,255,.55); }
.field select { appearance: none; -webkit-appearance: none; padding-right: 40px; cursor: pointer; background: rgba(12, 9, 7,.62) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23F4EEE6' stroke-width='1.6' d='M2 4l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center; }
.field select option { background: #1A120D; color: #FFFFFF; }
.field select:invalid { color: rgba(255,255,255,.7); }
.field textarea { min-height: 120px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: rgba(184, 146, 74,.85); }
body.site .field input:focus, body.site .field select:focus, body.site .field textarea:focus { outline: none; border-color: #B8924A !important; box-shadow: 0 0 0 3px rgba(184, 146, 74,.22), inset 0 0 12px rgba(184, 146, 74,.1) !important; }
.field input:user-invalid, .field textarea:user-invalid, .field select:user-invalid { border-color: #D9674F; }
@media (min-width: 1024px) { .field input, .field select { min-height: 42px; } .field textarea { min-height: 114px; } }
.field--captcha { display: flex; justify-content: center; padding: 8px 0; border: 1px solid rgba(184, 146, 74,.4); border-radius: 6px; background: rgba(12, 9, 7,.4); min-height: 72px; align-items: center; }
.consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: rgba(255,255,255,.8); line-height: 1.45; cursor: pointer; }
.consent input { width: 20px; height: 20px; min-height: 0; margin-top: 1px; accent-color: #B8924A; flex-shrink: 0; }
.consent a { color: #B8924A; }
.form-submit { min-height: 52px; font-size: 14px; }
.contact-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.form-alert { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 14px; padding: 12px 14px; border-radius: 6px; font-size: 14px; line-height: 1.4; }
.form-alert--ok { background: rgba(46,158,80,.14); border: 1px solid rgba(80,190,110,.55); color: #CDEFD6; }
.form-alert--erro { background: rgba(200,70,50,.14); border: 1px solid rgba(217,103,79,.6); color: #F5D2C9; }
.link-list { display: grid; gap: 8px; margin-top: 12px; }
.link-list a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 0 14px; border-radius: 6px; border: 1px solid rgba(184, 146, 74,.5); background: rgba(16, 12, 9,.55); color: #FFFFFF; text-decoration: none; font-size: 14px; transition: border-color var(--dur-hover) var(--ease), background var(--dur-hover) var(--ease); }
.link-list a i { font-size: 12px; }
.link-list a:hover { border-color: rgba(184, 146, 74,.95); background: rgba(42, 27, 19,.6); }
.link-list a:active { transform: scale(.98); }
.aside-channels { margin: 12px 0 0 !important; }
.aside-channels a { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; text-decoration: none; }
.aside-channels i { color: #B8924A; width: 16px; text-align: center; }
.rich p { margin: 8px 0 0; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
@media (max-width: 360px) { body.site .site-header .logo-nome { font-size: 15px; letter-spacing: .06em; max-width: 72vw; } }
.page-sunset .breadcrumb-sunset { display: block; }
@media (max-width: 767px) { .sunset-form { gap: 10px; } .page-sunset__head { padding-bottom: 14px; } }
@media (min-width: 1024px) {
  .page-layout { grid-template-columns: minmax(0, 1fr) 330px; }
  .acc--icon summary { min-height: 56px; font-size: 17px; }
  .acc--icon .acc__icon { font-size: 26px; width: 36px; }
  .acc--sm summary { min-height: 44px; font-size: 16px; }
  .acc--sm .acc__icon { font-size: 20px; }
  .acc--icon .acc__body { padding-left: 66px; font-size: 15px; }
  .page-layout .aside-card h2 { font-size: 26px !important; }
  .page-layout .aside-local__head p { font-size: 14.5px; }
  .page-layout .aside-cta .aside-local__head > i, .page-layout .aside-links .aside-local__head > i { font-size: 38px; }
  .page-layout .aside-card.glass { padding: 20px 20px; }
}

/* ==========================================================================
   HOME v3 — Hero de filmes (Em cartaz / Pré-venda) + Banners + Projetos e promoções
   ========================================================================== */
.hero-carousel { padding-top: var(--header-h); }
.hero-carousel--vazio { padding-top: calc(var(--header-h) + clamp(20px, 4vw, 48px)); }
.hero-carousel__stage { display: grid; }
.hero-slide {
  grid-area: 1 / 1; position: relative; isolation: isolate; min-width: 0;
  opacity: 0; visibility: hidden; transition: opacity .7s var(--ease), visibility 0s linear .7s;
}
.hero-slide.is-active { opacity: 1; visibility: visible; transition: opacity .7s var(--ease), visibility 0s; }
.hero-slide__bg {
  position: absolute; z-index: -1; left: 0; right: 0; bottom: 0; top: calc(-1 * var(--header-h));
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 72%, transparent 100%); mask-image: linear-gradient(180deg, #000 0, #000 72%, transparent 100%);
}
.hero-slide__bg picture, .hero-slide__bg img { display: block; width: 100%; height: 100%; }
.hero-slide__bg img { object-fit: cover; object-position: 50% 25%; }
.hero-slide__bg::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(12, 9, 7,.92) 0%, rgba(12, 9, 7,.7) 30%, rgba(12, 9, 7,.18) 62%, rgba(12, 9, 7,.35) 100%),
    linear-gradient(180deg, rgba(12, 9, 7,.6) 0%, rgba(12, 9, 7,0) 24%, rgba(12, 9, 7,.1) 55%, rgba(12, 9, 7,.85) 100%);
}
.hero-slide__inner { display: flex; align-items: flex-end; min-height: clamp(240px, 22vw, 330px); padding-block: 22px 18px; }
.hero-slide__content { width: 100%; max-width: 580px; display: grid; justify-items: start; gap: 14px; }
.hero-slide__title { margin: 0; width: min(100%, 440px); height: clamp(88px, 10.5vw, 170px); line-height: 0; }
.hero-slide__title img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left bottom; filter: drop-shadow(0 6px 24px rgba(0,0,0,.55)); }
.hero-slide__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 0; padding: 0; list-style: none; font-size: 13px; letter-spacing: .04em; color: rgba(255,255,255,.82); }
.hero-slide__meta li { display: inline-flex; align-items: center; }
.hero-slide__meta li + li::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--sunset-gold); margin-right: 14px; }
.hero-slide__meta .rating--box { min-width: 30px; height: 30px; font-size: 14px; }
.hero-slide__resumo {
  margin: 0; max-width: 52ch; font-size: clamp(15px, .88rem + .25vw, 17px); line-height: 1.55; color: rgba(255,255,255,.9); text-shadow: 0 1px 12px rgba(0,0,0,.6);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.hero-slide__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 6px; }
.hero-slide__actions:empty { display: none; }
.hero-slide__actions .btn { min-height: 52px; min-width: 190px; }
.hero-carousel__controls { display: flex; align-items: center; gap: 10px; margin-block: 0 18px; }
.hero-carousel__controls .carousel-btn--pause { margin-left: auto; }

.carousel-btn {
  display: inline-grid; place-items: center; width: var(--tap, 44px); height: var(--tap, 44px); flex: 0 0 auto; padding: 0; border-radius: 50%; cursor: pointer;
  color: var(--sunset-text); background: rgba(16, 12, 9,.6); border: 1px solid rgba(216, 196, 154,.32);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transition: border-color var(--dur-hover, .2s) var(--ease), color var(--dur-hover, .2s) var(--ease), box-shadow var(--dur-hover, .2s) var(--ease), transform .12s var(--ease);
}
.carousel-btn i { font-size: 13px; color: var(--sunset-champagne); }
.carousel-btn--sm { width: 36px; height: 36px; }
@media (hover: hover) { .carousel-btn:hover { border-color: var(--gold-frame-hover, #B8924A); box-shadow: var(--gold-glow); } }
.carousel-btn:focus-visible, .carousel-dot:focus-visible, .banner-slide__art:focus-visible, .banner-carousel__track:focus-visible { outline: 2px solid #B8924A; outline-offset: 3px; }
.carousel-btn:active { transform: scale(.93); }
.carousel-dots { display: flex; align-items: center; gap: 2px; }
.carousel-dot { position: relative; width: 28px; height: 28px; padding: 0; border: 0; background: none; cursor: pointer; }
.carousel-dot::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; border-radius: 999px; transform: translate(-50%, -50%);
  background: rgba(255,255,255,.35); transition: width .3s var(--ease), background-color .3s var(--ease);
}
@media (hover: hover) { .carousel-dot:hover::before { background: rgba(184, 146, 74,.8); } }
.carousel-dot[aria-current="true"]::before { width: 22px; background: var(--sunset-gold); }
.carousel-dot:active::before { transform: translate(-50%, -50%) scale(.85); }

/* Banners (arte do admin, sem texto por cima) */
.home-banners { margin-top: clamp(22px, 3vw, 36px); }
.banner-carousel { position: relative; }
.banner-carousel__track {
  display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 18px;
}
.banner-carousel__track::-webkit-scrollbar { display: none; }
.home-banners:not([data-carousel]) .banner-carousel__track { overflow: visible; }
.banner-slide { flex: 0 0 100%; min-width: 0; display: flex; align-items: center; scroll-snap-align: start; scroll-snap-stop: always; }
.banner-slide__art {
  position: relative; display: block; width: 100%; border-radius: 18px; overflow: hidden; line-height: 0;
  box-shadow: 0 22px 40px -26px rgba(0,0,0,.95); transition: box-shadow var(--dur-hover, .2s) var(--ease), filter .15s var(--ease);
}
.banner-slide__art::after { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 1px solid rgba(216, 196, 154,.18); pointer-events: none; transition: border-color var(--dur-hover, .2s) var(--ease); }
.banner-slide__art img { display: block; width: 100%; height: auto; }
.home-banners[data-carousel] .banner-slide__art:focus-visible { outline-offset: -3px; }
@media (hover: hover) { a.banner-slide__art:hover::after { border-color: rgba(184, 146, 74,.75); } a.banner-slide__art:hover { box-shadow: 0 22px 40px -26px rgba(0,0,0,.95), 0 0 26px -10px rgba(184, 146, 74,.55); } }
a.banner-slide__art:active { filter: brightness(.92); }
.banner-carousel__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.banner-carousel__nav:active { transform: translateY(-50%) scale(.93); }
.banner-carousel__nav--prev { left: 14px; }
.banner-carousel__nav--next { right: 14px; }
.banner-carousel__footer { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 8px; }
@media (max-width: 767px) {
  .banner-carousel__nav { display: none; }
  .banner-carousel__track, .banner-slide__art { border-radius: 12px; }
}

/* Projetos e promoções */
.feature-card__tag { font-size: 10.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--sunset-champagne); }
.feature-card--sem-img { background: radial-gradient(90% 120% at 100% 0%, rgba(184, 146, 74,.35), transparent 60%), linear-gradient(180deg, rgba(42, 27, 19,.7), rgba(16, 12, 9,.85)); }
.feature-card--sem-img::after { display: none; }
.feature-card:focus-visible { outline: 2px solid #B8924A; outline-offset: 3px; }
.feature-card:active { transform: translateY(0) scale(.99); }

@media (max-width: 767px) {
  .hero-slide__inner { min-height: clamp(300px, 74vw, 380px); padding-block: 14px 14px; }
  .hero-slide__bg img { object-position: 62% 20%; }
  .hero-slide__bg::after {
    background: linear-gradient(180deg, rgba(12, 9, 7,.55) 0%, rgba(12, 9, 7,.05) 26%, rgba(12, 9, 7,.45) 52%, rgba(12, 9, 7,.92) 78%, rgba(12, 9, 7,.96) 100%);
  }
  .hero-slide__content { gap: 12px; }
  .hero-slide__title { width: min(100%, 320px); height: clamp(80px, 26vw, 120px); }
  .hero-slide__resumo { font-size: 15px; -webkit-line-clamp: 4; }
  .hero-slide__actions { width: 100%; }
  .hero-slide__actions .btn { flex: 1 1 150px; min-width: 0; }
  .hero-carousel__controls { margin-bottom: 14px; }
}
@media (min-width: 768px) and (max-width: 1023px) { .hero-slide__inner { min-height: 300px; } }
@media (prefers-reduced-motion: reduce) {
  .hero-slide, .hero-slide.is-active { transition: none; }
  .carousel-dot::before, .carousel-btn, .banner-slide__art { transition: none; }
  .banner-carousel__track { scroll-behavior: auto; }
}
.home-banners[data-carousel] .banner-slide { align-items: flex-start; }
.home-banners[data-carousel] .banner-carousel__track { overflow-y: hidden; transition: height .35s var(--ease); }
@media (prefers-reduced-motion: reduce) { .home-banners[data-carousel] .banner-carousel__track { transition: none; } }
/* cards de projetos/promoções: em telas < 360px o min-height + aspect-ratio forçava largura maior que a coluna */
.feature-grid > .feature-card { min-width: 0; max-width: 100%; }
@media (max-width: 400px) { .feature-grid > .feature-card { aspect-ratio: auto; } }

/* Banner — MOBILE: faixa horizontal compacta 3.5:1 (desktop inalterado) */
@media (max-width: 767px) {
  .home-banners { margin-top: 20px; }
  .banner-carousel__track, .home-banners[data-carousel] .banner-carousel__track { height: auto !important; border-radius: 12px; }
  .banner-slide, .home-banners[data-carousel] .banner-slide { align-items: stretch; min-height: 0; }
  .banner-slide__art {
    aspect-ratio: 3.5 / 1; height: auto; min-height: 0; border-radius: 12px;
    background: radial-gradient(120% 160% at 50% 120%, rgba(184, 146, 74,.35), transparent 60%), linear-gradient(180deg, #1A120D, #0C0907);
  }
  .banner-slide__art picture { display: block; width: 100%; height: 100%; }
  .banner-slide__art img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
  .banner-slide__art[data-fit="cover"] img { object-fit: cover; }
  .banner-carousel__footer { align-items: flex-start; gap: 6px; margin-top: 2px; }
  .banner-carousel__footer .carousel-dot { width: 20px; height: 20px; }
  .banner-carousel__footer .carousel-dot::before { width: 6px; height: 6px; }
  .banner-carousel__footer .carousel-dot[aria-current="true"]::before { width: 16px; }
  .banner-carousel__footer .carousel-btn--sm { width: 28px; height: 28px; margin-top: -4px; }
  .banner-carousel__footer .carousel-btn--sm i { font-size: 10px; }
  .home-banners + .home-sec { padding-top: 24px; }
}

/* ==========================================================================
   HEADER v3 — continuidade com o hero + menu configurável
   Causa da linha: .site-header tinha border-bottom de 1px transparente; o degradê do fundo
   (origin padding-box, repeat) recomeçava escuro dentro dessa faixa e o header ficava 1px
   mais alto que --header-h. Agora o header não tem borda e os fundos ficam em camadas
   com opacidade animada (sem linha no topo, transição suave ao rolar).
   ========================================================================== */
body.site .site-header, body.site .site-header.is-scrolled {
  border-bottom: 0; box-shadow: none; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; isolation: isolate;
}
body.site .site-header::before, body.site .site-header::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; transition: opacity .35s var(--ease);
}
body.site .site-header::before { background: linear-gradient(180deg, rgba(12, 9, 7,.78) 0%, rgba(12, 9, 7,.42) 55%, rgba(12, 9, 7,0) 100%); }
body.site .site-header::after {
  opacity: 0; background: rgba(16, 12, 9,.82); -webkit-backdrop-filter: saturate(1.2) blur(16px); backdrop-filter: saturate(1.2) blur(16px);
  box-shadow: 0 16px 34px -26px rgba(0,0,0,.95);
}
body.site .site-header.is-scrolled::before { opacity: 0; }
body.site .site-header.is-scrolled::after { opacity: 1; }
@media (prefers-reduced-motion: reduce) { body.site .site-header::before, body.site .site-header::after { transition: none; } }

/* Grupos do menu desktop: abrem por clique/teclado (não mais por foco) */
body.site .nav-dd__menu { display: none; }
body.site .nav-dd.open .nav-dd__menu { display: flex; }
body.site .nav-dd > button { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; background: none; border: 0; cursor: pointer; font-family: inherit; }
body.site .nav-dd > button i { transition: transform .2s var(--ease); }
body.site .nav-dd.open > button i { transform: rotate(180deg); }
body.site .site-nav a, body.site .nav-dd > button { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
body.site .site-nav a:focus-visible, body.site .nav-dd > button:focus-visible, .nav-dd__menu a:focus-visible { outline: 2px solid #B8924A; outline-offset: 2px; border-radius: 4px; }
body.site .nav-dd__menu { left: 50%; right: auto; transform: translateX(-50%); min-width: 240px; max-width: min(320px, 90vw); }
body.site .nav-dd__menu a { font-size: 15px; min-height: 44px; padding: 10px 14px; white-space: normal; color: rgba(255,255,255,.9); }
body.site .nav-dd__menu a[aria-current="page"] { color: #B8924A; }
body.site .nav-dd__menu a:active, body.site .site-nav a:active { opacity: .8; }

/* Modo compacto automático (JS mede colisão entre logo, links e botões) */
@media (min-width: 1024px) {
  body.site .site-header.nav-compacta .site-nav { display: block; position: absolute; visibility: hidden; pointer-events: none; left: 0; right: 0; }
  body.site .site-header.nav-compacta .menu-btn { display: inline-grid; }
  body.site .site-header.nav-compacta .site-header__actions { margin-left: auto; }
}

/* Menu mobile: grupos expansíveis com área de toque confortável */
body.site .drawer__nav a { font-size: 1.0625rem; }
.drawer-group__btn {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 54px; padding: 0 6px;
  background: none; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--accent) 8%, transparent); color: var(--text);
  font: inherit; font-size: 1.0625rem; font-weight: 500; text-align: left; cursor: pointer;
}
.drawer-group__btn i { color: var(--sunset-gold); font-size: .8rem; transition: transform .2s var(--ease); }
.drawer-group.is-open > .drawer-group__btn i { transform: rotate(180deg); }
.drawer-group__btn:focus-visible, body.site .drawer__nav a:focus-visible { outline: 2px solid #B8924A; outline-offset: -2px; }
.drawer-group__btn:active, body.site .drawer__nav a:active { background: rgba(184, 146, 74,.08); }
.drawer-group__list { list-style: none; margin: 0 0 6px; padding: 0 0 0 14px; border-left: 1px solid rgba(184, 146, 74,.35); }
body.site .drawer-group__list a { min-height: 48px; font-size: 1rem; color: rgba(255,255,255,.86); }
@media (prefers-reduced-motion: reduce) { .drawer-group__btn i, body.site .nav-dd > button i { transition: none; } }

/* ==========================================================================
   RESPONSIVO v4 — tipografia fluida em rem, áreas de toque ≥ 44px, quebras seguras
   (rem acompanha a fonte ampliada do navegador; nada é reduzido para "caber")
   ========================================================================== */
html { scroll-padding-top: calc(var(--header-h, 64px) + 12px); }
body.site { overflow-wrap: break-word; }
body.site :where(h1, h2, h3, p, li, dd, dt, td, th, figcaption, blockquote, label) { overflow-wrap: break-word; }
body.site :where(input, select, textarea) { scroll-margin-block: calc(var(--header-h, 64px) + 16px) 32px; }
body.site img, body.site video, body.site iframe { max-width: 100%; }

/* Áreas de toque (todas as larguras) */
html body.site .footer-sunset__links a, html body.site .footer-sunset__extra a,
html body.site .breadcrumb-sunset a, html body.site .breadcrumb a, html body.site .blog-bc a, html body.site .post-bc a,
html body.site .vg-crumb a, html body.site .project-breadcrumb a, html body.site .pc-breadcrumb a,
html body.site .link-arrow, html body.site .home-blog-all, html body.site .hb-leia, html body.site .blog-leia,
html body.site .prog-movie__more, html body.site .post-voltar, html body.site .post-cat {
  min-height: 44px; display: inline-flex; align-items: center;
}
html body.site .blog-cats a, html body.site .tabs-serif [role="tab"] { min-height: 44px; display: inline-flex; align-items: center; }
html body.site .fav-btn, html body.site .post-share .sh, html body.site .pt-btn { min-width: 44px; min-height: 44px; }
html body.site .prog-movie__title a { display: inline-block; min-height: 44px; padding-block: 2px; }
html body.site input[type="checkbox"], html body.site input[type="radio"] { width: 1.375rem; height: 1.375rem; flex: 0 0 auto; accent-color: #B8924A; }
html body.site label:has(> input[type="checkbox"]), html body.site label:has(> input[type="radio"]) { min-height: 44px; display: flex; align-items: center; gap: .625rem; cursor: pointer; }
html body.site .aside-card .btn { min-height: 44px; }
/* Indicadores/pausa: alvo de 44px sem aumentar o desenho */
html body.site .carousel-dot { width: 44px; height: 44px; }
html body.site .carousel-btn--sm { width: 44px; height: 44px; border: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
html body.site .carousel-btn--sm::before { content: ""; position: absolute; inset: 50% auto auto 50%; width: 32px; height: 32px; transform: translate(-50%, -50%); border-radius: 50%; border: 1px solid rgba(216, 196, 154,.32); background: rgba(16, 12, 9,.6); z-index: -1; }
html body.site .carousel-btn--sm { position: relative; isolation: isolate; }
@media (hover: hover) { html body.site .carousel-btn--sm:hover { box-shadow: none; } html body.site .carousel-btn--sm:hover::before { border-color: var(--gold-frame-hover, #B8924A); } }
html body.site .hero-carousel__controls .carousel-dots { gap: 0; }

@media (max-width: 767px) {
  body.site { font-size: 1rem; line-height: 1.5; }
  :root { --gutter: clamp(16px, 5vw, 20px); }

  /* Texto corrido, sinopses e campos: 16px */
  html body.site main :where(p, li, dd, blockquote), html body.site .prose, html body.site .post-content, html body.site .post-content :where(p, li),
  html body.site .hero-slide__resumo, html body.site .blog-hero-in p, html body.site .blog-card-body p, html body.site .hb-body p,
  html body.site .pn-body p, html body.site .projeto-info p, html body.site .contato-projetos .intro-text, html body.site .vg-card-resumo,
  html body.site .aside-local__desc p, html body.site .empty-state p, html body.site .disclaimer-programacao {
    font-size: 1rem; line-height: 1.55;
  }
  html body.site :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { font-size: 1rem; }

  /* Informações secundárias e labels: ~14px */
  html body.site :where(label, small, .form-group label, .project-field label, .form-consent span, .project-consent span, .vg-consent span),
  html body.site .breadcrumb-sunset, html body.site .breadcrumb li, html body.site .blog-bc, html body.site .post-bc, html body.site .vg-crumb, html body.site .project-breadcrumb, html body.site .pc-breadcrumb,
  html body.site .breadcrumb-sunset a, html body.site .blog-bc a, html body.site .post-bc a, html body.site .vg-crumb a, html body.site .project-breadcrumb a,
  html body.site .poster-card__sub, html body.site .hero-slide__meta, html body.site .meta-strip__item dd, html body.site .blog-meta, html body.site .blog-meta a,
  html body.site .hb-meta, html body.site .hb-meta a, html body.site .vg-meta li, html body.site .vg-card-empresa, html body.site .room__info span,
  html body.site .prog-room__label strong, html body.site .prog-room__label span, html body.site .date-card span,
  html body.site .footer-sunset__links a, html body.site .footer-sunset__extra, html body.site .footer-sunset__extra a, html body.site .footer-sunset__bottom .copyright,
  html body.site .feature-card__body small, html body.site .link-arrow, html body.site .home-blog-all, html body.site .prog-movie__more,
  html body.site .blog-cats a, html body.site .post-cat, html body.site .blog-cat-tag, html body.site .hb-cat, html body.site .evc-data, html body.site .evc-tipo,
  html body.site .showtime small, html body.site .aside-promo__body small {
    font-size: .875rem; line-height: 1.4;
  }
  /* Selos compactos sobre imagens (legíveis, sem cobrir o pôster) */
  html body.site .poster-card__tag, html body.site .poster-card__date, html body.site .feature-card__tag, html body.site .filme-tag { font-size: .8125rem; letter-spacing: .08em; }

  /* Botões e menu: 15–16px */
  html body.site .btn, html body.site button.btn, html body.site .btn-submit, html body.site .project-submit, html body.site .vg-btn,
  html body.site .newsletter__form .btn-gold, html body.site .action-bar .btn, html body.site .hero-slide__actions .btn {
    font-size: .9375rem; letter-spacing: .05em; min-height: 48px; white-space: normal; text-align: center; line-height: 1.2;
  }
  html body.site .btn-sm, html body.site .btn.btn-sm { font-size: .9375rem; min-height: 44px; padding-inline: 16px; }
  html body.site .drawer__nav a, html body.site .drawer-group__btn { font-size: 1.0625rem; }
  html body.site .drawer-group__list a { font-size: 1rem; }
  html body.site .tabs-serif [role="tab"] { font-size: 1.625rem; }

  /* Títulos de seção 22–28px e de página 28–32px */
  html body.site main h2, html body.site .serif-title, html body.site .home-blog-head h2, html body.site .home-faq-title {
    font-size: clamp(1.375rem, 1.1rem + 1.4vw, 1.75rem); line-height: 1.2;
  }
  html body.site main h1:not(.sr-only), html body.site .page-sunset__title, html body.site .post-title, html body.site .blog-hero-in h1 {
    font-size: clamp(1.75rem, 1.45rem + 1.5vw, 2rem); line-height: 1.15;
  }
  html body.site main h3 { font-size: clamp(1.125rem, 1rem + .6vw, 1.25rem); line-height: 1.3; }
  html body.site .poster-card__title { font-size: 1rem; line-height: 1.3; }
  html body.site .hero-slide__title { height: clamp(5rem, 24vw, 7.5rem); }

  /* Logo em texto: legível, pode quebrar em 2 linhas em telas estreitas */
  html body.site .site-header .logo-nome { font-size: .9375rem; letter-spacing: .06em; white-space: normal; line-height: 1.15; max-width: calc(100vw - 120px); overflow: visible; text-overflow: clip; }
  html body.site .footer-sunset .logo-nome { font-size: 1rem; white-space: normal; }

  /* Rodapé: links em linhas com alvo de 44px */
  html body.site .footer-sunset__links { gap: 0 18px; }
  html body.site .footer-sunset__extra { gap: 0 16px; }

  /* Ações que não cabem lado a lado passam a empilhar */
  html body.site .hero-slide__actions .btn { flex: 1 1 100%; }
  html body.site .home-sec__head { row-gap: 4px; }
}
@media (min-width: 430px) and (max-width: 767px) { html body.site .hero-slide__actions .btn { flex: 1 1 160px; } }

/* Telas baixas / horizontal: menu com rolagem própria e hero sem cortar conteúdo */
@media (max-height: 500px) and (orientation: landscape) {
  body.site .drawer__panel { padding-block: 12px 18px; gap: 10px; }
  html body.site .drawer__nav a, html body.site .drawer-group__btn { min-height: 46px; }
  body.site .hero-slide__inner { min-height: 0; padding-block: 24px 16px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
html body.site .hero-carousel__controls .carousel-dots { flex-wrap: wrap; min-width: 0; }
html body.site .hero-carousel__controls .carousel-dot { width: 36px; }
@media (max-width: 430px) { html body.site .hero-carousel__controls [data-prev], html body.site .hero-carousel__controls [data-next] { display: none; } html body.site .hero-carousel__controls .carousel-dots { margin-left: -8px; } }
@media (max-width: 767px) {
  html body.site .banner-carousel__footer { align-items: center; gap: 0; margin-top: -11px; margin-bottom: -10px; }
  html body.site .banner-carousel__footer .carousel-dot { width: 30px; height: 44px; }
  html body.site .banner-carousel__footer .carousel-btn--sm { margin-top: 0; }
}
@media (max-width: 767px) {
  html body.site .site-header .logo-nome { font-size: .9375rem !important; letter-spacing: .06em !important; }
  html body.site .btn-precos, html body.site .btn-submit, html body.site .contact-submit, html body.site .project-submit, html body.site .vg-btn { font-size: .9375rem !important; letter-spacing: .04em !important; min-height: 48px; }
  html body.site .filme-card .filme-tag { font-size: .75rem !important; padding: 4px 8px; }
  html body.site .filme-card .card-actions button { width: 44px; height: 44px; }
  html body.site .hb-cat, html body.site .blog-cat-tag, html body.site .blog-cats a span, html body.site .vg-dica, html body.site .vg-arquivo-sub { font-size: .8125rem; }
  html body.site .vg-dados strong { font-size: .8125rem; }
  html body.site .room .showtime small, html body.site .prog-room .showtime small { font-size: .8125rem; }
}
/* alvos mínimos restantes */
html body.site .site-nav a, html body.site .breadcrumb-sunset a, html body.site .vg-crumb a, html body.site .blog-bc a, html body.site .post-bc a,
html body.site .project-breadcrumb a, html body.site .pc-breadcrumb a, html body.site .hb-leia, html body.site .blog-leia { min-width: 44px; justify-content: center; }
html body.site .carousel-dot, html body.site .hero-carousel__controls .carousel-dot { width: 44px; }
@media (max-width: 767px) { html body.site .banner-carousel__footer .carousel-dot { width: 44px; } }
html body.site .pc-form button { min-height: 44px; }
html body.site .hb-body h3 a, html body.site .blog-card-body :where(h2, h3) a { display: block; min-height: 44px; padding-block: .25rem; }
@media (max-width: 767px) {
  html body.site .footer-sunset .logo-nome { font-size: 1rem !important; letter-spacing: .08em !important; }
  html body.site main h1:not(.sr-only), html body.site h1.page-sunset__title, html body.site h1.prog-hero__title, html body.site h1.film-detail__title,
  html body.site h1.page-title, html body.site h1.section-title, html body.site .post-header h1, html body.site .project-hero h1, html body.site .movie-info h1 {
    font-size: clamp(1.75rem, 1.45rem + 1.5vw, 2rem) !important; line-height: 1.15 !important;
  }
}
@media (max-width: 767px) { html body.site h1.page-title { letter-spacing: .04em !important; text-transform: none; } }
@media (max-width: 767px) {
  html body.site .banner-carousel__footer { align-items: flex-start; }
  html body.site .banner-carousel__footer .carousel-btn--sm { margin-top: 11px; height: 30px; width: 44px; }
  html body.site .banner-carousel__footer .carousel-btn--sm::before { width: 28px; height: 28px; }
  html body.site .banner-carousel__footer .carousel-btn--sm { height: 44px; margin-top: 0; }
  html body.site .banner-carousel__footer .carousel-btn--sm::before { top: calc(50% + 8px); }
}
/* Banner mobile: alvos de 44px começando na borda da imagem (sem sobrepor a arte), desenho a ~8px */
@media (max-width: 767px) {
  html body.site .banner-carousel__footer { margin-top: 0; margin-bottom: 0; align-items: flex-start; }
  html body.site .banner-carousel__footer .carousel-dot::before { top: 11px; }
  html body.site .banner-carousel__footer .carousel-btn--sm { margin-top: 0; height: 44px; }
  html body.site .banner-carousel__footer .carousel-btn--sm::before { top: 22px; width: 28px; height: 28px; }
  html body.site .home-banners + .home-sec { padding-top: 8px; }
}
html body.site ul.breadcrumb li { display: inline-flex; align-items: center; min-height: 44px; vertical-align: middle; }
@media (max-width: 767px) {
  html body.site :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea) { font-size: 1rem !important; }
  html body.site .filme-card .filme-tag { top: 62px; right: 8px; }
  html body.site .footer-sunset .logo-nome { text-wrap: balance; }
}
/* quebras mais naturais: títulos com hifenização em vez de corte no meio da palavra */
body.site :where(h1, h2, h3, h4) { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }
html body.site .post-share, html body.site .post-tools { flex-wrap: wrap; row-gap: 8px; }
@media (max-width: 767px) {
  html body.site .footer-sunset__links a { border-left: 0; padding-inline: 4px; }
  html body.site .sobre-texto p { text-align: left; }
}

/* Com fonte ampliada, grades e cabeçalhos reorganizam em vez de espremer o texto */
@media (max-width: 767px) {
  html body.site .home-sec__head { flex-wrap: wrap; }
  html body.site .tabs-serif { flex-wrap: wrap; min-width: 0; row-gap: 4px; }
  html body.site .home-sec__head > .link-arrow { margin-left: auto; }
}
@media (max-width: 639px) { html body.site .poster-grid-5 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 8.5rem), 1fr)); } }
/* Trailer: cabe na altura da tela (horizontal/telas baixas) com o botão fechar visível */
html body.site #trailerModal .trailer-box { width: min(100%, 880px, calc((100svh - 120px) * 16 / 9)) !important; }
html body.site .vp-close { min-width: 44px; min-height: 44px; }
@media (min-width: 1024px) and (max-width: 1279px) { html body.site .site-nav ul { gap: clamp(14px, 1.5vw, 20px); } html body.site .site-nav { margin-left: 20px; } }
@media (min-width: 1280px) and (max-width: 1439px) { html body.site .site-header__bar { padding-inline: var(--gutter); } html body.site .site-nav ul { gap: clamp(18px, 1.9vw, 28px); } html body.site .site-nav { margin-left: 28px; } }
html body.site .vg-card h2 a, html body.site .vg-card h3 a { display: inline-block; min-height: 44px; padding-block: .25rem; }
@media (max-width: 767px) { html body.site .banner-carousel__footer { margin-bottom: -14px; } }

/* Hero mais baixo: o seletor de filme e os banners aparecem já na primeira tela */
html body.site .hero-slide__title { height: clamp(70px, 8vw, 122px); }
html body.site .hero-slide__content { gap: 10px; }
html body.site .hero-slide__resumo { -webkit-line-clamp: 2; }
html body.site .hero-slide__actions .btn { min-height: 48px; }
html body.site .hero-carousel__controls { margin-block: 0 12px; }
@media (max-width: 767px) {
  html body.site .hero-slide__title { height: clamp(58px, 17vw, 84px); }
  html body.site .hero-slide__content { gap: 8px; }
  html body.site .hero-slide__actions .btn { min-height: 46px; }
  html body.site .hero-carousel__controls { margin-bottom: 8px; }
}
/* Telas baixas na horizontal: hero ainda mais compacto para o seletor caber na primeira tela */
@media (max-height: 520px) and (orientation: landscape) {
  html body.site .hero-slide__inner { min-height: 0; padding-block: 10px 8px; }
  html body.site .hero-slide__title { height: clamp(44px, 6vw, 64px); }
  html body.site .hero-slide__resumo { -webkit-line-clamp: 1; }
  html body.site .hero-slide__content { gap: 6px; }
  html body.site .hero-carousel__controls { margin-bottom: 6px; }
}
@media (max-height: 520px) and (orientation: landscape) {
  html body.site .action-bar { padding: 8px 10px; gap: 8px; }
  html body.site .action-bar .btn, html body.site .action-bar__select select { min-height: 44px; }
}
