/*
Theme Name: Atlético Clube Ita
Theme URI: https://atleticoclubita.com.br
Author: Desenvolvido sob medida
Description: Site editável desenvolvido sob medida
Version: 9.4.5
License: GNU General Public License v2 or later
Text Domain: atletico-clube-ita
*/

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

:root {
  --preto:       #0a0a0a;
  --preto-med:   #141414;
  --preto-suave: #1e1e1e;
  --cinza:       #2a2a2a;
  --cinza-claro: #888;
  --borda:       #2e2e2e;
  --vermelho:    #d02020;
  --vermelho-v:  #b01818;
  --vermelho-bg: rgba(208,32,32,0.08);
  --branco:      #ffffff;
  --texto:       #e8e8e8;
  --texto-suave: #aaa;
  --fonte-titulo: 'Bebas Neue', 'Barlow Condensed', Impact, sans-serif;
  --fonte-corpo:  'DM Sans', 'Barlow', system-ui, sans-serif;
  --radius:      6px;
}

html { scroll-behavior: smooth; }

body {
  background: var(--preto);
  color: var(--texto);
  font-family: var(--fonte-corpo);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }

/* ── TOPBAR ─────────────────────────────────────────────────── */
.topbar {
  background: var(--vermelho);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 6px 16px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.topbar-info {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  max-width: 1200px;
  text-align: center;
}
.topbar-contact {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.topbar-sep { opacity: .5; }
.topbar a { color: #fff; opacity: .85; transition: opacity .2s; }
.topbar a:hover { opacity: 1; }
.topbar-redes {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}
.topbar-redes a {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.38);
  border-radius: var(--radius);
  padding: 4px 8px;
  opacity: 1;
}
.topbar-redes a:hover {
  background: #fff;
  color: var(--vermelho);
}

/* ── NAV ────────────────────────────────────────────────────── */
#site-navigation {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--preto-med);
  border-bottom: 1px solid var(--borda);
  backdrop-filter: blur(12px);
}
.nav-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  gap: 32px;
  min-height: 108px;
}
.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  text-decoration: none;
}
.logo img { height: 88px; width: auto; }
.logo-icon {
  width: 44px; height: 44px;
  background: var(--vermelho);
  border-radius: 4px;
  display: grid;
  place-items: center;
  font-family: var(--fonte-titulo);
  font-size: 18px;
  color: #fff;
  letter-spacing: .05em;
}
.logo-text { display: flex; flex-direction: column; line-height: 1.2; }
.site-name {
  font-family: var(--fonte-titulo);
  font-size: 20px;
  letter-spacing: .06em;
  color: var(--branco);
}
.site-tagline { margin-bottom: 6px; font-size: 10px; color: var(--cinza-claro); letter-spacing: .08em; text-transform: uppercase; }
.site-slogan {
  max-width: 220px;
  color: var(--cinza-claro);
  font-size: 10px;
  letter-spacing: .02em;
  line-height: 1.25;
}

.nav-links {
  display: flex;
  gap: 4px;
  margin-left: auto;
  list-style: none;
}
.nav-links > li { position: relative; }
.nav-links > li > a {
  display: block;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--texto-suave);
  border-radius: var(--radius);
  transition: color .2s, background .2s;
  text-transform: uppercase;
  white-space: nowrap;
}
.nav-links > li > a:hover,
.nav-links > li.current-menu-item > a,
.nav-links > li:hover > a {
  color: var(--branco);
  background: var(--cinza);
}
/* seta em itens com filhos */
.nav-links > li.menu-item-has-children > a::after {
  content: ' ▾';
  font-size: 10px;
  opacity: .6;
}
/* DROPDOWN */
.nav-links > li > .sub-menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 220px;
  background: var(--preto-med);
  border: 1px solid var(--borda);
  border-top: 3px solid var(--vermelho);
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: 0 12px 32px rgba(0,0,0,.6);
  z-index: 1000;
  list-style: none;
  padding: 6px 0;
}
.nav-links > li:hover > .sub-menu { display: block; }
.nav-links > li > .sub-menu li a {
  display: block;
  padding: 9px 18px;
  font-size: 13px;
  font-weight: 500;
  color: var(--texto-suave);
  text-transform: none;
  letter-spacing: 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
  transition: color .15s, padding-left .15s;
  white-space: nowrap;
}
.nav-links > li > .sub-menu li:last-child a { border-bottom: none; }
.nav-links > li > .sub-menu li a:hover {
  color: var(--branco);
  background: var(--cinza);
  padding-left: 24px;
}

.btn-portal {
  flex-shrink: 0;
  background: var(--vermelho);
  color: #fff !important;
  padding: 9px 20px;
  border-radius: var(--radius);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: background .2s, transform .15s;
  white-space: nowrap;
}
.btn-portal:hover { background: var(--vermelho-v); transform: translateY(-1px); }

.menu-toggle {
  display: none;
  background: none;
  border: 1px solid var(--borda);
  color: var(--branco);
  font-size: 20px;
  padding: 6px 10px;
  border-radius: var(--radius);
  cursor: pointer;
  margin-left: auto;
}

