@media (max-width: 700px) {
  footer {
    background: #1a1a1a !important;
  }
}
@media (max-width: 700px) {
  footer::after {
    content: none !important;
    display: none !important;
    background: none !important;
    opacity: 0 !important;
  }
}
@media (max-width: 700px) {
  .footer-col.footer-modalidades,
  .footer-col:not(.footer-brand) {
    display: none !important;
  }
  .footer-col.footer-brand h3.bfc-font,
  .footer-col.footer-brand .footer-cta {
    display: none !important;
  }
  .footer-grid {
    grid-template-columns: 1fr !important;
    justify-content: center;
    text-align: center;
  }
  .footer-col.footer-brand {
    align-items: center;
    text-align: center;
    width: 100%;
  }
}
/* Centralizar todos os títulos principais */
h1, h2, h3 {
  text-align: center;
}
/* SOBRE - layout melhorado */
.sobre-subtitle {
  text-align: center;
  font-size: 1.1rem;
  margin-top: -1rem;
  margin-bottom: 3rem;
  color: #666;
  font-weight: 400;
}

.sobre-layout {
  display: flex;
  gap: 4rem;
  align-items: flex-start;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1000px;
}

.sobre-texto {
  flex: 1;
  max-width: 55%;
  padding-right: 1rem;
}

.sobre-texto p {
  margin-bottom: 1.3rem;
  line-height: 1.7;
  text-align: justify;
  font-size: 1rem;
  color: #444;
}

.sobre-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
  flex: 0 0 320px;
  width: 320px;
}

.stat-card {
  background: #1a1a1a;
  color: #fff;
  border-radius: 12px;
  padding: 2rem 1.2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: 140px;
  width: 140px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
}

.stat-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.stat-number {
  font-size: 3.2rem;
  font-weight: 900;
  color: #fff;
  margin-bottom: 0.6rem;
  line-height: 1;
  font-family: 'Arial', sans-serif;
}

.stat-label {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  line-height: 1.2;
  color: #ccc;
  text-align: center;
}

/* Responsive - enquadramento otimizado */
@media (max-width: 900px) {
  .sobre-layout {
    flex-direction: column;
    gap: 2.5rem;
    max-width: 100%;
  }
  
  .sobre-texto {
    max-width: 100%;
    padding-right: 0;
  }
  
  .sobre-stats {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
    gap: 1rem;
  }
  
  .stat-card {
    height: 120px;
    width: 120px;
    padding: 1.5rem 1rem;
  }
  
  .stat-number {
    font-size: 2.8rem;
  }
  
  .stat-label {
    font-size: 0.65rem;
  }
}

@media (max-width: 600px) {
  .sobre-subtitle {
    margin-bottom: 2rem;
  }
  
  .sobre-stats {
    max-width: 280px;
    gap: 0.8rem;
  }
  
  .stat-card {
    height: 100px;
    width: 100px;
    padding: 1.2rem 0.8rem;
  }
  
  .stat-number {
    font-size: 2.4rem;
    margin-bottom: 0.4rem;
  }
  
  .stat-label {
    font-size: 0.6rem;
    letter-spacing: 0.6px;
  }
}

/* Controle de "Ler mais" no Sobre (mobile) */
.sobre-read-toggle{ display:none; }
/* Estilo minimalista do botão Ler mais/Ler menos */
.sobre-read-toggle{
  background: none;
  border: none;
  padding: .25rem 0;
  color: #222;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
.sobre-read-toggle:hover{ opacity: .8; }
.sobre-read-toggle:focus-visible{
  outline: 2px solid #000;
  outline-offset: 2px;
}
@media (max-width: 820px){
  /* Botão visível em mobile; conteúdo extra escondido quando não expandido */
  .sobre-read-toggle{ display:inline; margin: 0 0 0 .5rem; float: right; }
  #sobre .sobre-texto p { overflow: hidden; }
  #sobre .sobre-texto:not(.expanded) .sobre-extra{ display:none; }
}

/* Brothers Fight Club - Estilo principal */


:root {
  --primary: #111;
  --secondary: #333;
  --accent: #fff;
  --dark: #222;
  --light: #fff;
  --gray: #e0e0e0;
  --shadow: 0 2px 8px rgba(0,0,0,0.10);
  --radius: 10px;
  --font-title: 'Montserrat', Arial, sans-serif;
  --font-body: 'Roboto', Arial, sans-serif;
  --hero-texture-opacity: 0.32; /* intensidade do efeito de papel amassado */
  --noise-opacity: 0.40; /* ajuste visibilidade da textura global */
  --vignette-edge: rgba(0,0,0,0.20); /* força da borda da vinheta */
  /* Glass design tokens */
  --glass-dark-bg: rgba(17,17,17,0.58);
  --glass-light-bg: rgba(255,255,255,0.78);
  --glass-border-light: rgba(255,255,255,0.40);
  --glass-border-dark: rgba(255,255,255,0.10);
  --glass-blur: 16px;
  --glass-saturation: 165%;
}

body {
  margin: 0;
  font-family: var(--font-body);
  /* Cor base sem padrão direto; padrão controlado pelo pseudo-elemento para opacidade fina */
  background: var(--gray);
  color: var(--primary);
  position: relative;
  overflow-x: hidden;
}

/* Fundo global refinado: camada de logos + noise + vinheta */
body::before, body::after, body::backdrop {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

/* Camada 1: logos repetidas */
body::before {
  background-image: url('../images/logo.png');
  background-repeat: repeat;
  background-size: 260px auto; /* ajuste do módulo do padrão */
  background-position: 0 0;
  opacity: 0.14; /* ligeiramente mais opaco */
  mix-blend-mode: normal;
  filter: brightness(0.85) contrast(1.05);
  animation: bg-logos-pan 140s linear infinite;
}

@keyframes bg-logos-pan {
  0% { background-position: 0 0; }
  100% { background-position: 260px 0; }
}

/* Camada 2: noise + listras finas (por cima das logos para textura) */
body::after {
  background-image:
    repeating-linear-gradient(135deg, rgba(0,0,0,0.03) 0 6px, rgba(0,0,0,0) 6px 12px),
    url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJUlEQVQoU2NkYGD4z0AGMDIwMDD8Z2Bg+I8BGIWJgWFAE0ECDAwM/w8A8p0L9U9fA7oAAAAASUVORK5CYII=");
  background-repeat: repeat;
  opacity: var(--noise-opacity);
  mix-blend-mode: multiply;
  filter: contrast(1.15) brightness(0.92);
}

/* Camada 3: vinheta (usa pseudo extra através de wrapper fallback) */
html::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: radial-gradient(circle at 50% 40%, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 48%, rgba(0,0,0,0.08) 64%, var(--vignette-edge) 100%);
}

@media (max-width: 700px) {
  body::before { background-size: 200px auto; opacity: 0.16; animation-duration: 110s; }
  body::after { 
    opacity: calc(var(--noise-opacity) - 0.05);
    /* Remove repeating-linear-gradient em mobile para evitar linhas pretas no iPhone */
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJUlEQVQoU2NkYGD4z0AGMDIwMDD8Z2Bg+I8BGIWJgWFAE0ECDAwM/w8A8p0L9U9fA7oAAAAASUVORK5CYII=");
  }
  html::before { background: radial-gradient(circle at 50% 45%, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 46%, rgba(0,0,0,0.10) 70%, var(--vignette-edge) 100%); }
}

/* Fix específico para dispositivos iOS/iPhone - remove listras que aparecem como linhas pretas */
@supports (-webkit-touch-callout: none) {
  body::after {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJUlEQVQoU2NkYGD4z0AGMDIwMDD8Z2Bg+I8BGIWJgWFAE0ECDAwM/w8A8p0L9U9fA7oAAAAASUVORK5CYII=") !important;
  }
}

/* Alternativa adicional para iPhone */
@media screen and (-webkit-min-device-pixel-ratio: 2) and (max-width: 768px) {
  body::after {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAJUlEQVQoU2NkYGD4z0AGMDIwMDD8Z2Bg+I8BGIWJgWFAE0ECDAwM/w8A8p0L9U9fA7oAAAAASUVORK5CYII=") !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body::before { animation: none; }
}

/* Opcional: permitir textura aparecer levemente dentro das seções reduzindo opacidade do fundo branco */
section { background: rgba(255,255,255,0.96); /* será sobrescrito pelo estilo glass abaixo */ }

/* Garante que conteúdo fique acima do pseudo-elemento */
header, main, footer { position: relative; z-index: 1; }

@media (max-width: 700px) {
  body::before {
    background-size: 200px auto;
  }
}

header {
  /* Escurecido conforme solicitação: gradiente mais profundo e menos transparência */
  background: linear-gradient(135deg, rgba(6,6,6,0.92) 0%, rgba(10,10,10,0.90) 40%, rgba(0,0,0,0.94) 100%);
  color: var(--light);
  position: sticky;
  top: 0;
  z-index: 10;
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) - 3px)) saturate(calc(var(--glass-saturation) * 0.9));
  backdrop-filter: blur(calc(var(--glass-blur) - 3px)) saturate(calc(var(--glass-saturation) * 0.9));
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 6px 28px -6px rgba(0,0,0,0.65), 0 2px 8px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(255,255,255,0.02);
  transition: background 0.4s ease, backdrop-filter 0.4s ease;
}
nav {
  display: flex;
  align-items: center;
  justify-content: space-between; /* Logo à esquerda, links à direita */
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem 2rem 1rem .75rem; /* reduz padding esquerdo para alinhar logo */
  flex-wrap:nowrap;
}
@media (max-width:820px){
  nav.site-nav { padding: .75rem 1rem 0.2rem 1rem; }
}
nav .logo {
  font-size: 2.5rem;
  font-weight: 900;
  color: #fff;
  text-decoration: none;
  letter-spacing: 2px;
  line-height: 1;
}
nav ul {
  list-style: none;
  display: flex;
  gap: 2rem;
  margin: 0;
  padding: 0;
}
nav ul li a {
  color: var(--light);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}
