/* ==========================================================================
   2º CONGRESSO CATÓLICO DE UMUARAMA — DESIGN SYSTEM & CORE STYLES
   Layout e Linguagem Visual inspirados no Summer Beats Brasil (Premium Event)
   ========================================================================== */

:root {
  /* Paleta Base Briefing & Summer Beats */
  --bg-primary: #080711;
  --bg-secondary: #0d091a;
  --bg-surface: #140e24;
  --bg-card: rgba(26, 20, 41, 0.55);
  --bg-card-hover: rgba(35, 27, 56, 0.75);
  
  /* Cores de Destaque */
  --color-primary: #783FC6;     /* Roxo Summer Beats / Congresso */
  --color-accent: #C13E9D;      /* Magenta vibrante de apoio */
  --color-gold: #D8B978;        /* Dourado sacro discreto */
  --color-white: #FFFFFF;
  --color-text-muted: #BDB7C9;
  --color-text-dim: #7C768D;
  
  /* Bordas e Divisores */
  --border-subtle: rgba(255, 255, 255, 0.08);
  --border-medium: rgba(255, 255, 255, 0.15);
  --border-glow-primary: rgba(120, 63, 198, 0.5);
  --border-glow-accent: rgba(193, 62, 157, 0.5);
  --border-gold: rgba(216, 185, 120, 0.4);

  /* Gradientes */
  --gradient-cta: linear-gradient(135deg, #783FC6 0%, #C13E9D 100%);
  --gradient-cta-hover: linear-gradient(135deg, #8c4adf 0%, #d64cb2 100%);
  --gradient-accent: linear-gradient(135deg, #C13E9D 0%, #D8B978 100%);
  --gradient-gold: linear-gradient(135deg, #D8B978 0%, #F5DEB3 100%);
  --gradient-card: linear-gradient(180deg, rgba(26, 20, 41, 0.8) 0%, rgba(18, 13, 32, 0.95) 100%);

  /* Efeitos de Luz e Sombras */
  --glow-primary-sm: 0 0 20px rgba(120, 63, 198, 0.35);
  --glow-primary-lg: 0 0 60px rgba(120, 63, 198, 0.5);
  --glow-accent-sm: 0 0 20px rgba(193, 62, 157, 0.35);
  --glow-btn: 0 10px 36px -6px rgba(193, 62, 157, 0.6);
  --shadow-card: 0 20px 50px -15px rgba(0, 0, 0, 0.7);

  /* Tipografia */
  --font-display: 'Sora', 'Barlow', -apple-system, sans-serif;
  --font-body: 'Inter', 'Poppins', -apple-system, sans-serif;

  /* Raios */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;
  --radius-full: 9999px;

  /* Transições */
  --trans-fast: 200ms cubic-bezier(0.16, 1, 0.3, 1);
  --trans-normal: 350ms cubic-bezier(0.16, 1, 0.3, 1);
  --trans-slow: 600ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  color-scheme: dark;
}

body {
  font-family: var(--font-body);
  background-color: var(--bg-primary);
  color: var(--color-white);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  position: relative;
}

body.menu-open {
  overflow: hidden;
  touch-action: none;
}

:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

img, video {
  max-width: 100%;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
}

/* ==========================================================================
   CONTAINER & LAYOUT
   ========================================================================== */
.container {
  width: 100%;
  max-width: 1240px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

.container-wide {
  max-width: 1720px;
}

.section {
  position: relative;
  padding-top: 100px;
  padding-bottom: 100px;
  overflow: hidden;
}

/* Faixa Colorida Divisória (Estilo Summer Beats) */
.faixa-colorida {
  position: relative;
  height: 12px;
  width: 100%;
  overflow: hidden;
  z-index: 10;
}

.faixa-colorida img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.65;
}

.faixa-colorida .neon-drift {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--color-primary), var(--color-accent), var(--color-gold), var(--color-primary));
  mix-blend-mode: screen;
  opacity: 0.5;
  animation: drift 8s linear infinite;
  background-size: 200% 100%;
}

@keyframes drift {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* Sweep de luz */
.animate-nav-sweep {
  animation: nav-sweep 4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

@keyframes nav-sweep {
  0% { transform: translateX(-150%) skewX(-20deg); }
  50%, 100% { transform: translateX(350%) skewX(-20deg); }
}

/* ==========================================================================
   HEADER / NAVBAR (CAPSULE COM CANTOS NEON — SUMMER BEATS STYLE)
   ========================================================================== */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 16px 20px;
  transition: padding var(--trans-normal);
}

.site-header.scrolled {
  padding: 10px 20px;
}

.navbar-capsule {
  position: relative;
  max-width: 1720px;
  margin: 0 auto;
  border-radius: var(--radius-lg);
  background: rgba(8, 7, 17, 0.55);
  border: 1px solid var(--border-subtle);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding: 16px 28px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  transition: background var(--trans-fast), border-color var(--trans-fast);
}

.site-header.scrolled .navbar-capsule {
  background: rgba(8, 7, 17, 0.85);
  border-color: rgba(255, 255, 255, 0.12);
}

/* Cantoneiras Neon (4 Corners) */
.nav-corner {
  position: absolute;
  width: 12px;
  height: 12px;
  border-color: rgba(120, 63, 198, 0.8);
  pointer-events: none;
  z-index: 2;
  transition: opacity var(--trans-fast);
}

.nav-corner.top-left {
  top: -1px;
  left: -1px;
  border-top: 2px solid;
  border-left: 2px solid;
}

.nav-corner.top-right {
  top: -1px;
  right: -1px;
  border-top: 2px solid;
  border-right: 2px solid;
}

.nav-corner.bottom-left {
  bottom: -1px;
  left: -1px;
  border-bottom: 2px solid;
  border-left: 2px solid;
}

.nav-corner.bottom-right {
  bottom: -1px;
  right: -1px;
  border-bottom: 2px solid;
  border-right: 2px solid;
}

.nav-left-links,
.nav-right-links {
  display: flex;
  align-items: center;
  gap: 24px;
}

.nav-right-links {
  justify-content: flex-end;
}

.nav-item-link {
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-text-muted);
  position: relative;
  padding: 4px 0;
  transition: color var(--trans-fast);
}

.nav-item-link::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--gradient-cta);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--trans-normal);
}

.nav-item-link:hover, .nav-item-link.active {
  color: var(--color-white);
}

.nav-item-link:hover::after, .nav-item-link.active::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Logo Central */
.brand-center-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
}

.brand-halo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 120px;
  height: 60px;
  background: radial-gradient(ellipse, rgba(120, 63, 198, 0.4) 0%, transparent 70%);
  filter: blur(14px);
  pointer-events: none;
  animation: pulse-halo 4s ease-in-out infinite;
}

@keyframes pulse-halo {
  0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.9; transform: translate(-50%, -50%) scale(1.15); }
}

.brand-center-title {
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-white);
  line-height: 1.1;
}

.brand-center-sub {
  font-family: var(--font-display);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  color: var(--color-gold);
}

/* Botão Navbar CTA */
.btn-nav-ticket {
  background: var(--gradient-cta);
  color: var(--color-white);
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: transform var(--trans-fast), box-shadow var(--trans-fast);
  white-space: nowrap;
}

.btn-nav-ticket:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(193, 62, 157, 0.5);
}

.mobile-toggle {
  display: none;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  background: rgba(26, 20, 41, 0.6);
  border: 1px solid var(--border-medium);
  color: var(--color-white);
}

/* Drawer Mobile */
.mobile-drawer {
  position: fixed;
  inset: 0;
  background: rgba(8, 7, 17, 0.96);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  z-index: 101;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 40px 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--trans-normal), visibility var(--trans-normal);
}

.mobile-drawer.open {
  opacity: 1;
  visibility: visible;
}

.mobile-nav-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 26px;
  list-style: none;
  margin-bottom: 36px;
}

.mobile-nav-link {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-text-muted);
}

.mobile-nav-link:hover {
  color: var(--color-white);
}

/* ==========================================================================
   HERO BANNER COM VÍDEO (SUMMER BEATS COMPOSITION)
   ========================================================================== */
.hero-section {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 130px;
  padding-bottom: 40px;
  overflow: hidden;
  text-align: center;
}

.hero-media-wrapper {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.hero-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.55;
}

.hero-luz-blend {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.25;
  mix-blend-mode: screen;
  pointer-events: none;
}

.hero-overlay-gradient {
  position: absolute;
  inset: 0;
  background: 
    linear-gradient(180deg, rgba(8, 7, 17, 0.6) 0%, rgba(8, 7, 17, 0.2) 40%, rgba(8, 7, 17, 0.95) 100%),
    radial-gradient(ellipse at 50% 45%, rgba(120, 63, 198, 0.22) 0%, transparent 70%);
  pointer-events: none;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 960px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Top Pill Badge (Local & Data) */
.hero-pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--color-text-muted);
  background: rgba(8, 7, 17, 0.6);
  border: 1px solid var(--border-medium);
  padding: 8px 24px;
  border-radius: var(--radius-full);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  margin-bottom: 24px;
  position: relative;
  overflow: hidden;
  transition: border-color var(--trans-fast), transform var(--trans-fast);
}

.hero-pill-badge:hover {
  border-color: var(--border-glow-primary);
  color: var(--color-white);
  transform: scale(1.02);
}

.hero-pill-badge svg {
  width: 14px;
  height: 14px;
  color: var(--color-primary);
}

/* Título Display Gigante (Estilo Summer Beats H1) */
.hero-huge-title {
  font-family: var(--font-display);
  font-size: clamp(2.8rem, 7vw, 6.2rem);
  font-weight: 800;
  line-height: 0.92;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-white);
  margin-bottom: 22px;
  text-shadow: 0 0 60px rgba(120, 63, 198, 0.55);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hero-cursor-line {
  display: inline-flex;
  align-items: baseline;
}

.cursor-bar {
  display: inline-block;
  width: 4px;
  height: 0.75em;
  background: var(--color-primary);
  margin-left: 6px;
  border-radius: 2px;
  box-shadow: 0 0 12px var(--color-primary);
}

.hero-sub-text1 {
  font-size: clamp(1.1rem, 2.2vw, 1.35rem);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  max-width: 720px;
  margin-bottom: 10px;
}

.hero-sub-text2 {
  font-size: clamp(0.9rem, 1.8vw, 1.05rem);
  color: var(--color-text-muted);
  max-width: 620px;
  margin-bottom: 34px;
}

/* Linha de 3 Botões de Ação (Summer Beats Layout) */
.hero-buttons-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 40px;
  width: 100%;
}

.btn-hero-glass {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: 64px;
  padding: 0 28px;
  border-radius: var(--radius-md);
  background: rgba(26, 20, 41, 0.45);
  border: 1px solid var(--border-medium);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--color-white);
  transition: transform var(--trans-fast), border-color var(--trans-fast), background var(--trans-fast), box-shadow var(--trans-fast);
  position: relative;
  overflow: hidden;
}

.btn-hero-glass:hover {
  transform: translateY(-2px);
  border-color: var(--border-glow-primary);
  background: rgba(35, 27, 56, 0.85);
  box-shadow: var(--glow-primary-sm);
}

.btn-hero-glass svg {
  width: 20px;
  height: 20px;
  color: var(--color-gold);
}

.btn-hero-primary {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  height: 72px;
  padding: 0 46px;
  border-radius: var(--radius-md);
  background: var(--gradient-cta);
  color: var(--color-white);
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  box-shadow: var(--glow-btn);
  transition: transform var(--trans-fast), box-shadow var(--trans-fast);
  overflow: hidden;
}

.btn-hero-primary::before {
  content: "";
  position: absolute;
  inset: -10px;
  border-radius: var(--radius-md);
  background: var(--gradient-cta);
  filter: blur(24px);
  opacity: 0.4;
  z-index: -1;
  transition: opacity var(--trans-fast);
}

.btn-hero-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 45px -4px rgba(193, 62, 157, 0.7);
}

.btn-hero-primary:hover::before {
  opacity: 0.8;
}

.btn-hero-primary svg {
  width: 22px;
  height: 22px;
}

/* Bouncing Down Chevron */
.hero-bounce-arrow {
  display: inline-flex;
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.5);
  animation: hero-bounce 2s infinite;
}

@keyframes hero-bounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(8px); }
  60% { transform: translateY(4px); }
}

/* ==========================================================================
   COUNTDOWN / EVENT BAND
   ========================================================================== */
.band-countdown {
  position: relative;
  background-color: var(--bg-secondary);
  background-image: 
    linear-gradient(to right, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 56px 56px;
  padding: 30px 16px;
  overflow: hidden;
}

.band-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
}

.band-label {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--color-text-dim);
}

.band-digits {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--color-gold);
  text-shadow: 0 0 24px rgba(216, 185, 120, 0.4);
}

.band-event-name {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-white);
}

/* ==========================================================================
   BANNER DE VÍDEO DEDICADO (VÍDEO TEASER OFICIAL)
   ========================================================================== */
.video-banner-section {
  position: relative;
  padding: 80px 0;
  background: radial-gradient(circle at 50% 50%, rgba(120, 63, 198, 0.12) 0%, transparent 65%);
}

.video-player-card {
  position: relative;
  max-width: 1100px;
  margin: 0 auto;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid var(--border-glow-primary);
  background: var(--bg-surface);
  box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.9);
  aspect-ratio: 16 / 9;
}

.video-player-element {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.video-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 7, 17, 0.3) 0%, rgba(8, 7, 17, 0.8) 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: opacity var(--trans-normal);
}

.video-card-overlay.playing {
  opacity: 0;
  pointer-events: none;
}