/* ── HERO LOGO + TÍTULO ─────────────────────────────────────── */
.hero-heading-wrap {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-bottom: 20px;
}
.hero-club-logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.hero-club-logo img {
  width: auto;
  object-fit: contain;
  display: block;
  max-width: 160px;
}
/* ── HERO ───────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 540px;
  display: flex;
  align-items: center;
  background: var(--preto-med);
  overflow: hidden;
}
.hero-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 70% 50%, rgba(208,32,32,0.18) 0%, transparent 70%),
    repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(255,255,255,0.025) 40px),
    repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(255,255,255,0.025) 40px);
}
.hero-stripe {
  position: absolute;
  top: 0; bottom: 0; right: 0;
  width: 42%;
  background: linear-gradient(135deg, transparent 0%, rgba(208,32,32,0.12) 100%);
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0% 100%);
}
.hero-content {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 32px 80px;
  width: 100%;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--vermelho-bg);
  border: 1px solid rgba(208,32,32,0.4);
  color: #e05050;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 6px 14px;
  border-radius: 100px;
  margin-bottom: 17px;
}
.hero-badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--vermelho); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.3} }

.hero h1 {
  font-family: var(--fonte-titulo);
  font-size: clamp(52px, 8vw, 96px);
  line-height: .95;
  letter-spacing: .02em;
  color: var(--branco);
  margin-bottom: 14px;
  max-width: 640px;
}
.hero h1 em {
  font-style: normal;
  color: var(--vermelho);
  display: block;
  font-size: 50%;
}
.hero p {
  font-size: 17px;
  color: var(--texto-suave);
  max-width: 520px;
  margin-bottom: 25px;
  line-height: 1.7;
}
.hero-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.btn-primary {
  background: var(--vermelho);
  color: #fff;
  padding: 14px 32px;
  border-radius: var(--radius);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: background .2s, transform .15s, box-shadow .2s;
  box-shadow: 0 4px 20px rgba(208,32,32,0.4);
}
.btn-primary:hover { background: var(--vermelho-v); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(208,32,32,0.5); }
.btn-outline {
  border: 1px solid var(--borda);
  color: var(--texto);
  padding: 14px 32px;
  border-radius: var(--radius);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: border-color .2s, color .2s, background .2s;
}
.btn-outline:hover { border-color: var(--vermelho); color: var(--branco); background: var(--vermelho-bg); }

/* ── SEÇÕES GENÉRICAS ───────────────────────────────────────── */
.section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 72px 32px;
}
.section-full { background: var(--preto-suave); border-top: 1px solid var(--borda); border-bottom: 1px solid var(--borda); }
.section-full-inner { max-width: 1200px; margin: 0 auto; padding: 72px 32px; }

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 40px;
  gap: 16px;
}
.section-title {
  font-family: var(--fonte-titulo);
  font-size: clamp(28px, 4vw, 42px);
  letter-spacing: .04em;
  color: var(--branco);
  line-height: 1;
}
.section-title span { color: var(--vermelho); }
.ver-mais {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--vermelho);
  border-bottom: 1px solid transparent;
  transition: border-color .2s;
  white-space: nowrap;
  padding-bottom: 2px;
}
.ver-mais:hover { border-color: var(--vermelho); }
.home-section-link {
  margin: 24px 0 0;
  text-align: right;
}
.home-section-link .ver-mais {
  display: inline-flex;
  color: var(--branco);
}
.home-section-link .ver-mais:hover { border-color: var(--branco); }

/* ── CARDS ──────────────────────────────────────────────────── */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}
.card {
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  cursor: pointer;
}
.card:hover { border-color: var(--vermelho); transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,0.5); }
.card-pin {
  position: absolute;
  top: 10px; left: 10px;
  background: var(--vermelho);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  z-index: 2;
  pointer-events: none;
}
.card-sticky { border-color: var(--vermelho) !important; }

/* Proporção 16:9 — usada nos cards de notícias e arquivo */
.card-img.card-img-169 {
  aspect-ratio: 16 / 9;
  height: auto;
}

/* ── POPUP ──────────────────────────────────────────────────── */
/* ── ARCHIVE — página "Ver todas as notícias" ─────────────── */
.archive-section { padding-top: 40px; }
.archive-header { text-align: center; margin-bottom: 48px; }
.archive-titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(28px, 4vw, 42px);
  color: var(--branco);
  line-height: 1;
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
/* Destaque em vermelho na segunda palavra, replicando o padrão .section-title span */
.archive-titulo span { color: var(--vermelho); }
.archive-desc {
  font-size: 14px;
  color: #fff;
  opacity: .7;
  max-width: 500px;
  margin: 0 auto;
  line-height: 1.6;
}
/* espaçamento duplo entre cards na listagem de arquivo */
.cards-grid-archive {
  row-gap: 48px;   /* dobro do gap padrão do cards-grid */
}
.card-archive { border-bottom: 1px solid var(--borda); padding-bottom: 0; }

/* card-img: container de imagem dos cards — altura fixa, crop centralizado */
.card-img {
  position: relative;
  height: 180px;           /* altura padrão para cards sem proporção definida */
  background: var(--cinza);
  display: grid;
  place-items: center;
  font-size: 48px;
  overflow: hidden;        /* corta o excesso — impede esticamento */
}
/* Com proporção 16:9 a altura vem do aspect-ratio, não do height fixo */
.card-img.card-img-169 { height: auto; }