nav ul li a:hover {
  color: var(--gray);
}
nav .cta {
  background: linear-gradient(135deg, #222 0%, #2e2e2e 55%, #181818 100%);
  color: var(--light);
  padding: 0.65rem 1.35rem;
  border-radius: calc(var(--radius) - 2px);
  text-decoration: none;
  font-weight: 600;
  border: 1px solid rgba(255,255,255,0.20);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  letter-spacing: .5px;
  background-clip: padding-box;
  overflow: hidden;
  -webkit-backdrop-filter: blur(10px) saturate(160%);
  backdrop-filter: blur(10px) saturate(160%);
  box-shadow: 0 4px 14px -4px rgba(0,0,0,0.55), 0 2px 4px rgba(0,0,0,0.35), inset 0 0 0 1px rgba(255,255,255,0.04);
  transition: background .4s ease, box-shadow .35s ease, transform .35s ease, color .35s ease;
}
nav .cta:hover {
  background: linear-gradient(135deg, #2c2c2c 0%, #3a3a3a 60%, #1f1f1f 100%);
  box-shadow: 0 6px 22px -6px rgba(0,0,0,0.75), 0 3px 8px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(255,255,255,0.06);
  transform: translateY(-2px);
}
nav .cta:active {
  transform: translateY(1px) scale(.97);
  box-shadow: 0 2px 8px -2px rgba(0,0,0,0.7), 0 1px 3px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(255,255,255,0.05);
}
nav .cta:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
nav .cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.18), transparent 60%);
  mix-blend-mode: overlay;
  opacity: .55;
  pointer-events: none;
  transition: opacity .5s ease;
}
nav .cta:hover::before { opacity: .85; }

.hero {
  background: linear-gradient(120deg, var(--primary) 60%, var(--secondary) 100%);
  color: var(--light);
  text-align: center;
  padding: 3rem 2rem 2rem 2rem;
  position: relative;
  overflow: hidden;
}

/* Efeito de "papel amassado" (camada inferior) */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 28% 32%, rgba(255,255,255,0.08), transparent 55%),
    radial-gradient(circle at 72% 68%, rgba(255,255,255,0.07), transparent 60%),
    radial-gradient(circle at 40% 78%, rgba(0,0,0,0.18), transparent 70%),
    radial-gradient(circle at 78% 28%, rgba(0,0,0,0.15), transparent 65%),
    repeating-linear-gradient(125deg, rgba(255,255,255,0.06) 0 6px, rgba(0,0,0,0.07) 6px 12px);
  mix-blend-mode: overlay;
  opacity: var(--hero-texture-opacity);
  z-index: 0;
  filter: contrast(1.05) brightness(1.02);
}

/* Logo de fundo animada no banner */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url('../images/logo.png');
  background-repeat: repeat;
  background-size: auto 100%;
  background-position: 0 50%;
  opacity: 0.05; /* aumento forte de visibilidade */
  filter: invert(1) brightness(0.8) contrast(1.25); /* ajusta brilho para não competir com o texto */
  pointer-events: none;
  mix-blend-mode: normal; /* remover lighten que deixava muito suave */
  filter: invert(1) brightness(0.85) contrast(1.25); /* efeito negativo aplicado */
  animation: logos-pan 55s linear infinite;
}

@keyframes logos-pan {
  0% { background-position: 0 50%; }
  100% { background-position: 260px 50%; }
}

@media (max-width: 700px) {
  .hero::after {
  background-size: auto 100%;
  animation: logos-pan 45s linear infinite;
  }
}

/* Respeita usuários com preferência por menos movimento */
@media (prefers-reduced-motion: reduce) {
  .hero::after { animation: none; }
}
/* Glow respirando no título */
.hero h1 {
  animation: hero-title-glow 7s ease-in-out infinite;
}
@keyframes hero-title-glow {
  0%,100% { text-shadow: 0 0 6px rgba(255,255,255,0.25), 0 0 14px rgba(255,255,255,0.1); }
  50% { text-shadow: 0 0 10px rgba(255,255,255,0.4), 0 0 22px rgba(255,255,255,0.2); }
}

/* ================= BOTÕES GLOBAIS ================= */
.btn {
  --btn-bg1: #222; --btn-bg2: #2d2d2d; --btn-bg3: #181818;
  position: relative;
  background: linear-gradient(135deg, var(--btn-bg1) 0%, var(--btn-bg2) 55%, var(--btn-bg3) 100%);
  color: var(--light);
  padding: 0.95rem 2.1rem;
  border-radius: calc(var(--radius) - 2px);
  font-size: 1rem;
  margin: 0 0.5rem 0.9rem 0.5rem;
  cursor: pointer;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: .6px;
  border: 1px solid rgba(255,255,255,0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  overflow: hidden;
  -webkit-backdrop-filter: blur(14px) saturate(170%);
  backdrop-filter: blur(14px) saturate(170%);
  box-shadow: 0 6px 26px -8px rgba(0,0,0,0.7), 0 3px 10px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.05);
  transition: background .45s ease, box-shadow .45s ease, transform .45s ease, color .45s ease;
}
.btn::before, .btn::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.btn::before { background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.20), transparent 65%), linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0)); mix-blend-mode: overlay; opacity: .65; transition: opacity .6s ease; }
.btn::after { background: linear-gradient(120deg, rgba(255,255,255,0.0) 0%, rgba(255,255,255,0.35) 45%, rgba(255,255,255,0) 70%); transform: translateX(-140%); transition: transform 1.2s ease; }
.btn:hover { background: linear-gradient(135deg, #292929 0%, #383838 60%, #1d1d1d 100%); box-shadow: 0 10px 32px -10px rgba(0,0,0,0.85), 0 6px 16px rgba(0,0,0,0.5), inset 0 0 0 1px rgba(255,255,255,0.07); transform: translateY(-3px); }
.btn:hover::before { opacity: .9; }
.btn:hover::after { transform: translateX(140%); }
.btn:active { transform: translateY(1px) scale(.965); box-shadow: 0 3px 14px -4px rgba(0,0,0,0.7), 0 2px 6px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.05); }
.btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
/* Variante outline */
.btn.btn-outline { --btn-bg1: rgba(255,255,255,0.22); --btn-bg2: rgba(255,255,255,0.16); --btn-bg3: rgba(255,255,255,0.10); background: linear-gradient(145deg, var(--btn-bg1), var(--btn-bg2) 55%, var(--btn-bg3)); color: #f1f1f1; border: 1px solid rgba(255,255,255,0.5); backdrop-filter: blur(16px) saturate(170%); -webkit-backdrop-filter: blur(16px) saturate(170%); box-shadow: 0 4px 22px -6px rgba(0,0,0,0.65), 0 2px 8px rgba(0,0,0,0.35), inset 0 0 0 1px rgba(255,255,255,0.20); }
.btn.btn-outline:hover { background: linear-gradient(145deg, rgba(255,255,255,0.30), rgba(255,255,255,0.18) 55%, rgba(255,255,255,0.12)); color: #fff; box-shadow: 0 8px 34px -10px rgba(0,0,0,0.8), 0 4px 14px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.25); }
.btn.btn-outline:active { transform: translateY(1px) scale(.965); box-shadow: 0 3px 14px -4px rgba(0,0,0,0.6), 0 2px 6px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(255,255,255,0.18); }
/* Variante destaque em vermelho */
.btn.accent { --btn-bg1:#7c0000; --btn-bg2:#b40000; --btn-bg3:#520000; box-shadow: 0 8px 26px -8px rgba(184,0,0,0.75), 0 4px 12px rgba(0,0,0,0.6), inset 0 0 0 1px rgba(255,255,255,0.08); }
.btn.accent:hover { background: linear-gradient(135deg,#9b0000 0%,#cf0000 55%,#640000 100%); box-shadow:0 12px 38px -10px rgba(207,0,0,0.8), 0 6px 18px rgba(0,0,0,0.55), inset 0 0 0 1px rgba(255,255,255,0.10); }
.btn.accent:active { box-shadow:0 5px 18px -6px rgba(160,0,0,0.75),0 3px 8px rgba(0,0,0,0.55), inset 0 0 0 1px rgba(255,255,255,0.06); }
/* Hero mantém apenas animação */
.hero .btn { animation: hero-cta-pulse 9s ease-in-out infinite; will-change: transform; }
.hero .btn.btn-outline { animation-delay: 4.5s; }
@keyframes hero-cta-pulse {
  0%,100% { transform: scale(1); }
  45% { transform: scale(1); }
  55% { transform: scale(1.035); }
  65% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .hero h1, .hero .btn { animation: none; text-shadow: none; }
}

@media (max-width: 700px) {
  .hero::after {
  /* Em telas menores, diminui o módulo do padrão */
  background-size: auto 100%;
  }
}
/* Fonte Sternbach - UFC Original */
@font-face {
  font-family: 'Sternbach';
  src: url('../fonts/Sternbach Bold Italic.otf') format('opentype');
  font-weight: bold;
  font-style: italic;
}

/* Fallback fonts */
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue:wght@400&family=Oswald:wght@700&display=swap');

/* Classe para aplicar fonte Sternbach apenas ao texto BFC */
.bfc-font {
  font-family: 'Sternbach', 'Bebas Neue', 'Oswald', sans-serif;
  font-weight: bold;
  font-style: italic;
  letter-spacing: 1px;
  color: var(--secondary);
  text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  /* Contra-inclinação para usar a fonte italic como normal */
  transform: skewX(8deg);
  display: inline-block;
}

.hero h1 {
  font-family: 'Sternbach', 'Bebas Neue', 'Oswald', sans-serif;
  font-size: 3.8rem;
  margin-bottom: 0.5rem;
  letter-spacing: 3px;
  font-weight: bold;
  font-style: italic;
  text-shadow: 4px 4px 8px rgba(0,0,0,0.6);
  text-transform: uppercase;
  line-height: 0.9;
  /* Ajustes para a fonte original do UFC */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* Contra-inclinação para usar a fonte italic como normal */
  transform: skewX(8deg);
}
.hero h2 {
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 1.5rem;
}
.hero p {
  font-size: 1.1rem;
  margin-bottom: 2rem;
}
/* (Hero button core styles moved to global .btn) */

@media (max-width: 600px) { .btn { padding: 0.85rem 1.4rem; font-size: 0.9rem; } .btn.btn-outline { padding: 0.85rem 1.4rem; } }

@supports not ((backdrop-filter: blur(10px))) { .btn, .btn.btn-outline, nav .cta { backdrop-filter: none; -webkit-backdrop-filter: none; } .btn.btn-outline { background: rgba(255,255,255,0.18); } }

section {
  max-width: 1100px;
  margin: 2rem auto;
  border-radius: var(--radius);
  padding: 1.5rem 2rem 2.5rem 2rem;
  background: var(--glass-light-bg);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation));
  border: 1px solid var(--glass-border-light);
  box-shadow: 0 10px 30px -5px rgba(0,0,0,0.35), 0 3px 8px rgba(0,0,0,0.25);
  position: relative;
  overflow: hidden;
}

/* Efeito glass para footer para consistência visual */
footer {
  background: var(--glass-dark-bg);
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) - 2px)) saturate(var(--glass-saturation));
  backdrop-filter: blur(calc(var(--glass-blur) - 2px)) saturate(var(--glass-saturation));
  border-top: 1px solid var(--glass-border-dark);
  box-shadow: 0 -4px 18px -2px rgba(0,0,0,0.4), 0 -2px 4px rgba(0,0,0,0.25);
  padding: 3.2rem 2rem 2rem 2rem;
  position: relative;
  overflow: hidden;
}

footer .footer-top-accent {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: linear-gradient(90deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0.06) 100%);
  opacity: .65;
  overflow: hidden;
}
footer .footer-top-accent::after {
  content: "";
  position: absolute; inset:0;
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 35%, rgba(255,255,255,0) 70%);
  width: 30%;
  animation: footer-shimmer 9s linear infinite;
  opacity: .45;
}
@keyframes footer-shimmer { 0% { transform: translateX(-40%); } 100% { transform: translateX(340%); } }