.video-play-btn-pulse {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: var(--gradient-cta);
  border: 2px solid rgba(255, 255, 255, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  box-shadow: 0 0 50px rgba(193, 62, 157, 0.7);
  transition: transform var(--trans-fast), box-shadow var(--trans-fast);
}

.video-play-btn-pulse:hover {
  transform: scale(1.1);
  box-shadow: 0 0 70px rgba(193, 62, 157, 0.9);
}

.video-play-btn-pulse svg {
  width: 36px;
  height: 36px;
  margin-left: 4px;
}

.video-overlay-text {
  margin-top: 20px;
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-white);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
}

/* ==========================================================================
   ATRAÇÕES / PREGADORES (SHOWCASE EXCLUSIVO SUMMER BEATS STYLE)
   ========================================================================== */
.attractions-section {
  position: relative;
  background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
  padding: 100px 0;
}

.attractions-nav-pills {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 40px;
  border-bottom: 1px solid var(--border-subtle);
  padding-bottom: 20px;
}

.attraction-pill-btn {
  font-family: var(--font-display);
  font-size: clamp(1rem, 2vw, 1.5rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-dim);
  padding: 8px 16px;
  position: relative;
  transition: color var(--trans-fast);
}

.attraction-pill-btn::after {
  content: "";
  position: absolute;
  bottom: -21px;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--gradient-cta);
  border-radius: var(--radius-full);
  transform: scaleX(0);
  transition: transform var(--trans-normal);
}

.attraction-pill-btn.active {
  color: var(--color-white);
}

.attraction-pill-btn.active::after {
  transform: scaleX(1);
}

/* Card Principal da Atração com Efeito Neon (Dual Column Cutout) */
.featured-attraction-card {
  position: relative;
  border-radius: var(--radius-xl);
  border: 1px solid var(--border-glow-primary);
  background: rgba(20, 14, 36, 0.65);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  padding: 40px;
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  align-items: flex-end;
  gap: 40px;
  min-height: 480px;
  box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.8);
  overflow: hidden;
}

.featured-attraction-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 70%, rgba(120, 63, 198, 0.35) 0%, transparent 60%);
  pointer-events: none;
}

.attraction-cutout-side {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 100%;
  min-height: 380px;
}

.attraction-cutout-img {
  max-height: 440px;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 25px rgba(120, 63, 198, 0.6)) drop-shadow(0 15px 40px rgba(0, 0, 0, 0.8));
  transition: transform var(--trans-slow);
}

.featured-attraction-card:hover .attraction-cutout-img {
  transform: scale(1.03);
}

.attraction-text-side {
  position: relative;
  z-index: 2;
  align-self: center;
  padding-bottom: 20px;
}

.attraction-super-title {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 800;
  line-height: 0.95;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-white);
  margin-bottom: 16px;
}

.attraction-role {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--color-gold);
  margin-bottom: 12px;
}

.attraction-badge-status {
  display: inline-block;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  background: rgba(120, 63, 198, 0.2);
  border: 1px solid var(--border-glow-primary);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--color-white);
  margin-bottom: 20px;
}

/* Thumbs seletoras abaixo */
.attractions-selector-grid {
  display: flex;
  gap: 16px;
  margin-top: 24px;
  justify-content: center;
}

.attraction-thumb-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 20px;
  border-radius: var(--radius-md);
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  cursor: pointer;
  transition: border-color var(--trans-fast), transform var(--trans-fast);
}

.attraction-thumb-card.active {
  border-color: var(--color-accent);
  box-shadow: 0 0 20px rgba(193, 62, 157, 0.4);
}

.attraction-thumb-img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--border-medium);
}

.attraction-thumb-name {
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-white);
}

/* ==========================================================================
   SOBRE O CONGRESSO (COM FOTOS INCLINADAS — SUMMER BEATS STYLE)
   ========================================================================== */
.about-section {
  position: relative;
  background-color: var(--bg-primary);
}

.about-grid-summer {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 60px;
  align-items: center;
}

/* Container de Fotos Inclinadas com cantoneiras */
.tilted-photos-wrapper {
  position: relative;
  aspect-ratio: 4 / 5;
  width: 100%;
  max-width: 460px;
  margin: 0 auto;
}

.tilted-photo-card {
  position: absolute;
  overflow: visible;
  transition: transform var(--trans-normal), z-index var(--trans-fast);
  cursor: pointer;
}

.tilted-photo-card:hover {
  transform: scale(1.04) rotate(0deg) !important;
  z-index: 20 !important;
}

.tilted-photo-card.card-1 {
  top: 0;
  left: 0;
  width: 72%;
  height: 48%;
  transform: rotate(-3deg);
  z-index: 1;
}

.tilted-photo-card.card-2 {
  bottom: 0;
  right: 0;
  width: 68%;
  height: 56%;
  transform: rotate(2.5deg);
  z-index: 2;
}

.tilted-photo-card.card-3 {
  bottom: 16%;
  left: 4%;
  width: 56%;
  height: 42%;
  transform: rotate(-4deg);
  z-index: 3;
}

.tilted-photo-inner {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8);
  border: 1px solid var(--border-medium);
}

.tilted-photo-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Cantoneiras nas Fotos */
.photo-corner {
  position: absolute;
  width: 14px;
  height: 14px;
  border-color: rgba(120, 63, 198, 0.9);
  pointer-events: none;
}

.photo-corner.top-left { top: -2px; left: -2px; border-top: 2px solid; border-left: 2px solid; }
.photo-corner.top-right { top: -2px; right: -2px; border-top: 2px solid; border-right: 2px solid; }
.photo-corner.bottom-left { bottom: -2px; left: -2px; border-bottom: 2px solid; border-left: 2px solid; }
.photo-corner.bottom-right { bottom: -2px; right: -2px; border-bottom: 2px solid; border-right: 2px solid; }

/* ==========================================================================
   CRONOGRAMA (TIMELINE)
   ========================================================================== */
.timeline-wrapper {
  position: relative;
  max-width: 840px;
  margin: 0 auto 50px auto;
}

.timeline-line {
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 31px;
  width: 2px;
  background: linear-gradient(180deg, var(--color-primary) 0%, var(--color-accent) 50%, var(--color-gold) 100%);
  opacity: 0.4;
}

.timeline-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.timeline-item {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}

.timeline-dot {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--bg-surface);
  border: 2px solid var(--border-medium);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 2;
  transition: transform var(--trans-fast), border-color var(--trans-fast);
}

.timeline-dot svg {
  width: 22px;
  height: 22px;
  color: var(--color-gold);
}

.timeline-item.highlight .timeline-dot {
  border-color: var(--color-accent);
  box-shadow: 0 0 20px rgba(193, 62, 157, 0.5);
}

.timeline-card {
  flex-grow: 1;
  background: var(--bg-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  padding: 20px 26px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: border-color var(--trans-fast), transform var(--trans-fast);
}

.timeline-card:hover {
  transform: translateX(4px);
  border-color: var(--border-glow-primary);
}

.timeline-item.highlight .timeline-card {
  border-color: var(--border-glow-accent);
  background: linear-gradient(135deg, rgba(35, 27, 56, 0.8) 0%, rgba(20, 14, 36, 0.9) 100%);
}

.timeline-header {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 6px;
}

.timeline-time {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--color-gold);
}

.timeline-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-white);
}

.timeline-desc {
  font-size: 0.85rem;
  color: var(--color-text-muted);
}

/* ==========================================================================
   ADESIVO EXCLUSIVO
   ========================================================================== */
.sticker-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.sticker-visual-box {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.sticker-halo {
  position: absolute;
  width: 440px;
  height: 440px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(193, 62, 157, 0.25) 0%, rgba(120, 63, 198, 0.15) 50%, transparent 70%);
  filter: blur(40px);
}

.sticker-image-wrap {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 420px;
  border-radius: 50%;
  transition: transform var(--trans-normal);
  filter: drop-shadow(0 25px 35px rgba(0, 0, 0, 0.8));
}

.sticker-image-wrap:hover {
  transform: translateY(-8px) rotate(2deg) scale(1.03);
}

/* ==========================================================================
   INFORMAÇÕES IMPORTANTES
   ========================================================================== */
.info-cards-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-bottom: 50px;
}

.info-card {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  transition: transform var(--trans-fast), border-color var(--trans-fast);
}

.info-card:hover {
  transform: translateY(-4px);
  border-color: var(--border-glow-primary);
  box-shadow: var(--shadow-card);
}

.info-card-header {
  display: flex;
  align-items: center;
  gap: 16px;
}

.info-card-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-md);
  background: rgba(120, 63, 198, 0.15);
  border: 1px solid var(--border-glow-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-gold);
  flex-shrink: 0;
}

.info-card-icon svg {
  width: 24px;
  height: 24px;
}

.info-card-title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--color-white);
}

.info-card-body {
  color: var(--color-text-muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

.info-alert-box {
  margin-top: 14px;
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  background: rgba(193, 62, 157, 0.1);
  border-left: 3px solid var(--color-accent);
  font-size: 0.85rem;
  color: #F1D4EB;
}

/* ==========================================================================
   PERGUNTAS FREQUENTES (FAQ)
   ========================================================================== */
.faq-wrapper {
  max-width: 860px;
  margin: 0 auto 50px auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.faq-item {
  background: var(--bg-surface);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  overflow: hidden;
  transition: border-color var(--trans-fast), background var(--trans-fast);
}

.faq-item.active {
  border-color: var(--border-glow-primary);
  background: rgba(30, 22, 50, 0.6);
}

.faq-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 26px;
  text-align: left;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-white);
  cursor: pointer;
}

.faq-icon-indicator {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-gold);
  transition: transform var(--trans-normal), background var(--trans-fast);
}

.faq-item.active .faq-icon-indicator {
  transform: rotate(45deg);
  background: var(--color-accent);
  color: var(--color-white);
}

.faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--trans-normal), padding var(--trans-normal);
  padding: 0 26px;
}

.faq-item.active .faq-content {
  padding-bottom: 24px;
}

.faq-answer {
  color: var(--color-text-muted);
  font-size: 0.95rem;
  line-height: 1.7;
  border-top: 1px solid var(--border-subtle);
  padding-top: 16px;
}

/* ==========================================================================
   FINAL CTA & FOOTER
   ========================================================================== */
.final-cta-section {
  position: relative;
  background: var(--bg-secondary);
  border-top: 1px solid var(--border-subtle);
  text-align: center;
  padding: 120px 0;
  overflow: hidden;
}

.final-cta-bg-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 900px;
  height: 600px;
  background: radial-gradient(circle, rgba(120, 63, 198, 0.28) 0%, rgba(193, 62, 157, 0.18) 50%, transparent 70%);
  filter: blur(80px);
  pointer-events: none;
}

.site-footer {
  background: #040308;
  border-top: 1px solid var(--border-subtle);
  padding: 70px 0 30px 0;
  position: relative;
  z-index: 5;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 50px;
  margin-bottom: 50px;
}

.footer-col-title {
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--color-gold);
  margin-bottom: 20px;
}

.footer-links-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-link {
  font-size: 0.9rem;
  color: var(--color-text-muted);
  transition: color var(--trans-fast);
}

.footer-link:hover {
  color: var(--color-white);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  padding-top: 28px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  color: var(--color-text-dim);
  font-size: 0.8rem;
}

/* ==========================================================================
   BARRA FIXA MOBILE & MODAL
   ========================================================================== */
.floating-bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 99;
  background: rgba(8, 7, 17, 0.92);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid var(--border-glow-primary);
  padding: 12px 20px calc(12px + env(safe-area-inset-bottom, 0px)) 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  transform: translateY(120%);
  transition: transform var(--trans-normal);
}

.floating-bottom-bar.visible {
  transform: translateY(0);
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(4, 3, 8, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--trans-normal), visibility var(--trans-normal);
}

.modal-backdrop.active {
  opacity: 1;
  visibility: visible;
}

.modal-dialog {
  background: var(--bg-surface);
  border: 1px solid var(--border-glow-primary);
  border-radius: var(--radius-xl);
  max-width: 580px;
  width: 100%;
  padding: 36px 32px;
  position: relative;
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.8);
}

.modal-close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================================================
   2º CONGRESSO CATÓLICO DE UMUARAMA — RESPONSIVIDADE PRECISA
   Ajustes minuciosos para o layout Summer Beats (320px a 1440px+)
   ========================================================================== */

/* --------------------------------------------------------------------------
   TABLETS E TELAS MÉDIAS (Max-width: 1024px)
   -------------------------------------------------------------------------- */