/* Toda imagem dentro de card-img nunca estica: preenche e corta */
.card-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;       /* ← corte centralizado, sem distorção */
  display: block;
}
.card-img.vermelho  { background: linear-gradient(135deg, #4a0a0a, #8b1a1a); }
.card-img.escuro    { background: linear-gradient(135deg, #111, #222); }
.card-img.cinza     { background: linear-gradient(135deg, #1a1a1a, #333); }
.card-body { padding: 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.card-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--vermelho);
}
.card-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--branco);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
.card-desc { font-size: 14px; color: var(--texto-suave); line-height: 1.5; }

/* ── EVENTOS ────────────────────────────────────────────────── */
.eventos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.evento-card {
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
  padding: 18px 20px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
  transition: border-color .25s, transform .2s;
}
.evento-card:hover { border-color: var(--vermelho); transform: translateY(-2px); }
.evento-data {
  flex-shrink: 0;
  width: 52px;
  text-align: center;
  background: var(--vermelho);
  border-radius: 6px;
  padding: 8px 4px;
}
.evento-dia { display: block; font-family: var(--fonte-titulo); font-size: 28px; color: #fff; line-height: 1; }
.evento-mes { display: block; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,0.8); }
.evento-info { flex: 1; }
.evento-cat { display: none; } /* removido da home — label desnecessário */
.evento-detalhe-bar {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding: 14px 18px 10px;
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: var(--radius);
  font-size: 14px;
  color: var(--texto-suave);
}
.evento-detalhe-bar strong { color: var(--branco); }
.evento-detalhe-completo {
  display: block;
}
.evento-detalhe-completo span {
  display: block;
  margin-bottom: 8px;
}
.evento-resumo {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--borda);
  line-height: 1.75;
  position: relative;
  padding-left: 0;
}
.evento-resumo::before {
  content: none;
}
.evento-resumo-separador {
  display: inline !important;
  margin: 0 8px 0 0 !important;
  color: var(--vermelho);
  font-weight: 700;
}
.evento-resumo-separador + p { display: inline; }
.evento-resumo p { margin-bottom: 14px; }
.evento-resumo p:last-child { margin-bottom: 0; }
.evento-titulo { font-size: 15px; font-weight: 700; color: var(--branco); line-height: 1.3; margin-bottom: 6px; }
.evento-desc { font-size: 13px; color: var(--texto-suave); }

/* ── AULAS E OFICINAS ───────────────────────────────────────── */
.aulas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
}
.aula-pill {
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
  padding: 18px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--texto);
  transition: border-color .2s, background .2s, color .2s;
  cursor: pointer;
}
.aula-pill:hover { border-color: var(--vermelho); background: var(--vermelho-bg); color: var(--branco); }
.aula-pill .icon { font-size: 22px; flex-shrink: 0; }

/* ── ESTRUTURA (galeria de álbuns) ──────────────────────────── */

/* Filtros por setor */
.estrutura-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 28px;
}
.filtro-btn {
  background: var(--cinza);
  border: 1px solid var(--borda);
  color: var(--texto-suave);
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--fonte-corpo);
  cursor: pointer;
  transition: all .2s;
  letter-spacing: .04em;
}
.filtro-btn:hover { border-color: var(--vermelho); color: var(--branco); }
.filtro-btn.active { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }

/* Grid de álbuns */
.estrutura-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}
.album-card {
  display: block;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  transition: transform .25s, border-color .25s, box-shadow .25s;
  text-decoration: none;
}
.album-card:hover { transform: translateY(-4px); border-color: var(--vermelho); box-shadow: 0 8px 32px rgba(208,32,32,.2); }
.album-thumb {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  background: var(--cinza);
  display: flex;
  align-items: center;
  justify-content: center;
}
.album-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.album-card:hover .album-thumb img { transform: scale(1.06); }
.album-icon { font-size: 48px; }
.album-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 55%);
  display: flex;
  align-items: flex-end;
  padding: 12px;
}
.album-setor {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--vermelho);
  background: rgba(0,0,0,.6);
  padding: 3px 8px;
  border-radius: 3px;
}
.album-info { padding: 12px 14px 14px; }
.album-titulo { font-size: 14px; font-weight: 700; color: var(--branco); line-height: 1.3; }





/* ── ESTRUTURA HOME GRID ────────────────────────────────────── */
.estrutura-home-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
}
.espaco-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--cinza);
  border: 1px solid #2a2a2a;
  border-radius: var(--radius);
  overflow: hidden;
  text-decoration: none;
  transition: transform .25s, border-color .25s, box-shadow .25s;
}
.espaco-card:hover { transform: translateY(-4px); border-color: var(--vermelho); box-shadow: 0 8px 32px rgba(208,32,32,.2); }
.espaco-thumb {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  position: relative;
  background: linear-gradient(135deg, #111, #2a2a2a);
  display: grid;
  place-items: center;
}
.espaco-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.espaco-card:hover .espaco-thumb img { transform: scale(1.06); }
.espaco-icon { font-size: 48px; }
.espaco-info { padding: 10px 16px 8px; flex: 1; }
.espaco-titulo { font-size: 15px; font-weight: 700; color: var(--branco); margin-bottom: 4px; }
.espaco-desc { font-size: 12px; color: var(--texto-suave); line-height: 1.4; }

/* ── ATENDIMENTO ────────────────────────────────────────────── */
.atendimento-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.atendimento-card {
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color .2s;
}
.atendimento-card:hover { border-color: var(--vermelho); }
.atendimento-icon { font-size: 28px; }
.atendimento-title { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--vermelho); }
.atendimento-info { font-size: 14px; color: var(--texto-suave); line-height: 1.8; }
.atendimento-info a { color: var(--texto); border-bottom: 1px solid var(--borda); transition: color .2s, border-color .2s; }
.atendimento-info a:hover { color: var(--vermelho); border-color: var(--vermelho); }
.atendimento-info strong { color: var(--branco); }

