/* ==========================================================================
   BMC 2.0 — Landing (index.php)
   Depende de bmc2.css.
   ========================================================================== */

body{ background: var(--paper); overflow-x:hidden; }
.section{ padding: 80px 20px; }
.row{ margin-left:auto; margin-right:auto; }

/* ---------- Banner ---------- */
.banner{ position:relative; background:#fff; border-bottom:1px solid var(--hair); }
.banner img{ display:block; width:100%; height:auto; }
.banner .index-banner-slider{ margin:0; }
.slick-prev,.slick-next{ z-index:5; width:46px; height:46px; border-radius:50%; background: rgba(255,255,255,.9); box-shadow: var(--sh-2); transition: all .2s ease; }
.slick-prev{ left:16px; } .slick-next{ right:16px; }
.slick-prev:hover,.slick-next:hover{ background: var(--c1); }
.slick-prev:before,.slick-next:before{ color: var(--c1); font-size:22px; opacity:1; line-height:46px; }
.slick-prev:hover:before,.slick-next:hover:before{ color:#fff; }
.slick-dots{ bottom:14px; }
.slick-dots li button:before{ font-size:10px; color:#fff; opacity:.6; }
.slick-dots li.slick-active button:before{ color: var(--c2); opacity:1; }

/* ---------- Contagem regressiva ---------- */
.countdown-section{
  position:relative; overflow:hidden; text-align:center; padding: 56px 20px 60px;
  background:
    radial-gradient(700px 260px at 15% 0%, rgba(var(--c2-rgb), .38), transparent 70%),
    radial-gradient(600px 260px at 90% 100%, rgba(var(--c1-rgb), .6), transparent 70%),
    var(--c1-dd) !important;
  color:#fff;
}
.countdown-section::before{
  content:''; position:absolute; inset:0; opacity:.07;
  background-image: repeating-linear-gradient(135deg, #fff 0 1px, transparent 1px 14px);
}
.countdown-title{
  position:relative; font-family: var(--f-display); font-weight:700; text-transform:uppercase; letter-spacing:.22em;
  font-size: clamp(.95rem, 2.2vw, 1.25rem); color: rgba(255,255,255,.82); margin: 0 0 26px;
}
.countdown-container{ position:relative; display:flex; justify-content:center; gap: clamp(10px, 2.2vw, 22px); flex-wrap:wrap; }
.countdown-box{
  min-width: clamp(78px, 14vw, 128px); padding: 18px 12px 14px;
  background: rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-radius: var(--r);
  backdrop-filter: blur(6px); box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.countdown-value{
  font-family: var(--f-display); font-weight:800; font-size: clamp(2.6rem, 7vw, 4.6rem); line-height:.95;
  font-variant-numeric: tabular-nums; color:#fff; text-shadow: 0 4px 24px rgba(0,0,0,.35);
}
.countdown-label{ margin-top:8px; font-size:.66rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color: var(--c2); }
.countdown-ended{ position:relative; font-family: var(--f-display); font-size:1.8rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.countdown-ended[hidden]{ display:none; }

/* ---------- Números ---------- */
.combined-stats-section{ padding: 72px 20px; background: var(--paper); }
.index-numeros-ativos.combined-stats-section{
  background:
    radial-gradient(800px 320px at 85% 0%, rgba(var(--c2-rgb), .28), transparent 70%),
    linear-gradient(135deg, var(--c1), var(--c1-dd)) !important;
  color:#fff;
}
.stats-columns{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns: repeat(2, 1fr); gap: 56px; }
.index-numeros-ativos .stats-columns{ grid-template-columns: 1fr; }
.stats-title{
  font-family: var(--f-display); font-weight:800; text-transform:uppercase; letter-spacing:.03em; text-align:center;
  font-size: clamp(1.7rem, 3.6vw, 2.5rem); color: var(--ink); margin: 0 0 34px;
}
.stats-title::after{ content:''; display:block; width:64px; height:5px; border-radius:99px; margin:14px auto 0; background: linear-gradient(90deg,var(--c1),var(--c2)); }
.index-numeros-ativos .stats-title{ color:#fff; }
.index-numeros-ativos .stats-title::after{ background: linear-gradient(90deg,#fff,var(--c2)); }
.stats-container{ display:grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap:16px; }
.stat-card{
  position:relative; text-align:center; padding: 26px 14px 22px; background: var(--card); border:1px solid var(--hair);
  border-radius: var(--r); box-shadow: var(--sh-1); transition: transform .22s ease, box-shadow .22s ease;
}
.stat-card:hover{ transform: translateY(-5px); box-shadow: var(--sh-3); }
.stat-icon{ width:46px; height:46px; margin:0 auto 12px; display:flex; align-items:center; justify-content:center; border-radius:14px; background: var(--c1-t); color: var(--c1); font-size:1.15rem; }
.stat-value{ font-family: var(--f-display); font-weight:800; font-size: clamp(2.2rem, 4.4vw, 3rem); line-height:1; color: var(--ink); font-variant-numeric: tabular-nums; }
.stat-labelSP,.stat-labelNE{ margin-top:8px; font-size:.64rem; font-weight:700; letter-spacing:.14em; color: var(--mute); text-transform:uppercase; }
.stats-column.ne .stat-icon{ background: var(--c2-t); color: var(--c2-d); }
.stats-column.ne .stats-title::after{ background: linear-gradient(90deg,var(--c2),var(--c1)); }
.index-numeros-ativos .stat-card{ background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18); box-shadow:none; backdrop-filter: blur(8px); }
.index-numeros-ativos .stat-card:hover{ background: rgba(255,255,255,.15); }
.index-numeros-ativos .stat-icon{ background: rgba(255,255,255,.14); color:#fff; }
.index-numeros-ativos .stat-value{ color:#fff; }
.index-numeros-ativos .stat-labelSP{ color: rgba(255,255,255,.72); }
.stat-value.counting{ animation: bmcCount .5s ease; }
@keyframes bmcCount{ from{ opacity:.4; transform: translateY(4px) } to{ opacity:1; transform:none } }
@media (max-width: 900px){ .stats-columns{ grid-template-columns: 1fr; gap:44px; } }

/* ---------- Próximas partidas ---------- */
.partidas-section{ padding: 84px 20px 76px; background: var(--paper); }
.partidas-section > div{ max-width:1280px; margin:0 auto; }
.partidas-section .row{ display:flex; flex-wrap:wrap; margin: 0 -9px !important; }
.partidas-section .row > [class*="col"]{ padding: 0 9px; float:none; }
#partidas .proxima-partida-extra{ display:none !important; }
.classificacao-section{ background:#fff; }

/* ---------- Equipes & Classificação (hub por naipe) ---------- */
.index-resumo-edicao-section{ padding: 84px 20px; background:#fff; border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); }
.index-resumo-edicao-container{ max-width:1280px; margin:0 auto; }
.index-naipe-hub{ margin-top: 20px; padding: 26px; border:1px solid var(--hair); border-radius: var(--r-lg); background: var(--paper); }
.index-naipe-hub + .index-naipe-hub{ margin-top: 30px; }
.gender-title{
  display:inline-flex; align-items:center; gap:12px; font-family: var(--f-display); font-weight:800; font-size:1.5rem; letter-spacing:.14em; text-transform:uppercase;
  padding: 8px 22px 8px 12px; border-radius:999px; color:#fff; margin-bottom: 20px;
}
.gender-title i{ width:38px; height:38px; border-radius:50%; background: rgba(255,255,255,.2); display:inline-flex; align-items:center; justify-content:center; font-size:1rem; }
.gender-title.fem{ background: linear-gradient(135deg, var(--c1), var(--c1-d)); }
.gender-title.mas{ background: linear-gradient(135deg, var(--c2), var(--c2-d)); }

.index-naipe-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom: 22px; }
.index-naipe-tab{
  font-family: var(--f-body); font-weight:700; font-size:.78rem; letter-spacing:.07em; padding: 10px 18px; border-radius:999px; cursor:pointer;
  border:1.5px solid var(--hair); background:#fff; color: var(--ink-2); transition: all .16s ease;
}
.index-naipe-tab:hover{ border-color: var(--c1); color: var(--c1); transform: translateY(-1px); }
.index-naipe-hub--fem .index-naipe-tab.is-active{ background: var(--c1); border-color: var(--c1); color:#fff; box-shadow: 0 6px 16px rgba(var(--c1-rgb),.28); }
.index-naipe-hub--mas .index-naipe-tab.is-active{ background: var(--c2); border-color: var(--c2); color:#fff; box-shadow: 0 6px 16px rgba(var(--c2-rgb),.28); }
.index-naipe-panel[hidden]{ display:none; }

.index-naipe-equipes{ margin-bottom: 22px; }
.index-naipe-equipes-empty{ text-align:center; color: var(--mute); }
.index-naipe-equipes-logos-block{ display:flex; flex-direction:column; gap:12px; background:#fff; border:1px solid var(--hair); border-radius: var(--r); padding: 18px; }
.index-naipe-equipes-logos-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.index-naipe-equipe-logo{ width:68px; height:68px; display:flex; align-items:center; justify-content:center; border-radius:16px; background: var(--paper); border:1px solid var(--hair-2); padding:8px; transition: all .18s ease; }
.index-naipe-equipe-logo:hover{ transform: translateY(-4px) scale(1.05); box-shadow: var(--sh-2); border-color: var(--c1-t2); background:#fff; }
.index-naipe-equipe-logo img{ max-width:100%; max-height:100%; object-fit:contain; }

.index-naipe-classif{ display:flex; flex-direction:column; gap:16px; }
.index-naipe-classif-empty{ text-align:center; padding:26px; color: var(--mute); background:#fff; border:1px dashed var(--hair); border-radius: var(--r); }
.index-naipe-grupos-row{ display:grid; gap:16px; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.index-naipe-grupos-row--n1{ grid-template-columns: minmax(280px, 560px); justify-content:center; }
.index-naipe-grupos-row--n2{ grid-template-columns: repeat(2, minmax(0,1fr)); }
.index-naipe-grupos-row--n3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.index-naipe-grupos-row--n4{ grid-template-columns: repeat(4, minmax(0,1fr)); }
.index-naipe-grupos-row--n5{ grid-template-columns: repeat(5, minmax(0,1fr)); }
.index-classif-grupo-cell{ min-width:0; display:flex; }
.index-classif-grupo-cell .class-card{ width:100%; }
.index-naipe-hub--mas .class-head .card-topbar{ background: linear-gradient(90deg, var(--c2), var(--c1)); }
.index-classif-table .team-cell span,.index-classif-table .team-cell-link span{ font-size:.82rem; max-width: 150px; white-space:nowrap; }
.index-naipe-footer{ display:flex; justify-content:center; margin-top: 22px; }
@media (max-width: 1180px){ .index-naipe-grupos-row--n4,.index-naipe-grupos-row--n5{ grid-template-columns: repeat(2, minmax(0,1fr)); } .index-naipe-grupos-row--n3{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 720px){ .index-naipe-hub{ padding:16px; } .index-naipe-grupos-row,.index-naipe-grupos-row--n2,.index-naipe-grupos-row--n3,.index-naipe-grupos-row--n4,.index-naipe-grupos-row--n5{ grid-template-columns:1fr; } .index-naipe-equipe-logo{ width:58px; height:58px; } }

/* ---------- Ginásios ---------- */
.index-ginasios-section{ padding: 84px 20px; background: var(--paper); }
.ginasios-row{ display:grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 22px; }
.index-ginasio-card-col{ min-width:0; }
.index-ginasio-card-col .card-shell{ height:100%; transition: transform .22s ease, box-shadow .22s ease; }
.index-ginasio-card-col .card-shell:hover{ transform: translateY(-4px); box-shadow: var(--sh-3); }
.index-ginasio-card-col .card-body{ display:flex; flex-direction:column; gap:10px; height:100%; }
.index-ginasios-section .ginasio-title{ font-family: var(--f-display) !important; font-size: 1.55rem !important; letter-spacing:.02em; line-height:1.1 !important; margin:0; }
.index-ginasios-section .ginasio-address{ color: var(--mute) !important; font-size:.9rem !important; }
.map-wrap{ margin-top:auto; border-radius: var(--r) !important; border:1px solid var(--hair) !important; }
.map-wrap iframe{ display:block; width:100% !important; height:240px !important; border:0; }

/* ---------- VouAí ---------- */
.vouai-partner-section{ padding: 72px 20px; background:#fff; border-top:1px solid var(--hair); }
.vouai-partner-wrap{ max-width: 980px; margin: 0 auto; }
.vouai-partner-card{
  position:relative; overflow:hidden; text-align:center; padding: 44px 36px; border-radius: var(--r-lg);
  background: linear-gradient(135deg, #064e3b, #0f766e); color:#fff; box-shadow: var(--sh-3);
}
.vouai-partner-card::before{ content:''; position:absolute; width:380px; height:380px; right:-120px; top:-140px; border-radius:50%; background: rgba(255,255,255,.08); }
.vouai-partner-logo{ position:relative; max-width: 190px; margin: 0 auto 18px; display:block; background:#fff; padding:14px 22px; border-radius: var(--r); }
.vouai-partner-title{ position:relative; font-family: var(--f-display); font-weight:700; font-size: clamp(1.4rem, 3vw, 2rem); line-height:1.15; color:#fff; margin: 0 0 10px; }
.vouai-partner-subtitle{ position:relative; color: rgba(255,255,255,.82); margin:0 auto 22px; max-width: 560px; }
.vouai-partner-ctas{ position:relative; display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.vouai-partner-btn{ display:inline-flex; align-items:center; gap:9px; padding: 12px 22px; border-radius:999px; background:#fff; color:#064e3b !important; font-weight:700; font-size:.82rem; letter-spacing:.04em; text-transform:uppercase; transition: all .18s ease; border:1.5px solid #fff; }
.vouai-partner-btn:hover{ transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.25); }
.vouai-partner-btn--outline{ background: transparent; color:#fff !important; border-color: rgba(255,255,255,.55); }
.vouai-partner-btn--outline:hover{ background: rgba(255,255,255,.14); }
.vouai-partner-link{ position:relative; margin: 20px 0 0; }
.vouai-partner-link a{ color: rgba(255,255,255,.85) !important; font-size:.86rem; text-decoration: underline; text-underline-offset:4px; }

/* ---------- Campeões (edição anterior) ---------- */
.Nchampions-section{ background:#fff; border-top:1px solid var(--hair); }
.Nchampions-section > .row{ max-width:1280px; margin: 0 auto; display:grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.Nchampions-section > .row > .col{ width:auto; padding:0; float:none; }
.Nchampions-container{ display:grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.Nchampion-card6{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding: 20px 14px 18px;
  background: var(--paper); border:1px solid var(--hair); border-radius: var(--r); transition: all .22s ease;
}
.Nchampion-card6:hover{ transform: translateY(-5px); box-shadow: var(--sh-3); background:#fff; }
.Nchampion-image{ width:92px; height:92px; display:flex; align-items:center; justify-content:center; }
.Nchampion-image img{ max-width:100%; max-height:100%; object-fit:contain; filter: drop-shadow(0 6px 12px rgba(17,20,27,.18)); }
.Nchampion-info{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.Nchampion-category{ font-family: var(--f-display); font-weight:800; font-size:1.25rem; letter-spacing:.08em; color: var(--c1); }
.Nchampion-category.ne{ color: var(--c2-d); }
.Nchampion-info .btn{ padding: 8px 18px; font-size:.7rem; }
@media (max-width: 900px){ .Nchampions-section > .row{ grid-template-columns:1fr; gap:44px; } }

/* ---------- Galeria ---------- */
.gallery-section{ background: var(--paper); }
.gallery-section > .row{ max-width:1280px; margin:0 auto; display:grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.gallery-section > .row > .col{ width:auto; padding:0; float:none; }
.gallery-container{ display:grid; grid-template-columns: repeat(4, 1fr); gap:8px; }
.gallery-item{ position:relative; aspect-ratio:1/1; overflow:hidden; border-radius: var(--r-sm); cursor:zoom-in; background: var(--hair); }
.gallery-item img{ width:100%; height:100%; object-fit:cover; transition: transform .45s ease, filter .3s ease; display:block; }
.gallery-item:hover img{ transform: scale(1.09); filter: brightness(1.05) saturate(1.08); }
@media (max-width: 900px){ .gallery-section > .row{ grid-template-columns:1fr; gap:44px; } }
@media (max-width: 520px){ .gallery-container{ grid-template-columns: repeat(3, 1fr); } }

#modal{ display:none; position:fixed; inset:0; z-index:99998; background: rgba(8,10,14,.92); backdrop-filter: blur(6px); align-items:center; justify-content:center; }
#modal .modal-content{ position:relative; max-width: min(92vw, 1100px); max-height:90vh; overflow:visible; background:transparent; box-shadow:none; padding:0; width:auto; }
#modal-image{ max-width:100%; max-height:88vh; border-radius: var(--r); box-shadow: var(--sh-3); display:block; }
.modal-close{ position:absolute; top:18px; right:26px; font-size:2.6rem; line-height:1; color:#fff; cursor:pointer; z-index:5; opacity:.85; transition: all .15s ease; }
.modal-close:hover{ opacity:1; color: var(--c2); }
.modal-nav{ position:absolute; top:50%; transform: translateY(-50%); width:48px; height:48px; border-radius:50%; background: rgba(255,255,255,.14); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1.4rem; user-select:none; transition: all .15s ease; }
.modal-nav:hover{ background: var(--c1); }
.modal-prev{ left:-64px; } .modal-next{ right:-64px; }
@media (max-width: 700px){ .modal-prev{ left:8px; } .modal-next{ right:8px; } }

/* ---------- Apoio na landing ---------- */
#apoio.section-pad{ background:#fff; border-top:1px solid var(--hair); }

/* Colunas dentro de grids próprios: neutraliza a largura do grid do Materialize */
.Nchampions-section > .row > .col,
.gallery-section > .row > .col{ width:auto !important; float:none !important; margin-left:0 !important; min-width:0; }
.Nchampions-container{ grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); }

img.vouai-partner-logo{ max-width: 190px; width:auto; height:auto; }

/* ---------- Campeões (várias edições, em abas) ---------- */
.index-campeoes-section{ padding: 84px 20px 76px; background: #fff; border-top:1px solid var(--hair); }
.index-campeoes-wrap{ max-width: 1280px; margin: 0 auto; }
.index-campeoes-tabs{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin: 0 0 22px; }
.index-campeoes-tab{
  display:inline-flex; align-items:baseline; gap:8px; padding: 10px 22px; border-radius:999px; cursor:pointer;
  border:1.5px solid var(--hair); background:#fff; color: var(--ink-2); transition: all .16s ease;
}
.index-campeoes-tab__sigla{ font-family: var(--f-display); font-weight:800; font-size:1.3rem; letter-spacing:.06em; }
.index-campeoes-tab__ano{ font-size:.82rem; font-weight:700; opacity:.7; }
.index-campeoes-tab:hover{ border-color: var(--c1); color: var(--c1); transform: translateY(-1px); }
.index-campeoes-tab.is-active{ background: linear-gradient(135deg, var(--c1), var(--c1-d)); border-color: var(--c1); color:#fff; box-shadow: 0 8px 20px rgba(var(--c1-rgb), .3); }
.index-campeoes-panel[hidden]{ display:none; }
.index-campeoes-edicao{ text-align:center; margin: 0 0 28px; font-family: var(--f-display); font-weight:700; font-size:1.15rem; letter-spacing:.2em; color: var(--mute); }
.index-campeoes-naipe{ margin-bottom: 34px; }
.index-campeoes-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 16px; }
.index-campeao-card{
  display:flex; flex-direction:column; align-items:center; text-align:center; padding: 20px 14px 16px; background: var(--paper);
  border:1px solid var(--hair); border-radius: var(--r); transition: transform .22s ease, box-shadow .22s ease, background .22s ease; position:relative; overflow:hidden;
}
.index-campeao-card::before{ content:''; position:absolute; inset:0 0 auto 0; height:4px; background: linear-gradient(90deg, var(--c1), var(--c2)); }
.index-campeao-card--mas::before{ background: linear-gradient(90deg, var(--c2), var(--c1)); }
.index-campeao-card:hover{ transform: translateY(-5px); box-shadow: var(--sh-3); background:#fff; }
.index-campeao-cat{ margin: 4px 0 14px; font-family: var(--f-display); font-weight:800; font-size:1.2rem; letter-spacing:.06em; color: var(--c1); line-height:1.1; min-height: 2.2em; display:flex; align-items:center; justify-content:center; }
.index-campeao-champ{ display:flex; flex-direction:column; align-items:center; gap:10px; flex:1; width:100%; }
.index-campeao-medal{ width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family: var(--f-display); font-weight:800; font-size:1rem; color:#3b2f00; background: linear-gradient(145deg, #ffe566, #f4c430); box-shadow: 0 4px 12px rgba(0,0,0,.18); }
.index-campeao-logo-link{ width:92px; height:92px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#fff; box-shadow: 0 0 0 1px var(--hair), var(--sh-1); }
.index-campeao-logo{ width:78%; height:78%; object-fit:contain; }
.index-campeao-nome{ font-weight:800; font-size:.86rem; text-transform:uppercase; letter-spacing:.03em; color: var(--ink); line-height:1.2; }
.index-campeao-footer{ margin-top: 14px; }
.index-campeao-veja{ padding: 8px 18px; font-size:.7rem; }

/* ---------- Números e Fotos por edição (N colunas) ---------- */
.stats-columns--auto{ grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); }
@media (max-width: 520px){ .stats-columns--auto{ grid-template-columns: 1fr; } }
.gallery-cols{ max-width:1280px; margin:0 auto; display:grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap:56px; }
.gallery-col{ min-width:0; }
@media (max-width: 520px){ .gallery-cols{ grid-template-columns:1fr; gap:44px; } }