@media screen and (max-width: 1024px) {
  .nav-left-links,
  .nav-right-links .nav-item-link {
    display: none;
  }

  .navbar-capsule {
    grid-template-columns: auto 1fr auto;
    padding: 12px 18px;
  }

  .mobile-toggle {
    display: flex;
  }

  .featured-attraction-card {
    grid-template-columns: 1fr;
    align-items: center;
    text-align: center;
    padding: 30px 20px;
  }

  .attraction-cutout-side {
    min-height: 280px;
  }

  .attraction-cutout-img {
    max-height: 300px;
  }

  .about-grid-summer {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .tilted-photos-wrapper {
    max-width: 380px;
    margin-bottom: 20px;
  }

  .info-cards-grid {
    grid-template-columns: 1fr;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }
}

/* --------------------------------------------------------------------------
   TABLETS EM RETRATO E CELULARES GRANDES (Max-width: 768px)
   -------------------------------------------------------------------------- */
@media screen and (max-width: 768px) {
  .site-header {
    padding: 10px 12px;
  }

  .navbar-capsule {
    padding: 10px 14px;
    gap: 10px;
  }

  .btn-nav-ticket {
    display: none; /* Deixa foco no menu mobile e CTA flutuante */
  }

  .hero-section {
    padding-top: 100px;
    padding-bottom: 40px;
  }

  .hero-huge-title {
    font-size: 2.5rem;
    line-height: 1.02;
  }

  .hero-pill-badge {
    font-size: 0.62rem;
    letter-spacing: 0.16em;
    padding: 6px 14px;
  }

  .hero-buttons-row {
    flex-direction: column;
    gap: 12px;
  }

  .btn-hero-glass,
  .btn-hero-primary {
    width: 100%;
    justify-content: center;
  }

  .btn-hero-primary {
    height: 64px;
    font-size: 0.85rem;
    padding: 0 24px;
  }

  .band-digits {
    font-size: 2.2rem;
  }

  .band-content {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  .timeline-line {
    left: 23px;
  }

  .timeline-dot {
    width: 48px;
    height: 48px;
  }

  .timeline-dot svg {
    width: 18px;
    height: 18px;
  }

  .timeline-card {
    padding: 16px 18px;
  }

  .timeline-header {
    flex-direction: column;
    gap: 4px;
  }

  .sticker-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .sticker-visual-box {
    order: -1;
  }

  .sticker-halo {
    width: 300px;
    height: 300px;
  }

  .sticker-image-wrap {
    max-width: 280px;
  }
}

/* --------------------------------------------------------------------------
   CELULARES (Max-width: 480px)
   -------------------------------------------------------------------------- */
@media screen and (max-width: 480px) {
  .container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .hero-huge-title {
    font-size: 2rem;
  }

  .hero-sub-text1 {
    font-size: 1rem;
  }

  .hero-sub-text2 {
    font-size: 0.85rem;
  }

  .attraction-super-title {
    font-size: 2.2rem;
  }

  .attractions-selector-grid {
    flex-direction: column;
  }

  .attraction-thumb-card {
    width: 100%;
  }

  .tilted-photos-wrapper {
    max-width: 300px;
    aspect-ratio: 1 / 1;
  }

  .timeline-item {
    gap: 12px;
  }

  .timeline-line {
    left: 19px;
  }

  .timeline-dot {
    width: 40px;
    height: 40px;
  }

  .timeline-dot svg {
    width: 16px;
    height: 16px;
  }

  .faq-trigger {
    padding: 16px;
    font-size: 0.9rem;
  }

  .faq-content {
    padding: 0 16px;
  }

  .modal-dialog {
    padding: 24px 18px;
  }
}

/* --------------------------------------------------------------------------
   CELULARES MUITO PEQUENOS (Max-width: 360px)
   -------------------------------------------------------------------------- */
@media screen and (max-width: 360px) {
  .hero-huge-title {
    font-size: 1.75rem;
  }

  .brand-center-title {
    font-size: 0.72rem;
  }

  .brand-center-sub {
    font-size: 0.55rem;
  }
}

/* --------------------------------------------------------------------------
   PREFERS REDUCED MOTION
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .neon-drift,
  .animate-nav-sweep,
  .hero-bounce-arrow {
    animation: none !important;
  }
}

/* Direção visual editorial para o 2º Congresso Católico de Umuarama. */
:root {
  --bg-primary: #100e13;
  --bg-secondary: #17141a;
  --bg-surface: #201b22;
  --color-primary: #b7a2c5;
  --color-accent: #d7b782;
  --color-gold: #e7c990;
  --color-text-muted: #c6bdc5;
  --color-text-dim: #a59aa5;
  --border-subtle: rgba(255,255,255,.11);
  --border-medium: rgba(255,255,255,.19);
  --border-glow-primary: rgba(255,255,255,.19);
  --gradient-cta: #e7c990;
  --gradient-cta-hover: #f1d8a6;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 8px;
  --radius-xl: 10px;
}

html { scroll-padding-top: 90px; }
body { background: var(--bg-primary); }
.container { max-width: 1240px; }
.section { padding: clamp(84px, 9vw, 144px) 0; }
.faixa-colorida, .nav-corner, .animate-nav-sweep, .brand-halo, .cursor-bar, .hero-luz-blend { display: none !important; }

/* Navegação compacta */
.site-header, .site-header.scrolled { padding: 0; }
.navbar-capsule, .site-header.scrolled .navbar-capsule {
  max-width: none;
  min-height: 78px;
  padding: 14px clamp(22px, 4vw, 70px);
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.13);
  border-radius: 0;
  background: rgba(13,11,16,.84);
  backdrop-filter: blur(20px);
  box-shadow: none;
  overflow: visible;
  grid-template-columns: 1fr auto 1fr;
}
.brand-center-title { letter-spacing: .08em; font-size: .77rem; }
.brand-center-sub { letter-spacing: .25em; font-size: .57rem; margin-top: 3px; }
.nav-left-links, .nav-right-links { gap: clamp(12px, 1.8vw, 28px); }
.nav-item-link { font-family: var(--font-body); font-size: .68rem; font-weight: 600; letter-spacing: .08em; color: #ddd4da; }
.nav-item-link::after { background: var(--color-gold); }
.btn-nav-ticket {
  background: var(--color-gold);
  color: #1b1517;
  border-radius: 3px;
  font-size: .66rem;
  letter-spacing: .08em;
  padding: 12px 15px;
}
.btn-nav-ticket:hover { box-shadow: none; background: #f2d7a7; }
.mobile-toggle-wrap { order: -1; }
.mobile-toggle { border-radius: 3px; background: transparent; }
.mobile-drawer { background: #151118; }
.mobile-drawer-close { position: absolute; top: 18px; right: 22px; color: #fff; font-size: 2rem; line-height: 1; background: transparent; border: 0; cursor: pointer; }

/* Abertura cinematográfica */
.hero-section {
  min-height: min(900px, 100svh);
  padding: 150px 0 100px;
  justify-content: flex-start;
  text-align: left;
  background: #121018;
}
.hero-media-wrapper { background: url('../images/hero/congregacao-conceitual.webp') center 56% / cover no-repeat; }
.hero-video { opacity: .2; mix-blend-mode: screen; }
.hero-overlay-gradient {
  background: linear-gradient(90deg, rgba(10,9,13,.92) 0%, rgba(10,9,13,.66) 38%, rgba(10,9,13,.1) 100%), linear-gradient(0deg, #100e13 0%, transparent 30%, rgba(10,9,13,.3) 100%);
}
.hero-content { max-width: 1240px; align-items: flex-start; margin: 0 auto; width: 100%; }
.hero-pill-badge {
  padding: 0 0 15px;
  margin-bottom: 28px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.42);
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .13em;
  color: #f1e8e7;
  text-align: left;
}
.hero-pill-badge:hover { transform: none; border-color: var(--color-gold); }
.hero-pill-badge svg { color: var(--color-gold); flex: none; }
.hero-huge-title {
  align-items: flex-start;
  max-width: 900px;
  font-size: clamp(3.8rem, 8.5vw, 8.7rem);
  line-height: .93;
  letter-spacing: -.065em;
  font-weight: 800;
  margin: 0 0 30px;
  text-shadow: none;
}
.hero-huge-title > span:last-child { background: none !important; -webkit-text-fill-color: var(--color-gold) !important; }
.hero-sub-text1 { max-width: 630px; font-weight: 500; font-size: clamp(1.1rem, 1.65vw, 1.45rem); line-height: 1.5; }
.hero-sub-text2 { max-width: 590px; font-size: 1rem; color: #d0c6cb; margin-bottom: 30px; }
.hero-buttons-row { justify-content: flex-start; width: auto; gap: 12px; margin-bottom: 0; }
.btn-hero-primary, .btn-hero-glass {
  min-height: 55px;
  height: auto !important;
  padding: 15px 22px !important;
  justify-content: center;
  border-radius: 3px;
  font-family: var(--font-body);
  font-size: .74rem !important;
  font-weight: 700;
  letter-spacing: .07em;
  line-height: 1.2;
  box-shadow: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn-hero-primary { background: var(--color-gold); color: #191318; }
.btn-hero-primary::before { display: none; }
.btn-hero-primary:hover { transform: translateY(-2px); box-shadow: none; background: #f3d8a5; }
.btn-hero-glass { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.55); backdrop-filter: none; }
.btn-hero-glass:hover { background: rgba(255,255,255,.1); border-color: #fff; box-shadow: none; }
.hero-bounce-arrow { position: absolute; bottom: -48px; left: 0; color: #fff; }

/* Faixa de data */
.band-countdown { background: #211b23; background-image: none; padding: 22px 0; border-bottom: 1px solid var(--border-subtle); }
.band-content { gap: 18px; flex-wrap: wrap; }
.band-label { color: #eee5e8; font-size: .82rem; letter-spacing: .07em; }
.band-digits { font-size: clamp(1.4rem, 3vw, 2.5rem); font-weight: 700; color: var(--color-gold); letter-spacing: .05em; }

/* Vídeo grande, sem moldura neon */
.video-banner-section { background: #151218; }
.video-banner-section .container > div:first-child, .attractions-section .container > div:first-child, #programacao .container > div:first-child, #informacoes .container > div:first-child, #duvidas .container > div:first-child { text-align: left !important; max-width: 900px; margin-bottom: 34px !important; }
.section h2, .final-cta-section h2 { letter-spacing: -.045em !important; line-height: 1.07 !important; font-weight: 700 !important; }
.section h2 { font-size: clamp(2.5rem, 5vw, 5rem) !important; }
.section h2 + p { margin-top: 16px !important; }
.section .container > div > span[style*="letter-spacing"] { color: var(--color-gold) !important; font-family: var(--font-body) !important; font-size: .7rem !important; letter-spacing: .17em !important; }
.video-player-card { border: 0; border-radius: 6px; box-shadow: none; aspect-ratio: 16 / 8; background: #29212b url('../images/hero/congregacao-conceitual.webp') center / cover; }
.video-player-element { object-fit: cover; }
.video-card-overlay { background: rgba(16,14,19,.28); }
.video-play-btn-pulse { background: var(--color-gold); color: #171219; box-shadow: none; border: 0; }
.video-overlay-text { letter-spacing: .12em; }

/* Pregadores: tipografia como destaque enquanto não há fotos oficiais */
.attractions-section { background: #100e13; }
.attractions-nav-pills { justify-content: flex-start; gap: 8px; margin-bottom: 22px; }
.attraction-pill-btn { border: 1px solid var(--border-medium); border-radius: 3px; padding: 12px 18px; background: transparent; color: #ddd4da; font-size: .72rem; letter-spacing: .08em; }
.attraction-pill-btn.active { background: var(--color-gold); color: #171219; border-color: var(--color-gold); }
.attraction-pill-btn::after { display: none; }
.featured-attraction-card {
  min-height: 0;
  display: block;
  padding: clamp(30px, 5vw, 70px);
  border: 1px solid var(--border-subtle);
  border-radius: 5px;
  box-shadow: none;
  background: linear-gradient(110deg, #29202b, #18131b);
  backdrop-filter: none;
}
.featured-attraction-card::before { background: none; }
.attraction-cutout-side, .attractions-selector-grid { display: none; }
.attraction-text-side { max-width: 850px; padding: 0; text-align: left; }
.attraction-badge-status { padding: 0; border: 0; background: transparent; color: var(--color-gold); font-size: .7rem; letter-spacing: .15em; margin-bottom: 32px; }
.attraction-role { color: #c6bdc5; font-size: .82rem; letter-spacing: .12em; }
.attraction-super-title { font-size: clamp(3.5rem, 7vw, 7rem); letter-spacing: -.055em; line-height: .95; margin-bottom: 26px; }
.attraction-text-side > p[style] { color: #d2c7cf !important; }

/* História e fotografia conceitual */
.about-section { background: #1b171d; }
.about-grid-summer { grid-template-columns: 1fr 1fr; gap: clamp(35px, 6vw, 95px); align-items: center; }
.story-photo { position: relative; margin: 0; align-self: stretch; min-height: 560px; overflow: hidden; border-radius: 5px; }
.story-photo img { width: 100%; height: 100%; object-fit: cover; }
.story-photo::after { content: ''; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(12,10,13,.88)); pointer-events: none; }
.story-photo figcaption { position: absolute; z-index: 1; left: 30px; right: 30px; bottom: 28px; font-size: 1.15rem; font-weight: 600; line-height: 1.3; }
.story-photo figcaption span { display: block; margin-top: 7px; color: #d8cdd4; font-size: .7rem; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }
.about-grid-summer > div:last-child > div[style*="display: flex"] { background: transparent !important; border: 0 !important; border-top: 1px solid var(--border-medium) !important; border-radius: 0 !important; padding: 22px 0 !important; }

/* Programação em linhas limpas */
#programacao { background: #110f14; }
.timeline-wrapper { max-width: none; margin-bottom: 0; }
.timeline-line, .timeline-dot { display: none; }
.timeline-list { gap: 0; border-top: 1px solid var(--border-medium); }
.timeline-item { display: block; border-bottom: 1px solid var(--border-medium); }
.timeline-card, .timeline-item.highlight .timeline-card { width: 100%; min-height: 92px; padding: 19px 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.timeline-card:hover { transform: none; background: transparent; }
.timeline-header { display: grid; grid-template-columns: 100px 1fr; gap: 24px; align-items: baseline; }
.timeline-time, .timeline-header .timeline-time[style] { color: var(--color-gold) !important; font-size: .95rem; font-weight: 700; }
.timeline-title { font-size: 1rem; font-weight: 600; line-height: 1.4; }
.timeline-desc { margin: 4px 0 0 124px; color: #aaa0a9; font-size: .84rem; }

/* Benefício, informações e perguntas */
#adesivo { background: #211b22; }
.sticker-grid { grid-template-columns: .8fr 1.2fr; gap: clamp(34px, 6vw, 100px); }
.sticker-visual-box { background: #2a222b; border: 1px solid var(--border-subtle); border-radius: 5px; }
.sticker-halo { display: none; }
.sticker-image-wrap { transform: none !important; }
#informacoes { background: #171319; }
.info-cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--border-subtle); border: 1px solid var(--border-subtle); }
.info-card { min-height: 280px; border: 0; border-radius: 0; box-shadow: none; background: #1b171d; padding: clamp(25px, 3vw, 42px); }
.info-card:hover { transform: none; background: #241e26; box-shadow: none; }
.info-card-icon { border: 0; background: transparent; color: var(--color-gold); }
.info-card-title { font-size: 1.2rem; letter-spacing: -.02em; }
.info-alert-box { border-radius: 3px; background: #30242a; border-color: rgba(231,201,144,.3); }
#duvidas { background: #100e13; }
.faq-wrapper { max-width: 100%; }
.faq-item, .faq-item.active { border: 0; border-bottom: 1px solid var(--border-medium); border-radius: 0; background: transparent; }
.faq-trigger { padding: 22px 0; font-size: 1rem; font-weight: 600; }
.faq-icon-indicator { background: transparent; border: 1px solid var(--border-medium); color: var(--color-gold); }
.faq-answer { padding: 0 0 24px; color: var(--color-text-muted); }
.final-cta-section { background: #28202a; padding: clamp(95px, 10vw, 150px) 0; }
.final-cta-bg-glow { display: none; }
.final-cta-section h2 { max-width: 840px; margin-left: auto; margin-right: auto; }
.site-footer { background: #0c0a0e; border-top: 1px solid var(--border-subtle); }
.footer-link:hover { color: var(--color-gold); }
.floating-bottom-bar { background: #171219; border-top: 1px solid var(--border-medium); }

@media (max-width: 1350px) {
  .nav-left-links, .nav-right-links .nav-item-link { display: none; }
  .mobile-toggle { display: flex; }
  .navbar-capsule { grid-template-columns: 1fr auto 1fr; }
  .brand-center-logo { grid-column: 2; }
  .nav-right-links { grid-column: 3; }
}
@media (max-width: 768px) {
  .site-header, .site-header.scrolled { padding: 0; }
  .navbar-capsule, .site-header.scrolled .navbar-capsule { min-height: 65px; padding: 10px 16px; }
  .brand-center-title { font-size: .61rem; }
  .brand-center-sub { font-size: .5rem; }
  .hero-section { min-height: 760px; min-height: 100svh; padding: 130px 0 90px; align-items: flex-end; }
  .hero-media-wrapper { background-position: 62% center; }
  .hero-overlay-gradient { background: linear-gradient(0deg, rgba(10,9,13,.97) 0%, rgba(10,9,13,.68) 45%, rgba(10,9,13,.32) 100%); }
  .hero-huge-title { font-size: clamp(3.4rem, 12.5vw, 5.6rem); line-height: .94; }
  .hero-cursor-line { display: block; }
  .hero-pill-badge { font-size: .6rem; letter-spacing: .07em; line-height: 1.5; }
  .hero-sub-text2 { display: none; }
  .hero-buttons-row { flex-direction: row; width: 100%; }
  .hero-buttons-row .btn-hero-primary, .hero-buttons-row .btn-hero-glass { width: auto; flex: 1 1 220px; }
  .hero-bounce-arrow { display: none; }
  .band-content { gap: 5px 12px; }
  .video-player-card { aspect-ratio: 4 / 3; }
  .about-grid-summer, .sticker-grid { grid-template-columns: 1fr; }
  .story-photo { min-height: 430px; }
  .info-cards-grid { grid-template-columns: 1fr; }
  .featured-attraction-card { text-align: left; }
  .attraction-text-side { text-align: left; }
  .attraction-super-title { font-size: clamp(3.2rem, 12vw, 5rem); }
  .attractions-nav-pills { flex-wrap: wrap; }
}
@media (max-width: 480px) {
  .hero-section { min-height: 760px; }
  .hero-huge-title { font-size: clamp(3.1rem, 12vw, 4.3rem); }
  .hero-buttons-row { flex-direction: column; }
  .hero-buttons-row .btn-hero-primary, .hero-buttons-row .btn-hero-glass { width: 100%; flex: none; }
  .section { padding: 78px 0; }
  .section h2 { font-size: 2.35rem !important; }
  .story-photo { min-height: 370px; }
  .timeline-header { grid-template-columns: 60px 1fr; gap: 14px; }
  .timeline-desc { margin-left: 74px; }
  .band-label { font-size: .72rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
}

/* Alinhamento visual com a composição do Summer Beats: azul, coral e areia. */
:root {
  --bg-primary: #123f91;
  --bg-secondary: #17499d;
  --bg-surface: #1c52a2;
  --color-primary: #1c59bc;
  --color-accent: #ff6264;
  --color-gold: #ff7771;
  --color-text-muted: #e4e8f4;
  --color-text-dim: #bacbef;
  --gradient-cta: linear-gradient(100deg,#ff615f 0%,#ff747b 35%,#29c6f5 100%);
  --font-display: Bahnschrift, Barlow, sans-serif;
  --font-body: Poppins, sans-serif;
}
body { background: #123f91; }
.site-header, .site-header.scrolled { padding: 16px clamp(12px, 1.6vw, 24px); }
.navbar-capsule, .site-header.scrolled .navbar-capsule {
  max-width: 1520px;
  min-height: 86px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(17,65,145,.81);
  box-shadow: 0 15px 40px rgba(0,33,96,.2);
  padding: 15px clamp(22px,3vw,44px);
}
.brand-center-title { font-family: var(--font-display); font-size: .94rem; font-weight: 700; letter-spacing: .04em; }
.brand-center-sub { color: #fff; letter-spacing: .23em; }
.nav-item-link { color: #e5ebff; letter-spacing: .18em; }
.btn-nav-ticket { background: var(--gradient-cta); color: white; border-radius: 7px; box-shadow: none; letter-spacing: .12em; }
.btn-nav-ticket:hover { background: var(--gradient-cta); filter: brightness(1.1); }
.mobile-toggle { background: rgba(0,39,107,.3); border-color: rgba(255,255,255,.23); }
.mobile-drawer { background: #16458f; }
.mobile-nav-link { color: white; }

.hero-section { min-height: 700px; min-height: 100svh; justify-content: center; text-align: center; background: #0e4196; padding: 145px 0 78px; }
.hero-media-wrapper { background-position: center center; }
.hero-video { opacity: .15; }
.hero-overlay-gradient { background: linear-gradient(0deg,rgba(11,57,145,.97) 0%,rgba(7,55,149,.28) 42%,rgba(7,55,149,.35) 100%),linear-gradient(90deg,rgba(20,88,178,.34),rgba(41,36,113,.08),rgba(20,69,161,.34)); }
.hero-content { align-items: center; max-width: 1300px; }
.hero-pill-badge { border: 1px solid rgba(255,255,255,.28); padding: 7px 18px; background: rgba(27,77,158,.56); border-radius: 30px; text-align: center; margin-bottom: 23px; color: #fff; font-size: .72rem; letter-spacing: .18em; }
.hero-pill-badge svg { color: var(--color-accent); }
.hero-huge-title { align-items: center; max-width: none; font-size: clamp(4rem, 6.7vw, 7.5rem); font-weight: 400; letter-spacing: .055em; line-height: .9; margin-bottom: 30px; }
.hero-huge-title > span:last-child { -webkit-text-fill-color: white !important; }
.hero-sub-text1 { max-width: 760px; font-family: var(--font-body); font-weight: 500; font-size: clamp(1.05rem,2vw,1.5rem); }
.hero-sub-text2 { color: #eef3ff; font-size: clamp(.95rem,1.5vw,1.16rem); max-width: 720px; }
.hero-buttons-row { width: auto; justify-content: center; gap: 13px; }
.hero-buttons-row .btn-hero-primary, .hero-buttons-row .btn-hero-glass { min-width: 188px; min-height: 64px; padding: 12px 26px !important; text-align: left; border-radius: 8px; }
.hero-buttons-row .btn-hero-primary { background: var(--gradient-cta); color: white; box-shadow: 0 8px 24px rgba(0,56,130,.18); }
.hero-buttons-row .btn-hero-glass { background: rgba(14,65,155,.42); border: 1px solid rgba(255,255,255,.28); }
.hero-buttons-row .btn-hero-primary:hover { filter: brightness(1.09); }
.hero-buttons-row small { display: block; font-size: .59rem; color: #e8edff; font-weight: 400; letter-spacing: .02em; }
.hero-bounce-arrow { left: 50%; bottom: -68px; transform: translateX(-50%); }

.band-countdown { background: #f9f7f1; border: 0; padding: 20px 0; }
.band-label { color: #183e82; }
.band-digits { color: #f25c63; }
.band-event-name { color: #183e82; }

.video-banner-section { background: linear-gradient(135deg,#1753ad,#103f91); }
.video-player-card { border: 1px solid rgba(255,255,255,.3); box-shadow: 0 24px 70px rgba(1,30,96,.25); }
.video-play-btn-pulse { background: var(--gradient-cta); color: white; }
.section .container > div > span[style*="letter-spacing"] { color: #ff9c9a !important; }
.section h2 { font-family: var(--font-display) !important; font-weight: 600 !important; letter-spacing: .02em !important; }

.attractions-section { background: linear-gradient(150deg,#1756b2 0%,#104aab 70%,#0d3d93 100%); }
.attractions-nav-pills { justify-content: center; padding: 17px; border: 1px solid rgba(255,255,255,.22); border-radius: 16px; background: rgba(255,255,255,.06); }
.attraction-pill-btn { border: 0; background: transparent; color: #e3ebff; font-size: .9rem; }
.attraction-pill-btn.active { background: transparent; color: #fff; border: 0; border-bottom: 2px solid #ff7771; }
.featured-attraction-card { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; min-height: 500px; background: radial-gradient(ellipse at 40% 45%,rgba(125,145,229,.48),transparent 55%),linear-gradient(130deg,#245cb2,#164999); border: 2px solid rgba(76,202,255,.72); border-radius: 22px; padding: 30px clamp(30px,5vw,70px); box-shadow: 0 20px 70px rgba(3,26,95,.28); }
.attraction-cutout-side { display: block; width: 100%; height: 390px; min-height: 0; border-radius: 12px; background: url('../images/outros/oracao-conceitual.webp') 48% center / cover no-repeat; mask-image: linear-gradient(90deg,#000 75%,transparent); }
.attraction-cutout-img { display: none; }
.attraction-text-side { text-align: left; }
.attraction-badge-status { color: #e9efff; }
.attraction-role { color: #d7e2fb; }
.attraction-super-title { font-family: var(--font-display); font-weight: 400; letter-spacing: .04em; }
.attraction-text-side .btn-hero-primary { background: var(--gradient-cta); color: white; }

.about-section { background: #f9f7f1; color: #17192a; background-image: linear-gradient(rgba(17,54,123,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(17,54,123,.06) 1px,transparent 1px); background-size: 52px 52px; }
.about-section h2 { color: #17192a !important; }
.about-section .about-grid-summer > div:last-child > p { color: #343442 !important; }
.about-section .about-grid-summer > div:last-child > span { color: #f26065 !important; }
.about-grid-summer { grid-template-columns: .92fr 1.08fr; }
.story-photo { min-height: 580px; transform: rotate(-2deg); box-shadow: 0 25px 50px rgba(18,40,83,.18); }
.story-photo figcaption { color: white; }
.about-grid-summer > div:last-child > div[style*="display: flex"] { border-top-color: rgba(24,45,75,.24) !important; }
.about-grid-summer .stat-number { color: #f25b63 !important; }
.about-grid-summer > div:last-child > div[style*="display: flex"] span { color: #17192a !important; }
.about-grid-summer > div:last-child > div[style*="display: flex"] span:last-child { color: #4e4e5b !important; }
.about-section .btn-hero-primary { color: #fff; background: var(--gradient-cta); }

#programacao { background: #1350a4; }
.timeline-list { border-color: rgba(255,255,255,.35); }
.timeline-item { border-color: rgba(255,255,255,.26); }
.timeline-time, .timeline-header .timeline-time[style] { color: #ff9d9c !important; }
.timeline-desc { color: #d9e3f7; }
#adesivo { background: #f9f7f1; color: #17192a; }
#adesivo h2, #adesivo p { color: #17192a !important; }
#adesivo .sticker-visual-box { background: #d9e5f7; }
#adesivo .btn-hero-primary { background: var(--gradient-cta); color: white; }
#informacoes { background: #174f9c; }
.info-card { background: #1d58a4; }
.info-card:hover { background: #2163b7; }
.info-card-icon { color: #ff9d9c; }
.info-alert-box { background: rgba(255,106,111,.16); border-color: rgba(255,142,147,.5); }
#duvidas { background: #f9f7f1; color: #17192a; }
#duvidas h2, #duvidas .faq-trigger { color: #17192a !important; }
#duvidas .faq-item { border-color: rgba(17,50,94,.2); }
#duvidas .faq-answer { color: #383f50; }
#duvidas .faq-icon-indicator { color: #f26369; border-color: rgba(17,50,94,.25); }
.final-cta-section { background: linear-gradient(135deg,#104697,#1d66ba); }
.final-cta-section .btn-hero-primary { background: var(--gradient-cta); color: white; }
.site-footer { background: #0d3479; }
.floating-bottom-bar { background: rgba(20,73,155,.95); }
.modal-dialog { background: #154999; }

@media (min-width: 1025px) {
  .mobile-toggle-wrap { display: none !important; }
  .nav-left-links, .nav-right-links { display: flex; gap: clamp(10px, 1.45vw, 22px); }
  .nav-right-links .nav-item-link { display: inline-block; }
  .mobile-toggle { display: none; }
  .nav-item-link { font-size: .65rem; letter-spacing: .09em; white-space: nowrap; }
  .navbar-capsule { grid-template-columns: 1fr auto 1fr; }
}

@media (max-width: 1024px) {
  .nav-left-links, .nav-right-links .nav-item-link { display: none; }
  .mobile-toggle { display: flex; }
  .navbar-capsule { grid-template-columns: 1fr auto 1fr; }
}
@media (max-width: 768px) {
  .site-header,.site-header.scrolled { padding: 10px; }
  .navbar-capsule,.site-header.scrolled .navbar-capsule { min-height: 64px; padding: 10px 14px; border-radius: 11px; }
  .hero-section { min-height: 100svh; padding: 110px 0 55px; align-items: center; }
  .hero-overlay-gradient { background: linear-gradient(0deg,rgba(12,56,138,.96),rgba(10,54,144,.45) 75%); }
  .hero-huge-title { font-size: clamp(3.5rem, 10vw, 5rem); line-height: .92; letter-spacing: .01em; }
  .hero-pill-badge { font-size: .56rem; max-width: 100%; }
  .hero-buttons-row { flex-direction: row; gap: 8px; }
  .hero-buttons-row .btn-hero-primary,.hero-buttons-row .btn-hero-glass { min-width: 0; flex: 1 1 95px; padding: 10px !important; font-size: .65rem !important; }
  .hero-sub-text2 { display: block; }
  .featured-attraction-card { grid-template-columns: 1fr; padding: 24px; }
  .attraction-cutout-side { height: 220px; mask-image: linear-gradient(#000 60%,transparent); }
  .about-grid-summer { grid-template-columns: 1fr; }
  .story-photo { min-height: 350px; transform: none; }
}
@media (max-width: 480px) {
  .hero-huge-title { font-size: clamp(2.85rem,11.5vw,3.8rem); }
  .hero-buttons-row .btn-hero-primary,.hero-buttons-row .btn-hero-glass { min-height: 58px; }
  .hero-buttons-row small { font-size: .52rem; }
  .hero-sub-text1 { font-size: 1rem; }
  .hero-sub-text2 { font-size: .83rem; }
}

/* Ajustes estruturais do cronograma, FAQ e galeria de atrações. */
#programacao .timeline-wrapper { max-width: none; }
#programacao .timeline-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(7, auto);
  grid-auto-flow: column;
  gap: 0 38px;
  border-top: 0;
}
#programacao .timeline-item { min-width: 0; border-top: 1px solid rgba(255,255,255,.3); border-bottom: 0; }
#programacao .timeline-item:last-child,
#programacao .timeline-item:nth-child(7) { border-bottom: 1px solid rgba(255,255,255,.3); }
#programacao .timeline-card,
#programacao .timeline-item.highlight .timeline-card { min-height: 94px; padding: 17px 0; }
#programacao .timeline-header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 13px; }
#programacao .timeline-time { flex: 0 0 auto; }
#programacao .timeline-title { flex: 1 1 220px; line-height: 1.35; }

#duvidas .faq-wrapper {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 20px;
  max-width: none;
  margin-bottom: 0;
}
#duvidas .faq-column { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
#duvidas .faq-item,
#duvidas .faq-item.active { background: #fff; border: 1px solid rgba(17,50,94,.2); border-radius: 12px; box-shadow: 0 4px 18px rgba(17,50,94,.035); }
#duvidas .faq-item.active { border-color: #f26369; }
#duvidas .faq-trigger { padding: 17px 19px; font-size: .9rem; line-height: 1.4; }
#duvidas .faq-content { padding-left: 19px; padding-right: 19px; }
#duvidas .faq-icon-indicator svg { display: block; }
#duvidas .faq-item.active .faq-icon-indicator { transform: none; }
#duvidas .faq-item.active .faq-icon-indicator svg line:first-child { opacity: 0; }
#duvidas .faq-item.active .faq-content { padding-bottom: 18px; }

#atracoes .lineup-thumbnails { display: flex; gap: 12px; overflow-x: auto; padding: 2px 2px 10px; scrollbar-color: #72dfff rgba(255,255,255,.12); }
#atracoes .lineup-thumbnail {
  position: relative;
  display: flex;
  flex: 0 0 140px;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  height: 142px;
  min-height: 0;
  padding: 14px 10px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 15px;
  color: #fff;
  text-align: center;
  line-height: 1.15;
  transform: none;
}
#atracoes .lineup-thumbnail > span { position: relative; z-index: 1; }
#atracoes .lineup-thumbnail .thumbnail-index { align-self: flex-start; margin-bottom: auto; color: #fff; }

@media (max-width: 800px) {
  #programacao .timeline-list { display: flex; flex-direction: column; gap: 0; border-top: 1px solid rgba(255,255,255,.3); }
  #programacao .timeline-item { border-top: 0; border-bottom: 1px solid rgba(255,255,255,.3); }
  #duvidas .faq-wrapper { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  #atracoes .lineup-thumbnail { flex-basis: 112px; height: 116px; font-size: .7rem; }
}

/* Retorno à identidade azul anterior, mantendo os conteúdos atualizados. */
:root { --font-display: Bahnschrift, Barlow, sans-serif; --font-body: Poppins, sans-serif; }

/* Marca montada com as camadas de texto do PSD. */
.brand-center-logo { display: flex; align-items: center; justify-content: center; min-width: 0; }
.brand-center-image { display: block; width: clamp(174px, 19vw, 272px); height: auto; max-height: 67px; object-fit: contain; }
.brand-halo { display: none; }
.btn-nav-ticket svg { flex: 0 0 20px; width: 20px; height: 20px; }

/* O vídeo fornecido é a única imagem visível no banner. */
.hero-media-wrapper { background: #0e4196 url('../images/hero/site-video-poster.webp') center / cover no-repeat; }
.hero-video { display: block; width: 100%; height: 100%; opacity: 1; mix-blend-mode: normal; object-fit: cover; transform: scale(1.12); transform-origin: center 64%; }
.hero-overlay-gradient { background: transparent; }
.hero-content { text-shadow: 0 2px 14px rgba(3, 19, 52, .75); }
.hero-script-accent { display: block; margin-bottom: 12px; color: #fff; font: 700 clamp(.9rem, 1.8vw, 1.2rem)/1.3 var(--font-body); letter-spacing: .16em; text-transform: uppercase; }
.hero-huge-title { font-family: var(--font-display); font-weight: 700; letter-spacing: -.025em; text-shadow: 0 3px 7px rgba(4, 27, 71, .95), 0 8px 28px rgba(4, 27, 71, .95); }
.hero-huge-title > span:last-child { font-size: .68em; letter-spacing: .005em; }
.hero-pill-badge { background: rgba(8, 39, 90, .72); backdrop-filter: none; }
.hero-pill-badge svg { width: 18px; height: 18px; }
.hero-buttons-row .btn-hero-primary,
.hero-buttons-row .btn-hero-glass { display: inline-flex; align-items: center; justify-content: center; gap: 13px; text-shadow: none; }
.hero-buttons-row svg { display: block; flex: 0 0 24px; width: 24px; height: 24px; }
.hero-buttons-row small { line-height: 1.4; }

/* Mesmo enquadramento para todos os participantes, sem máscaras nas mãos. */
#atracoes .featured-attraction-card { background: radial-gradient(circle at 27% 28%, rgba(87, 155, 239, .25), transparent 43%), linear-gradient(125deg, #1855aa, #123d8e 80%); }
#atracoes .attraction-cutout-side {
  position: relative;
  display: block;
  min-height: 500px;
  height: auto;
  margin: 0;
  overflow: hidden;
  border-radius: 0;
  background: radial-gradient(circle at 50% 32%, rgba(104, 173, 246, .32), transparent 61%);
  -webkit-mask-image: none;
  mask-image: none;
}
#atracoes .attraction-cutout-side::after { display: none; }
#atracoes .attraction-cutout-img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  object-position: center bottom;
  -webkit-mask-image: none;
  mask-image: none;
  filter: none;
}
#atracoes .attraction-text-side { position: relative; z-index: 2; }
#atracoes .lineup-thumbnails { scrollbar-color: #64c6fa rgba(255,255,255,.13); }
#atracoes .lineup-thumbnail { flex-basis: 150px; background: rgba(7, 39, 103, .7); border-color: rgba(255,255,255,.4); color: #fff; }
#atracoes .lineup-thumbnail::after { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(0deg, rgba(7,29,80,.98), transparent 77%); }
#atracoes .lineup-thumbnail img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; filter: grayscale(1); opacity: .78; transition: filter .2s, opacity .2s; }
#atracoes .lineup-thumbnail:hover img,
#atracoes .lineup-thumbnail.is-active img { filter: none; opacity: 1; }
#atracoes .lineup-thumbnail.is-active { border-color: #72dfff; background: #286ac0; }
#atracoes .lineup-thumbnail > span:last-child { display: block; z-index: 2; position: relative; font-size: .85rem; }
#atracoes .thumbnail-index { color: #fff; }

/* Parceiros mantidos após retirar a camada visual marrom. */
.footer-partners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding: 38px 0; margin-top: 22px; border-top: 1px solid rgba(255,255,255,.22); }
.footer-partner-group h4 { color: #d8eaff; font: 700 .76rem var(--font-body); letter-spacing: .16em; margin: 0 0 16px; }
.footer-partner-logos { display: flex; flex-wrap: wrap; gap: 12px; }
.footer-logo-tile { width: 190px; height: 102px; display: flex; align-items: center; justify-content: center; padding: 16px; border-radius: 12px; }
.footer-logo-tile-light { background: #fff; }
.footer-logo-tile-dark { background: #124189; border: 1px solid rgba(255,255,255,.25); }
.footer-logo-tile-gold { background: #dfb374; }
.footer-logo-tile img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }

@media (min-width: 769px) {
  .floating-bottom-bar { display: none; }
}
@media (max-width: 850px) {
  #atracoes .attraction-cutout-side { min-height: 0; height: 330px; margin: 0; border-radius: 0; }
}
@media (max-width: 600px) {
  .brand-center-image { width: 176px; max-height: 48px; }
  .hero-huge-title > span:last-child { font-size: .72em; }
  .hero-buttons-row svg { flex-basis: 21px; width: 21px; height: 21px; }
  #atracoes .attraction-cutout-side { height: 310px; }
  #atracoes .lineup-thumbnail { flex-basis: 112px; }
  #atracoes .lineup-thumbnail > span:last-child { font-size: .7rem; }
  .footer-partners { grid-template-columns: 1fr; gap: 30px; }
  .footer-logo-tile { width: calc(50% - 6px); height: 88px; }
}

/* Ajustes de leitura do banner e das ações. */
.hero-overlay-gradient {
  background: linear-gradient(180deg, rgba(3, 24, 64, .58) 0%, rgba(3, 24, 64, .5) 45%, rgba(3, 24, 64, .78) 100%);
}
.hero-huge-title { font-size: clamp(3.3rem, 5.8vw, 6.35rem); }
.hero-huge-title > span:last-child { font-size: .63em; }
#hero .btn-hero-glass small { color: #fff; font-size: .83rem; font-weight: 700; letter-spacing: .01em; }

/* Título do destaque sempre ocupa somente as duas linhas definidas no conteúdo. */
#atracoes .attraction-super-title {
  font-size: clamp(2.85rem, 4.45vw, 4.9rem);
  white-space: nowrap;
  line-height: .98;
}
#atracoes .featured-attraction-card { height: 560px; }
#atracoes .attraction-description { min-height: 3.2em; }

/* Etiquetas de seção com a mesma borda e o mesmo ícone. */
.section-eyebrow,
#atracoes .lineup-eyebrow.section-eyebrow,
.section .container > div > span.section-eyebrow[style*="letter-spacing"] {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: max-content;
  max-width: 100%;
  margin-bottom: 15px !important;
  padding: 8px 12px !important;
  border: 1px solid rgba(255, 255, 255, .45) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, .07) !important;
  color: #fff !important;
  font: 700 .68rem/1.15 var(--font-body) !important;
  letter-spacing: .15em !important;
  text-transform: uppercase;
}
.section-eyebrow::before {
  content: '';
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m12 2 1.8 7.2L21 11l-7.2 1.8L12 20l-1.8-7.2L3 11l7.2-1.8L12 2Zm7 14 .6 2.4L22 19l-2.4.6L19 22l-.6-2.4L16 19l2.4-.6L19 16Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m12 2 1.8 7.2L21 11l-7.2 1.8L12 20l-1.8-7.2L3 11l7.2-1.8L12 2Zm7 14 .6 2.4L22 19l-2.4.6L19 22l-.6-2.4L16 19l2.4-.6L19 16Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.section-eyebrow > svg { display: none; }
.about-section .section-eyebrow,
#adesivo .section-eyebrow,
#duvidas .section-eyebrow {
  color: #164785 !important;
  border-color: rgba(20, 71, 133, .35) !important;
  background: rgba(255, 255, 255, .58) !important;
}

/* Fotografia do congresso centralizada, com camada azul e acesso ao vídeo. */
.story-photo {
  transform: none;
  border: 1px solid rgba(29, 92, 171, .28);
  border-radius: 16px;
  box-shadow: 0 24px 56px rgba(18, 40, 83, .2);
}
.story-photo img { display: block; object-position: center 58%; }
.story-photo::after {
  inset: 0;
  background: linear-gradient(180deg, rgba(11, 49, 111, .08) 12%, rgba(12, 55, 129, .2) 48%, rgba(4, 25, 63, .9) 100%);
}
#sobre .story-photo { min-height: 520px; }
#sobre h2 { font-size: clamp(2.35rem, 3.25vw, 3.4rem) !important; }

/* Adesivo em primeiro plano, com leitura clara da mensagem principal. */
#adesivo .sticker-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(38px, 5vw, 68px); }
#adesivo .sticker-visual-box {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(31, 87, 159, .18);
  border-radius: 18px;
  background: #d0e0f4;
  box-shadow: 0 22px 55px rgba(23, 56, 100, .12);
}
#adesivo .sticker-image-wrap { width: 100%; max-width: none; height: 100%; border-radius: 0; filter: none; }
#adesivo .sticker-img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
#adesivo .sticker-copy h2 { max-width: 670px; margin-bottom: 22px !important; font-size: clamp(2.35rem, 4.1vw, 4.35rem) !important; line-height: 1.04 !important; }
#adesivo .sticker-copy p { max-width: 640px; color: #374050 !important; line-height: 1.65 !important; }
#adesivo .sticker-copy .sticker-lead { margin-bottom: 20px !important; padding-left: 16px; border-left: 3px solid #ed6874; font-size: clamp(1.12rem, 1.6vw, 1.32rem) !important; line-height: 1.45 !important; }
#adesivo .sticker-copy strong { color: #182640; font-weight: 700; }

/* Cronograma: horário com ícone, descrição alinhada à esquerda. */
#programacao .timeline-time { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
#programacao .timeline-time::before {
  content: '';
  display: block;
  flex: 0 0 17px;
  width: 17px;
  height: 17px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 7v5l3 2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/%3E%3Cpath d='M12 7v5l3 2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
#programacao .timeline-desc { margin-left: 0; }

/* Ações com ícones consistentes e indicador de FAQ contrastante. */
.btn-hero-primary,
.btn-hero-glass { gap: 10px; }
.btn-hero-primary { background: var(--gradient-cta); color: #fff; }
.btn-hero-primary:hover { background: var(--gradient-cta); filter: brightness(1.08); }
.btn-hero-primary svg,
.btn-hero-glass svg,
.lineup-cta svg { display: block; flex: 0 0 20px; width: 20px; height: 20px; }
.lineup-cta svg { margin-left: 10px; }
#duvidas .faq-item.active .faq-icon-indicator { background: #ef6474; border-color: #ef6474; color: #fff !important; }
#duvidas .faq-item.active .faq-icon-indicator svg { stroke: #fff !important; }

/* Última chamada em faixa horizontal compacta. */
.final-cta-section { padding: 68px 0; text-align: left; }
.final-cta-inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); align-items: center; gap: clamp(36px, 6vw, 90px); max-width: 1200px; }
.final-cta-section h2 { max-width: none; margin: 0 0 14px; font-size: clamp(2.2rem, 4vw, 3.55rem); line-height: 1.02 !important; text-transform: uppercase; color: #fff; }
.final-cta-copy > p { max-width: 650px; margin: 0; color: #e2edfb; font-size: 1rem; line-height: 1.55; }
.final-cta-action { padding: 25px 0 25px clamp(26px, 3vw, 48px); border-left: 1px solid rgba(255,255,255,.35); }
.final-cta-price { color: #fff; font: 700 clamp(2.3rem, 3.4vw, 3.2rem)/1 var(--font-display); margin-bottom: 10px; }
.final-cta-action > p { color: #e2edfb; font-size: .86rem; line-height: 1.45; margin: 0 0 22px; }
.final-cta-action .btn-hero-primary { min-height: 56px; height: auto; padding: 12px 20px; font-size: .78rem; }

/* Assinaturas sem fundos coloridos, todas em branco. */
.footer-partner-logos { gap: 14px; align-items: center; }
.footer-logo-tile,
.footer-logo-tile-light,
.footer-logo-tile-dark,
.footer-logo-tile-gold { width: 148px; height: 66px; padding: 5px 8px; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.footer-logo-tile img { max-height: 54px; filter: brightness(0) invert(1); }
.footer-logo-tile-paroquia { width: 202px; padding-inline: 3px; }
.footer-logo-tile-paroquia img { max-height: none; transform: translateY(7px); }

main section[id] { scroll-margin-top: 118px; }

@media (max-width: 850px) {
  #atracoes .attraction-super-title { font-size: clamp(2.7rem, 6.5vw, 4.1rem); }
  #atracoes .featured-attraction-card { height: auto; }
  #adesivo .sticker-grid { grid-template-columns: 1fr; }
  #adesivo .sticker-visual-box { height: auto; }
  .final-cta-inner { grid-template-columns: 1fr; gap: 22px; }
  .final-cta-action { padding: 20px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.35); }
}
@media (max-width: 600px) {
  .hero-huge-title { font-size: clamp(2.7rem, 9.2vw, 4rem); }
  .hero-huge-title > span:last-child { font-size: .68em; }
  #hero .btn-hero-glass small { font-size: .73rem; }
  #atracoes .attraction-super-title { font-size: clamp(2.15rem, 9vw, 3.35rem); }
  #adesivo .sticker-visual-box { height: auto; }
  #adesivo .sticker-copy h2 { font-size: clamp(2rem, 9vw, 3rem) !important; }
  .final-cta-section { padding: 54px 0; }
  .footer-logo-tile, .footer-logo-tile-light, .footer-logo-tile-dark, .footer-logo-tile-gold { width: calc(50% - 7px); height: 60px; }
  .footer-logo-tile-paroquia { width: calc(50% - 7px); }
  .footer-logo-tile-paroquia img { transform: translateY(5px); }
}

/* Paleta prioritária do congresso: creme, dourado e marrom. */
:root {
  --brand-brown: #563710;
  --brand-gold: #A6712E;
  --brand-cream: #FFE7C3;
  --brand-accent: #A6712E;
  --brand-action: #D85131;
  --bg-primary: #563710;
  --bg-secondary: #563710;
  --bg-surface: #FFE7C3;
  --color-primary: #563710;
  --color-accent: #A6712E;
  --color-gold: #A6712E;
  --color-white: #fff;
  --color-text-muted: rgba(255,255,255,.86);
  --color-text-dim: rgba(255,255,255,.68);
  --border-subtle: rgba(255,255,255,.2);
  --border-medium: rgba(255,255,255,.3);
  --border-glow-primary: rgba(166,113,46,.4);
  --border-glow-accent: rgba(166,113,46,.4);
  --gradient-cta: linear-gradient(110deg, #D85131 0%, #D34E2F 48%, #CE4B2C 100%);
  --gradient-cta-hover: linear-gradient(110deg, #E15C3B, #D34E2F);
}
body { background: var(--brand-cream); }

/* Navegação, vídeo e ações principais. */
.navbar-capsule,
.site-header.scrolled .navbar-capsule {
  background: linear-gradient(115deg, rgba(255,250,243,.88) 0%, rgba(255,237,208,.78) 52%, rgba(255,250,243,.88) 100%);
  border-color: rgba(255,255,255,.75);
  box-shadow: 0 14px 38px rgba(72,43,10,.15), inset 0 1px 0 rgba(255,255,255,.65);
  -webkit-backdrop-filter: blur(22px) saturate(1.15);
  backdrop-filter: blur(22px) saturate(1.15);
  padding-block: 18px;
}
.brand-center-image { width: clamp(170px, 18vw, 245px); filter: brightness(0) saturate(100%) invert(23%) sepia(35%) saturate(994%) hue-rotate(352deg) brightness(86%) contrast(92%); }
.brand-center-logo { flex-direction: row; align-items: center; justify-content: center; gap: clamp(20px, 4.35vw, 92px); text-align: left; }
.brand-presentation { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; flex: 0 0 auto; }
.brand-presenters { display: flex; align-items: center; justify-content: center; gap: 10px; }
.brand-presenters img {
  display: block;
  width: auto;
  height: clamp(21px, 1.9vw, 26px);
  max-width: 96px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(23%) sepia(35%) saturate(994%) hue-rotate(352deg) brightness(86%) contrast(92%);
}
.brand-presenters-label { color: var(--brand-brown); font: 700 .52rem/1 var(--font-body); letter-spacing: .19em; }
.nav-item-link { color: var(--brand-brown); }
.nav-item-link:hover,
.nav-item-link.active { color: var(--brand-brown); }
.nav-item-link::after { background: var(--brand-gold); }
.btn-nav-ticket,
.btn-nav-ticket:hover,
.btn-hero-primary,
.btn-hero-primary:hover,
.video-play-btn-pulse { background: var(--gradient-cta); color: #fff; }
.btn-nav-ticket:hover,
.btn-hero-primary:hover { filter: brightness(1.08); }
.mobile-toggle { color: var(--brand-brown); background: rgba(255,248,237,.55); border-color: rgba(86,55,16,.38); }
.mobile-drawer { background: rgba(255,248,237,.95); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); }
.mobile-nav-link,
.mobile-drawer-close { color: var(--brand-brown); }

.hero-section { background: var(--brand-brown); }
.hero-media-wrapper { background-color: var(--brand-brown); }
.hero-overlay-gradient {
  background: linear-gradient(180deg, rgba(45, 26, 5, .65) 0%, rgba(55, 31, 7, .52) 42%, rgba(45, 26, 5, .82) 100%);
}
.hero-pill-badge { background: rgba(86,55,16,.76); border-color: rgba(255,255,255,.53); color: #fff; }
.venue-link { color: inherit; text-decoration: underline; text-decoration-color: rgba(255,231,195,.55); text-underline-offset: 3px; }
.venue-link:hover { text-decoration-color: currentColor; }
.venue-link:focus-visible,
[data-maps-link]:focus-visible { outline: 2px solid var(--brand-cream); outline-offset: 3px; }
.hero-pill-badge svg { color: #fff; }
.hero-sub-text1,
.hero-sub-text2 { color: #fff; }
.hero-buttons-row .btn-hero-primary { background: var(--gradient-cta); box-shadow: 0 8px 25px rgba(45,24,5,.3); }
.hero-buttons-row .btn-hero-glass { background: rgba(86,55,16,.7); border-color: rgba(255,255,255,.55); }
.hero-buttons-row small,
#hero .btn-hero-glass small { color: #fff; }
.band-countdown { background: var(--brand-cream); }
.band-label,
.band-event-name { color: var(--brand-brown); }
.band-digits { color: var(--brand-accent); }

/* Atrações: dourado vivo e contraste marrom, preservando as fotos. */
#atracoes {
  background: radial-gradient(circle at 82% 10%, rgba(255,231,195,.32), transparent 37%),
              linear-gradient(145deg, #A6712E 0%, #8A5C24 52%, #563710 100%);
}
#atracoes .featured-attraction-card {
  background: radial-gradient(circle at 26% 27%, rgba(166,113,46,.48), transparent 43%),
              linear-gradient(120deg, #785021 0%, #653E17 58%, #563710 100%);
  border-color: var(--brand-cream);
  box-shadow: 0 28px 65px rgba(45,24,5,.35), inset 0 0 45px rgba(255,231,195,.12);
}
#atracoes .featured-attraction-card::before { background: linear-gradient(105deg, transparent 37%, rgba(255,231,195,.12) 50%, transparent 63%); }
#atracoes .attraction-cutout-side { background: radial-gradient(circle at 50% 35%, rgba(166,113,46,.42), transparent 65%); }
#atracoes .attraction-badge-status { color: #fff; border-color: rgba(255,255,255,.55); background: rgba(86,55,16,.28); }
#atracoes .attraction-role { color: #fff; }
#atracoes .attraction-description { color: #fff; }
#atracoes .lineup-cta,
#atracoes .lineup-cta:hover { background: var(--gradient-cta); color: #fff; }
#atracoes .lineup-cta:hover { filter: brightness(1.08); }
#atracoes .lineup-card-footer { color: #fff; border-top-color: rgba(255,255,255,.26); }
#atracoes .lineup-thumbnail { background: rgba(62,34,6,.76); border-color: rgba(255,255,255,.45); color: #fff; }
#atracoes .lineup-thumbnail::after { background: linear-gradient(0deg, rgba(55,27,5,.97), transparent 77%); }
#atracoes .lineup-thumbnail.is-active,
#atracoes .lineup-thumbnail:hover { background: var(--brand-gold); border-color: var(--brand-cream); }
#atracoes .lineup-thumbnails { scrollbar-color: var(--brand-accent) rgba(255,255,255,.15); }
#atracoes .lineup-arrow:hover,
#atracoes .lineup-arrow:focus-visible { color: var(--brand-brown); }

/* O creme é a base visual das áreas de leitura. */
.about-section,
#adesivo,
#duvidas { background: var(--brand-cream); color: var(--brand-brown); }
.about-section {
  background-image: linear-gradient(rgba(86,55,16,.055) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(86,55,16,.055) 1px, transparent 1px);
  background-size: 52px 52px;
}
#adesivo {
  background-image:
    linear-gradient(rgba(86,55,16,.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(86,55,16,.09) 1px, transparent 1px),
    radial-gradient(circle at 82% 20%, rgba(166,113,46,.17), transparent 55%);
  background-size: 44px 44px, 44px 44px, auto;
}
.about-section h2,
#adesivo h2,
#duvidas h2 { color: var(--brand-brown) !important; }
.about-section .about-grid-summer > div:last-child > p,
#adesivo .sticker-copy p,
#duvidas .faq-answer { color: #563710 !important; }
.about-grid-summer .stat-number,
.about-section .about-grid-summer > div:last-child > span { color: var(--brand-accent) !important; }
.about-grid-summer > div:last-child > div[style*="display: flex"] { border-top-color: rgba(86,55,16,.28) !important; }
.about-grid-summer > div:last-child > div[style*="display: flex"] span { color: var(--brand-brown) !important; }
.story-photo { border-color: rgba(86,55,16,.25); box-shadow: 0 22px 50px rgba(86,55,16,.2); }
.story-photo::after { background: linear-gradient(180deg, rgba(45,26,5,.08), rgba(45,26,5,.15) 48%, rgba(45,26,5,.9)); }
#adesivo .sticker-visual-box { aspect-ratio: 1; background: var(--brand-cream); border-color: rgba(86,55,16,.24); box-shadow: 0 22px 50px rgba(86,55,16,.14); }
#adesivo .sticker-img { object-fit: contain; }
@media (max-width: 850px) {
  #adesivo .sticker-visual-box { aspect-ratio: 4 / 5; }
}
#adesivo .sticker-copy .sticker-lead { border-left-color: var(--brand-accent); }
#adesivo .sticker-copy strong { color: var(--brand-brown); }

.about-section .section-eyebrow,
#adesivo .section-eyebrow,
#duvidas .section-eyebrow {
  color: var(--brand-accent) !important;
  border-color: rgba(166,113,46,.5) !important;
  background: var(--brand-cream) !important;
}
.section-eyebrow,
#atracoes .lineup-eyebrow.section-eyebrow,
.section .container > div > span.section-eyebrow[style*="letter-spacing"] {
  border-color: rgba(255,255,255,.52) !important;
  background: rgba(86,55,16,.24) !important;
  color: #fff !important;
}
.about-section .section-eyebrow,
#adesivo .section-eyebrow,
#duvidas .section-eyebrow { color: var(--brand-accent) !important; border-color: rgba(166,113,46,.5) !important; background: var(--brand-cream) !important; }

/* Cronograma marrom entre as duas seções creme; guia dourado. */
#programacao {
  background: linear-gradient(135deg, #684417 0%, #704A1C 52%, #795124 100%);
  color: #fff;
}
#programacao h2[style],
#programacao p[style] { color: #fff !important; }
#programacao .section-eyebrow { color: #fff !important; border-color: rgba(255,231,195,.55) !important; background: rgba(166,113,46,.3) !important; }
#programacao .timeline-item,
#programacao .timeline-item:last-child,
#programacao .timeline-item:nth-child(7) { border-color: rgba(255,231,195,.4); }
#programacao .timeline-time,
#programacao .timeline-header .timeline-time[style] { color: var(--brand-cream) !important; }
#programacao .timeline-title,
#programacao .timeline-desc { color: #fff !important; }
#informacoes { background: var(--brand-gold); }
#informacoes .info-cards-grid { border-color: rgba(255,231,195,.36); background: rgba(255,231,195,.36); }
#informacoes .info-card { background: #684119; }
#informacoes .info-card:hover { background: #563710; }
#informacoes .info-card-icon { color: #fff; }
#informacoes .info-card-body,
#informacoes .info-card-body p,
#informacoes .info-card-title { color: #fff !important; }
#informacoes .info-card-body p[style*="color: var(--color-gold)"] { color: #fff !important; }
#informacoes .info-alert-box { background: rgba(86,55,16,.36); border-color: rgba(255,231,195,.48); color: #fff; }
#informacoes .info-card .btn-hero-glass { border-color: rgba(255,255,255,.65); color: #fff; }

/* Filete animado separa as áreas sem competir com o conteúdo. */
#programacao,
#adesivo { position: relative; }
#programacao::before,
#adesivo::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  z-index: 1;
  height: 3px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent 0%, var(--brand-gold) 28%, var(--brand-cream) 50%, var(--brand-gold) 72%, transparent 100%);
  background-size: 200% 100%;
  animation: congress-section-glide 8s linear infinite;
}
@keyframes congress-section-glide {
  from { background-position: 100% 0; }
  to { background-position: -100% 0; }
}
@media (prefers-reduced-motion: reduce) {
  #programacao::before,
  #adesivo::before { animation: none; background-position: center; }
}

#duvidas .faq-item,
#duvidas .faq-item.active { border-color: rgba(86,55,16,.24); box-shadow: 0 4px 18px rgba(86,55,16,.06); }
#duvidas .faq-item.active { border-color: var(--brand-accent); }
#duvidas .faq-trigger { color: var(--brand-brown) !important; }
#duvidas .faq-icon-indicator { color: var(--brand-accent); border-color: rgba(86,55,16,.35); }
#duvidas .faq-item.active .faq-icon-indicator { background: var(--brand-accent); border-color: var(--brand-accent); color: #fff !important; }
#duvidas h2 span[style] { background: none !important; -webkit-text-fill-color: var(--brand-accent) !important; }

/* Chamada final, rodapé e elementos flutuantes. */
.final-cta-section {
  background-color: var(--brand-brown);
  background-image:
    linear-gradient(90deg, rgba(37,24,9,.88) 0%, rgba(37,24,9,.82) 52%, rgba(37,24,9,.9) 100%),
    url('../images/hero/congregacao-conceitual.webp');
  background-size: cover;
  background-position: center 58%;
}
.final-cta-copy > p,
.final-cta-action > p { color: #fff; }
.final-cta-action .btn-hero-primary { background: var(--gradient-cta); border: 0; }
.mid-cta-section {
  position: relative;
  padding: clamp(64px, 7vw, 94px) 0;
  color: #fff;
  background-color: var(--brand-brown);
  background-image: linear-gradient(90deg, rgba(33, 19, 7, .9), rgba(41, 23, 8, .79) 56%, rgba(33, 19, 7, .86)), url('../images/hero/encontro-fe-congresso.webp');
  background-size: cover;
  background-position: center 53%;
  border-block: 1px solid rgba(255, 231, 195, .36);
}
.mid-cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr);
  align-items: center;
  gap: clamp(34px, 6vw, 88px);
  max-width: 1200px;
}
.mid-cta-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 31px;
  padding: 5px 14px;
  margin-bottom: 18px;
  border: 1px solid rgba(255, 231, 195, .72);
  border-radius: 999px;
  font: 700 .7rem/1 var(--font-display);
  letter-spacing: .14em;
}
.mid-cta-section h2 {
  margin: 0 0 22px;
  color: #fff;
  font: 800 clamp(1.85rem, 3vw, 2.8rem)/1.05 var(--font-display);
  letter-spacing: -.035em;
}
.mid-cta-copy p { max-width: 650px; margin: 0; font-size: 1rem; line-height: 1.55; }
.mid-cta-copy .mid-cta-date {
  margin-bottom: 8px;
  color: var(--brand-cream);
  font: 800 clamp(2rem, 3.6vw, 3rem)/1 var(--font-display);
  letter-spacing: -.025em;
}
.mid-cta-copy .mid-cta-details { color: #fff; }
.mid-cta-eyebrow::before { color: var(--brand-cream); }
.mid-cta-action { padding: 24px 0 24px clamp(26px, 3vw, 48px); border-left: 1px solid rgba(255, 231, 195, .52); }
.mid-cta-action strong { display: block; font: 800 clamp(2rem, 3.2vw, 2.9rem)/1 var(--font-display); }
.mid-cta-action p { max-width: 340px; margin: 13px 0 22px; font-size: .9rem; line-height: 1.45; }
.mid-cta-action .btn-hero-primary { min-height: 55px; height: auto; padding: 12px 20px; border: 0; font-size: .76rem; }
@media (max-width: 850px) {
  .mid-cta-inner { grid-template-columns: 1fr; gap: 26px; }
  .mid-cta-action { padding: 25px 0 0; border-left: 0; border-top: 1px solid rgba(255, 231, 195, .52); }
}
.site-footer {
  --color-white: #563710;
  --color-gold: #A6712E;
  --color-text-muted: rgba(86,55,16,.85);
  --color-text-dim: rgba(86,55,16,.72);
  background: linear-gradient(115deg, rgba(255,250,243,.94) 0%, rgba(255,237,208,.87) 52%, rgba(255,250,243,.94) 100%);
  border-top-color: rgba(255,255,255,.78);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72), 0 -12px 35px rgba(72,43,10,.1);
  -webkit-backdrop-filter: blur(22px) saturate(1.15);
  backdrop-filter: blur(22px) saturate(1.15);
}
.footer-partners { border-top-color: rgba(86,55,16,.2); }
.footer-partner-group h4 { color: var(--brand-brown); }
.footer-partner-group:last-child { justify-self: end; text-align: right; }
.footer-partner-group:last-child .footer-partner-logos { justify-content: flex-end; }
.site-footer .footer-logo-tile img { filter: brightness(0) saturate(100%) invert(23%) sepia(35%) saturate(994%) hue-rotate(352deg) brightness(86%) contrast(92%); }
.site-footer .footer-bottom { border-top-color: rgba(86,55,16,.2); }
.footer-credit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: var(--brand-brown);
  font-size: .78rem;
  line-height: 1;
}
.footer-credit-link { display: inline-flex; align-items: center; justify-content: center; line-height: 0; border-radius: 3px; }
.footer-credit-link:focus-visible { outline: 2px solid var(--brand-cream); outline-offset: 4px; }
.footer-credit-link:hover { opacity: .8; }
.footer-credit-logo { display: block; width: 74px; height: auto; filter: brightness(0) saturate(100%) invert(23%) sepia(35%) saturate(994%) hue-rotate(352deg) brightness(86%) contrast(92%); }
.floating-bottom-bar { background: rgba(255,248,237,.96); border-top-color: rgba(86,55,16,.2); }
.modal-dialog { background: var(--brand-brown); }

/* Texto e ícones claros sobre os painéis escuros. */
.hero-huge-title { text-shadow: 0 3px 9px rgba(40,20,3,.76), 0 8px 27px rgba(40,20,3,.76); }
.hero-buttons-row .btn-hero-glass svg,
#informacoes .info-card .btn-hero-glass svg { color: #fff; }
#informacoes .info-price,
.floating-bottom-bar .floating-price { color: #fff !important; }
.site-footer .footer-col-title { color: var(--brand-brown) !important; }
.site-footer .footer-link[data-action="checkout"] { color: #A94325 !important; }

/* Fundo de papel claro e dourado suave inspirado no panfleto oficial. */
body,
.band-countdown { background: #fff8ed; }
.hero-overlay-gradient {
  background: linear-gradient(180deg, rgba(45,26,5,.62) 0%, rgba(55,31,7,.54) 42%, rgba(45,26,5,.82) 100%);
}
#atracoes {
  background: radial-gradient(circle at 6% 9%, rgba(215,157,69,.34), transparent 34%),
              radial-gradient(circle at 94% 88%, rgba(166,113,46,.22), transparent 36%),
              linear-gradient(135deg, #f5dfbd 0%, #fff8ed 57%, #f8e7cd 100%);
}
#atracoes::before { color: rgba(86,55,16,.06); }
#atracoes .lineup-heading h2 { color: var(--brand-brown); }
#atracoes .lineup-eyebrow.section-eyebrow {
  color: var(--brand-brown) !important;
  background: rgba(255,248,237,.7) !important;
  border-color: rgba(86,55,16,.38) !important;
}
#atracoes .lineup-arrow { color: var(--brand-brown); background: rgba(255,248,237,.58); border-color: rgba(86,55,16,.44); }
#atracoes .lineup-arrow:hover,
#atracoes .lineup-arrow:focus-visible { background: var(--brand-brown); color: #fff; }
.about-section {
  background-color: #fff9ef;
  background-image: radial-gradient(circle at 0% 0%, rgba(224,172,88,.18), transparent 34%),
                    radial-gradient(circle at 100% 100%, rgba(166,113,46,.11), transparent 37%),
                    linear-gradient(rgba(166,113,46,.035) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(166,113,46,.035) 1px, transparent 1px);
  background-size: auto, auto, 52px 52px, 52px 52px;
}
#programacao {
  color: var(--brand-brown);
  background: linear-gradient(135deg, #eed1a1 0%, #f7e4c4 44%, #fff8ed 100%);
}
#programacao h2[style],
#programacao p[style],
#programacao .timeline-title,
#programacao .timeline-desc { color: var(--brand-brown) !important; }
#programacao .section-eyebrow {
  color: var(--brand-brown) !important;
  background: rgba(255,248,237,.68) !important;
  border-color: rgba(86,55,16,.38) !important;
}
#programacao .timeline-time,
#programacao .timeline-header .timeline-time[style] { color: #875617 !important; }
#programacao .timeline-header { align-items: center; }
#programacao .timeline-time { line-height: 1.35; }
#programacao .timeline-list,
#programacao .timeline-item,
#programacao .timeline-item:last-child,
#programacao .timeline-item:nth-child(7) { border-color: rgba(86,55,16,.3); }
#adesivo {
  background-color: #f7e5c9;
  background-image: radial-gradient(circle at 92% 10%, rgba(166,113,46,.18), transparent 42%),
                    radial-gradient(circle at 2% 90%, rgba(255,255,255,.48), transparent 38%),
                    linear-gradient(rgba(86,55,16,.045) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(86,55,16,.045) 1px, transparent 1px);
  background-size: auto, auto, 44px 44px, 44px 44px;
}
#informacoes {
  position: relative;
  color: var(--brand-brown);
  background: radial-gradient(circle at 7% 5%, rgba(255,251,243,.72), transparent 29%),
              radial-gradient(circle at 96% 88%, rgba(166,113,46,.2), transparent 34%),
              linear-gradient(145deg, #f0d3a6 0%, #f6e2c2 55%, #ffefd7 100%);
}
#informacoes::before,
#informacoes::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: radial-gradient(circle, rgba(86,55,16,.22) .85px, transparent 1.35px);
  background-size: 15px 15px;
}
#informacoes::before { -webkit-mask-image: radial-gradient(ellipse at 0% 0%, #000 0%, transparent 50%); mask-image: radial-gradient(ellipse at 0% 0%, #000 0%, transparent 50%); }
#informacoes::after { -webkit-mask-image: radial-gradient(ellipse at 100% 100%, #000 0%, transparent 46%); mask-image: radial-gradient(ellipse at 100% 100%, #000 0%, transparent 46%); }
#informacoes > .container { position: relative; z-index: 1; }
#informacoes h2[style] { color: var(--brand-brown) !important; }
#informacoes .section-eyebrow {
  color: var(--brand-brown) !important;
  background: rgba(255,248,237,.7) !important;
  border-color: rgba(86,55,16,.4) !important;
}
#informacoes .info-cards-grid { background: rgba(86,55,16,.18); border-color: rgba(86,55,16,.18); }
#informacoes .info-card,
#informacoes .info-card:hover { background: #fff8ed; }
#informacoes .info-card-icon { color: var(--brand-gold); }
#informacoes .info-card-title,
#informacoes .info-card-body,
#informacoes .info-card-body p,
#informacoes .info-card-body p[style*="color: var(--color-gold)"],
#informacoes .info-price { color: var(--brand-brown) !important; }
#informacoes .info-alert-box { color: var(--brand-brown); background: #f5dfbd; border-color: rgba(86,55,16,.28); }
#informacoes .info-card .btn-hero-glass { color: var(--brand-brown); border-color: rgba(86,55,16,.55); }
#informacoes .info-card .btn-hero-glass svg { color: var(--brand-brown); }
#duvidas { background: #fff9ef; }
.hero-buttons-row .btn-hero-glass[data-action="checkout"] {
  color: #fff;
  background: var(--gradient-cta);
  border-color: rgba(255,231,195,.6);
  box-shadow: 0 12px 28px rgba(158,50,28,.26);
}
.hero-buttons-row .btn-hero-glass[data-action="checkout"]:hover { filter: brightness(1.08); }
.hero-pill-badge,
.hero-pill-badge:hover {
  color: #fff;
  background: var(--gradient-cta);
  border: 0;
  box-shadow: 0 10px 28px rgba(86,55,16,.22);
}
.hero-buttons-row .btn-hero-primary,
.hero-buttons-row .btn-hero-glass,
.hero-buttons-row .btn-hero-glass:hover { border: 0; }
#hero .btn-hero-glass[data-maps-link],
#informacoes .info-card .btn-hero-glass[data-maps-link],
#duvidas .btn-hero-glass[data-maps-link] {
  color: #fff;
  background: var(--gradient-cta);
  border-color: rgba(255,231,195,.6);
  box-shadow: 0 10px 26px rgba(206,75,44,.18);
}
#hero .btn-hero-glass[data-maps-link] svg,
#informacoes .info-card .btn-hero-glass[data-maps-link] svg,
#duvidas .btn-hero-glass[data-maps-link] svg { color: #fff; }
#hero .btn-hero-glass[data-maps-link]:hover,
#informacoes .info-card .btn-hero-glass[data-maps-link]:hover,
#duvidas .btn-hero-glass[data-maps-link]:hover { filter: brightness(1.07); }
#informacoes .info-card-icon,
#duvidas .faq-icon-indicator { color: var(--brand-action); }
#duvidas .faq-item.active .faq-icon-indicator { background: var(--brand-action); border-color: var(--brand-action); }
.about-section .section-eyebrow::before,
#atracoes .section-eyebrow::before,
#programacao .section-eyebrow::before,
#adesivo .section-eyebrow::before,
#informacoes .section-eyebrow::before,
#duvidas .section-eyebrow::before { color: var(--brand-action); }
.mid-cta-section {
  background-image: linear-gradient(90deg, rgba(33,19,7,.79), rgba(41,23,8,.68) 56%, rgba(33,19,7,.77)),
                    url('../images/hero/encontro-fe-congresso.webp');
}
.final-cta-section {
  background-image: linear-gradient(90deg, rgba(37,24,9,.78), rgba(37,24,9,.7) 52%, rgba(37,24,9,.8)),
                    url('../images/hero/congregacao-conceitual.webp');
}

@media (max-width: 768px) {
  #atracoes .attraction-cutout-side .attraction-cutout-img {
    object-position: center bottom;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 71%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 71%, transparent 100%);
  }
  #programacao .timeline-card,
  #programacao .timeline-item.highlight .timeline-card { min-height: 0; padding: 14px 0; }
  #programacao .timeline-header { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; margin-bottom: 4px; }
  #programacao .timeline-title { flex: none; width: 100%; }
  #programacao .timeline-desc { margin: 0; }
  .footer-partners { padding: 28px 0; gap: 22px; }
  .footer-partner-group h4 { margin-bottom: 10px; }
  .footer-partner-logos { justify-content: center; gap: 8px; }
  .footer-logo-tile,
  .footer-logo-tile-light,
  .footer-logo-tile-dark,
  .footer-logo-tile-gold,
  .footer-logo-tile-paroquia { width: calc(50% - 4px); max-width: 148px; height: 52px; padding: 4px; }
  .footer-logo-tile img,
  .footer-logo-tile-paroquia img { max-height: 46px; transform: none; }
  .footer-bottom { flex-direction: column; align-items: center; justify-content: center; gap: 12px; text-align: center; }
  .footer-bottom > p { margin: 0; white-space: nowrap; font-size: clamp(.55rem, 2.6vw, .7rem); letter-spacing: -.02em; }
  .footer-credit { width: 100%; justify-content: center; }
  .hero-overlay-gradient { background: linear-gradient(180deg, rgba(45,26,5,.65), rgba(45,26,5,.59) 45%, rgba(45,26,5,.86)); }
  .site-footer { padding-bottom: calc(95px + env(safe-area-inset-bottom, 0px)); }
  .floating-bottom-bar {
    display: flex;
    min-height: 68px;
    padding: 9px 14px calc(9px + env(safe-area-inset-bottom, 0px));
    gap: 10px;
    transform: none;
    transition: none;
    box-shadow: 0 -12px 34px rgba(72,43,10,.14);
    -webkit-backdrop-filter: blur(20px) saturate(1.12);
    backdrop-filter: blur(20px) saturate(1.12);
  }
  body.menu-open .floating-bottom-bar { visibility: hidden; }
  .floating-brand { display: flex; align-items: center; min-width: 0; flex: 0 1 38%; }
  .floating-brand-logo {
    display: block;
    width: 100%;
    max-width: 158px;
    height: auto;
    filter: brightness(0) saturate(100%) invert(23%) sepia(35%) saturate(994%) hue-rotate(352deg) brightness(86%) contrast(92%);
  }
  .floating-ticket-button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px 12px;
    gap: 7px;
    font-size: .63rem;
    letter-spacing: .04em;
    white-space: nowrap;
  }
  .floating-ticket-button svg { flex: 0 0 16px; width: 16px; height: 16px; }
  .floating-bottom-bar .floating-ticket-button { margin-left: auto; }
  .hero-section { padding-bottom: 115px; }
}

/* Banner: nome, tema e data/horário em ordem de leitura. */
#hero .hero-date-headline {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  margin: 0 0 24px;
  color: #fff;
  font: 800 clamp(1.85rem, 3.9vw, 3.5rem)/1 var(--font-display);
  letter-spacing: -.025em;
  text-align: center;
  text-shadow: 0 5px 24px rgba(40,20,3,.55);
}
#hero .hero-date-line { display: block; white-space: nowrap; }
#hero .hero-date-time {
  display: block;
  font: 700 clamp(.95rem, 1.35vw, 1.15rem)/1.25 var(--font-body);
  letter-spacing: .12em;
  text-transform: uppercase;
}
#hero .hero-huge-title {
  font-size: clamp(2rem, 4.5vw, 4.1rem);
  line-height: 1.02;
  margin-bottom: 12px;
  letter-spacing: -.025em;
}
#hero .hero-huge-title > span:last-child { font-size: .75em; letter-spacing: .02em; }
#hero .hero-script-accent { margin: 0 0 18px; color: var(--brand-cream); }
#hero .hero-buttons-row { justify-content: center; width: 100%; }
#hero .hero-single-cta {
  width: auto;
  min-width: min(100%, 385px);
  min-height: 66px;
  justify-content: center;
  padding: 16px 28px !important;
  border: 0;
  font-size: .83rem !important;
  text-align: center;
}

/* Apoiadores em uma grade extensível para novas marcas. */
.supporters-section {
  color: var(--brand-brown);
  background: linear-gradient(135deg, #fffaf3 0%, #ffe7c3 55%, #f8dfb9 100%);
  padding-block: clamp(72px, 8vw, 112px);
}
#apoiadores .supporters-heading { width: 100%; max-width: none; margin: 0 0 52px; text-align: left; }
.supporters-heading .section-eyebrow {
  color: var(--brand-brown) !important;
  background: rgba(255,248,237,.7) !important;
  border-color: rgba(86,55,16,.4) !important;
}
.supporters-heading .section-eyebrow::before { color: var(--brand-action); }
.supporters-heading h2 {
  margin-top: 14px;
  color: var(--brand-brown);
  font: 800 clamp(2rem, 4vw, 3.5rem)/1.08 var(--font-display);
  text-transform: uppercase;
}
.supporters-heading h2 span { display: block; }

/* Títulos das seções ligeiramente menores, mantendo a escala de cada bloco. */
.section h2 { font-size: clamp(calc(2.5rem - 8px), calc(5vw - 8px), calc(5rem - 8px)) !important; }
#apoiadores .supporters-heading h2 { font-size: clamp(2rem, calc(5vw - 8px), 3.875rem) !important; }
#sobre h2 { font-size: clamp(calc(2.35rem - 8px), calc(3.25vw - 8px), calc(3.4rem - 8px)) !important; }
#adesivo .sticker-copy h2 { font-size: clamp(calc(2.35rem - 8px), calc(4.1vw - 8px), calc(4.35rem - 8px)) !important; }
.supporters-group + .supporters-group { margin-top: 43px; }
.supporters-group h3 {
  margin: 0 0 18px;
  color: var(--brand-brown);
  font: 700 .78rem/1.2 var(--font-body);
  letter-spacing: .18em;
  text-align: center;
}
.supporters-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.supporter-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 220px;
  width: min(100%, 270px);
  max-width: 270px;
  height: 126px;
  padding: 24px;
  border: 1px solid rgba(86,55,16,.13);
  border-radius: 14px;
  background: rgba(255,255,255,.55);
  box-shadow: 0 12px 30px rgba(86,55,16,.055);
}
.supporter-logo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.supporters-grid-presenters .supporter-logo { max-width: 315px; }

/* As duas faixas apresentam data e local à esquerda, inscrição à direita. */
.mid-cta-action .btn-hero-primary,
.final-cta-action .btn-hero-primary { width: 100%; min-height: 64px; justify-content: center; text-align: center; }
.final-cta-copy > p { max-width: 650px; }
.final-cta-section h2 { font-size: clamp(1.85rem, 3vw, 2.8rem); margin-bottom: 22px; }
.final-cta-copy .final-cta-date {
  margin-bottom: 8px;
  color: var(--brand-cream);
  font: 800 clamp(2rem, 3.6vw, 3rem)/1 var(--font-display);
  letter-spacing: -.025em;
}
.final-cta-copy .final-cta-details { color: #fff; }

/* A colagem original tem recorte transparente: manter as três fotos completas. */
#sobre .story-photo {
  align-self: center;
  width: 100%;
  min-height: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}
#sobre .story-photo img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
#sobre .story-photo::after { display: none; }

@media (min-width: 601px) and (max-width: 768px) {
  #adesivo .sticker-copy h2 { font-size: clamp(calc(2rem - 8px), calc(9vw - 8px), calc(3rem - 8px)) !important; }
}

@media (max-width: 600px) {
  .navbar-capsule,
  .site-header.scrolled .navbar-capsule { column-gap: 8px; padding-block: 12px; }
  .brand-center-logo { gap: 12px; }
  .brand-center-image { width: clamp(105px, 35vw, 135px); max-height: 36px; }
  .brand-presentation { gap: 3px; }
  .brand-presenters { gap: 4px; }
  .brand-presenters img { height: clamp(10px, 3.3vw, 13px); max-width: 46px; }
  .brand-presenters-label { font-size: .46rem; }
  .footer-partner-group:first-child .footer-partner-logos { justify-content: flex-start; }
  .footer-partner-group:last-child { width: 100%; }
  .footer-partner-group:last-child .footer-logo-tile { width: calc((100% - 16px) / 3); max-width: 98px; }
  #adesivo .sticker-copy h2 { font-size: clamp(calc(2rem - 8px), calc(9vw - 8px), calc(3rem - 8px)) !important; }
  #hero .hero-date-headline { gap: 7px; font-size: clamp(1.65rem, 7vw, 2.35rem); margin-bottom: 20px; }
  #hero .hero-date-time { font-size: .9rem; }
  #hero .hero-huge-title { font-size: clamp(1.75rem, 7.2vw, 2.5rem); margin-bottom: 14px; }
  #hero .hero-huge-title > span:last-child { font-size: .72em; }
  #hero .hero-script-accent { font-size: .85rem; margin-bottom: 20px; }
  #hero .hero-single-cta { min-width: 0; width: 100%; min-height: 62px; font-size: .7rem !important; }
  .supporters-heading { margin-bottom: 35px; }
  .supporters-grid { gap: 10px; }
  .supporter-logo { flex: 0 0 calc(50% - 5px); height: 101px; padding: 14px; }
  .supporters-grid-presenters .supporter-logo { max-width: none; }
  .supporters-group + .supporters-group { margin-top: 34px; }
}

/* Cada marca ocupa uma coluna igual; o desenho fica centralizado e sem deformação. */
.brand-presenters {
  display: grid;
  grid-template-columns: repeat(3, 82px);
  column-gap: 12px;
  align-items: center;
  justify-items: center;
}
.brand-presenters img {
  width: 82px;
  height: 27px;
  max-width: none;
  object-fit: contain;
}
.brand-presenters img:first-child { width: 60px; }
@media (max-width: 600px) {
  .brand-center-logo { gap: 10px; }
  .brand-center-image { width: clamp(105px, 34vw, 131px); }
  .brand-presenters { grid-template-columns: repeat(3, 48px); column-gap: 6px; }
  .brand-presenters img { width: 47px; height: 20px; }
  .brand-presenters img:first-child { width: 35px; height: 17px; }
  .brand-presenters img:nth-child(2) { width: 44px; }
}

/* No celular, a imagem otimizada mantém a composição do banner. */
@media (max-width: 768px) {
  .hero-media-wrapper { background-image: url('../images/hero/site-video-poster-mobile.webp'); }
  .hero-video { display: block; }
}

/* Unidade e legenda do contador permanecem alinhadas em qualquer largura. */
.band-digits {
  display: inline-flex;
  align-items: flex-start;
  gap: .08em;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0;
}
.band-unit {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  min-width: 1.8em;
}
.band-value, .band-separator { line-height: 1; }
.band-unit-label {
  margin-top: 5px;
  color: var(--brand-brown);
  font: 600 clamp(.68rem, 1.3vw, .75rem)/1 var(--font-body);
  letter-spacing: 0;
  text-shadow: none;
}