/* ── FIQUE POR DENTRO / SHORTS ──────────────────────────────── */
.newsletter {
  background: var(--vermelho);
  padding: 56px 32px;
  text-align: center;
}
.newsletter h3 { font-family: var(--fonte-titulo); font-size: 36px; letter-spacing: .06em; color: #fff; margin-bottom: 8px; }
.newsletter p { color: rgba(255,255,255,0.8); font-size: 15px; margin-bottom: 28px; }
.shorts-grid {
  width: min(100%, 1040px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 18px;
  justify-items: center;
}
.shorts-card {
  width: min(100%, 240px);
  aspect-ratio: 9 / 16;
  background: rgba(0,0,0,0.28);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(0,0,0,0.28);
}
.shorts-card iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: 0;
}
.shorts-empty {
  max-width: 760px;
  margin: 0 auto;
  padding: 16px 18px;
  background: rgba(0,0,0,0.22);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: var(--radius);
  color: rgba(255,255,255,0.85);
  font-size: 14px;
}
.shorts-actions { margin-top: 26px; margin-bottom: 0; }
.shorts-actions .ver-mais { color: #fff; border-color: rgba(255,255,255,0.45); }
.shorts-grid-archive {
  width: min(100%, 1120px);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
}
.shorts-grid-archive .shorts-card { width: 100%; max-width: 250px; }

/* ── RODAPÉ ─────────────────────────────────────────────────── */
footer {
  background: var(--preto-med);
  border-top: 1px solid var(--borda);
}
.footer-inner { max-width: 1200px; margin: 0 auto; padding: 64px 32px 32px; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}
.footer-brand {}
.footer-logo { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.footer-logo-text { font-family: var(--fonte-titulo); font-size: 22px; letter-spacing: .06em; color: var(--branco); }
.footer-logo img { height: 40px; }
.footer-desc { font-size: 13px; color: var(--cinza-claro); line-height: 1.7; margin-bottom: 20px; }
.footer-redes { display: flex; gap: 10px; flex-wrap: wrap; }
.footer-redes a {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--cinza-claro);
  border: 1px solid var(--borda);
  padding: 5px 12px;
  border-radius: 100px;
  transition: color .2s, border-color .2s;
}
.footer-redes a:hover { color: var(--vermelho); border-color: var(--vermelho); }
.footer-col h4 { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--branco); margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid var(--borda); }
.footer-col ul li { margin-bottom: 10px; }
.footer-col ul li a { font-size: 13px; color: var(--cinza-claro); transition: color .2s; }
.footer-col ul li a:hover { color: var(--vermelho); }
.footer-horarios p { font-size: 13px; color: var(--cinza-claro); margin-bottom: 10px; line-height: 1.5; }
.footer-horarios strong { color: var(--branco); display: block; }
.footer-bottom {
  border-top: 1px solid var(--borda);
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  font-size: 12px;
  color: var(--cinza-claro);
  flex-wrap: wrap;
}
.footer-bottom a { color: var(--cinza-claro); transition: color .2s; }
.footer-bottom a:hover { color: var(--vermelho); }

/* ── SINGLE / PAGE ──────────────────────────────────────────── */
/* Wrapper alinhado à logo (mesmo max-width e padding do nav-inner) */
.post-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 48px 32px 64px;
}
.post-inner {
  max-width: 820px; /* texto legível, sem esticar demais */
}
.post-meta-topo {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.post-data {
  font-size: 12px;
  color: var(--cinza-claro);
  letter-spacing: .04em;
}
.post-titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(28px, 5vw, 52px);
  color: var(--branco);
  letter-spacing: .03em;
  line-height: 1.05;
  margin-bottom: 28px;
  text-transform: uppercase;
}
.evento-titulo span { color: var(--vermelho); }
/* Foto da postagem — proporcional, nunca distorce nem recorta */
.post-thumb {
  width: 100%;
  max-width: 820px;
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 32px;
  background: #111;
  text-align: center;
}
.post-thumb img {
  width: 100%;
  height: auto;
  max-height: 600px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
}
.evento-post-thumb img {
  max-height: none;
}
.evento-post-thumb {
  aspect-ratio: auto;
  overflow: visible;
}
.single-noticia .post-thumb {
  aspect-ratio: auto;
  overflow: hidden;
}
.single-noticia .post-thumb img {
  height: auto;
  max-height: none;
  object-fit: contain;
}
.post-body {
  color: var(--texto-suave);
  font-size: 16px;
  line-height: 1.85;
}
.post-body h2, .post-body h3 {
  font-family: var(--fonte-titulo);
  color: var(--branco);
  margin: 32px 0 12px;
  letter-spacing: .04em;
}
.post-body p { margin-bottom: 20px; }
.post-body a { color: var(--vermelho); border-bottom: 1px solid rgba(208,32,32,.3); transition: border-color .2s; }
.post-body a:hover { border-color: var(--vermelho); }
.post-body img {
  width: 100%;
  height: auto;
  max-height: 600px;
  object-fit: contain;
  border-radius: var(--radius);
  margin: 20px 0;
  display: block;
  background: #111;
}
.post-nav {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--borda);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.estrutura-outros { margin-top: 34px; }
.estrutura-outros h2 {
  margin-bottom: 14px;
  color: var(--branco);
  font-family: var(--fonte-titulo);
  font-size: 22px;
  text-transform: uppercase;
}
.estrutura-outros-links { display: flex; flex-wrap: wrap; gap: 8px; }
.estrutura-outros-links a {
  padding: 9px 12px;
  border: 1px solid var(--borda);
  border-radius: 4px;
  color: var(--texto);
  font-size: 13px;
}
.estrutura-outros-links a:hover { border-color: var(--vermelho); color: var(--branco); }

/* Mantém compatibilidade com page.php */
.entry-content { max-width: 820px; margin: 0 auto; padding: 56px 32px; }
.entry-content h1, .entry-content h2 { font-family: var(--fonte-titulo); color: var(--branco); margin-bottom: 16px; }
.entry-content p { color: var(--texto-suave); margin-bottom: 20px; line-height: 1.8; }

/* ── AULAS — CARDS COM FOTO (home) ─────────────────────────── */
.aulas-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
}
.aula-card-foto {
  display: block;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  text-decoration: none;
  transition: transform .25s, border-color .25s, box-shadow .25s;
}
.aula-card-foto:hover {
  transform: translateY(-4px);
  border-color: var(--vermelho);
  box-shadow: 0 8px 28px rgba(208,32,32,.2);
}
.aula-card-img {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--cinza);
  display: flex;
  align-items: center;
  justify-content: center;
}
.aula-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s;
}
.aula-card-foto:hover .aula-card-img img { transform: scale(1.06); }
.aula-card-placeholder {
  font-size: 52px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--cinza);
}
.aula-card-body {
  padding: 10px 16px 8px;
}
.aula-card-titulo {
  font-size: 14px;
  font-weight: 700;
  color: var(--branco);
  line-height: 1.3;
  margin-bottom: 4px;
}
.aula-card-horario {
  font-size: 12px;
  color: var(--cinza-claro);
  line-height: 1.4;
}