footer::before, footer::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}
footer::before {
  background: radial-gradient(circle at 18% 35%, rgba(255,255,255,0.12), transparent 60%),
              radial-gradient(circle at 82% 70%, rgba(255,255,255,0.08), transparent 65%);
  mix-blend-mode: overlay;
}
footer::after {
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0));
  opacity: .5;
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 2.5rem clamp(1.5rem, 3vw, 3.2rem);
  max-width: 1150px;
  margin: 0 auto 2.5rem auto;
  position: relative;
  z-index: 1;
}

/* Separadores verticais entre colunas (desktop) */
.footer-grid .footer-col { position: relative; }
.footer-grid .footer-col:not(.footer-brand)::before {
  content: "";
  position: absolute;
  top: 4px; bottom: 4px; left: -1.25rem;
  width: 1px;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.22) 18%, rgba(255,255,255,0.18) 82%, rgba(255,255,255,0) 100%);
  pointer-events: none;
}

.footer-col h4 {
  margin: 0 0 .9rem 0;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: .75px;
  color: #fff;
  text-transform: uppercase;
  position: relative;
}
.footer-col h4::after {
  content: "";
  position: absolute;
  left: 0; bottom: -6px;
  width: 52px; height: 2px;
  background: linear-gradient(90deg, #fff 0%, rgba(255,255,255,0.25) 70%, rgba(255,255,255,0) 100%);
  border-radius: 2px;
  opacity: .75;
}

.footer-brand p {
  margin: 0 auto 1rem auto;
  font-size: .9rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.75);
  max-width: 260px;
 }
.footer-brand { position: relative; text-align: center; }
.footer-brand::after {
  content: "";
  position: absolute;
  top: -10px; left: 50%; transform: translateX(-50%);
  width: 220px; height: 220px;
  background: url('../images/logo.png') center/contain no-repeat;
  opacity: 0.05;
  filter: invert(1) brightness(.85) contrast(1.1);
  pointer-events: none;
  mix-blend-mode: lighten;
}
.footer-brand p {
  margin: 0 auto 1rem auto;
  font-size: .9rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.75);
  max-width: 260px;
}
.footer-brand .social-mini { justify-content: center; }

.social-mini { display: flex; gap: .7rem; }
.social-mini a {
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 12px;
  color: #fff; font-size: 1rem;
  position: relative; overflow: hidden;
  backdrop-filter: blur(10px) saturate(160%);
  -webkit-backdrop-filter: blur(10px) saturate(160%);
  transition: background .45s ease, transform .45s ease, box-shadow .45s ease;
  box-shadow: 0 4px 16px -6px rgba(0,0,0,0.55), inset 0 0 0 1px rgba(255,255,255,0.08);
}
.social-mini a::before {
  content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.3), transparent 65%); mix-blend-mode: overlay; opacity:.4; transition: opacity .5s;
}
.social-mini a:hover { transform: translateY(-4px); background: rgba(255,255,255,0.18); box-shadow: 0 10px 28px -10px rgba(0,0,0,0.9), inset 0 0 0 1px rgba(255,255,255,0.12); }
.social-mini a:hover::before { opacity:.8; }
.social-mini a:active { transform: translateY(0) scale(.92); }

.footer-links, .footer-simple, .footer-contact { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.footer-col.footer-modalidades .footer-simple { align-items: center; text-align: center; }
.footer-col.footer-modalidades .footer-simple li { width: 100%; }
.footer-col.footer-modalidades { text-align: center; }
.footer-col.footer-modalidades .footer-simple li { display: block; padding: 2px 0; line-height: 1.4; }
.footer-col.footer-modalidades .footer-simple li::before { display: none; }
.footer-links a { color: rgba(255,255,255,0.75); text-decoration: none; font-size: .9rem; transition: color .35s ease, transform .35s ease; position: relative; padding: 2px 0; }

/* Lista de horários nas páginas de modalidade */
.horarios-list{
  list-style: none;
  padding: 0;
  margin: 1rem 0 2rem;
  display: grid;
  gap: 1rem;
}
.horario-card{
  background: linear-gradient(180deg, #ffffff 0%, #fbfbfb 100%);
  border: 1px solid #e9e9e9;
  border-radius: 12px;
  padding: 1rem 1.2rem;
  line-height: 1.6;
  box-shadow: 0 6px 18px rgba(0,0,0,0.05);
  text-align: center;
}
.horario-card .horario-head{ display:flex; align-items:center; justify-content:center; margin-bottom:.6rem; }
.horario-card .tag{
  display:inline-flex; align-items:center; gap:.4rem;
  padding:.2rem .55rem; border-radius:999px;
  font-size:.85rem; font-weight:700; letter-spacing:.3px; text-transform:uppercase;
  background:#111; color:#fff;
  margin: 0 auto;
}
.horario-card.infantil .tag{ background:#222; }
.horario-card.adulto .tag{ background:#333; }
.horario-card.feminina .tag{ background:#e91e63; }
.horario-card .horario-info{ display:flex; flex-wrap:wrap; gap:.5rem .6rem; margin-bottom:.5rem; justify-content:center; }
.horario-card .chip{
  display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .55rem;
  border-radius:8px; background:#f1f1f1; color:#333; font-size:.9rem;
}
.horario-card .prof{ color:#666; font-size:.95rem; text-align:center; }
.horario-card i{ opacity:.8; }
@media (max-width:700px){ .horario-card{ padding: .9rem 1rem; } }
.footer-links a::after { content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background: #fff; transition: width .4s ease; }
.footer-links a:hover { color:#fff; transform: translateX(4px); }
.footer-links a:hover::after { width: 40%; }
.footer-links a:focus-visible { outline: none; color:#fff; }
.footer-links a:focus-visible::after { width: 40%; }
.footer-simple li, .footer-contact li { font-size:.85rem; color: rgba(255,255,255,0.70); display: flex; align-items: flex-start; gap:.5rem; line-height: 1.4; }
.footer-contact i { margin-top: 2px; font-size: .9rem; opacity: .85; }

/* Hover highlight para itens simples/contato */
.footer-simple li, .footer-contact li { position: relative; padding: 2px 0; }
.footer-simple li::before, .footer-contact li::before {
  content:""; position:absolute; left:-8px; top:4px; bottom:4px; width:0; background: linear-gradient(90deg, rgba(255,255,255,0.25), rgba(255,255,255,0)); border-radius: 2px; opacity:0; transition: width .45s ease, opacity .45s ease;
}
.footer-simple li:hover::before, .footer-contact li:hover::before { width:6px; opacity:1; }

.footer-cta {
  margin-top: 1.1rem;
  display: inline-flex; align-items: center; gap:.55rem;
  background: linear-gradient(135deg, rgba(255,255,255,0.24) 0%, rgba(255,255,255,0.16) 55%, rgba(255,255,255,0.10) 100%);
  color: #fff;
  padding: .75rem 1.3rem;
  font-size: .85rem;
  letter-spacing: .5px;
  border-radius: 12px;
  text-decoration: none;
  backdrop-filter: blur(16px) saturate(170%);
  -webkit-backdrop-filter: blur(16px) saturate(170%);
  border: 1px solid rgba(255,255,255,0.35);
  box-shadow: 0 6px 26px -10px rgba(0,0,0,0.6), 0 3px 10px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(255,255,255,0.15);
  position: relative; overflow: hidden;
  transition: background .45s ease, transform .45s ease, box-shadow .45s ease;
}
.footer-cta::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 25% 20%, rgba(255,255,255,.35), transparent 65%); mix-blend-mode: overlay; opacity:.5; transition: opacity .5s; }
.footer-cta:hover { transform: translateY(-3px); background: linear-gradient(135deg, rgba(255,255,255,0.30), rgba(255,255,255,0.20) 55%, rgba(255,255,255,0.12)); box-shadow: 0 10px 36px -12px rgba(0,0,0,0.85), 0 6px 18px rgba(0,0,0,0.5), inset 0 0 0 1px rgba(255,255,255,0.22); }
.footer-cta:hover::before { opacity:.85; }
.footer-cta:active { transform: translateY(1px) scale(.95); box-shadow: 0 3px 12px -4px rgba(0,0,0,0.65), 0 2px 6px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.18); }

.footer-bottom { border-top: 1px solid rgba(255,255,255,0.12); padding-top: 1.2rem; display: flex; justify-content: center; align-items: center; max-width: 1150px; margin: 0 auto; position: relative; z-index:1; }
.footer-copy { font-size: .72rem; color: rgba(255,255,255,0.58); letter-spacing: .55px; text-align: center; line-height: 1.4; }

/* Botão voltar ao topo */
#to-top {
  position: fixed;
  bottom: 26px; right: 26px;
  width: 46px; height: 46px;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(255,255,255,0.22) 0%, rgba(255,255,255,0.14) 55%, rgba(255,255,255,0.08));
  color: #fff;
  border: 1px solid rgba(255,255,255,0.35);
  cursor: pointer;
  opacity: 0; visibility: hidden;
  transform: translateY(12px) scale(.9);
  transition: opacity .45s ease, transform .45s ease, background .45s ease;
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  box-shadow: 0 8px 26px -10px rgba(0,0,0,0.75), 0 4px 10px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.15);
  z-index: 30;
}
#to-top.show { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
#to-top:hover { background: linear-gradient(135deg, rgba(255,255,255,0.30), rgba(255,255,255,0.18) 55%, rgba(255,255,255,0.10)); }
#to-top:active { transform: translateY(2px) scale(.92); }

@media (max-width: 900px) {
  footer { padding: 3rem 1.5rem 2rem 1.5rem; }
  .footer-grid { gap: 2rem 1.5rem; }
  .footer-brand h3 { font-size: 1.9rem; }
  .footer-col h4 { font-size: .95rem; }
  .footer-grid .footer-col:not(.footer-brand)::before { display: none; }
}
@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  #to-top { bottom: 18px; right: 18px; }
  .footer-brand::after { left: -40px; top: -30px; width: 180px; height: 180px; }
}

/* Fallback para navegadores sem suporte ao backdrop-filter */
@supports not ((backdrop-filter: blur(10px))) {
  header { background: rgba(17,17,17,0.92); }
  section { background: rgba(255,255,255,0.97); box-shadow: var(--shadow); border: none; }
  footer { background: rgba(17,17,17,0.92); }
}
section h2 {
  font-family: var(--font-title);
  font-size: 2rem;
  margin-bottom: 1.5rem;
  color: var(--secondary);
  padding-left: 0.7rem;
}

.valores-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: space-between;
}
.valor {
  flex: 1 1 200px;
  background: var(--gray);
  border-radius: var(--radius);
  padding: 1.5rem;
  text-align: center;
  box-shadow: var(--shadow);
}
.valor h3 {
  color: var(--secondary);
  margin-bottom: 0.5rem;
}

.sobre-destaques {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
  padding: 0;
  list-style: none;
}
.sobre-destaques li {
  background: var(--secondary);
  color: var(--light);
  border-radius: var(--radius);
  padding: 1rem 2rem;
  font-size: 1.1rem;
  font-weight: bold;
  border: 1px solid var(--gray);
}

.modalidades-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center; /* centraliza linhas incompletas */
}
.modalidade {
  flex: 0 1 300px; /* largura consistente para centralização */
  background: var(--gray);
  border-radius: var(--radius);
  padding: 2rem 1.5rem;
  box-shadow: var(--shadow);
  margin-bottom: 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  max-width: 320px;
}

