/* =========================================================
   Ahh! Verão — Landing
   Mobile-first. Laranja da campanha como base, cartazes inteiros
   (as margens laranjas já vêm no arquivo do cartaz).
   ========================================================= */

:root {
	--sun: #F9AA37; /* mesmo laranja da margem dos cartazes */
	--sun-light: #FFC965;
	--sun-deep: #DB8F1C;
	--agenda: #FFC800; /* amarelo da identidade (ahhverao.gdo.com.br) — fundo da agenda */
	--coral: #F0743A;
	--ink: #2B1607;
	--ink-2: #1B0D04;
	--paper: #FFF8EE;
	--cream: #FAEEE2;
	--gold: #8A6430;
	--gold-line: #E8D2AC;
	--white: #fff;

	--display: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;
	--body: "Barlow", "Helvetica Neue", Arial, sans-serif;

	--top-h: 64px;
	--strip-h: 0px; /* faixa de datas removida */
	--bar-h: 128px;
	--radius: 22px;
	--ease: cubic-bezier(.2, .8, .2, 1);
	--shadow-1: 0 1px 2px rgba(43, 22, 7, .08), 0 8px 24px -8px rgba(43, 22, 7, .22);
	--shadow-2: 0 2px 4px rgba(43, 22, 7, .08), 0 24px 48px -16px rgba(43, 22, 7, .38);

	color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html {
	/* fundo do "elástico" da rolagem: laranja no topo, escuro no fim (rodapé) */
	background: linear-gradient(var(--sun) 50%, var(--ink-2) 50%);
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--top-h) + var(--strip-h) + 8px);
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--sun);
	color: var(--ink);
	font-family: var(--body);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

img { max-width: 100%; display: block; }
svg { flex: 0 0 auto; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 3px; border-radius: 6px; }

.wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding-inline: 16px; }
.sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; left: 12px; top: -60px; z-index: 50; background: var(--ink); color: #fff; padding: 10px 14px; border-radius: 10px; text-decoration: none; font-weight: 700; transition: top .2s; }
.skip:focus { top: 12px; }

/* Ícones em linha (stroke) */
.btn svg, .tool svg, .eyebrow svg, .ev-meta svg, .step-ic svg, .venue-ic svg, .bar-nav svg, .view-btn svg {
	fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
}