/* ════════════════════════════════════════════════════════════
   RESPONSIVE — Tablet (≤ 1024px)
════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }

  .estrutura-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
  .estrutura-home-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
  .aulas-cards-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
  .post-wrap { padding: 36px 24px 48px; }
}


/* ════════════════════════════════════════════════════════════
   RESPONSIVE — Mobile largo (≤ 900px)
════════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
  /* Nav */
  .nav-links, .btn-portal { display: none; }
  .menu-toggle { display: block; }
  #site-navigation { position: relative; }
  .nav-inner { min-height: 84px; }
  .logo img { height: 64px; }

  /* Menu aberto */
  .nav-links.open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: var(--preto-med);
    padding: 8px 0 16px;
    border-bottom: 2px solid var(--vermelho);
    z-index: 999;
    box-shadow: 0 12px 32px rgba(0,0,0,.6);
    gap: 0;
  }
  .nav-links.open > li > a {
    padding: 12px 20px;
    border-radius: 0;
    font-size: 14px;
    border-bottom: 1px solid var(--borda);
  }
  .nav-links.open > li > .sub-menu {
    display: none;
    position: static;
    border: none;
    border-top: none;
    box-shadow: none;
    background: rgba(255,255,255,.04);
    padding: 0;
    border-radius: 0;
  }
  .nav-links.open > li.submenu-open > .sub-menu { display: block; }
  .nav-links.open > li > .sub-menu li a {
    padding: 10px 32px;
    border-bottom: 1px solid var(--borda);
    font-size: 13px;
  }
  .nav-links.open > li.menu-item-has-children > a::after { content: ' ▾'; }
  .nav-links.open > li.menu-item-has-children.submenu-open > a::after { content: ' ▴'; }

  /* Hero */
  .hero h1 { font-size: clamp(42px, 8vw, 68px); }

  /* Banners — esconde em mobile largo */


  /* Grids */
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .aulas-cards-grid { grid-template-columns: repeat(3, 1fr); }
}


/* ════════════════════════════════════════════════════════════
   RESPONSIVE — Mobile (≤ 700px)
════════════════════════════════════════════════════════════ */
@media (max-width: 700px) {
  .topbar { display: none; }




  .hero { min-height: auto; padding: 60px 0 50px; }
  .hero h1 { font-size: clamp(36px, 10vw, 52px); }
  .hero p { font-size: 15px; }
  .hero-btns { flex-direction: column; gap: 10px; }
  .hero-btns a { text-align: center; }

  .section { padding: 48px 16px; }
  .section-full { padding: 48px 0; }
  .section-full-inner { padding: 0 16px; }

  .cards-grid { grid-template-columns: 1fr; }
  .eventos-grid { grid-template-columns: 1fr; }
  .aulas-grid { grid-template-columns: repeat(2, 1fr); }
  .aulas-cards-grid { grid-template-columns: repeat(2, 1fr); }
  .atendimento-grid { grid-template-columns: 1fr 1fr; }
  .estrutura-grid { grid-template-columns: repeat(2, 1fr); }
  .estrutura-home-grid { grid-template-columns: 1fr 1fr; }

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

  .post-wrap { padding: 24px 16px 40px; }
  .post-inner { max-width: 100%; }
  .post-thumb { aspect-ratio: 4 / 3; }
  .evento-post-thumb {
    aspect-ratio: auto;
    overflow: visible;
  }
  .evento-post-thumb img {
    height: auto;
    max-height: none;
    object-fit: contain;
  }
}


/* ════════════════════════════════════════════════════════════
   RESPONSIVE — Mobile pequeno (≤ 480px)
════════════════════════════════════════════════════════════ */
@media (max-width: 480px) {
  .nav-inner { padding: 0 12px; }
  .logo-text .site-name { font-size: 16px; }

  .hero-content { padding: 0 16px; }
  .section-header { flex-direction: column; align-items: flex-start; gap: 8px; }

  .aulas-grid { grid-template-columns: 1fr 1fr; }
  .aulas-cards-grid { grid-template-columns: 1fr 1fr; }
  .atendimento-grid { grid-template-columns: 1fr; }
  .estrutura-grid { grid-template-columns: 1fr 1fr; }
  .estrutura-home-grid { grid-template-columns: 1fr; }

  .newsletter { padding: 44px 16px; }
  .shorts-grid { grid-template-columns: 1fr; gap: 14px; }
  .shorts-grid-archive { grid-template-columns: 1fr; }
  .shorts-card { width: min(100%, 260px); }

  .footer-bottom { flex-direction: column; text-align: center; gap: 8px; }

  .hero-heading-wrap { gap: 14px; }
  .hero-club-logo img { max-width: 80px; }
}



/* ── HERO WRAP + BANNER LATERAL ─────────────────────────────── */
/* banner lateral removido */

/* ── SLIDER DE DESTAQUES ────────────────────────────────────── */
.aci-hero-slider {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
  /* altura real via padding-bottom no spacer */
}
@media (max-width: 700px) {
  .aci-hero-slider { padding: 0 16px; }
}

/* Spacer garante a altura mesmo com slides em position:absolute */
.aci-slider-spacer {
  display: block;
  width: 100%;
  height: 480px;
  pointer-events: none;
}
@media (max-width: 700px) {
  .aci-slider-spacer { height: 300px; }
}

/* Container interno que recorta os slides */
.aci-slider-track {
  position: absolute;
  inset: 0 32px;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--preto-med);
}
@media (max-width: 700px) {
  .aci-slider-track { inset: 0 16px; }
}

.aci-slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  pointer-events: none;
  z-index: 1;
}
.aci-slide.active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}

/* Overlay principal: diagonal escurecendo à esquerda e base */
.aci-slide::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(110deg, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.55) 45%, rgba(0,0,0,0.08) 100%),
    linear-gradient(0deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.0) 40%);
  z-index: 1;
}
/* Vinheta nas bordas (topo + laterais) para profundidade extra */
.aci-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, transparent 50%, rgba(0,0,0,0.38) 100%);
  z-index: 1;
  pointer-events: none;
}

.aci-slide-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding: 0 48px;
}
@media (max-width: 600px) { .aci-slide-inner { padding: 0 20px; } }