.modalidade i {
  color: var(--secondary);
  /* margin-bottom removido conforme solicitação */
  display: block;
}

/* Imagens das modalidades (substituem ícones) */
.modalidade-img {
  width: 110px;
  height: 110px;
  object-fit: contain;
  /* margin-bottom removido conforme solicitação */
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.25));
  transition: transform 0.3s ease;
}

.modalidade:hover .modalidade-img {
  transform: scale(1.05);
}

.modalidade h3 {
  color: var(--secondary);
  margin-bottom: 1rem;
  text-align: center;
  font-size: 1.3rem;
  font-weight: 700;
}

.modalidade p {
  text-align: center;
  line-height: 1.5;
  margin-bottom: 1rem;
  color: #555;
}

.modalidade span {
  display: block;
  margin-top: 0.5rem;
  text-align: center;
  font-weight: 600;
  color: var(--secondary);
  font-size: 0.9rem;
}

/* Botão ver mais (modalidades) */
.ver-mais-wrapper { text-align:center; margin-top:1.5rem; }
.ver-mais-modalidades { margin:0 auto; display:inline-flex; }

/* Página dedicada de modalidades */
.modalidades-dedicada { background: var(--glass-light-bg); }
.modalidades-dedicada h2 { text-align:center; font-size:2.4rem; }
.modalidades-dedicada .intro { text-align:center; max-width:720px; margin:0 auto 2.5rem auto; font-size:1rem; color:#444; line-height:1.6; }
.modalidades-grid { display:flex; flex-wrap:wrap; gap:2rem; justify-content:center; }
.mod-card { background: linear-gradient(145deg, rgba(255,255,255,0.55), rgba(255,255,255,0.40) 55%, rgba(255,255,255,0.30)); border:1px solid rgba(0,0,0,0.05); border-radius:18px; padding:1.2rem 1.2rem 1.4rem; display:flex; gap:1rem; position:relative; overflow:hidden; -webkit-backdrop-filter: blur(10px) saturate(160%); backdrop-filter: blur(10px) saturate(160%); box-shadow:0 10px 30px -12px rgba(0,0,0,0.28), 0 4px 10px rgba(0,0,0,0.16), inset 0 0 0 1px rgba(255,255,255,0.5); transition:transform .55s ease, box-shadow .55s ease, background .55s ease; flex:0 1 300px; max-width:320px; }
.mod-card:hover { transform:translateY(-6px); box-shadow:0 20px 46px -18px rgba(0,0,0,0.42), 0 8px 20px rgba(0,0,0,0.25), inset 0 0 0 1px rgba(255,255,255,0.65); }
.mod-media img {
  width: 180px;
  height: 180px;
  object-fit: cover;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
  background: #fff;
  transition: box-shadow 0.3s;
}

/* Somente as imagens dos treinadores ficam circulares */
.modalidades-dedicada .mod-media img {
  border-radius: 50%;
  border: 4px solid var(--secondary, #c00);
}

/* As imagens das modalidades NÃO são circulares */
.modalidades-dedicada:not(#equipe) .mod-media img,
#modalidades .mod-media img {
  border-radius: 12px;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
  object-fit: contain;
  width: 90px;
  height: 90px;
}
.mod-content h3 { margin:0 0 .4rem 0; font-size:1.25rem; letter-spacing:.5px; color:#111; }
.mod-content p { margin:0 0 .9rem 0; font-size:.85rem; line-height:1.5; color:#333; }
.mod-btn { background:#111; color:#fff; text-decoration:none; font-size:.75rem; letter-spacing:1px; text-transform:uppercase; padding:.6rem 1rem; border-radius:10px; display:inline-flex; align-items:center; gap:.45rem; position:relative; border:1px solid rgba(255,255,255,0.25); box-shadow:0 6px 18px -8px rgba(0,0,0,0.55), inset 0 0 0 1px rgba(255,255,255,0.08); transition:background .5s ease, transform .5s ease, box-shadow .5s ease; }
.mod-btn:hover { background:#000; transform:translateY(-3px); box-shadow:0 12px 28px -12px rgba(0,0,0,0.75), inset 0 0 0 1px rgba(255,255,255,0.12); }
.mod-btn:active { transform:translateY(0) scale(.94); }

/* Página detalhe de modalidade */
.mod-detalhe { 
  background: var(--glass-light-bg);
  max-width: 900px;
  margin: 0 auto;
  padding: 2rem;
}

/* Layout mais centralizado para modalidades */
.mod-header { 
  display: flex; 
  gap: 2.2rem; 
  align-items: center; 
  flex-wrap: wrap; 
  justify-content: center;
  text-align: center;
}

.mod-body {
  margin-top: 2rem;
  text-align: center;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.mod-body h2, .mod-body h3 {
  text-align: center;
}

.mod-body p {
  text-align: justify;
  margin: 0 auto 1.5rem auto;
}

/* Grupo de CTA centralizado */
.mod-cta-group-center { 
  display: flex; 
  flex-wrap: wrap; 
  gap: 1rem; 
  margin-top: 2rem;
  justify-content: center;
  align-items: center;
}

/* Utilitário para centralizar e limitar largura de blocos de texto */
.center-narrow { text-align:center; max-width:730px; margin-left:auto; margin-right:auto; }
@media (max-width:800px){ .center-narrow { max-width:100%; } }
/* Remove padding e força centralização perfeita para títulos centralizados estreitos */
section h2.center-narrow, .mod-body h2.center-narrow, section h3.center-narrow, .mod-body h3.center-narrow { 
  padding-left:0 !important; 
  margin-left:auto !important; 
  margin-right:auto !important; 
  text-align:center !important;
  width:100% !important;
}
/* Também remove caso aplicado em parágrafos centralizados estreitos */
p.center-narrow { padding-left:0; }
.mod-header { display:flex; gap:2.2rem; align-items:center; flex-wrap:wrap; }
.mod-hero-img { width:140px; height:140px; object-fit:contain; filter: drop-shadow(0 4px 12px rgba(0,0,0,0.3)); }
.mod-header-text h1 { font-family:'Sternbach','Bebas Neue','Oswald',sans-serif; font-size:3rem; letter-spacing:3px; margin:0 0 .4rem 0; color:#111; transform:skewX(8deg); text-align: center; }
.mod-header-text .tagline { margin:0 0 1rem 0; font-size:.95rem; letter-spacing:1px; font-weight:600; text-transform:uppercase; color:#333; text-align: center; }
.mod-primary-btn, .mod-secondary-btn { text-decoration:none; display:inline-flex; align-items:center; gap:.55rem; font-weight:600; border-radius:14px; padding:.85rem 1.4rem; font-size:.8rem; letter-spacing:.6px; text-transform:uppercase; position:relative; overflow:hidden; border:1px solid rgba(255,255,255,0.25); -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%); }
.mod-primary-btn { background:linear-gradient(135deg,#222,#2c2c2c 55%,#181818); color:#fff; box-shadow:0 8px 24px -10px rgba(0,0,0,0.7), 0 4px 10px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.05); }
.mod-primary-btn:hover { background:linear-gradient(135deg,#2c2c2c,#383838 60%,#1d1d1d); transform:translateY(-3px); box-shadow:0 12px 34px -14px rgba(0,0,0,0.85),0 8px 16px rgba(0,0,0,0.5), inset 0 0 0 1px rgba(255,255,255,0.07); }
.mod-secondary-btn { background:linear-gradient(135deg,rgba(255,255,255,0.28),rgba(255,255,255,0.16) 55%,rgba(255,255,255,0.12)); color:#111; box-shadow:0 6px 20px -8px rgba(0,0,0,0.35), inset 0 0 0 1px rgba(255,255,255,0.35); }
.mod-secondary-btn:hover { transform:translateY(-3px); background:linear-gradient(135deg,rgba(255,255,255,0.35),rgba(255,255,255,0.20) 55%,rgba(255,255,255,0.15)); box-shadow:0 10px 28px -12px rgba(0,0,0,0.55), inset 0 0 0 1px rgba(255,255,255,0.45); }
.mod-body { margin-top:2rem; }
.mod-body h2 { font-size:1.6rem; margin:0 0 1rem 0; }
.mod-body h3 { margin:2rem 0 .8rem 0; font-size:1.05rem; letter-spacing:.5px; text-transform:uppercase; }
.mod-body p { font-size:.95rem; line-height:1.6; color:#333; }
.beneficios { list-style:none; margin:0; padding:0; display:grid; gap:.6rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.beneficios li { background:rgba(0,0,0,0.05); padding:.6rem .8rem; border-radius:10px; font-size:.8rem; letter-spacing:.5px; font-weight:600; color:#111; position:relative; }
.beneficios li::before { content:"\f0da"; font-family:"Font Awesome 6 Free"; font-weight:900; margin-right:.4rem; color:#000; }

/* Lista centralizada em coluna para "O que levar" */
.beneficios-centralizados { 
  list-style:none; 
  margin:0 auto; 
  padding:0; 
  display:flex; 
  flex-direction:column; 
  gap:.8rem; 
  max-width:300px; 
  text-align:center; 
}
/* ================= NAV MOBILE ================= */
.site-nav { position:relative; }
.nav-toggle { display:none; background:none; border:none; padding:.6rem; cursor:pointer; position:relative; z-index:3000; }
.nav-toggle:focus-visible { outline:2px solid #fff; border-radius:6px; }
.nav-line { display:block; width:28px; height:3px; background:#fff; margin:5px 0; border-radius:2px; transition:.4s; }
.nav-toggle[aria-expanded="true"] .nav-line:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-line:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] .nav-line:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
.nav-wrapper { display:flex; align-items:center; gap:2rem; margin-left:auto; }
.nav-links { list-style:none; display:flex; gap:1.4rem; margin:0; padding:0; }
.nav-links a { text-decoration:none; font-weight:600; font-size:.75rem; letter-spacing:.6px; text-transform:uppercase; color:#fff; }
.nav-links a:hover { color:#ccc; }
.nav-cta { margin-left:1rem; }
@media (max-width: 820px) {
  nav.site-nav, nav.site-nav * { box-sizing:border-box; }
  nav.site-nav { 
    width:100%; max-width:100%;
    height:56px; /* altura fixa */
    padding:0 .9rem 0 .55rem; /* reduz ainda mais o padding esquerdo */
    position:relative; z-index:100; 
    display:flex; align-items:center; 
  }
  /* Remove margem lateral extra no mobile para o painel expansível */
  nav.site-nav .nav-wrapper { margin-left:0; }
  nav.site-nav .logo { 
    font-size:2rem; line-height:56px; /* centraliza pelo line-height igual à altura */
    margin:0; padding:0; display:inline-block; height:56px; 
    align-self:flex-start; /* força alinhamento à esquerda na linha flex */
    align-self:self-start; /* valor mais semântico em navegadores que suportam */
  }
  .nav-toggle { 
    display:flex; flex-direction:column; justify-content:center; align-items:center; 
    background:none; border:none; cursor:pointer; padding:0; 
    position:absolute; top:50%; right:1rem; transform:translateY(-50%); 
    width:44px; height:44px; z-index:3000; 
  }
  .nav-toggle .nav-line { 
    display:block; width:26px; height:3px; 
    background:#fff; margin:0; border-radius:2px; 
    transition:.4s;
  }
  .nav-toggle .nav-line:not(:last-child) {
    margin-bottom:5px;
  }
  /* Painel expansível abaixo do header */
  .nav-wrapper { 
    position:absolute; top:100%; left:0; right:0; width:100%;
    display:flex; flex-direction:column; align-items:flex-start; gap:.35rem;
    background:linear-gradient(135deg, rgba(14,14,14,0.97), rgba(20,20,20,0.95));
    backdrop-filter:blur(8px) saturate(160%); -webkit-backdrop-filter:blur(8px) saturate(160%);
    border-bottom:1px solid rgba(255,255,255,0.08);
    max-height:0; overflow:hidden; opacity:0; visibility:hidden;
    transition:max-height .45s ease, opacity .3s ease;
    padding:0 .95rem; /* padding vertical adicionado só quando aberto */
    box-shadow:0 18px 28px -14px rgba(0,0,0,0.55);
  }
  .nav-wrapper.open { 
    opacity:1; visibility:visible; 
    /* max-height será definido inline via JS (scrollHeight) */
    padding:.65rem .95rem .9rem .95rem;
  }
  .nav-links { flex-direction:column; width:100%; gap:.35rem; align-items:flex-end; }
  .nav-links a { 
    font-size:1rem; letter-spacing:.9px; font-weight:700; color:#fff; 
    width:100%; padding:.85rem 0 .8rem 0; position:relative; text-align:right;
    border-radius:10px; transition:background .3s ease, padding .25s ease, color .3s ease; 
    display:flex; align-items:center; justify-content:flex-end; line-height:1; min-height:48px; /* >=44px recomendação toque */
  }
  .nav-links a:hover { background:rgba(255,255,255,0.05); }
  .nav-links a:focus-visible { outline:2px solid #fff; outline-offset:2px; }
  /* Oculta CTA no mobile */
  .nav-cta { display:none !important; }
  /* body.nav-open não é mais usado neste modo expansível */
}
.beneficios-centralizados li { 
  background:rgba(0,0,0,0.05); 
  padding:.8rem 1rem; 
  border-radius:12px; 
  font-size:.85rem; 
  letter-spacing:.5px; 
  font-weight:600; 
  color:#111; 
  position:relative; 
  text-align:center;
}
.beneficios-centralizados li::before { 
  content:"\f0da"; 
  font-family:"Font Awesome 6 Free"; 
  font-weight:900; 
  margin-right:.4rem; 
  color:#000; 
}
.callout { margin:2rem 0; background:linear-gradient(120deg,rgba(255,255,255,0.65),rgba(255,255,255,0.42)); border:1px solid rgba(0,0,0,0.06); padding:1.1rem 1.2rem; border-radius:16px; font-size:.85rem; line-height:1.5; box-shadow:0 8px 24px -10px rgba(0,0,0,0.18), inset 0 0 0 1px rgba(255,255,255,0.55); position:relative; overflow:hidden; }
.mod-cta-group { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
@media (max-width:800px){ 
  .mod-detalhe {
    padding: 1.5rem;
  }
  .mod-header { 
    flex-direction:column; 
    align-items:center; 
    text-align: center;
  } 
  .mod-hero-img { 
    width:120px; 
    height:120px; 
  } 
  .mod-header-text h1 { 
    font-size:2.3rem; 
  }
  .mod-cta-group-center {
    flex-direction: column;
    align-items: center;
  }
}
@media (max-width:600px){
  .modalidades-grid { grid-template-columns:1fr 1fr; }
  .mod-card { flex-direction:column; text-align:center; align-items:center; }
  .mod-media img {
    width: 140px;
    height: 140px;
  }
  #modalidades .mod-media img {
    width: 70px;
    height: 70px;
  }
}

/* Carrossel da Equipe */
.carrossel-container {
  position: relative;
  max-width: 100%;
  margin: 0 auto;
  overflow: hidden;
  padding: 2rem 0;
}

.carrossel-track {
  display: flex;
  gap: 2rem;
  width: calc(200% + 2rem); /* Largura dupla para acomodar slides duplicados */
  animation: carousel-scroll 30s linear infinite;
}

@keyframes carousel-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* Pausa a animação no hover */
.carrossel-container:hover .carrossel-track {
  animation-play-state: paused;
}

.carrossel-slide {
  min-width: 300px;
  flex: 0 0 auto;
}

/* Estilos dos professores no carrossel */
.professor {
  background: var(--gray);
  border-radius: var(--radius);
  padding: 1.5rem;
  text-align: center;
  box-shadow: var(--shadow);
  border: 2px solid transparent;
  transition: all 0.3s ease;
}

.professor:hover {
  transform: translateY(-5px);
  border-color: var(--secondary);
  box-shadow: 0 8px 25px rgba(0,0,0,0.15);
}

.professor img {
  width: 160px;
  height: 160px;
  object-fit: cover;
  border-radius: 50%;
  margin-bottom: 1rem;
  border: 3px solid var(--secondary);
  transition: all 0.3s ease;
}

.professor:hover img {
  transform: scale(1.05);
}

.professor h3 {
  margin: 0.5rem 0 0.3rem 0;
  color: var(--secondary);
  font-size: 1.3rem;
}

.professor p {
  font-size: 1rem;
  color: var(--text);
  margin: 0;
  line-height: 1.4;
}

.horarios-tabela {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1rem;
}
.horarios-tabela th, .horarios-tabela td {
  border: 1px solid #ddd;
  padding: 0.7rem 1rem;
  text-align: center;
}
.horarios-tabela th {
  background: var(--secondary);
  color: var(--light);
}
.horarios-tabela td {
  background: var(--gray);
}
.aviso {
  color: #888;
  font-size: 0.95rem;
  margin-top: 0.5rem;
}

.galeria-lista {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  justify-content: space-between;
}
.galeria-item {
  flex: 1 1 150px;
  background: var(--gray);
  border-radius: var(--radius);
  padding: 2rem 1rem;
  text-align: center;
  box-shadow: var(--shadow);
  font-weight: bold;
  color: var(--secondary);
  margin-bottom: 1rem;
}

.formulario {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  flex-direction: column;
  max-width: 500px;
  margin: 0 auto;
}
.formulario input, .formulario textarea, .formulario select {
  padding: 0.7rem 0.9rem;
  border-radius: var(--radius);
  border: 1px solid #ccc;
  font-size: 1rem;
  background: var(--gray);
  margin-bottom: 0.4rem;
}
.formulario label {
  display: block;
  text-align: left;
  font-weight: 600;
  font-size: .85rem;
  margin: 0.25rem 0 0.15rem 2px; /* reduzido: menos espaço acima e abaixo */
  letter-spacing: .3px;
  color: #222;
}
.formulario button {
  background: var(--secondary);
  color: var(--light);
  border: 1px solid var(--gray);
  padding: 1rem;
  border-radius: var(--radius);
  font-size: 1.1rem;
  font-weight: bold;
  cursor: pointer;
  transition: background 0.2s;
}
.formulario button:hover {
  background: var(--gray);
  color: var(--primary);
}

/* Seção Contato (refinada) */
#contato { background: var(--glass-light-bg); padding: 2.5rem 2.8rem 3rem 2.8rem; position: relative; -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation)); backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturation)); border: 1px solid var(--glass-border-light); box-shadow: 0 14px 40px -10px rgba(0,0,0,0.30), 0 4px 12px rgba(0,0,0,0.22); overflow: hidden; }
#contato h2 { font-size: 2.7rem; font-weight: 800; text-align: center; margin: 0 0 1rem 0; color: #111; letter-spacing: 1px; position: relative; }
.contato-subtitle { text-align: center; font-size: 1.05rem; color: #333; margin: 0 auto 2.8rem auto; padding: 0.6rem 2.2rem 0.9rem 2.2rem; display: inline-flex; gap: 0.75rem; align-items: center; position: relative; left: 50%; transform: translateX(-50%); font-weight: 500; }
.contato-subtitle::after { content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); height: 2px; width: 240px; background: linear-gradient(90deg, rgba(0,0,0,0) 0%, #000 35%, #000 65%, rgba(0,0,0,0) 100%); opacity: 0.22; border-radius: 2px; }
.contato-container { display: grid; grid-template-columns: minmax(340px, 480px) 1fr; gap: 3.2rem clamp(2rem, 4vw, 3.8rem); max-width: 1250px; margin: 0 auto; align-items: flex-start; position: relative; }
.contato-info { display: flex; flex-direction: column; gap: 1.9rem; position: relative; }
.info-item { display: flex; align-items: flex-start; gap: 1rem; padding: 1.1rem 1.1rem 1.15rem 1.1rem; border-radius: 16px; background: linear-gradient(145deg, rgba(255,255,255,0.55), rgba(255,255,255,0.45) 55%, rgba(255,255,255,0.35)); position: relative; -webkit-backdrop-filter: blur(10px) saturate(165%); backdrop-filter: blur(10px) saturate(165%); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 8px 26px -10px rgba(0,0,0,0.22), 0 2px 6px rgba(0,0,0,0.12), inset 0 0 0 1px rgba(255,255,255,0.5); transition: transform .5s ease, box-shadow .55s ease, background .55s ease; }
.info-item::after { content: ""; position: absolute; inset:0; pointer-events: none; background: radial-gradient(circle at 25% 20%, rgba(255,255,255,0.55), transparent 70%); opacity:.25; mix-blend-mode: overlay; transition: opacity .6s ease; }
.info-item:hover { transform: translateY(-4px); box-shadow: 0 18px 38px -16px rgba(0,0,0,0.35), 0 6px 16px rgba(0,0,0,0.18), inset 0 0 0 1px rgba(255,255,255,0.65); }
.info-item:hover::after { opacity:.55; }
.info-item:active { transform: translateY(-1px); }
.info-icon { background: #111; color: #fff; width: 54px; height: 54px; border-radius: 18px; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; flex-shrink: 0; position: relative; box-shadow: 0 6px 18px -6px rgba(0,0,0,0.55), inset 0 0 0 1px rgba(255,255,255,0.06); overflow: hidden; transition: background .55s ease, transform .55s ease, box-shadow .55s ease; }
.info-icon::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 30% 25%, rgba(255,255,255,0.25), transparent 60%), linear-gradient(145deg, rgba(255,255,255,0.10), rgba(255,255,255,0)); mix-blend-mode: overlay; opacity:.55; transition: opacity .55s ease; }
.info-item:hover .info-icon { background:#000; box-shadow: 0 10px 28px -10px rgba(0,0,0,0.75), inset 0 0 0 1px rgba(255,255,255,0.10); }
.info-item:hover .info-icon::before { opacity:.9; }
.info-content h3 { font-size: 1.05rem; font-weight: 700; color: #111; margin: 0 0 0.35rem 0; letter-spacing: .3px; }
.info-content p { font-size: .9rem; color: #333; margin: 0; line-height: 1.45; }
.redes-sociais { margin-top:1.4rem; text-align:center; display:flex; flex-direction:column; align-items:center; }
.redes-sociais h3 { font-size: 1.05rem; font-weight: 700; color: #111; margin: .2rem 0 .8rem 0; letter-spacing: .3px; }
.social-call { font-size: .78rem; text-transform: uppercase; letter-spacing: 1.4px; margin: 0 0 1rem 0; color: #222; font-weight: 600; position: relative; padding-left: 10px; }
.social-call::before { content:""; position:absolute; left:0; top:50%; transform: translateY(-50%); width:4px; height:14px; background:#000; border-radius:2px; opacity:.5; }
.social-links { display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }
.social-link { background: #111; color: #fff; width: 52px; height: 52px; border-radius: 18px; display: flex; align-items: center; justify-content: center; font-size: 1.15rem; text-decoration: none; transition: all 0.55s ease; position: relative; overflow: hidden; box-shadow: 0 10px 26px -10px rgba(0,0,0,0.65), 0 3px 8px rgba(0,0,0,0.30), inset 0 0 0 1px rgba(255,255,255,0.05); isolation:isolate; }
.social-link::after { content:""; position:absolute; inset:-2px; background: linear-gradient(140deg, rgba(255,255,255,0.25), rgba(255,255,255,0) 60%); mix-blend-mode: overlay; opacity:.35; transition: opacity .6s ease; pointer-events:none; }
.social-link::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 30% 25%, rgba(255,255,255,0.25), transparent 60%), linear-gradient(145deg, rgba(255,255,255,0.15), rgba(255,255,255,0)); mix-blend-mode: overlay; opacity:.55; transition: opacity .5s ease; }
.social-link:hover { transform: translateY(-4px) scale(1.05); box-shadow: 0 18px 48px -16px rgba(0,0,0,0.9), 0 8px 18px rgba(0,0,0,0.45), inset 0 0 0 1px rgba(255,255,255,0.15); }
.social-link:hover::before { opacity:.9; }
.social-link:hover::after { opacity:.65; }
.social-link:active { transform: translateY(-1px) scale(.94); }

/* Cores específicas por plataforma no hover */
.social-link .fa-instagram { position:relative; z-index:2; }
.social-link.instagram:hover { background: radial-gradient(circle at 30% 30%, #f9ed32, #ee2a7b 40%, #6228d7 75%); }
.social-link.whatsapp:hover { background: linear-gradient(135deg, #25D366, #128C7E); }
.social-link.facebook:hover { background: linear-gradient(135deg, #1877F2, #0d53a8); }
.social-link.youtube:hover { background: linear-gradient(135deg, #FF0000, #b30000); }

/* Anel pulsante para destaque contínuo */
.social-link::selection { background: transparent; }
.social-link.emphasis { animation: social-pulse 3.8s ease-in-out infinite; }
@keyframes social-pulse { 0%,70%,100% { box-shadow: 0 10px 26px -10px rgba(0,0,0,0.65), 0 3px 8px rgba(0,0,0,0.30), inset 0 0 0 1px rgba(255,255,255,0.05); } 45% { box-shadow: 0 14px 40px -14px rgba(0,0,0,0.85), 0 8px 20px rgba(0,0,0,0.5), 0 0 0 4px rgba(255,255,255,0.08), 0 0 0 10px rgba(255,255,255,0); } }

/* Tooltip simples */
.social-link span.label { position:absolute; bottom:-6px; left:50%; transform:translate(-50%, 100%); background:#000; color:#fff; font-size:.55rem; padding:4px 6px; border-radius:6px; letter-spacing:1px; text-transform:uppercase; opacity:0; pointer-events:none; transition: opacity .45s ease, transform .45s ease; white-space:nowrap; }
.social-link:hover span.label { opacity:1; transform:translate(-50%, 130%); }
.social-link:active { transform: translateY(-1px) scale(.92); }
.contato-mapa { border-radius: 20px; overflow: hidden; box-shadow: 0 14px 42px -14px rgba(0,0,0,0.35), 0 4px 12px rgba(0,0,0,0.25); height: fit-content; position: relative; border: 1px solid rgba(0,0,0,0.08); -webkit-backdrop-filter: blur(6px) saturate(140%); backdrop-filter: blur(6px) saturate(140%); }
.contato-mapa::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.4), rgba(255,255,255,0)); mix-blend-mode: overlay; pointer-events:none; opacity:.25; }
.contato-mapa iframe { width: 100%; height: 400px; border: none; }

footer {
  background: var(--primary);
  color: var(--light);
  text-align: center;
  padding: 2rem 1rem 1rem 1rem;
  margin-top: 3rem;
  border-radius: var(--radius) var(--radius) 0 0;
}
.footer-links {
  margin-bottom: 0.7rem;
}
.footer-links a {
  color: var(--gray);
  text-decoration: none;
  margin: 0 0.5rem;
  font-weight: 500;
}
.footer-links a:hover {
  color: var(--accent);
}
.footer-copy {
  font-size: 0.95rem;
  color: #bbb;
}

@media (max-width: 768px) {
  nav {
    padding: 0.8rem 0.5rem;
  }
  
  nav ul {
    gap: 0.8rem;
  }
  
  .hero {
    padding: 2rem 1rem 1.5rem 1rem;
  }
  
  .hero h1 {
    font-size: 2.5rem;
  }
  
  section {
    padding: 2rem 1.5rem;
  }
}

@media (max-width: 900px) {
  nav ul {
    gap: 1rem;
  }
  .valores-lista {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
    max-width: 320px;
    margin: 0 auto;
  }
  
  .valor {
    padding: 1rem 0.8rem;
    text-align: center;
  }
  
  .valor i {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
  }
  
  .valor h3 {
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
  }
  
  .valor p {
    font-size: 0.75rem;
    line-height: 1.3;
  }
  
  .modalidades-lista {
    flex-direction: column;
    gap: 1rem;
    align-items: center;
  }
  
  .modalidade {
    width: 100%;
    max-width: 300px;
    min-height: 180px;
    padding: 1.5rem 1rem;
  }
  
  .modalidade i {
    font-size: 2rem;
    margin-bottom: 0.8rem;
  }

  .modalidade-img {
  width: 85px;
  height: 85px;
  /* margin-bottom removido conforme solicitação */
  }
  
  .modalidade h3 {
    font-size: 1.1rem;
    margin-bottom: 0.8rem;
  }
  
  .modalidade p {
    font-size: 0.9rem;
    margin-bottom: 0.8rem;
  }
  
  .modalidade span {
    font-size: 0.85rem;
  }
  
  .galeria-lista {
    flex-direction: column;
    gap: 1rem;
  }
  
  .carrossel-slide {
    min-width: 250px;
  }
  
  .contato-container {
  grid-template-columns: 1fr;
  gap: 2.2rem;
  }
  
  .contato-mapa iframe {
    height: 300px;
  }
  
  section {
    padding: 1.2rem 1.5rem 2rem 1.5rem;
  }
  
  #contato {
  padding: 2rem 1.7rem 2.5rem 1.7rem;
  }
}

@media (max-width: 600px) {
  .carrossel-slide {
    min-width: 220px;
  }
  
  .professor {
    padding: 1rem;
  }
  
  .professor img {
    width: 130px;
    height: 130px;
  }
  
  .professor h3 {
    font-size: 1.1rem;
  }
  
  .professor p {
    font-size: 0.9rem;
  }
  
  #contato {
  padding: 1.7rem 1.1rem 2rem 1.1rem;
  }
  
  #contato h2 {
    font-size: 2rem;
  }
  
  .contato-subtitle {
    font-size: 1rem;
  }
  
  .info-icon {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
  
  .info-content h3 {
    font-size: 1.1rem;
  }
  
  .info-content p {
    font-size: 0.9rem;
  }
  
  .social-link {
    width: 40px;
    height: 40px;
    font-size: 1rem;
  }
  
  .contato-mapa iframe {
  height: 260px;
  }
  
  nav {
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.5rem;
  }
  
  nav .logo {
    font-size: 1.8rem;
    text-align: center;
    margin-bottom: 0.5rem;
  }
  
  nav ul {
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
  }
  
  nav ul li a {
    font-size: 0.9rem;
    padding: 0.3rem 0.6rem;
  }
  
  nav .cta {
    font-size: 0.85rem;
    padding: 0.5rem 1rem;
    margin-top: 0.5rem;
  }
  
  .hero {
    padding: 1.5rem 1rem 1rem 1rem;
  }
  
  .hero h1 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
  }
  
  .hero h2 {
    font-size: 1.1rem;
    margin-bottom: 0.8rem;
  }
  
  .hero p {
    font-size: 0.9rem;
    margin-bottom: 1rem;
  }
  
  .hero .btn {
    font-size: 0.9rem;
    padding: 0.7rem 1.2rem;
    margin: 0.3rem;
  }
  section {
    padding: 1.5rem 1rem;
    margin: 1rem auto;
  }
  section h2 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
  }
  .sobre-destaques li {
    padding: 0.7rem 1rem;
    font-size: 1rem;
  }
}

/* Animações de Scroll */
.fade-in {
  opacity: 1;
  transform: translateY(0);
  transition: none;
}

.fade-in.animate {
  opacity: 1;
  transform: translateY(0);
}

.slide-in-left {
  opacity: 1;
  transform: translateX(0);
  transition: none;
}

.slide-in-left.animate {
  opacity: 1;
  transform: translateX(0);
}

.slide-in-right {
  opacity: 1;
  transform: translateX(0);
  transition: none;
}

.slide-in-right.animate {
  opacity: 1;
  transform: translateX(0);
}

.scale-in {
  opacity: 1;
  transform: scale(1);
  transition: none;
}

.scale-in.animate {
  opacity: 1;
  transform: scale(1);
}

.rotate-in {
  opacity: 1;
  transform: rotate(0deg) scale(1);
  transition: none;
}

.rotate-in.animate {
  opacity: 1;
  transform: rotate(0deg) scale(1);
}

/* Animações com delay para elementos dentro das seções */
.stagger-animation > * {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.stagger-animation.animate > *:nth-child(1) { 
  transition-delay: 0.1s; 
  opacity: 1;
  transform: translateY(0);
}
.stagger-animation.animate > *:nth-child(2) { 
  transition-delay: 0.2s; 
  opacity: 1;
  transform: translateY(0);
}
.stagger-animation.animate > *:nth-child(3) { 
  transition-delay: 0.3s; 
  opacity: 1;
  transform: translateY(0);
}
.stagger-animation.animate > *:nth-child(4) { 
  transition-delay: 0.4s; 
  opacity: 1;
  transform: translateY(0);
}
.stagger-animation.animate > *:nth-child(5) { 
  transition-delay: 0.5s; 
  opacity: 1;
  transform: translateY(0);
}
.stagger-animation.animate > *:nth-child(6) { 
  transition-delay: 0.6s; 
  opacity: 1;
  transform: translateY(0);
}

/* Animação especial para cards */
.card-animate {
  opacity: 0;
  transform: translateY(30px) scale(0.95);
  transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.card-animate.animate {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ================= CTA Pós-Horários (layout apenas) ================= */
.cta-horarios { text-align:center; padding: 3rem 1rem 3.4rem; position:relative; margin-top:0.5rem; border:none !important; box-shadow:none !important; background: linear-gradient(120deg, var(--primary) 65%, var(--secondary) 100%); color:var(--light); overflow:hidden; }
/* texturas e logos semelhantes ao hero */
.cta-horarios::before { content:""; position:absolute; inset:0; pointer-events:none; background: radial-gradient(circle at 28% 32%, rgba(255,255,255,0.08), transparent 55%), radial-gradient(circle at 72% 68%, rgba(255,255,255,0.07), transparent 60%), radial-gradient(circle at 40% 78%, rgba(0,0,0,0.18), transparent 70%), radial-gradient(circle at 78% 28%, rgba(0,0,0,0.15), transparent 65%), repeating-linear-gradient(125deg, rgba(255,255,255,0.06) 0 6px, rgba(0,0,0,0.07) 6px 12px); mix-blend-mode: overlay; opacity: var(--hero-texture-opacity); z-index:0; filter: contrast(1.05) brightness(1.02); }
.cta-horarios::after { content:""; position:absolute; inset:0; background-image:url('../images/logo.png'); background-repeat:repeat; background-size:auto 100%; background-position:0 50%; opacity:0.04; filter: invert(1) brightness(0.85) contrast(1.2); pointer-events:none; mix-blend-mode:normal; animation: logos-pan 70s linear infinite; }
.cta-horarios .cta-horarios-title { font-size:1.55rem; margin:0 0 1.4rem; letter-spacing:.5px; font-weight:800; color:#fff; text-transform:uppercase; position:relative; z-index:1; }
.cta-horarios-inner { display:flex; gap:1.2rem; justify-content:center; flex-wrap:wrap; max-width:880px; margin:0 auto; padding:0; position:relative; z-index:1; }
.cta-horarios .btn { margin:0; min-width:250px; font-size:0.95rem; }
.cta-horarios .btn.btn-outline { backdrop-filter: blur(14px) saturate(170%); }
.cta-horarios .btn.accent { letter-spacing:.7px; }
.cta-horarios .btn.btn-outline { letter-spacing:.7px; }
@media (max-width:600px){ .cta-horarios { padding:1.2rem 1rem 2.6rem; } .cta-horarios .btn { width:100%; justify-content:center; font-size:.95rem; } }

/* ================= PLANOS ================= */
/* NOVO layout PLANOS */
.planos-section { position:relative; }
.planos-head { text-align:center; max-width:850px; margin:0 auto 2rem; }
.planos-head h2 { margin-bottom:.6rem; }
.planos-sub { font-size:1rem; color:#555; margin:0; letter-spacing:.4px; }
.planos-grid { display:grid; gap:1.6rem; grid-template-columns:repeat(3,1fr); align-items:stretch; max-width:1050px; margin:0 auto; }
@media (max-width:980px){ .planos-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .planos-grid { grid-template-columns:repeat(1,1fr); } }
.plano-card { position:relative; background:linear-gradient(145deg, rgba(255,255,255,0.85), rgba(240,240,240,0.9)); border:1px solid rgba(255,255,255,0.55); border-radius:18px; padding:1.4rem 1.2rem 1.6rem; box-shadow:0 8px 28px -10px rgba(0,0,0,0.35), 0 3px 10px rgba(0,0,0,0.22), inset 0 0 0 1px rgba(255,255,255,0.4); display:flex; flex-direction:column; gap:.9rem; overflow:hidden; text-align:center; }
.plano-card::before { content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(circle at 25% 20%, rgba(255,255,255,0.55), transparent 65%), linear-gradient(120deg, rgba(255,255,255,0.25), rgba(255,255,255,0)); mix-blend-mode:overlay; opacity:.55; }
.plano-nome { font-size:1.15rem; margin:0; font-weight:800; letter-spacing:.6px; color:#111; text-transform:uppercase; }
.plano-nome.pequeno { font-size:1rem; }
.plano-preco { font-size:1.4rem; font-weight:900; margin:0; color:#111; letter-spacing:.5px; }
.plano-preco span { font-size:.9rem; font-weight:700; margin-right:.15rem; opacity:.85; }
.plano-preco.grande { font-size:1.6rem; }
.plano-beneficios { list-style:none; padding:0; margin:.2rem 0 .4rem; font-size:.8rem; font-weight:600; letter-spacing:.5px; text-transform:uppercase; display:flex; flex-direction:column; gap:.4rem; color:#333; align-items:center; }
.plano-beneficios.simples { text-transform:none; font-size:.75rem; letter-spacing:.3px; }
.plano-btn { margin-top:auto; text-decoration:none; text-align:center; font-size:.8rem; letter-spacing:.6px; font-weight:700; text-transform:uppercase; padding:.8rem 1rem; border-radius:10px; background:#111; color:#fff; border:1px solid rgba(255,255,255,0.35); box-shadow:0 4px 18px -6px rgba(0,0,0,0.55); transition:.4s; }
.plano-btn:hover { background:#222; transform:translateY(-3px); box-shadow:0 8px 28px -10px rgba(0,0,0,0.6); }
.plano-btn:active { transform:translateY(1px); }
.plano-btn-accent { background:linear-gradient(135deg,#066d20,#0aa933 55%,#044d17); box-shadow:0 8px 30px -10px rgba(11,140,40,0.45); }
.plano-btn-accent:hover { background:linear-gradient(135deg,#088428,#11c740 55%,#06601d); }
.plano-btn-light { background:linear-gradient(145deg,#ffffff,#ececec); color:#111; }
.plano-btn-light:hover { background:linear-gradient(145deg,#ffffff,#e4e4e4); }
.plano-card.neutro { background:linear-gradient(145deg,#f7f7f7,#eeeeee); }
.plano-badge { position:absolute; top:10px; right:-44px; background:linear-gradient(135deg,#05761d,#12b945); color:#fff; font-size:.55rem; letter-spacing:1px; font-weight:800; padding:.45rem 2.8rem .4rem; transform:rotate(35deg); box-shadow:0 4px 12px -4px rgba(0,0,0,0.35); text-transform:uppercase; line-height:1.05; text-align:center; }
.plano-badge.pulse { animation: badgePulse 3.5s ease-in-out infinite; }
@keyframes badgePulse { 0%,100% { transform:rotate(35deg) scale(1); } 50% { transform:rotate(35deg) scale(1.08); } }
.planos-nota { font-size:.7rem; letter-spacing:.5px; text-transform:uppercase; opacity:.7; text-align:center; margin:2rem 0 0; font-weight:600; }
/* ================= GALERIA NOVA ================= */
.galeria-section { margin-top:2.5rem; }
.galeria-section h2 { text-align:center; margin-bottom:.6rem; }
.galeria-sub { text-align:center; font-size:.9rem; color:#555; margin:0 0 1.8rem; letter-spacing:.4px; }
.galeria-grid { --g:1rem; display:grid; gap:var(--g); grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; }
@media (max-width:1100px){ .galeria-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:780px){ .galeria-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .galeria-grid { grid-template-columns:repeat(1,1fr); } }
@media (min-width:640px){ .galeria-grid { grid-auto-rows:220px; } }
@media (min-width:900px){ .galeria-grid { grid-auto-rows:240px; } }
.galeria-card { position:relative; margin:0; padding:0; border-radius:18px; overflow:hidden; background:#111; cursor:pointer; box-shadow:0 8px 24px -12px rgba(0,0,0,0.55), 0 4px 12px -4px rgba(0,0,0,0.4); }
.galeria-card picture, .galeria-card img { width:100%; height:100%; display:block; object-fit:cover; }
.galeria-card::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,0.55), rgba(0,0,0,0)); opacity:0; transition:.4s; }
.galeria-card:hover::after { opacity:1; }
.galeria-card:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
.galeria-modal { position:fixed; inset:0; width:100vw; height:100dvh; background:rgba(0,0,0,0.85); display:flex; justify-content:center; align-items:center; padding:1.5rem clamp(.5rem,2vw,1.25rem); z-index:2000; backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); box-sizing:border-box; overflow:auto; }
.galeria-modal.open { display:flex; animation:galeriaFade .28s ease; }
@keyframes galeriaFade { from { opacity:0; transform:scale(.975); } to { opacity:1; transform:scale(1); } }
.galeria-modal[hidden] { display:none !important; }
.galeria-modal-inner { max-width:min(1000px,92vw); width:100%; margin:0; display:flex; flex-direction:column; gap:.6rem; }
.galeria-modal-inner img { width:100%; height:auto; max-height:calc(100dvh - 8rem); object-fit:contain; border-radius:14px; box-shadow:0 10px 40px -10px rgba(0,0,0,0.7); }
.galeria-modal-inner figcaption { font-size:.8rem; text-align:center; color:#ddd; letter-spacing:.5px; }
.galeria-close { position:absolute; top: clamp(.5rem,2vw,1rem); right: clamp(.5rem,2vw,1rem); background:#000; color:#fff; border:none; font-size:2rem; line-height:1; width:48px; height:48px; display:flex; justify-content:center; align-items:center; border-radius:50%; cursor:pointer; box-shadow:0 6px 20px -6px rgba(0,0,0,0.7); z-index:10; }
.galeria-close:hover { background:#111; }
.galeria-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(0,0,0,0.55); color:#fff; border:none; width:56px; height:56px; border-radius:50%; cursor:pointer; font-size:1.6rem; display:flex; justify-content:center; align-items:center; box-shadow:0 6px 24px -8px rgba(0,0,0,0.65); }
.galeria-nav:hover { background:rgba(0,0,0,0.75); }
.galeria-nav.prev { left:1rem; }
.galeria-nav.next { right:1rem; }
@media (max-width:640px){ .galeria-nav { width:46px; height:46px; font-size:1.3rem; } .galeria-close { width:44px; height:44px; font-size:1.7rem; } }
.galeria-modal:focus-visible { outline:none; }
.galeria-modal [disabled] { opacity:.4; cursor:default; }
.galeria-status { position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); font-size:.7rem; letter-spacing:1px; font-weight:500; color:#c9c9c9; text-transform:uppercase; font-family:var(--font-alt, Arial, sans-serif); pointer-events:none; }
.galeria-modal:focus { outline:none; }
.galeria-controls { display:none; gap:.85rem; margin-top:1rem; justify-content:center; }
@media (max-width:640px){
  .galeria-modal { flex-direction:column; }
  .galeria-nav { position:static; top:auto; left:auto; right:auto; transform:none; width:52px; height:52px; font-size:1.4rem; background:rgba(20,20,20,0.7); }
  .galeria-nav:hover { background:rgba(30,30,30,0.85); }
  .galeria-controls { display:flex; }
  .galeria-status { bottom:.5rem; }
  .galeria-modal-inner img { max-height:calc(100dvh - 13rem); }
}
body.no-scroll { overflow:hidden; }
@media (max-width:800px){ .plano-card { padding:1.2rem 1rem 1.4rem; } .plano-preco { font-size:1.3rem; } .plano-preco.grande { font-size:1.45rem; } }
@media (max-width:560px){ .planos-grid { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1.1rem; } .plano-beneficios { font-size:.7rem; } .plano-btn { font-size:.7rem; } }

/* Animação para hero com efeito especial */
.hero-animate {
  opacity: 0;
  transform: translateY(50px);
  transition: all 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.hero-animate.animate {
  opacity: 1;
  transform: translateY(0);
}

/* MOBILE: Remove todas as animações de entrada/saída para melhor performance */
@media (max-width: 768px) {
  /* Remove animações de entrada dos blocos */
  .fade-in, 
  .slide-in-left, 
  .slide-in-right, 
  .scale-in, 
  .rotate-in, 
  .hero-animate,
  .card-animate {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  
  .fade-in.animate, 
  .slide-in-left.animate, 
  .slide-in-right.animate, 
  .scale-in.animate, 
  .rotate-in.animate, 
  .hero-animate.animate,
  .card-animate.animate {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  
  /* Remove animações stagger */
  .stagger-animation > *, 
  .stagger-animation.animate > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    transition-delay: 0s !important;
  }
  
  /* Remove animações específicas das nth-child */
  .stagger-animation.animate > *:nth-child(1),
  .stagger-animation.animate > *:nth-child(2),
  .stagger-animation.animate > *:nth-child(3),
  .stagger-animation.animate > *:nth-child(4),
  .stagger-animation.animate > *:nth-child(5),
  .stagger-animation.animate > *:nth-child(6) {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    transition-delay: 0s !important;
  }
}