/* ---------- Botões ---------- */
.btn {
	--bg: var(--white);
	--fg: var(--ink);
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 10px 18px;
	border-radius: 14px;
	background: var(--bg); color: var(--fg);
	font-family: var(--display); font-weight: 800; font-size: 17px; line-height: 1;
	text-transform: uppercase; letter-spacing: .03em; text-decoration: none; text-align: center;
	transition: transform .18s var(--ease), background-color .18s, box-shadow .18s, color .18s;
	-webkit-tap-highlight-color: transparent;
}
.btn span { text-wrap: balance; }
.btn svg { width: 19px; height: 19px; }
.btn:active { transform: scale(.97); }
.btn-sm { min-height: 40px; padding: 8px 14px; font-size: 15px; border-radius: 12px; }
.btn-lg { min-height: 56px; padding: 14px 24px; font-size: 19px; border-radius: 16px; }
.btn-ink { --bg: var(--ink); --fg: #fff; box-shadow: 0 10px 24px -10px rgba(43, 22, 7, .6); }
.btn-ghost { --bg: rgba(255, 255, 255, .22); --fg: var(--ink); box-shadow: inset 0 0 0 2px var(--ink); backdrop-filter: blur(6px); }
.btn-sun { --bg: var(--sun); --fg: var(--ink); }
.btn-ink svg:last-child, .btn-lg svg:last-child { transition: transform .2s var(--ease); }

@media (hover: hover) {
	.btn-ink:hover { --bg: #000; transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(43, 22, 7, .7); }
	.btn-ink:hover svg:last-child, .btn-lg:hover svg:last-child { transform: translateX(3px); }
	.btn-ghost:hover { --bg: rgba(255, 255, 255, .45); }
	.btn-sun:hover { --bg: var(--sun-light); }
}

/* ---------- Wordmark (placeholder do logo) ---------- */
.wordmark {
	display: inline-flex; flex-direction: column; align-items: center;
	font-family: var(--display); font-weight: 900; font-style: italic;
	text-transform: uppercase; color: #fff; line-height: .8; letter-spacing: -.01em;
	transform: rotate(-4deg);
	text-shadow:
		1px 1px 0 #E58A1E, 2px 2px 0 #E58A1E, 3px 3px 0 #E58A1E, 4px 4px 0 #E58A1E,
		5px 5px 0 #6E3B1C, 6px 6px 0 #6E3B1C, 7px 7px 0 #6E3B1C, 8px 8px 0 #6E3B1C,
		10px 14px 22px rgba(43, 22, 7, .35);
}
.wordmark span:last-child { margin-left: .4em; }
.gdo-text {
	display: inline-flex; align-items: flex-start;
	font-family: var(--body); font-weight: 700; font-size: 34px; line-height: 1; letter-spacing: -.04em;
	color: #fff;
}
.gdo-text sup { font-size: .5em; margin-left: 1px; }

/* =========================================================
   Topo fixo
   ========================================================= */
.topbar {
	position: fixed; inset: 0 0 auto 0; z-index: 30;
	height: var(--top-h);
	padding-top: env(safe-area-inset-top, 0px);
	transition: background-color .3s, box-shadow .3s, backdrop-filter .3s;
}
.topbar.solid {
	background: rgba(249, 170, 55, .82);
	backdrop-filter: saturate(1.4) blur(14px);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	box-shadow: 0 1px 0 rgba(43, 22, 7, .12);
}
.topbar-in { height: 100%; display: flex; align-items: center; gap: 16px; }
.topbar-logo { display: flex; text-decoration: none; margin-right: auto; opacity: 0; transform: translateY(-6px); transition: opacity .3s, transform .3s var(--ease); }
.topbar.solid .topbar-logo { opacity: 1; transform: none; }
.logo-sm { height: 40px; width: auto; }
.logo-sm.wordmark { font-size: 21px; text-shadow: 1px 1px 0 #E58A1E, 2px 2px 0 #6E3B1C, 3px 3px 0 #6E3B1C; }
.topbar-nav { display: none; gap: 4px; }
.topbar-nav a {
	font-family: var(--display); font-weight: 700; font-size: 17px; text-transform: uppercase; letter-spacing: .05em;
	text-decoration: none; padding: 8px 12px; border-radius: 10px; transition: background-color .15s;
}
.topbar-nav a:hover { background: rgba(43, 22, 7, .08); }
.topbar-nav a.on { background: rgba(43, 22, 7, .1); }
.topbar .btn span { display: none; }
@media (min-width: 420px) { .topbar .btn span { display: inline; } }
@media (min-width: 900px) { .topbar-nav { display: flex; } }

/* =========================================================
   Hero
   ========================================================= */
.hero {
	position: relative; isolation: isolate; overflow: hidden; overflow: clip; /* clip: corta sem permitir rolagem interna */
	padding: calc(var(--top-h) + 28px) 0 96px;
	background:
		radial-gradient(120% 80% at 85% 0%, #FFD98A 0%, transparent 55%),
		radial-gradient(90% 70% at 0% 100%, #F28F2C 0%, transparent 60%),
		var(--sun);
}
.hero-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.rays {
	position: absolute; left: 50%; top: -30%;
	width: 180vmax; height: 180vmax; margin-left: -90vmax;
	background: repeating-conic-gradient(from 0deg, rgba(255, 255, 255, .16) 0deg 6deg, transparent 6deg 18deg);
	-webkit-mask-image: radial-gradient(circle at center, #000 0%, transparent 52%);
	mask-image: radial-gradient(circle at center, #000 0%, transparent 52%);
	animation: spin 120s linear infinite;
}
.blob { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; }
.b1 { width: 420px; height: 420px; background: #FFE08A; right: -120px; top: 40px; animation: float 16s ease-in-out infinite; }
.b2 { width: 360px; height: 360px; background: var(--coral); left: -140px; bottom: -60px; opacity: .35; animation: float 20s ease-in-out infinite reverse; }
.b3 { width: 260px; height: 260px; background: #fff; left: 40%; top: -120px; opacity: .25; animation: float 24s ease-in-out infinite; }
.grain {
	position: absolute; inset: 0; opacity: .18; mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .3 0 0 0 0 .1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes float { 50% { transform: translate(30px, -24px) scale(1.06); } }

.hero-grid { display: grid; gap: 36px; align-items: center; }
.hero-copy { display: flex; flex-direction: column; align-items: center; text-align: center; }

.eyebrow {
	display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px;
	padding: 8px 14px 8px 10px; border-radius: 999px;
	background: rgba(255, 255, 255, .35); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .6);
	backdrop-filter: blur(6px);
	font-family: var(--display); font-weight: 800; font-size: 15px; letter-spacing: .12em; text-transform: uppercase;
}
.eyebrow svg { width: 18px; height: 18px; color: var(--ink); animation: spin 14s linear infinite; }

.hero-title { margin: 0; line-height: 0; }
.logo-hero { width: min(340px, 78vw); height: auto; filter: drop-shadow(0 18px 30px rgba(43, 22, 7, .25)); }
.logo-hero.wordmark { width: auto; font-size: clamp(76px, 22vw, 168px); filter: none; }

.hero-brands { display: flex; align-items: center; gap: 18px; margin-top: 22px; }
.hero-brands .gdo { height: 40px; width: auto; }
.hero-brands .divider { width: 2px; height: 34px; background: rgba(43, 22, 7, .25); border-radius: 2px; }
.hero-brands .show-tag { height: 44px; width: auto; }
.show-text {
	font-family: var(--display); font-weight: 900; font-style: italic; text-transform: uppercase;
	color: #fff; font-size: 20px; line-height: .9; text-align: left; height: auto !important;
	text-shadow: 2px 2px 0 #6E3B1C;
}

.hero-lede { margin: 22px auto 0; max-width: 46ch; font-size: 17px; font-weight: 500; text-wrap: pretty; }
.hero-lede strong { font-weight: 700; }
.hero-ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 26px; }
.hero-ctas .btn { flex: 1 1 220px; }

.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 30px 0 0; width: 100%; max-width: 440px; }
.stats div {
	padding: 12px 8px; border-radius: 18px;
	background: rgba(255, 255, 255, .28); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55);
	backdrop-filter: blur(6px);
}
.stats dt { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; opacity: .75; order: 2; }
.stats div { display: flex; flex-direction: column-reverse; align-items: center; }
.stats dd { margin: 0; font-family: var(--display); font-weight: 900; font-size: 40px; line-height: 1; font-variant-numeric: tabular-nums; }

/* Card "Próximo show" */
.next {
	position: relative; width: 100%; max-width: 400px; margin: 0 auto;
	background: var(--c); color: #fff;
	border-radius: 28px; overflow: hidden;
	box-shadow: var(--shadow-2), inset 0 0 0 1px rgba(255, 255, 255, .12);
}
.next-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: rgba(0, 0, 0, .15); }
.next-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transform: scale(1.4); transform-origin: 50% 30%; }
.next-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, var(--c) 100%); }
.next .ph-sm { position: absolute; inset: 0; border-radius: 0; display: flex; align-items: flex-start; justify-content: flex-end; padding: 56px 20px 36px; box-shadow: none; }
.next .ph-sm .ph-note { font-size: 14px; top: 45%; z-index: 1; }
.next-body { position: relative; padding: 4px 20px 20px; }
.next-date { margin: 0; font-family: var(--display); font-weight: 900; font-size: 34px; line-height: 1; }
.next-date small { display: block; margin-top: 6px; font-family: var(--body); font-weight: 600; font-size: 13px; letter-spacing: .04em; opacity: .85; }
.next-title { margin: 10px 0 14px; font-family: var(--display); font-weight: 800; font-size: 28px; line-height: 1; text-transform: uppercase; }

.countdown { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 14px; }
.countdown div { background: rgba(255, 255, 255, .14); border-radius: 14px; padding: 10px 4px 8px; text-align: center; }
.countdown b { display: block; font-family: var(--display); font-weight: 800; font-size: 28px; line-height: 1; font-variant-numeric: tabular-nums; }
.countdown span { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; opacity: .8; }

.wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 70px; fill: var(--ink); }

@media (min-width: 960px) {
	.hero { min-height: min(100svh, 900px); display: flex; align-items: center; padding-bottom: 120px; }
	.hero-grid { grid-template-columns: 1.15fr .85fr; gap: 56px; }
	.hero-copy { align-items: flex-start; text-align: left; }
	.hero-lede { margin-left: 0; font-size: 19px; }
	.hero-ctas { justify-content: flex-start; }
	.hero-ctas .btn { flex: 0 0 auto; }
	.logo-hero { width: min(460px, 36vw); }
	.logo-hero.wordmark { font-size: clamp(120px, 12vw, 190px); transform-origin: left; }
	.hero-brands .gdo { height: 48px; }
	.hero-brands .show-tag { height: 54px; }
	.next { transform: rotate(2deg); transition: transform .5s var(--ease); }
	.next:hover { transform: rotate(0) translateY(-6px); }
}

/* =========================================================
   Faixa de artistas
   ========================================================= */
.marquee { background: var(--ink); color: var(--sun); overflow: hidden; padding: 14px 0 18px; }
.marquee-track { display: flex; width: max-content; gap: 22px; align-items: center; animation: marquee 40s linear infinite; }
.marquee span { font-family: var(--display); font-weight: 900; font-style: italic; font-size: 30px; text-transform: uppercase; line-height: 1; white-space: nowrap; }
.marquee span:nth-of-type(even) { color: transparent; -webkit-text-stroke: 1.5px var(--sun); }
.marquee i { font-style: normal; color: var(--paper); opacity: .6; font-size: 18px; }
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* =========================================================
   Cabeçalhos de seção
   ========================================================= */
.section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.section-head.center { flex-direction: column; align-items: center; text-align: center; }
.kicker { margin: 0 0 6px; font-family: var(--display); font-weight: 800; font-size: 15px; letter-spacing: .16em; text-transform: uppercase; opacity: .7; }
.section-title { margin: 0; font-family: var(--display); font-weight: 900; text-transform: uppercase; font-size: clamp(40px, 8vw, 64px); line-height: .92; letter-spacing: -.01em; }

/* =========================================================
   Agenda
   ========================================================= */
.agenda {
	padding: 56px 0 40px; position: relative;
	background:
		radial-gradient(70% 40% at 100% 0%, rgba(255, 255, 255, .28), transparent 70%),
		radial-gradient(60% 30% at 0% 60%, rgba(255, 150, 0, .14), transparent 70%),
		var(--agenda);
}

.controls { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; width: 100%; }
@media (min-width: 760px) { .controls { width: auto; } }

/* Controle segmentado com pílula deslizante */
.seg {
	position: relative; display: flex; flex: 1 1 auto;
	padding: 4px; border-radius: 999px;
	background: rgba(43, 22, 7, .1); box-shadow: inset 0 0 0 1px rgba(43, 22, 7, .08);
}
.seg-pill {
	position: absolute; top: 4px; bottom: 4px; left: 0; width: 0;
	background: var(--ink); border-radius: 999px; box-shadow: 0 6px 16px -6px rgba(43, 22, 7, .6);
	transition: transform .35s var(--ease), width .35s var(--ease);
}
.no-js .seg-pill { display: none; }
.seg-btn {
	position: relative; z-index: 1; flex: 1 1 auto;
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 10px 14px; border-radius: 999px; white-space: nowrap;
	font-family: var(--display); font-weight: 800; font-size: 16px; text-transform: uppercase; letter-spacing: .04em; line-height: 1;
	transition: color .25s;
}
.seg-btn em { font-style: normal; font-size: 12px; min-width: 20px; padding: 3px 5px; border-radius: 999px; background: rgba(43, 22, 7, .12); transition: background-color .25s; }
.seg-btn[aria-pressed="true"] { color: #fff; }
.seg-btn[aria-pressed="true"] em { background: rgba(255, 255, 255, .2); }
.no-js .seg-btn[aria-pressed="true"] { background: var(--ink); }

.view { display: flex; padding: 4px; border-radius: 14px; background: rgba(43, 22, 7, .1); }
.view-btn { width: 40px; height: 38px; display: grid; place-items: center; border-radius: 10px; transition: background-color .2s, color .2s; }
.view-btn svg { width: 20px; height: 20px; }
.view-btn[aria-pressed="true"] { background: var(--paper); box-shadow: var(--shadow-1); }

/* Mês */
.month { padding-top: 26px; }
.month[hidden] { display: none; }
.month-title {
	display: flex; align-items: baseline; gap: 12px; margin: 0 0 16px;
	font-family: var(--display); font-weight: 900; text-transform: uppercase;
	font-size: clamp(36px, 7vw, 56px); line-height: 1; color: var(--ink);
	text-shadow: none;
}
.month-title span { font-size: .5em; color: transparent; -webkit-text-stroke: 1.5px var(--ink); text-shadow: none; letter-spacing: .06em; }
.month-title::after { content: ""; flex: 1; height: 2px; align-self: center; background: linear-gradient(90deg, rgba(43, 22, 7, .25), transparent); }

/* Grade de cartazes */
.feed { display: grid; grid-template-columns: minmax(0, 460px); justify-content: center; gap: 28px 24px; }
@media (min-width: 640px) { .feed { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .feed { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.ev { position: relative; display: flex; flex-direction: column; container-type: inline-size; scroll-margin-top: calc(var(--top-h) + var(--strip-h) + 12px); }
.ev[hidden] { display: none; }

.ev-media { position: relative; aspect-ratio: 3 / 4; }
.ev-media .poster {
	width: 100%; height: 100%; object-fit: contain;
	transition: transform .5s var(--ease);
}
/* Encerrado: véu escuro em P&B só dentro do card do cartaz (a margem laranja do arquivo continua igual ao fundo) */
.ev.past .ev-media::after {
	content: ""; position: absolute; inset: var(--card-top, 6.5%) 3.9% 2.9%; z-index: 1; border-radius: 5.5cqw; pointer-events: none;
	background: rgba(43, 22, 7, .38);
	-webkit-backdrop-filter: grayscale(1); backdrop-filter: grayscale(1);
}
.ev.past .poster-top { display: none; }
.ev.past .ev-body, .ev.past .ev-actions { filter: grayscale(.6); }

/* Cartaz provisório (até a imagem chegar) */
.ph {
	position: absolute; inset: var(--card-top, 6.5%) 3.9% 2.9%;
	display: flex; flex-direction: column; justify-content: flex-end; gap: 6px;
	padding: 7cqw 7cqw 6cqw;
	border-radius: 5cqw; overflow: hidden; color: #fff;
	background:
		radial-gradient(90% 60% at 80% 10%, rgba(255, 255, 255, .28), transparent 60%),
		radial-gradient(80% 70% at 0% 100%, rgba(0, 0, 0, .35), transparent 60%),
		repeating-linear-gradient(-45deg, rgba(255, 255, 255, .05) 0 12px, transparent 12px 24px),
		var(--c);
	box-shadow: 0 18px 30px -14px rgba(43, 22, 7, .45);
	transition: transform .5s var(--ease);
}
.ph-top { position: absolute; top: 6cqw; left: 7cqw; right: 7cqw; display: flex; justify-content: space-between; align-items: center; font-family: var(--display); font-weight: 800; font-style: italic; font-size: 4.2cqw; text-transform: uppercase; }
.ph-gdo { height: 6cqw; width: auto; }
.ph-gdo.gdo-text { font-size: 6.4cqw; }
.ph-name { font-family: var(--display); font-weight: 900; font-size: 13cqw; line-height: .88; text-transform: uppercase; text-wrap: balance; text-shadow: 0 4px 0 rgba(0, 0, 0, .2); }
.ph-sub { font-family: var(--display); font-weight: 700; font-size: 4.6cqw; text-transform: uppercase; letter-spacing: .04em; opacity: .9; }
.ph-date { display: flex; align-items: center; gap: 10px; margin-top: 3cqw; font-family: var(--display); font-weight: 900; font-size: 10cqw; line-height: 1; }
.ph-date small { font-size: 3.6cqw; font-weight: 700; letter-spacing: .06em; line-height: 1.15; opacity: .9; }
.ph-note { position: absolute; top: 46%; left: 50%; transform: translate(-50%, -50%) rotate(-6deg); padding: 6px 12px; border-radius: 8px; background: rgba(255, 255, 255, .16); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .5); font-family: var(--display); font-weight: 800; font-size: 3.8cqw; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.ev.rev .ph { background: radial-gradient(90% 60% at 70% 20%, #fff, transparent 70%), linear-gradient(160deg, #FFF8EE, #EBD9BD); color: var(--gold); box-shadow: 0 18px 30px -14px rgba(138, 100, 48, .5), inset 0 0 0 2px var(--gold-line); }
.ev.rev .ph-name { text-shadow: none; }
.ev.rev .ph-note { background: rgba(138, 100, 48, .08); box-shadow: inset 0 0 0 1.5px rgba(138, 100, 48, .4); }
.ev.rev .gdo-text { color: var(--gold); }

/* Selos */
.badge {
	position: absolute; top: 2.4%; left: 3.9%; z-index: 5;
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 10px; border-radius: 999px;
	font-family: var(--display); font-weight: 800; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; line-height: 1;
	box-shadow: var(--shadow-1);
}
.badge-live { background: #fff; color: var(--ink); }
.badge-live i { width: 8px; height: 8px; border-radius: 50%; background: #E3342F; box-shadow: 0 0 0 0 rgba(227, 52, 47, .6); animation: pulse 1.6s infinite; }
.badge-off { background: var(--ink); color: #fff; }
.badge-gold { background: var(--gold); color: #fff; }
.next .badge { top: 14px; left: auto; right: 14px; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(227, 52, 47, 0); } 100% { box-shadow: 0 0 0 0 rgba(227, 52, 47, 0); } }

/* Painel de informações + ações */
.ev-body, .ev-actions { margin-inline: 3.9%; background: var(--c); color: #fff; }
.ev-body { flex: 1 0 auto; display: flex; gap: 14px; align-items: flex-start; margin-top: 10px; padding: 16px 16px 12px; border-radius: var(--radius) var(--radius) 0 0; }
.ev-actions { padding: 0 12px 12px; border-radius: 0 0 var(--radius) var(--radius); box-shadow: 0 18px 30px -18px rgba(43, 22, 7, .6); }
.ev-date {
	flex: 0 0 auto; width: 58px; padding: 8px 0 6px; border-radius: 14px; text-align: center;
	background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);
	font-family: var(--display); line-height: 1;
}
.ev-date b { display: block; font-weight: 900; font-size: 28px; }
.ev-date span { font-weight: 700; font-size: 13px; letter-spacing: .1em; }
.ev-info { min-width: 0; }
.ev-title { margin: 2px 0 2px; font-family: var(--display); font-weight: 800; font-size: 24px; line-height: 1; text-transform: uppercase; text-wrap: balance; }
.ev-sub { margin: 0 0 4px; font-size: 13px; font-weight: 600; opacity: .8; }
.ev-meta { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 14px; font-weight: 600; }
.ev-meta li { display: inline-flex; align-items: center; gap: 5px; opacity: .92; }
.ev-meta svg { width: 15px; height: 15px; }

.cta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.cta .btn { padding-inline: 10px; font-size: 16px; min-height: 50px; }
.btn.buy { --bg: #fff; --fg: var(--c); }
.btn.table { --bg: rgba(255, 255, 255, .12); --fg: #fff; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .85); }
@media (hover: hover) {
	.btn.buy:hover { --bg: var(--paper); transform: translateY(-2px); box-shadow: 0 10px 20px -10px rgba(0, 0, 0, .5); }
	.btn.table:hover { --bg: rgba(255, 255, 255, .26); }
}
@container (max-width: 330px) {
	.cta { grid-template-columns: 1fr; }
	.ev-title { font-size: 21px; }
}

.ev-tools { display: flex; gap: 6px; margin-top: 8px; }
.tool {
	flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	min-height: 38px; padding: 6px 8px; border-radius: 12px;
	font-size: 13px; font-weight: 600; color: #fff; opacity: .88;
	transition: background-color .15s, opacity .15s;
}
.tool svg { width: 16px; height: 16px; }
.tool:hover { background: rgba(255, 255, 255, .12); opacity: 1; }

.closed { text-align: center; padding: 14px; border-radius: 14px; background: rgba(0, 0, 0, .2); font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }

/* Réveillon: dourado sobre creme */
.ev.rev .ev-body, .ev.rev .ev-actions { background: var(--cream); color: var(--ink); }
.ev.rev .ev-body { box-shadow: inset 0 3px 0 0 var(--gold-line); }
.ev.rev .ev-date { background: #fff; color: var(--gold); box-shadow: inset 0 0 0 1px var(--gold-line); }
.ev.rev .ev-title { color: var(--gold); }
.ev.rev .btn.buy { --bg: var(--gold); --fg: #fff; }
.ev.rev .btn.table { --bg: transparent; --fg: var(--gold); box-shadow: inset 0 0 0 2px var(--gold); }
.ev.rev .tool { color: var(--gold); }
.ev.rev .tool:hover { background: rgba(138, 100, 48, .1); }

/* Destaque do próximo show */
.ev.is-next .ev-actions { box-shadow: 0 18px 30px -18px rgba(43, 22, 7, .6), 0 0 0 0 transparent; }

@media (hover: hover) {
	.ev:not(.past):hover .poster, .ev:not(.past):hover .poster-top { transform: translateY(-6px) scale(1.015); }
	.ev:not(.past):hover .ph { transform: translateY(-6px) rotate(-.6deg); }
}

/* Modo lista */
.feed-wrap[data-view="list"] .feed { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.feed-wrap[data-view="list"] .ev {
	display: grid; flex-direction: unset; grid-template-columns: 76px minmax(0, 1fr); grid-template-areas: "media body" "actions actions";
	align-items: center; background: var(--c); color: #fff; border-radius: var(--radius); overflow: hidden;
	box-shadow: var(--shadow-1);
}
.feed-wrap[data-view="list"] .ev.rev { background: var(--cream); color: var(--ink); box-shadow: var(--shadow-1), inset 0 0 0 2px var(--gold-line); }
.feed-wrap[data-view="list"] .ev-media { grid-area: media; aspect-ratio: auto; height: 100%; min-height: 96px; overflow: hidden; }
.feed-wrap[data-view="list"] .ev-media .poster { position: absolute; inset: 0; object-fit: cover; transform: scale(1.5); filter: none; }
.feed-wrap[data-view="list"] .ph { inset: 0; border-radius: 0; padding: 0; box-shadow: none; }
.feed-wrap[data-view="list"] .ph > *, .feed-wrap[data-view="list"] .badge { display: none; }
.feed-wrap[data-view="list"] .ev-body { grid-area: body; margin: 0; padding: 14px; background: none; border-radius: 0; box-shadow: none; }
.feed-wrap[data-view="list"] .ev-actions { grid-area: actions; margin: 0; padding: 0 12px 12px; background: none; box-shadow: none; }
.feed-wrap[data-view="list"] .ev-tools { display: none; }
.feed-wrap[data-view="list"] .ev:hover .poster, .feed-wrap[data-view="list"] .ev:hover .ph { transform: none; }
@media (min-width: 760px) {
	.feed-wrap[data-view="list"] .ev { grid-template-columns: 110px minmax(0, 1fr) minmax(0, 380px); grid-template-areas: "media body actions"; }
	.feed-wrap[data-view="list"] .ev-actions { padding: 14px 16px 14px 0; }
}

.empty { text-align: center; padding: 40px 0; font-weight: 600; }

/* =========================================================
   Locais
   ========================================================= */
.venues { padding: 72px 0; background: var(--ink); color: var(--paper); }
.venues .kicker { color: var(--sun); opacity: 1; }
.venues .section-title { color: var(--paper); }
.venue-grid { display: grid; gap: 18px; margin-top: 10px; }
@media (min-width: 760px) { .venue-grid { grid-template-columns: 1fr 1fr; gap: 22px; } }
.venue {
	display: flex; flex-direction: column; gap: 16px;
	padding: 24px; border-radius: 28px;
	background: linear-gradient(160deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1);
	transition: box-shadow .3s, transform .3s var(--ease);
}
.venue:hover { box-shadow: inset 0 0 0 1px rgba(247, 170, 56, .5); transform: translateY(-3px); }
/* Banner com a marca do local */
.venue-brand {
	position: relative; display: grid; place-items: center; height: 150px; margin: -8px -8px 0; padding: 22px 28px;
	border-radius: 22px; overflow: hidden;
	background:
		radial-gradient(80% 120% at 50% 0%, rgba(249, 170, 55, .18), transparent 70%),
		linear-gradient(160deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}
.venue-brand img { position: absolute; inset: 22px 28px; width: calc(100% - 56px); height: calc(100% - 44px); object-fit: contain; filter: drop-shadow(0 6px 18px rgba(0, 0, 0, .35)); transition: transform .5s var(--ease); }
.venue:hover .venue-brand img { transform: scale(1.03); }
@media (min-width: 760px) { .venue-brand { height: 170px; } }

.venue-head { display: flex; align-items: center; gap: 14px; }
.venue-head .venue-ic { width: 42px; height: 42px; border-radius: 14px; }
.venue-head .venue-ic svg { width: 20px; height: 20px; }
.venue h3 { font-size: 26px !important; }
.venue-ic { display: grid; place-items: center; width: 50px; height: 50px; border-radius: 16px; background: var(--sun); color: var(--ink); flex: 0 0 auto; }
.venue-ic svg { width: 24px; height: 24px; }
.venue h3 { margin: 0; font-family: var(--display); font-weight: 900; font-size: 32px; line-height: 1; text-transform: uppercase; }
.venue-city { margin: 4px 0 0; font-size: 14px; opacity: .7; }
.venue-count { margin-left: auto; text-align: center; font-size: 12px; text-transform: uppercase; letter-spacing: .1em; opacity: .8; line-height: 1.1; }
.venue-count b { display: block; font-family: var(--display); font-size: 30px; color: var(--sun); letter-spacing: 0; }
.venue-desc { margin: 0; opacity: .85; max-width: 52ch; }
.venue-dates { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.venue-dates a {
	display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px;
	text-decoration: none; background: rgba(255, 255, 255, .05);
	font-weight: 600; transition: background-color .15s, transform .15s var(--ease);
}
.venue-dates a::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 3px rgba(255, 255, 255, .08); flex: 0 0 auto; }
.venue-dates b { font-family: var(--display); font-weight: 800; font-size: 17px; letter-spacing: .03em; color: var(--sun); min-width: 58px; }
.venue-dates a:hover { background: rgba(255, 255, 255, .1); transform: translateX(3px); }
.venue .btn { align-self: flex-start; margin-top: auto; }

/* =========================================================
   Chamada final + rodapé
   ========================================================= */
.final { position: relative; overflow: hidden; padding: 88px 0; text-align: center; background: radial-gradient(80% 120% at 50% 0%, #FFD98A, var(--sun) 60%); }
.final::before {
	content: ""; position: absolute; left: 50%; top: 100%; width: 1600px; height: 1600px; margin: -800px 0 0 -800px;
	background: repeating-conic-gradient(rgba(255, 255, 255, .18) 0deg 5deg, transparent 5deg 15deg);
	-webkit-mask-image: radial-gradient(circle, #000, transparent 60%); mask-image: radial-gradient(circle, #000, transparent 60%);
	animation: spin 90s linear infinite; pointer-events: none;
}
.final-in { position: relative; }
.final h2 { margin: 0; font-family: var(--display); font-weight: 900; font-style: italic; text-transform: uppercase; font-size: clamp(44px, 9vw, 92px); line-height: 1.02; color: #fff; text-shadow: 3px 3px 0 #E58A1E, 6px 6px 0 #6E3B1C; text-wrap: balance; }
.final p { margin: 18px 0 26px; font-size: 18px; font-weight: 600; }

.footer { background: var(--ink-2); color: var(--paper); padding: 40px 0 calc(32px + env(safe-area-inset-bottom, 0px)); text-align: center; }
.footer-in { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.footer-gdo { height: 34px; width: auto; margin-bottom: 8px; }
.footer-gdo.gdo-text { font-size: 30px; }
.footer-url { font-family: var(--display); font-weight: 900; font-size: 26px; letter-spacing: .04em; color: var(--sun); }
.footer p { margin: 0; font-size: 14px; opacity: .7; }
.footer-copy { margin-top: 14px !important; font-size: 12px !important; opacity: .45 !important; }

/* =========================================================
   Barra fixa (mobile)
   ========================================================= */
.bar {
	position: fixed; left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom, 0px)); z-index: 25;
	display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; grid-template-areas: "prev who next" "cta cta cta";
	gap: 8px 6px; align-items: center;
	padding: 10px; border-radius: 24px;
	background: var(--c, #6E3B1C); color: #fff;
	box-shadow: 0 18px 40px -12px rgba(43, 22, 7, .55), inset 0 0 0 1px rgba(255, 255, 255, .12);
	transform: translateY(calc(100% + 24px)); opacity: 0;
	transition: transform .4s var(--ease), opacity .3s, background-color .35s, color .35s;
}
.bar.show { transform: none; opacity: 1; }
.bar.rev { background: var(--cream); color: var(--ink); box-shadow: 0 18px 40px -12px rgba(43, 22, 7, .45), inset 0 0 0 2px var(--gold-line); }
.bar-nav { grid-area: prev; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: rgba(255, 255, 255, .14); }
.bar-nav[data-step="1"] { grid-area: next; }
.bar-nav svg { width: 20px; height: 20px; }
.bar-nav:disabled { opacity: .35; cursor: default; }
.bar.rev .bar-nav { background: rgba(138, 100, 48, .12); color: var(--gold); }
.bar-who { grid-area: who; min-width: 0; text-align: center; line-height: 1.1; }
.bar-who .a { display: block; font-family: var(--display); font-weight: 800; font-size: 19px; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-who .m { display: block; font-size: 12px; font-weight: 600; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bar-cta { grid-area: cta; }
.bar-cta .btn { min-height: 46px; }
.bar.rev .btn.buy { --bg: var(--gold); --fg: #fff; }
.bar.rev .btn.table { --bg: transparent; --fg: var(--gold); box-shadow: inset 0 0 0 2px var(--gold); }
.bar.rev .bar-who .a { color: var(--gold); }
.bar-cta .closed { padding: 12px; }

@media (min-width: 900px) {
	.bar { display: none; }
}

/* Toast */
.toast {
	position: fixed; left: 50%; z-index: 40;
	bottom: calc(var(--bar-h) + 24px + env(safe-area-inset-bottom, 0px));
	transform: translate(-50%, 16px); opacity: 0; pointer-events: none;
	max-width: calc(100vw - 32px); padding: 12px 18px; border-radius: 14px;
	background: var(--ink); color: #fff; font-weight: 600; font-size: 15px; text-align: center;
	box-shadow: var(--shadow-2);
	transition: opacity .25s, transform .25s var(--ease);
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }
@media (min-width: 900px) { .toast { bottom: 28px; } }

/* =========================================================
   Animações de entrada
   ========================================================= */
.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: var(--d, 0s); }
.js .reveal.in { opacity: 1; transform: none; }
@media (min-width: 960px) { .js .next.reveal.in { transform: rotate(2deg); } .js .next.reveal.in:hover { transform: rotate(0) translateY(-6px); } }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.js .reveal { opacity: 1; transform: none; }
}

@keyframes pop { from { opacity: 0; transform: translateY(16px) scale(.97); } }

/* Botão de fechar dos modais (galeria) */
.lineup-close { position: absolute; top: 10px; right: 10px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; font-size: 22px; line-height: 1; box-shadow: var(--shadow-1); }

/* =========================================================
   Galeria (edições anteriores)
   ========================================================= */
.gallery { padding: 72px 0 80px; background: var(--paper); }
.gallery-lede { margin: 0; max-width: 34ch; font-size: 17px; font-weight: 500; color: rgba(43, 22, 7, .75); }
.gallery-grid {
	list-style: none; margin: 8px 0 0; padding: 0;
	display: grid; gap: 10px; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 120px; grid-auto-flow: dense;
}
/* 1ª foto 2×2 e 6ª foto 2×1: com 8 fotos a grade fecha sem buracos (2 e 4 colunas) */
.gallery-grid li:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.gallery-grid li:nth-child(6) { grid-column: span 2; }
@media (min-width: 760px) {
	.gallery-grid { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 190px; gap: 14px; }
}
.gallery-item { position: relative; display: block; width: 100%; height: 100%; border-radius: 20px; overflow: hidden; background: var(--ink); box-shadow: var(--shadow-1); }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease), filter .4s; }
.gallery-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(27, 13, 4, .45)); opacity: 0; transition: opacity .3s; }
@media (hover: hover) {
	.gallery-item:hover img { transform: scale(1.06); }
	.gallery-item:hover::after { opacity: 1; }
}

.lightbox {
	width: min(1200px, calc(100vw - 24px)); max-height: calc(100svh - 24px);
	padding: 0; border: 0; border-radius: 22px; overflow: hidden; background: #000;
	box-shadow: var(--shadow-2);
}
.lightbox::backdrop { background: rgba(27, 13, 4, .86); backdrop-filter: blur(8px); }
.lightbox[open] { animation: pop .35s var(--ease); }
.lightbox-img { width: 100%; height: auto; max-height: calc(100svh - 24px); object-fit: contain; }
.lightbox-nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
	background: rgba(255, 255, 255, .9); color: var(--ink); box-shadow: var(--shadow-1);
}
.lightbox-nav svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.lightbox-nav.prev { left: 12px; }
.lightbox-nav.next { right: 12px; }
.lightbox-count { position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); padding: 6px 12px; border-radius: 999px; background: rgba(0, 0, 0, .55); color: #fff; font-size: 13px; font-weight: 600; }

/* =========================================================
   Show selecionado na agenda
   ========================================================= */
.ev { transition: translate .45s var(--ease), opacity .4s, filter .4s; }

/* Contorno: do topo do card do cartaz até a base do painel de botões */
.ev-ring {
	position: absolute; z-index: 3; pointer-events: none;
	top: calc(100cqw * 4 / 3 * var(--card-top-n, .065) - 7px); left: calc(3.9cqw - 7px); right: calc(3.9cqw - 7px); bottom: -7px;
	border: 3px solid #fff; border-radius: calc(5.5cqw + 7px);
	box-shadow: 0 0 0 3px var(--c), 0 0 0 10px color-mix(in srgb, var(--c) 25%, transparent), 0 26px 50px -14px var(--c);
	opacity: 0; transform: scale(.985);
	transition: opacity .35s, transform .45s var(--ease);
}
.ev.is-active .ev-ring { opacity: 1; transform: none; }
.ev.is-active { translate: 0 -6px; }

/* Holofote (desktop): os outros cards recuam um pouco */
@media (min-width: 900px) and (hover: hover) {
	.feed-wrap.has-active .ev:not(.is-active):not(.past) { opacity: .74; }
	.feed-wrap.has-active .ev:not(.is-active):hover { opacity: 1; }
}

/* Pulso ao chegar pelo clique numa data */
.ev.flash .ev-ring { animation: ring-pulse 1.2s var(--ease); }
.ev.flash .poster, .ev.flash .poster-top, .ev.flash .ph { animation: card-pop .7s var(--ease); }
@keyframes ring-pulse {
	0% { box-shadow: 0 0 0 3px var(--c), 0 0 0 3px color-mix(in srgb, var(--c) 70%, transparent), 0 26px 50px -14px var(--c); }
	45% { box-shadow: 0 0 0 3px var(--c), 0 0 0 26px color-mix(in srgb, var(--c) 0%, transparent), 0 26px 50px -14px var(--c); }
	100% { box-shadow: 0 0 0 3px var(--c), 0 0 0 10px color-mix(in srgb, var(--c) 25%, transparent), 0 26px 50px -14px var(--c); }
}
@keyframes card-pop { 40% { transform: scale(1.025); } }

/* Modo lista: o contorno envolve a linha inteira */
.feed-wrap[data-view="list"] .ev-ring { inset: -5px; border-radius: calc(var(--radius) + 5px); }
.feed-wrap[data-view="list"] .ev { overflow: visible; }
.feed-wrap[data-view="list"] .ev-media { border-radius: var(--radius) 0 0 var(--radius); }
.feed-wrap[data-view="list"] .ev.is-active { translate: 0 -2px; }

/* Logo que "salta" do topo do cartaz fica na frente do contorno:
   cópia da mesma imagem, recortada só na faixa do logo */
.poster-top {
	position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; object-fit: contain; pointer-events: none;
	clip-path: inset(0 28% var(--logo-clip, 87%) 28%);
	/* bordas laterais em degradê: o contorno some suavemente atrás do logo */
	-webkit-mask-image: linear-gradient(90deg, transparent 28%, #000 34%, #000 66%, transparent 72%);
	mask-image: linear-gradient(90deg, transparent 28%, #000 34%, #000 66%, transparent 72%);
	transition: transform .5s var(--ease);
}
.feed-wrap[data-view="list"] .poster-top { display: none; }

/* =========================================================
   Modal de compartilhar (gaveta no celular)
   ========================================================= */
.share {
	--c: var(--ink);
	width: min(440px, calc(100vw - 32px)); padding: 22px; border: 0; border-radius: 28px;
	background: var(--paper); color: var(--ink); box-shadow: var(--shadow-2);
	overflow: visible;
}
.share::backdrop { background: rgba(27, 13, 4, .62); backdrop-filter: blur(6px); }
.share[open] { animation: pop .35s var(--ease); }
.share-grip { display: none; }
.share-close {
	position: absolute; z-index: 2; top: 14px; right: 14px; width: 36px; height: 36px; border-radius: 50%;
	display: grid; place-items: center; font-size: 22px; line-height: 1;
	background: rgba(43, 22, 7, .08); transition: background-color .15s;
}
.share-close:hover { background: rgba(43, 22, 7, .15); }
.share-kicker { margin: 0 44px 14px 0; font-family: var(--display); font-weight: 800; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; opacity: .6; }

.share-card {
	display: flex; align-items: center; gap: 14px; padding: 10px; margin-bottom: 18px;
	border-radius: 20px; background: var(--c); color: #fff;
	box-shadow: 0 14px 30px -16px var(--c);
}
.share.rev .share-card { background: var(--cream); color: var(--gold); box-shadow: inset 0 0 0 2px var(--gold-line); }
.share:focus { outline: none; }
.share-thumb {
	width: 64px; height: 80px; flex: 0 0 auto; border-radius: 14px; overflow: hidden;
	background: rgba(255, 255, 255, .15); box-shadow: 0 0 0 2px rgba(255, 255, 255, .45);
}
.share.rev .share-thumb { box-shadow: 0 0 0 2px var(--gold); }
.share-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; transform: scale(1.55); transform-origin: 50% 40%; }
.share-card div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.share-card b { font-family: var(--display); font-weight: 800; font-size: 22px; line-height: 1; text-transform: uppercase; }
.share-card span { font-size: 13px; font-weight: 600; opacity: .88; }

.share-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 16px; }
.share-grid:has(.more:not([hidden])) { grid-template-columns: repeat(4, 1fr); }
.share-opt {
	display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 12px 4px 10px;
	border-radius: 18px; text-decoration: none; color: var(--ink); font-size: 13px; font-weight: 600;
	background: #fff; box-shadow: inset 0 0 0 1px rgba(43, 22, 7, .08);
	transition: transform .18s var(--ease), box-shadow .18s;
}
.share-opt:hover { transform: translateY(-3px); box-shadow: inset 0 0 0 1px rgba(43, 22, 7, .08), var(--shadow-1); }
.share-opt:active { transform: scale(.96); }
.share-opt[hidden] { display: none; }
.share-ic { width: 50px; height: 50px; border-radius: 16px; display: grid; place-items: center; color: #fff; }
.share-ic svg { width: 26px; height: 26px; }
.wa .share-ic { background: #25D366; box-shadow: 0 8px 18px -8px #25D366; }
.ig .share-ic { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); box-shadow: 0 8px 18px -8px #d6249f; }
.fb .share-ic { background: #1877F2; box-shadow: 0 8px 18px -8px #1877F2; }
.more .share-ic { background: var(--ink); }

.share-link {
	display: flex; align-items: center; gap: 6px; padding: 6px 6px 6px 14px;
	border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px rgba(43, 22, 7, .12);
}
.share-link input {
	flex: 1; min-width: 0; border: 0; background: none; outline: 0; padding: 8px 0;
	font: 500 14px var(--body); color: rgba(43, 22, 7, .75); text-overflow: ellipsis;
}
.share-link:focus-within { box-shadow: inset 0 0 0 2px var(--ink); }
.share-link .btn { flex: 0 0 auto; min-width: 96px; }
.share-link .btn.ok { --bg: #1C8A4A; }

@media (max-width: 599px) {
	.share {
		width: 100%; max-width: 100%; margin: auto 0 0; padding: 12px 18px calc(20px + env(safe-area-inset-bottom, 0px));
		border-radius: 28px 28px 0 0;
	}
	.share[open] { animation: sheet-up .4s var(--ease); }
	.share-grip { display: block; width: 44px; height: 5px; margin: 0 auto 14px; border-radius: 3px; background: rgba(43, 22, 7, .18); }
	.share-close { top: 12px; }
}
@keyframes sheet-up { from { transform: translateY(100%); } }

/* =========================================================
   Clube GDO — pré-venda (formulário de cadastro)
   ========================================================= */
.clube { --clube: #E8461C; --onda: 22px; position: relative; z-index: 1; isolation: isolate; overflow: hidden; overflow: clip; padding: 80px 0 calc(80px + var(--onda)); margin-bottom: calc(-1 * var(--onda)); color: #fff; background: linear-gradient(160deg, #FA5A1E 0%, var(--clube) 55%, #C9360F 100%);
	/* base ondulada recortada na própria seção: as ondas usam exatamente o mesmo fundo (degradê + brilho) */
	-webkit-mask:
		linear-gradient(#000 0 0) top / 100% calc(100% - var(--onda)) no-repeat,
		radial-gradient(28px var(--onda) at 50% 0, #000 98%, transparent) left bottom / 56px var(--onda) repeat-x;
	mask:
		linear-gradient(#000 0 0) top / 100% calc(100% - var(--onda)) no-repeat,
		radial-gradient(28px var(--onda) at 50% 0, #000 98%, transparent) left bottom / 56px var(--onda) repeat-x;
}
.clube-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.clube-bg::before {
	content: ""; position: absolute; left: -30%; top: -60%; width: 1400px; height: 1400px;
	background: repeating-conic-gradient(rgba(255, 255, 255, .09) 0deg 5deg, transparent 5deg 15deg);
	-webkit-mask-image: radial-gradient(circle, #000, transparent 62%); mask-image: radial-gradient(circle, #000, transparent 62%);
	animation: spin 140s linear infinite;
}
.clube-bg::after { content: ""; position: absolute; right: -160px; bottom: -160px; width: 480px; height: 480px; border-radius: 50%; background: #FFC800; filter: blur(90px); opacity: .35; }

.clube-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; align-items: center; }
.clube-copy { min-width: 0; }
@media (min-width: 960px) { .clube-grid { grid-template-columns: 1fr minmax(0, 460px); gap: 64px; } }

.clube-tag { margin: 0 0 14px; }
.clube-tag span {
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px;
	background: #FFC800; color: var(--ink); box-shadow: 0 8px 20px -10px rgba(0, 0, 0, .5);
	font-family: var(--display); font-weight: 800; font-size: 15px; letter-spacing: .12em; text-transform: uppercase;
}
.clube-tag span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #E3342F; animation: pulse 1.6s infinite; }
.clube-title { margin: 0; font-family: var(--display); font-weight: 900; text-transform: uppercase; font-size: clamp(44px, 8vw, 76px); line-height: .92; text-wrap: balance; }
.clube-title em { font-style: italic; color: #FFC800; text-shadow: 3px 3px 0 rgba(0, 0, 0, .18); }
.clube-lede { margin: 18px 0 0; max-width: 48ch; font-size: 19px; text-wrap: pretty; font-weight: 500; opacity: .95; }
.clube-lede strong { font-weight: 700; color: #FFE38A; }

.clube-note {
	display: flex; align-items: center; gap: 12px; max-width: 520px; margin: 24px 0 0; padding: 12px 16px; border-radius: 16px;
	background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); font-size: 15px;
}
.clube-note::before { content: "!"; display: grid; place-items: center; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; background: #FFC800; color: var(--ink); font-weight: 900; }
.clube-note { font-size: 14px; line-height: 1.45; }
.clube-note a { color: #FFE38A; font-weight: 700; }

/* Card do formulário */
.clube-card {
	position: relative; padding: 26px; border-radius: 30px; background: var(--paper); color: var(--ink);
	box-shadow: 0 30px 60px -24px rgba(60, 10, 0, .65), inset 0 0 0 1px rgba(255, 255, 255, .6);
}
@media (min-width: 960px) { .clube-card { padding: 32px; } }
.clube-form-head { margin-bottom: 18px; }
.clube-free { display: inline-block; margin-bottom: 10px; padding: 4px 10px; border-radius: 8px; background: rgba(232, 70, 28, .1); color: var(--clube); font-family: var(--display); font-weight: 800; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.clube-form-head h3, .clube-ok h3 { margin: 0; font-family: var(--display); font-weight: 900; font-size: 32px; line-height: 1; text-transform: uppercase; }
.clube-form-head p { margin: 8px 0 0; font-size: 14px; color: rgba(43, 22, 7, .7); }

.campo { margin-bottom: 12px; }
.campo label { display: block; margin: 0 0 6px 2px; font-size: 13px; font-weight: 700; letter-spacing: .02em; }
.campo input {
	width: 100%; height: 50px; padding: 0 14px; border: 0; border-radius: 14px; outline: 0;
	background: #fff; color: var(--ink); font: 500 16px var(--body);
	box-shadow: inset 0 0 0 1.5px rgba(43, 22, 7, .14); transition: box-shadow .15s;
}
.campo input::placeholder { color: rgba(43, 22, 7, .4); }
.campo input:focus { box-shadow: inset 0 0 0 2px var(--clube), 0 0 0 4px rgba(232, 70, 28, .14); }
.campo.invalido input { box-shadow: inset 0 0 0 2px #C62828; }
.campo-erro { display: block; min-height: 0; margin: 5px 2px 0; font-size: 12.5px; font-weight: 600; color: #C62828; }
.campo-erro:empty { display: none; }
.campo-senha { position: relative; }
.campo-senha input { padding-right: 50px; }
.ver-senha { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; color: rgba(43, 22, 7, .55); }
.ver-senha:hover { background: rgba(43, 22, 7, .06); color: var(--ink); }
.ver-senha svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ver-senha[aria-pressed="true"] svg { stroke: var(--clube); }

.isca { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.clube-alerta { margin: 4px 0 12px; padding: 10px 12px; border-radius: 12px; background: #FDECEA; color: #A61B1B; font-size: 14px; font-weight: 600; }
.clube-alerta a { color: inherit; font-weight: 800; }

.clube-enviar { position: relative; width: 100%; margin-top: 6px; }
.clube-enviar .spinner { display: none; width: 22px; height: 22px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .35); border-top-color: #fff; animation: spin .7s linear infinite; }
.clube-enviar[aria-busy="true"] { pointer-events: none; opacity: .9; }
.clube-enviar[aria-busy="true"] .txt { opacity: 0; }
.clube-enviar[aria-busy="true"] .spinner { display: block; position: absolute; }
.clube-login { margin: 14px 0 0; text-align: center; font-size: 14px; color: rgba(43, 22, 7, .7); }
.clube-login a { color: var(--clube); font-weight: 700; }

/* Sucesso */
.clube-ok { text-align: center; padding: 18px 6px 8px; outline: 0; }
.clube-ok:not([hidden]) { animation: pop .45s var(--ease); }
.clube-ok-ic { display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 18px; border-radius: 50%; background: #1C8A4A; box-shadow: 0 0 0 10px rgba(28, 138, 74, .14), 0 16px 30px -12px #1C8A4A; }
.clube-ok-ic svg { width: 40px; height: 40px; fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 30; stroke-dashoffset: 0; animation: check .6s .2s var(--ease) backwards; }
@keyframes check { from { stroke-dashoffset: 30; } }
.clube-ok h3 { font-size: 30px; }
.clube-ok p { margin: 12px auto 22px; max-width: 34ch; color: rgba(43, 22, 7, .78); }
.clube-ok .btn { width: 100%; }

/* Filtro por local em telas estreitas (≤ 420px): cabe na largura sem empurrar a página */
.seg { min-width: 0; max-width: 100%; }
.seg-btn { min-width: 0; }
@media (max-width: 420px) {
	.controls { flex-wrap: nowrap; }
	.seg-btn { padding: 10px 8px; gap: 4px; font-size: 14px; letter-spacing: .02em; }
	.seg-btn em { min-width: 18px; padding: 2px 4px; font-size: 11px; }
}
@media (max-width: 360px) {
	.seg-btn em { display: none; }
}

/* CTA da pré-venda (abaixo do card "Próximo show" no hero) */
.hero-side { display: flex; flex-direction: column; align-items: center; gap: 22px; width: 100%; }
.presale-cta { margin-top: 18px; }
.presale-cta {
	display: flex; align-items: center; gap: 14px; width: 100%; max-width: 400px;
	padding: 14px 18px 14px 16px; border-radius: 20px; text-decoration: none;
	background: linear-gradient(135deg, #FA5A1E 0%, #E8461C 55%, #C9360F 100%); color: #fff;
	box-shadow: 0 16px 32px -14px rgba(160, 40, 0, .8), inset 0 0 0 2px rgba(255, 255, 255, .22);
	transition: transform .2s var(--ease), box-shadow .2s, background-color .2s;
}
.presale-cta:hover { transform: translateY(-3px); filter: brightness(1.06); box-shadow: 0 22px 38px -14px rgba(160, 40, 0, .85), inset 0 0 0 2px rgba(255, 255, 255, .35); }
.presale-cta:active { transform: scale(.98); }
.presale-dot { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; background: #FFC800; box-shadow: 0 0 0 0 rgba(255, 200, 0, .7); animation: pulse-sol 1.6s infinite; }
@keyframes pulse-sol { 70% { box-shadow: 0 0 0 9px rgba(255, 200, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 200, 0, 0); } }
.presale-txt { display: flex; flex-direction: column; min-width: 0; flex: 1; line-height: 1.1; }
.presale-txt b { font-family: var(--display); font-weight: 900; font-size: 22px; text-transform: uppercase; letter-spacing: .01em; }
.presale-txt small { margin-top: 3px; font-size: 13px; font-weight: 600; color: #FFE38A; }
.presale-cta svg { flex: 0 0 auto; width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s var(--ease); }
.presale-cta:hover svg { transform: translateX(4px); }
@media (max-width: 380px) { .presale-txt b { font-size: 19px; } }
@media (max-width: 959px) { .hero { padding-bottom: 120px; } }

/* Botão "Pré-venda 14/10" (ingresso ainda na pré-venda do Clube GDO) */
.btn.buy.is-pre { position: relative; }
.btn.buy.is-pre::after {
	content: ""; position: absolute; top: 7px; right: 7px; width: 7px; height: 7px; border-radius: 50%;
	background: #E3342F; box-shadow: 0 0 0 0 rgba(227, 52, 47, .6); animation: pulse 1.6s infinite;
}
/* Aviso desce quando a barra fixa do celular não está visível */
.bar:not(.show) ~ .toast { bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }

/* =========================================================
   Card do topo em rodízio (troca a cada --tempo-card)
   ========================================================= */
.next { transition: background-color .45s var(--ease), transform .5s var(--ease); }
/* Deslizar: sai para um lado e entra pelo outro (usa "translate", separado do zoom em "transform") */
.next-media img, .next-body > *, .next-media .badge { transition: opacity .24s ease, translate .24s var(--ease); }
.next.sai-esq .next-media img, .next.sai-esq .next-body > * { opacity: 0; translate: -36px 0; }
.next.sai-dir .next-media img, .next.sai-dir .next-body > * { opacity: 0; translate: 36px 0; }
.next.trocando .next-media .badge { opacity: 0; }
.next.entra-dir .next-media img, .next.entra-dir .next-body > * { transition: none; opacity: 0; translate: 36px 0; }
.next.entra-esq .next-media img, .next.entra-esq .next-body > * { transition: none; opacity: 0; translate: -36px 0; }
.next.arrastando .next-media img { transition: none; translate: var(--arraste, 0) 0; }

.next-media { touch-action: pan-y; cursor: grab; user-select: none; -webkit-user-select: none; }
.next.arrastando .next-media { cursor: grabbing; }

/* Setas ‹ › */
.next-nav {
	position: absolute; top: 50%; z-index: 3; width: 38px; height: 38px; margin-top: -19px; border-radius: 50%;
	display: grid; place-items: center; background: rgba(255, 255, 255, .88); color: var(--ink);
	box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .45); transition: opacity .2s, transform .2s var(--ease), background-color .2s;
}
.next-nav svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.next-nav.prev { left: 10px; }
.next-nav.nxt { right: 10px; }
.next-nav:hover { background: #fff; transform: scale(1.08); }
.next-nav:active { transform: scale(.94); }
@media (hover: hover) and (pointer: fine) {
	.next-nav { opacity: 0; }
	.next:hover .next-nav, .next-nav:focus-visible { opacity: 1; }
}
.next-media::after { transition: background .45s var(--ease); }

.badge-soon i { background: #FFC800 !important; box-shadow: none !important; animation: none !important; }

/* Indicadores: bolinhas; a ativa vira uma barrinha que enche em 5 s */
.next-dots { position: absolute; left: 16px; bottom: 12px; z-index: 2; display: flex; gap: 4px; }
.next-dots button {
	position: relative; width: 8px; height: 8px; padding: 0; border-radius: 99px; overflow: hidden;
	background: rgba(255, 255, 255, .45); transition: width .35s var(--ease), background-color .2s;
}
.next-dots button::before { content: ""; position: absolute; inset: -8px -3px; } /* área de toque maior */
.next-dots button:hover { background: rgba(255, 255, 255, .75); }
.next-dots button.on { width: 28px; background: rgba(255, 255, 255, .35); }
.next-dots button i { position: absolute; inset: 0; width: 0; background: #fff; border-radius: inherit; }
.next-dots button.on i { animation: dot-fill var(--tempo-card, 5000ms) linear forwards; }
.next.pausado .next-dots button.on i { animation-play-state: paused; }
@keyframes dot-fill { to { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .next-dots button.on i { animation: none; width: 100%; } }
/* Réveillon: arte própria, rostos mais abaixo */
.next.rev .next-media img { object-position: 50% 74%; transform-origin: 50% 74%; transform: scale(1.25); }
.next.rev.trocando .next-media img { transform: scale(1.3); }
/* "Pré-venda 14/10 Clube GDO": no máximo 2 linhas (o JS separa "Clube GDO" numa linha própria) */
.btn.is-pre span { text-wrap: wrap; line-height: 1.05; }
.btn.is-pre span small { display: block; font-size: .78em; letter-spacing: .06em; opacity: .85; margin-top: 2px; }
.btn.is-pre .pre-l1 { display: block; font-weight: inherit; white-space: nowrap; }
@media (max-width: 480px) {
	.btn.is-pre { gap: 0; padding-inline: 8px; }
	.btn.is-pre svg { display: none; }
	.btn.is-pre span { font-size: 15px; }
}

/* Destaque do texto principal do Clube GDO (planos com acesso à pré-venda) */
.clube-lede--destaque {
	margin-top: 22px; max-width: 22ch;
	font-family: var(--display); font-weight: 800; text-transform: uppercase;
	font-size: clamp(26px, 4.6vw, 38px); line-height: 1.05; letter-spacing: .01em; opacity: 1;
	text-wrap: balance;
}
.clube-lede--destaque strong { color: #FFC800; text-shadow: 2px 2px 0 rgba(0, 0, 0, .18); }

/* Rodapé: Instagram e SAC */
.footer-links { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.footer-links a {
	display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px;
	color: var(--paper); text-decoration: none; font-weight: 600; font-size: 14px;
	background: rgba(255, 255, 255, .07); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14);
	transition: background-color .2s, color .2s;
}
.footer-links a:hover { background: rgba(255, 255, 255, .14); color: var(--sun); }
.footer-links svg { width: 20px; height: 20px; flex: 0 0 auto; }

/* Topo do card dentro do arquivo do cartaz: artes novas (out/2026) começam em 6,5%;
   a arte do Réveillon ainda é a antiga (9,7%) */
.ev { --card-top: 6.5%; --card-top-n: .065; --logo-clip: 87%; }
.ev.rev { --card-top: 9.7%; --card-top-n: .097; --logo-clip: 85%; }
.ev:not(.rev) .ev-media .badge { top: 0; }

/* =========================================================
   Mais informações (setores + mapa)
   ========================================================= */
.tool-info { font-weight: 700; opacity: 1; }
.ev-tools { flex-wrap: wrap; }

.info {
	--c: var(--ink);
	width: min(920px, calc(100vw - 32px)); max-height: min(88svh, 900px); padding: 0; border: 0; border-radius: 28px;
	background: var(--paper); color: var(--ink); box-shadow: var(--shadow-2); overflow: hidden;
	display: none; flex-direction: column;
}
.info[open] { display: flex; animation: pop .35s var(--ease); }
.info::backdrop { background: rgba(27, 13, 4, .66); backdrop-filter: blur(6px); }
.info:focus { outline: none; }
.info-grip { display: none; }
.info-close {
	position: absolute; z-index: 3; top: 14px; right: 14px; width: 38px; height: 38px; border-radius: 50%;
	display: grid; place-items: center; font-size: 24px; line-height: 1; color: #fff; background: rgba(0, 0, 0, .25);
	transition: background-color .15s;
}
.info-close:hover { background: rgba(0, 0, 0, .4); }

.info-head {
	flex: 0 0 auto; display: flex; align-items: center; gap: 16px; padding: 18px 64px 18px 18px;
	background: var(--c); color: #fff;
	background-image: radial-gradient(80% 140% at 100% 0%, rgba(255, 255, 255, .18), transparent 60%);
}
.info.rev .info-head { background-color: var(--gold); }
.info-thumb { width: 64px; height: 84px; flex: 0 0 auto; border-radius: 14px; overflow: hidden; background: rgba(255, 255, 255, .15); box-shadow: 0 0 0 2px rgba(255, 255, 255, .5); }
.info-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%; transform: scale(1.5); transform-origin: 50% 32%; }
.info-kicker { margin: 0; font-family: var(--display); font-weight: 800; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; opacity: .8; }
.info-head h2 { margin: 2px 0 4px; font-family: var(--display); font-weight: 900; font-size: clamp(26px, 4vw, 36px); line-height: .95; text-transform: uppercase; }
.info-meta { margin: 0; font-size: 14px; font-weight: 600; opacity: .9; }

.info-scroll { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 0 18px 18px; }
.info-tabs {
	position: sticky; top: 0; z-index: 2; display: flex; gap: 6px; margin: 0 -18px 16px; padding: 12px 18px;
	background: rgba(255, 248, 238, .94); backdrop-filter: blur(8px); box-shadow: 0 1px 0 rgba(43, 22, 7, .08);
}
.info-tab {
	padding: 9px 16px; border-radius: 999px; font-family: var(--display); font-weight: 800; font-size: 15px;
	letter-spacing: .04em; text-transform: uppercase; color: rgba(43, 22, 7, .65); background: rgba(43, 22, 7, .06);
	transition: background-color .2s, color .2s;
}
.info-tab[aria-selected="true"] { background: var(--ink); color: #fff; }

.setores { display: grid; gap: 12px; }
@media (min-width: 760px) { .setores { grid-template-columns: 1fr 1fr; align-items: start; } }
.setor {
	padding: 16px 18px; border-radius: 20px; background: #fff;
	box-shadow: inset 0 0 0 1px rgba(43, 22, 7, .08), 0 6px 18px -12px rgba(43, 22, 7, .35);
	border-top: 4px solid var(--c);
}
.info.rev .setor { border-top-color: var(--gold); }
.setor.destaque { background: linear-gradient(160deg, #fff, #FFF3DA); }
.setor h3 { margin: 0 0 8px; font-family: var(--display); font-weight: 900; font-size: 22px; line-height: 1; text-transform: uppercase; }
.setor p { margin: 0 0 8px; font-size: 14.5px; line-height: 1.5; }
.setor ul { margin: 0 0 8px; padding: 0; list-style: none; display: grid; gap: 6px; }
.setor ul li { position: relative; padding-left: 18px; font-size: 14.5px; line-height: 1.45; }
.setor ul li::before { content: ""; position: absolute; left: 3px; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--c); }
.info.rev .setor ul li::before { background: var(--gold); }
.setor-sub { font-weight: 700; margin-top: 10px !important; }
.setor-benef li { padding: 10px 12px 10px 30px !important; border-radius: 12px; background: rgba(249, 170, 55, .12); }
.setor-benef li::before { left: 12px !important; top: 1.05em !important; }
.setor-benef b { display: block; font-size: 14.5px; }
.setor-benef span { display: block; font-size: 13.5px; color: rgba(43, 22, 7, .78); }
.setor-nota { font-size: 13px !important; font-style: italic; color: rgba(43, 22, 7, .7); }
.setor-res {
	display: inline-flex; align-items: center; gap: 10px; margin-top: 6px; padding: 9px 14px 9px 10px; border-radius: 14px;
	text-decoration: none; color: #0E5E2F; background: rgba(37, 211, 102, .12); box-shadow: inset 0 0 0 1px rgba(37, 211, 102, .35);
	font-weight: 800; font-size: 15px; transition: background-color .15s;
}
.setor-res:hover { background: rgba(37, 211, 102, .22); }
.setor-res svg { width: 24px; height: 24px; color: #25D366; flex: 0 0 auto; }
.setor-res span { display: flex; flex-direction: column; line-height: 1.15; }
.setor-res small { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; opacity: .75; }

.info-mapa { position: relative; display: block; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px rgba(43, 22, 7, .1); }
.info-mapa img { display: block; width: 100%; height: auto; max-height: 70svh; object-fit: contain; }
.info-mapa span {
	position: absolute; right: 12px; bottom: 12px; padding: 7px 12px; border-radius: 999px;
	background: rgba(27, 13, 4, .78); color: #fff; font-size: 13px; font-weight: 700;
}

.info-foot { flex: 0 0 auto; padding: 12px 18px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--c); }
.info.rev .info-foot { background: var(--cream); box-shadow: inset 0 2px 0 var(--gold-line); }
.info.rev .info-foot .btn.buy { --bg: var(--gold); --fg: #fff; }
.info.rev .info-foot .btn.table { --bg: transparent; --fg: var(--gold); box-shadow: inset 0 0 0 2px var(--gold); }
.info-foot .closed { color: #fff; }

@media (max-width: 599px) {
	.info { width: 100%; max-width: 100%; max-height: 92svh; margin: auto 0 0; border-radius: 26px 26px 0 0; }
	.info[open] { animation: sheet-up .4s var(--ease); }
	.info-grip { display: block; position: absolute; z-index: 3; top: 8px; left: 50%; width: 44px; height: 5px; margin-left: -22px; border-radius: 3px; background: rgba(255, 255, 255, .55); }
	.info-head { padding-top: 24px; }
	.info-thumb { width: 52px; height: 68px; }
}

/* "unifique apresenta" centralizado em cima do selo Balneário Camboriú */
.hero-sponsor { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 18px; }
.hero-sponsor .eyebrow { margin: 0; }
.sponsor-logo { width: 220px; height: auto; filter: drop-shadow(0 2px 6px rgba(120, 50, 0, .25)); }
/* logo da unifique sobe, mais perto do topo */
.hero { padding-top: calc(var(--top-h) + 4px); }
.hero-sponsor { margin-top: -56px; }
@media (min-width: 960px) {
	.hero { align-items: flex-start; padding-top: calc(var(--top-h) + 4px); }
	.hero-side { margin-top: 48px; }
}

/* Logo unifique + "Apresenta" escrito embaixo, centralizado */
.sponsor { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: 7%; }
.sponsor .sponsor-logo { width: 220px; height: auto; }
.sponsor-txt {
	font-family: var(--body); font-weight: 700; font-size: 13px; line-height: 1;
	letter-spacing: .42em; text-transform: uppercase; color: #fff; padding-left: .42em; /* compensa o espaçamento da última letra */
	text-shadow: 0 1px 4px rgba(120, 50, 0, .25);
}

/* =========================================================
   Passaporte 28 + 29/12 (arte 4:5 com fundo próprio)
   ========================================================= */
.ev-pass .ev-date b small { font-size: .55em; margin-left: 1px; }
.ev-pass .ev-date { width: 72px; }
.cta.cta-1 { grid-template-columns: 1fr; }
.next.pass .next-media img { object-position: 50% 22%; transform: scale(1.15); transform-origin: 50% 22%; }
/* cards mantêm a própria altura (o passaporte é mais alto e não deve esticar os vizinhos) */
.feed { align-items: start; }


/* Passaporte: ocupa exatamente a área visível de um cartaz normal
   (mesma largura e altura do card dos vizinhos: x 3,9%–96,1%, y 6,5%–97,1%) */
.ev-pass { --card-top: 6.5%; --card-top-n: .065; }
.ev-pass .ev-media { position: relative; aspect-ratio: 3 / 4; }
.ev-pass .ev-media .poster {
	position: absolute; left: 3.9%; top: 6.5%; width: 92.2%; height: 90.6%;
	object-fit: cover; border-radius: 5.5cqw; filter: none; transform: none;
}
.ev-pass .ev-media .badge { top: 0; left: 3.9%; }