.aci-slide-content { max-width: 520px; color: #fff; }

/* Animação de entrada: elementos sobem e aparecem */
@keyframes aci-slide-in {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}
.aci-slide.active .aci-slide-badge  { animation: aci-slide-in .55s cubic-bezier(.22,1,.36,1) .1s both; }
.aci-slide.active .aci-slide-titulo { animation: aci-slide-in .6s  cubic-bezier(.22,1,.36,1) .22s both; }
.aci-slide.active .aci-slide-desc   { animation: aci-slide-in .6s  cubic-bezier(.22,1,.36,1) .36s both; }
.aci-slide.active .aci-slide-btn    { animation: aci-slide-in .55s cubic-bezier(.22,1,.36,1) .50s both; }

.aci-slide-badge {
  display: inline-block;
  background: var(--vermelho);
  color: #fff;
  font-family: var(--fonte-corpo);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 14px;
}

.aci-slide-titulo {
  font-family: var(--fonte-titulo);
  font-size: clamp(2rem, 5vw, 3.2rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.05;
  text-shadow: 0 2px 10px rgba(0,0,0,0.5);
  margin-bottom: 14px;
}

.aci-slide-desc {
  font-family: var(--fonte-corpo);
  font-size: clamp(0.9rem, 1.8vw, 1.05rem);
  color: rgba(255,255,255,0.88);
  margin-bottom: 28px;
  line-height: 1.5;
}

.aci-slide-btn {
  display: inline-block;
  background: var(--vermelho);
  color: #fff;
  font-family: var(--fonte-corpo);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.03em;
  padding: 11px 28px;
  border-radius: 30px;
  text-decoration: none;
  transition: background .2s, transform .2s, box-shadow .2s;
}
.aci-slide-btn:hover {
  background: var(--vermelho-v);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(208,32,32,0.45);
}
.aci-slide-btn-ext {
  display: inline-block;
  font-size: 0.85em;
  margin-left: 4px;
  opacity: 0.85;
  vertical-align: middle;
}

/* Barra de progresso */
.aci-slider-timer {
  position: absolute;
  bottom: 0; left: 32px; right: 32px;
  height: 3px;
  width: 0%;
  background: var(--vermelho);
  z-index: 30;
  transition: width linear;
}
@media (max-width:700px) { .aci-slider-timer { left:16px; right:16px; } }

/* Setas */
.aci-slider-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 30;
  background: rgba(255,255,255,0.15);
  border: none;
  color: #fff;
  font-size: 1.4rem;
  width: 44px; height: 44px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
  backdrop-filter: blur(4px);
}
.aci-slider-arrow:hover { background: var(--vermelho); }
.aci-prev { left: 44px; }
.aci-next { right: 44px; }
@media (max-width:700px) { .aci-prev { left:20px; } .aci-next { right:20px; } }

/* Bolinhas */
.aci-slider-dots {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 30;
}
.aci-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: background .2s, transform .2s;
}
.aci-dot.active {
  background: var(--vermelho);
  transform: scale(1.25);
}

/* Campeonatos */
.campeonatos-home { background: #171717; }
.campeonatos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
}
.campeonato-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 100%;
  padding: 22px;
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
  transition: border-color .25s, transform .25s, box-shadow .25s;
}
.campeonato-card:hover {
  border-color: var(--vermelho);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.42);
}
.campeonato-card-top {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.campeonato-card-top strong {
  color: var(--branco);
  font-size: 18px;
  line-height: 1.25;
}
.campeonato-badge {
  width: fit-content;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--vermelho);
  border: 1px solid rgba(208,32,32,.42);
  border-radius: 4px;
  padding: 4px 8px;
  background: var(--vermelho-bg);
}
.campeonato-thumb {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--cinza);
}
.campeonato-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.campeonato-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.campeonato-stats span {
  font-size: 11px;
  font-weight: 700;
  color: var(--texto);
  border: 1px solid var(--borda);
  border-radius: 4px;
  padding: 5px 8px;
  background: rgba(255,255,255,.03);
}
.campeonato-card p {
  color: var(--texto-suave);
  font-size: 14px;
  line-height: 1.55;
}
.campeonato-inner { max-width: 1040px; }
.campeonato-bloco {
  margin-top: 42px;
  padding-top: 32px;
  border-top: 1px solid var(--borda);
}
.campeonato-regulamento {
  margin-top: 36px;
  padding: 26px;
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
}
.campeonato-regulamento .section-title { margin-bottom: 14px; }
.campeonato-atalhos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 28px 0;
  padding: 12px;
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
}
.campeonato-atalhos a {
  padding: 7px 10px;
  border: 1px solid var(--borda);
  border-radius: 4px;
  color: var(--texto);
  font-size: 12px;
  font-weight: 700;
}
.campeonato-atalhos a:hover { color: var(--branco); border-color: var(--vermelho); background: var(--vermelho-bg); }
.campeonato-single [id] { scroll-margin-top: 108px; }
.campeonato-bloco h2 { margin-bottom: 22px; }
.campeonato-bloco h3 {
  margin: 26px 0 12px;
  color: var(--branco);
  font-size: 14px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.times-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}
.time-card {
  padding: 18px;
  background: var(--preto-suave);
  border: 1px solid var(--borda);
  border-radius: 8px;
}
.time-card strong {
  display: block;
  color: var(--branco);
  margin-bottom: 10px;
}
.time-grupo {
  display: inline-block;
  margin: -2px 0 10px;
  padding: 3px 7px;
  border: 1px solid rgba(208,32,32,.45);
  border-radius: 4px;
  color: var(--vermelho);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.time-card ul,
.time-card ol {
  list-style: none;
  padding-left: 0;
  color: var(--texto-suave);
  font-size: 14px;
}
.time-card li { margin: 5px 0; }
.time-card ol,
.time-card ul { display: block; }
.time-card ol li,
.time-card ul li { display: block; width: 100%; }
.campeonato-subtitulo-grupo {
  margin: 22px 0 12px;
  color: var(--vermelho);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.campeonato-bloco .artilheiros-titulo {
  margin: 26px 0 12px;
  color: var(--branco);
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.patrocinadores-barra { padding:26px 32px; background:var(--preto-med); border-top:1px solid var(--borda); border-bottom:1px solid var(--borda); }
.patrocinadores-grid { max-width:1192px; margin:0 auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.patrocinador-item { display:block; aspect-ratio:2 / 1; overflow:hidden; background:transparent; border:1px solid var(--borda); border-radius:6px; }
.patrocinador-item img { width:100%; height:100%; object-fit:cover; display:block; }
.patrocinador-item:hover { border-color:var(--vermelho); }
.album-capa { position:relative; min-height:360px; overflow:hidden; border:1px solid var(--borda); border-radius:8px; margin-bottom:30px; display:flex; align-items:flex-end; }
.album-capa-imagem, .album-capa-imagem img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.album-capa::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.35)); }
.album-capa-conteudo { position:relative; z-index:1; width:min(700px,100%); padding:36px; color:var(--texto); }
.album-capa-conteudo .post-titulo { margin:12px 0; }
.aula-cabecalho { display:flex; align-items:center; gap:18px; margin-bottom:26px; }
.aula-icone { display:grid; place-items:center; width:68px; height:68px; flex:0 0 68px; border:1px solid var(--vermelho); border-radius:8px; background:var(--vermelho-bg); color:var(--branco); font-size:30px; }
.aula-cabecalho .card-tag { display:inline-block; margin-bottom:8px; }
.aula-imagem { aspect-ratio: 21 / 8; overflow:hidden; border-radius:8px; border:1px solid var(--borda); margin-bottom:0; }
.aula-imagem img { width:100%; height:100%; object-fit:cover; }
.aula-dados { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); border:1px solid var(--borda); border-top:0; background:var(--preto-suave); }
.aula-dados div { min-height:0; padding:14px 20px; border-right:1px solid var(--borda); }
.aula-dados div:last-child { border-right:0; }
.aula-dados span { display:block; margin-bottom:7px; color:var(--vermelho); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.aula-dados strong { color:var(--branco); font-size:14px; line-height:1.4; }
.aula-conteudo { max-width:780px; margin-top:30px; }
.aula-acao { margin-top:28px; }
.faq-lista { max-width:860px; margin:0 auto; border-top:1px solid var(--borda); }
.faq-item { border-bottom:1px solid var(--borda); }
.faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:21px 4px; color:var(--branco); font-weight:700; cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary span { color:var(--vermelho); font-size:24px; line-height:1; }
.faq-item[open] summary span { transform:rotate(45deg); }
.faq-resposta { max-width:720px; padding:0 4px 23px; color:var(--texto-suave); line-height:1.7; }
.estrutura-home-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.estrutura-home-grid .espaco-card { min-width:0; }
.estrutura-home-grid { align-items:stretch; }
.estrutura-home-grid .espaco-thumb { flex:0 0 auto; }
.archive-pagination { margin-top:48px; }
.noticias-archive,
.estrutura-archive { padding-top:56px; padding-bottom:64px; }
.campeonato-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--borda);
  border-radius: 8px;
  background: var(--preto-suave);
}
.campeonato-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
}
.campeonato-table th,
.campeonato-table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--borda);
  text-align: left;
  color: var(--texto-suave);
  font-size: 13px;
}
.campeonato-table th {
  color: var(--branco);
  background: rgba(255,255,255,.04);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.campeonato-table tr:last-child td { border-bottom: 0; }
.campeonato-table strong { color: var(--branco); }
.campeonato-classificacao th,
.campeonato-classificacao td {
  text-align: center;
}
.campeonato-classificacao th:first-child,
.campeonato-classificacao td:first-child {
  text-align: left;
}
.campeonato-artilheiros th:last-child,
.campeonato-artilheiros td:last-child {
  text-align: center;
}
.campeonato-artilheiros {
  min-width: 0;
  table-layout: fixed;
}
.campeonato-artilheiros th:last-child,
.campeonato-artilheiros td:last-child { width: 84px; }
.campeonato-confrontos-wrap {
  overflow-x: auto;
}
.campeonato-confrontos {
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
}
.campeonato-confrontos th:nth-child(1),
.campeonato-confrontos td:nth-child(1) { width: 18%; }
.campeonato-confrontos th:nth-child(2),
.campeonato-confrontos td:nth-child(2) { width: 24%; }
.campeonato-jogos-sem-rodada th:nth-child(1),
.campeonato-jogos-sem-rodada td:nth-child(1) { width: 24%; }
.campeonato-jogos-sem-rodada th:nth-child(2),
.campeonato-jogos-sem-rodada td:nth-child(2) { width: 76%; }
.campeonato-confrontos .confronto-meta {
  color: var(--texto-suave);
  font-weight: 700;
}
.campeonato-confrontos .confronto-jogo {
  color: var(--texto);
  line-height: 1.45;
}
.campeonato-confrontos .confronto-jogo strong { color: var(--branco); }
.confronto-versus {
  display: inline-block;
  margin: 0 8px;
  color: var(--vermelho);
  font-weight: 800;
}
.voltar-topo-wrap {
  margin-top: 36px;
  text-align: center;
}
.voltar-topo {
  display: inline-block;
  color: var(--branco);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Aulas semanais */
.aulas-semanais { padding-top: 56px; padding-bottom: 72px; }
.semana-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border: 1px solid var(--borda);
  border-radius: 8px;
  overflow: hidden;
  background: var(--preto-suave);
}
.semana-dia { min-width: 0; border-right: 1px solid var(--borda); }
.semana-dia:last-child { border-right: 0; }
.semana-dia h2 {
  min-height: 54px;
  display: grid;
  place-items: center;
  padding: 10px 6px;
  border-bottom: 2px solid var(--vermelho);
  color: var(--branco);
  font-family: var(--fonte-titulo);
  font-size: 16px;
  text-align: center;
  text-transform: uppercase;
}
.semana-aulas { padding: 8px; }
.semana-aula { padding: 11px 8px; border-bottom: 1px solid var(--borda); }
.semana-aula:last-child { border-bottom: 0; }
.semana-aula time,
.semana-aula strong,
.semana-aula span { display: block; overflow-wrap: anywhere; }
.semana-aula time { margin-bottom: 4px; color: var(--vermelho); font-size: 10px; font-weight: 700; text-transform: uppercase; }
.semana-aula strong { color: var(--branco); font-size: 13px; line-height: 1.35; }
.semana-aula span { margin-top: 4px; color: var(--texto-suave); font-size: 11px; line-height: 1.4; }
.semana-aula .semana-local { color: var(--branco); opacity: .78; }
.semana-vazia { padding: 10px 6px; color: var(--cinza-claro); font-size: 11px; text-align: center; }
.agenda-resumo {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.agenda-resumo-dias {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  align-items: start;
}
.agenda-resumo-dia {
  overflow: hidden;
  border: 1px solid var(--borda);
  border-radius: 8px;
  background: var(--preto-suave);
}
.agenda-resumo-dia h3 {
  padding: 12px 14px;
  border-bottom: 2px solid var(--vermelho);
  color: var(--branco);
  font-family: var(--fonte-titulo);
  font-size: 16px;
  line-height: 1;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.agenda-resumo-dia-lista { display: grid; }
.agenda-resumo-dia .agenda-resumo-item {
  border: 0;
  border-bottom: 1px solid var(--borda);
  border-radius: 0;
  background: transparent;
}
.agenda-resumo-dia .agenda-resumo-item:last-child { border-bottom: 0; }
.agenda-resumo-item {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  padding: 14px;
  border: 1px solid var(--borda);
  border-radius: 8px;
  background: var(--preto-suave);
}
.agenda-resumo-quando {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  border-right: 1px solid var(--borda);
  padding-right: 12px;
}
.agenda-resumo-quando span {
  color: var(--vermelho);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.agenda-resumo-quando time {
  color: var(--branco);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}
.agenda-resumo-info strong,
.agenda-resumo-info span,
.agenda-resumo-info small { display: block; overflow-wrap: anywhere; }
.agenda-resumo-info strong { color: var(--branco); font-size: 14px; line-height: 1.35; }
.agenda-resumo-info span { margin-top: 4px; color: var(--texto-suave); font-size: 12px; }
.agenda-resumo-info small { margin-top: 4px; color: var(--cinza-claro); font-size: 11px; line-height: 1.4; }
.album-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  grid-auto-rows: 130px;
  gap: 8px;
  margin-top: 28px;
}
.album-photo {
  appearance: none;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 1px solid var(--borda);
  border-radius: 6px;
  overflow: hidden;
  background: var(--preto-suave);
  cursor: zoom-in;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.album-photo img { width: 100%; height: 100%; object-fit: cover; }
@media (hover: hover) {
  .album-photo:hover { z-index: 2; transform: scale(1.12); border-color: var(--vermelho); box-shadow: 0 12px 28px rgba(0,0,0,.55); }
}
.single-estrutura .album-photo-grid {
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  grid-auto-rows: 180px;
  gap: 12px;
}
.album-viewer {
  display: none;
  position: fixed;
  z-index: 10000;
  inset: 0;
  align-items: center;
  justify-content: center;
  padding: 34px 76px;
  background: rgba(0,0,0,.92);
}
.album-viewer.open { display: flex; }
.album-viewer img {
  width: min(800px, calc(100vw - 152px));
  height: auto;
  max-height: calc(100vh - 68px);
  object-fit: contain;
}
.album-viewer button {
  position: absolute;
  border: 0;
  color: #fff;
  background: rgba(255,255,255,.12);
  cursor: pointer;
}
.album-viewer-close { top: 18px; right: 18px; width: 40px; height: 40px; border-radius: 50%; font-size: 26px; }
.album-viewer-prev, .album-viewer-next { top: 50%; width: 46px; height: 58px; transform: translateY(-50%); font-size: 46px; line-height: 1; }
.album-viewer-prev { left: 16px; }
.album-viewer-next { right: 16px; }
body.album-viewer-open { overflow: hidden; }
@media (max-width: 700px) {
  .campeonatos-grid { grid-template-columns: 1fr; }
  .campeonato-card { padding: 18px; }
  .times-grid { grid-template-columns: 1fr; }
  .aula-dados div { border-right:0; border-bottom:1px solid var(--borda); }
  .aula-dados div:last-child { border-bottom:0; }
  .estrutura-home-grid, .estrutura-home-grid .espaco-card, .estrutura-home-grid .espaco-card:nth-child(5n+1) { grid-column:span 1; grid-template-columns:1fr; }
  .album-photo-grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 29vw; }
  .single-estrutura .album-photo-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 42vw; }
  .patrocinadores-barra { padding:20px; }
  .patrocinadores-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .album-capa { min-height:300px; }
  .album-capa-conteudo { padding:24px; }
  .semana-grid { grid-template-columns: 1fr; border-radius: 6px; }
  .semana-dia { border-right: 0; border-bottom: 1px solid var(--borda); }
  .semana-dia:last-child { border-bottom: 0; }
  .semana-dia h2 { min-height: 44px; place-items: center start; padding: 10px 14px; text-align: left; }
  .semana-aulas { padding: 4px 12px; }
  .semana-aula { display: grid; grid-template-columns: 96px minmax(0,1fr); column-gap: 10px; }
  .semana-aula time { grid-row: 1 / span 2; margin: 0; align-self: center; }
  .semana-aula span { grid-column: 2; }
  .agenda-resumo { grid-template-columns: 1fr; }
  .agenda-resumo-item { grid-template-columns: 88px minmax(0, 1fr); padding: 12px; }
  .home-section-link { text-align: left; }
  .album-viewer { padding: 20px 46px; }
  .album-viewer img { width: min(800px, calc(100vw - 92px)); max-height: calc(100vh - 48px); }
  .album-viewer-prev, .album-viewer-next { display: block; width: 38px; height: 52px; font-size: 38px; }
  .album-viewer-prev { left: 4px; }
  .album-viewer-next { right: 4px; }
}
