@charset "utf-8";
/* =====================================================================
   KM SPORTS — design system do site público (novo padrão visual)
   Tokens: --km-accent / --km-accent-rgb / --km-accent-texto / --km-escuro
           (definidos por pg/includes/km_tema.php, por organizador/evento)
   Layouts do evento: body.km-layout-imersivo | km-layout-card | km-layout-editorial
   ===================================================================== */
:root{
  --km-accent:#0d6efd; --km-accent-rgb:13,110,253; --km-accent-texto:#7db4ff;
  --km-escuro:#070b14; --km-lima:#cbff00;
  --km-glow:rgba(var(--km-accent-rgb),.35); --km-glow-forte:rgba(var(--km-accent-rgb),.6);
  --km-bg:#f6f8fb; --km-bg2:#eef3fa; --km-surface:#fff; --km-borda:#e5eaf2; --km-borda2:#dbe3ef;
  --km-texto:#0b1220; --km-texto2:#5c6b82; --km-texto3:#8494ab;
  --km-azul:#0d6efd; --km-azul2:#3d8bfd; --km-azul-bg:#eaf2ff;
  --km-verde:#2e7d32; --km-whats1:#25d366; --km-whats2:#1fb457;
  --km-font:'Space Grotesk',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --km-font-titulo:'Archivo','Space Grotesk',sans-serif;
  --km-r-pill:99px; --km-r-btn:12px; --km-r-card:20px; --km-r-sec:28px;
  --km-container:1180px;
}
body.km-layout-editorial{ --km-bg:#f1f3f6; --km-r-btn:4px; --km-r-card:6px; --km-r-sec:6px; --km-r-pill:4px; --km-container:1240px; }

/* ---------- base ---------- */
body.km{ font-family:var(--km-font); background:var(--km-bg); color:var(--km-texto); font-size:15px; line-height:1.5; }
body.km *{ box-sizing:border-box; }
body.km a{ font-size:inherit; font-family:inherit; color:inherit; }
body.km a:link, body.km a:visited{ color:inherit; font-size:inherit; }
body.km ::selection{ background:var(--km-accent); color:#fff; }
body.km > section{ display:block; padding:0 !important; overflow:visible; }
body.km.km-topo-solido > section:first-of-type{ padding-top:96px !important; }
@media (max-width:980px){ body.km.km-topo-solido > section:first-of-type{ padding-top:80px !important; } }
body.km h1,body.km h2,body.km h3{ margin:0; font-weight:700; letter-spacing:-.02em; line-height:1.1; }
body.km p{ margin:0; }
body.km .km-util{ max-width:var(--km-container); margin:0 auto; padding:0 24px; }
body.km.km-topo-solido > section:first-of-type{ padding-top:72px; }
body.km.km-topo-solido .util{ text-align:inherit; }
.km-hidden{ display:none !important; }
.km-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* neutraliza o header/footer antigos (config.css) */
body.km header:not(.km-header), body.km footer:not(.km-footer), body.km #menu2start, body.km .cart_mobile{ display:none !important; }

/* ---------- celular: sem rolagem lateral; logos sempre contidas ----------
   overflow-x:clip (hidden de reserva) no html E no body: só no body o iOS ignora e sobra a
   "faixa vazia" à direita. As logos do topo/rodapé ganham teto de tamanho AQUI, fora da cadeia
   de classes de cada tela, para nunca renderizarem no tamanho natural (1024px) por cima das
   barras fixas (temporizador da reserva, cookies, WhatsApp). */
/* as duas regras ficam SEPARADAS de propósito: num navegador sem :has() a lista
   "html:has(...), body.km" inteira seria descartada e o body perderia o overflow também */
body.km{ overflow-x:hidden; overflow-x:clip; }
html:has(body.km){ overflow-x:hidden; overflow-x:clip; }
body.km img{ max-width:100%; }
body.km .km-header .km-logo img, body.km img.km-logo-org, body.km .km-footer-km img, body.km .km-footer-marca img{ width:auto; height:auto; max-height:40px; object-fit:contain; }
body.km .km-header .km-logo img{ height:34px; max-width:190px; }
body.km img.km-logo-org{ height:26px; max-width:150px; }
body.km .km-footer-km img{ height:16px; max-width:120px; }
body.km .km-footer-marca img{ height:28px; max-width:180px; }

/* ---------- animações ---------- */
@keyframes km-sweep{0%{transform:translateX(-100%)}100%{transform:translateX(220%)}}
@keyframes km-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes km-pulse{0%,100%{opacity:.35}50%{opacity:.8}}
@keyframes km-marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes km-live{0%{box-shadow:0 0 0 0 rgba(203,255,0,.6)}70%{box-shadow:0 0 0 7px rgba(203,255,0,0)}100%{box-shadow:0 0 0 0 rgba(203,255,0,0)}}
@keyframes km-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
@keyframes km-rise{0%{transform:translateY(36px);opacity:0}100%{transform:translateY(0);opacity:1}}
@keyframes km-confete{0%{transform:translateY(-8vh) rotate(0deg)}100%{transform:translateY(105vh) rotate(720deg)}}
@keyframes km-onda{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.55);opacity:0}}
@keyframes km-timer{0%,100%{opacity:.5}50%{opacity:1}}

/* ---------- ícones Phosphor: tamanho base ---------- */
body.km .ph{ line-height:1; vertical-align:middle; }

/* =====================================================================
   HEADER
   ===================================================================== */
.km-header{ position:fixed; top:0; left:0; right:0; z-index:1000; background:transparent; border-bottom:1px solid transparent; transition:background .35s,border-color .35s,box-shadow .35s; }
.km-header.km-header-solido, .km-header.km-scrolled{ background:rgba(7,11,20,.55); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-color:rgba(255,255,255,.1); box-shadow:0 8px 32px rgba(0,0,0,.35); }
.km-header.km-header-marca{ background:rgba(10,8,8,.88); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-color:rgba(255,255,255,.08); }
.km-header.km-header-marca.km-scrolled{ background:rgba(10,8,8,.94); }
body.km .km-header .km-util{ display:flex; align-items:center; gap:32px; padding:17px 24px; transition:padding .3s ease; }
body.km .km-header.km-scrolled .km-util{ padding:11px 24px; }
.km-header .km-logo{ display:flex; flex:none; align-items:center; }
.km-header .km-logo img{ height:34px; width:auto; max-width:190px; object-fit:contain; display:block; transition:height .3s ease; }
.km-header.km-scrolled .km-logo img{ height:30px; }
.km-header .km-logo .km-mono{ width:36px; height:36px; border-radius:50%; background:var(--km-accent); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:12px; margin-right:10px; }
.km-header .km-logo span.km-nome{ color:#fff; font-weight:700; font-size:16px; }
.km-header nav.km-nav{ display:flex; gap:20px; margin-left:auto; align-items:center; flex-wrap:wrap; justify-content:flex-end; min-width:0; }
.km-header nav.km-nav > a, .km-header nav.km-nav > span > a{ color:rgba(255,255,255,.75); font-size:14.5px; font-weight:500; text-decoration:none; cursor:pointer; white-space:nowrap; }
.km-header nav.km-nav > a:hover, .km-header nav.km-nav > span > a:hover{ color:#fff; }
.km-header .km-cta{ display:inline-flex; align-items:center; gap:7px; color:#fff !important; font-size:13.5px; font-weight:600; background:var(--km-accent); padding:9px 18px; border-radius:var(--km-r-pill); box-shadow:0 0 22px var(--km-glow); }
.km-header .km-cta:hover{ box-shadow:0 0 34px var(--km-glow-forte); }
.km-header .km-cta.km-cta-grad{ background:linear-gradient(135deg,var(--km-azul),var(--km-azul2)); }
.km-header .km-cart{ position:relative; display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.2); border-radius:50%; color:#fff !important; }
.km-header .km-cart:hover{ border-color:#fff; }
.km-header .km-cart .km-qtd{ position:absolute; top:-4px; right:-4px; min-width:17px; height:17px; border-radius:99px; background:var(--km-accent); color:#fff; font-size:10.5px; font-weight:700; display:flex; align-items:center; justify-content:center; padding:0 4px; }
.km-header .km-burger{ display:none; margin-left:auto; align-items:center; justify-content:center; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:10px; padding:8px 10px; cursor:pointer; color:#fff; font-family:inherit; }
.km-header .km-burger i{ font-size:22px; }
/* AO VIVO */
.km-live{ display:flex; align-items:center; gap:9px; border:1px solid rgba(203,255,0,.4); background:rgba(203,255,0,.08); padding:7px 15px; border-radius:99px; color:#fff !important; }
.km-live:hover{ background:rgba(203,255,0,.16); border-color:rgba(203,255,0,.65); }
.km-live .km-dot{ width:8px; height:8px; border-radius:50%; background:var(--km-lima); animation:km-live 1.6s ease-out infinite; }
.km-live .km-rotulo{ font-size:11px; font-weight:700; letter-spacing:.1em; color:var(--km-lima); }
.km-live .km-ticker{ display:block; height:18px; overflow:hidden; width:clamp(96px,14vw,168px); }
.km-live .km-ticker > span{ display:block; transition:transform .45s ease; }
.km-live .km-ticker > span > span{ display:flex; align-items:center; height:18px; font-size:12.5px; font-weight:600; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* com prova acontecendo hoje o badge fica mais evidente */
.km-live.km-live-on{ border-color:rgba(203,255,0,.7); background:rgba(203,255,0,.14); box-shadow:0 0 22px rgba(203,255,0,.18); }
.km-live.km-live-on:hover{ background:rgba(203,255,0,.22); }
.km-live .km-live-qtd{ display:flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:99px; background:var(--km-lima); color:#0b1220; font-size:10.5px; font-weight:700; }
/* AO VIVO no drawer (mobile): lista das provas de hoje */
.km-drawer .km-live-mob-bloco{ display:flex; flex-direction:column; gap:2px; padding:12px 6px 6px; }
.km-drawer .km-live-mob-bloco .km-live-mob-tit{ display:flex; align-items:center; gap:9px; }
.km-drawer .km-live-mob-bloco .km-dot{ width:8px; height:8px; border-radius:50%; background:var(--km-lima); animation:km-live 1.6s ease-out infinite; }
.km-drawer .km-live-mob-bloco .km-rotulo{ font-size:12px; font-weight:700; letter-spacing:.1em; color:var(--km-lima); }
.km-drawer .km-live-mob-bloco .km-live-mob-tit small{ font-size:11.5px; color:rgba(255,255,255,.45); }
.km-drawer .km-live-mob-bloco > a{ color:#fff !important; font-size:15px; font-weight:600; padding:10px 0; border-bottom:1px solid rgba(255,255,255,.07); }
.km-drawer .km-live-mob-bloco > a small{ font-size:13px; font-weight:500; color:rgba(255,255,255,.5); }
/* mega menu — ancorado sob o link "Eventos", sem vao de hover */
.km-mega-wrap{ position:relative; display:flex; align-self:stretch; align-items:center; }
.km-mega{ position:absolute; top:100%; left:-22px; padding-top:14px; z-index:1060; display:none; }
.km-mega-wrap:hover .km-mega, .km-mega-wrap.km-aberto .km-mega{ display:block; animation:km-mega-in .22s ease both; }
@keyframes km-mega-in{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:translateY(0); } }
.km-mega > div{ width:min(760px,calc(100vw - 32px)); background:rgba(10,15,26,.97); backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); border:1px solid rgba(255,255,255,.12); border-radius:22px; box-shadow:0 30px 80px -20px rgba(0,0,0,.65); display:grid; grid-template-columns:1fr 290px; gap:18px; padding:20px; }
.km-mega .km-mega-col{ display:flex; flex-direction:column; gap:4px; }
.km-mega .km-mega-tit{ font-size:11px; font-weight:700; letter-spacing:.14em; color:rgba(255,255,255,.4); padding:6px 12px 8px; }
.km-mega .km-mega-item{ display:flex; align-items:center; gap:14px; padding:11px 12px; border-radius:14px; color:#fff !important; transition:background .2s,transform .2s; }
.km-mega .km-mega-item:hover{ background:rgba(255,255,255,.08); transform:translateX(2px); }
.km-mega .km-mega-item .km-ico{ width:44px; height:44px; border-radius:12px; background:rgba(13,110,253,.18); border:1px solid rgba(61,139,253,.3); display:flex; align-items:center; justify-content:center; flex:none; }
.km-mega .km-mega-item .km-ico i{ font-size:22px; color:#7db4ff; }
.km-mega .km-mega-item b{ display:block; font-size:15px; font-weight:600; }
.km-mega .km-mega-item small{ display:block; font-size:12.5px; color:rgba(255,255,255,.45); margin-top:2px; }
.km-mega .km-mega-todos{ margin-top:6px; display:flex; align-items:center; gap:8px; padding:10px 12px; border-radius:12px; font-size:13.5px; font-weight:600; color:var(--km-accent-texto) !important; border:1px dashed rgba(255,255,255,.16); justify-content:center; }
.km-mega .km-mega-todos:hover{ border-color:var(--km-accent-texto); background:rgba(255,255,255,.05); }
.km-mega .km-mega-org{ background:linear-gradient(160deg,rgba(13,110,253,.28),rgba(203,255,0,.08)); border:1px solid rgba(61,139,253,.35); border-radius:16px; padding:18px; display:flex; flex-direction:column; gap:12px; }
.km-mega .km-mega-org .km-mega-tit2{ display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700; letter-spacing:.14em; color:var(--km-lima); }
.km-mega .km-mega-org p{ font-size:12.5px; line-height:1.5; color:rgba(255,255,255,.6); }
.km-mega .km-mega-org .km-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.km-mega .km-mega-org .km-grid a{ display:flex; flex-direction:column; align-items:center; gap:8px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:13px 8px; color:#fff !important; transition:border-color .2s,background .2s; }
.km-mega .km-mega-org .km-grid a:hover{ border-color:var(--km-lima); background:rgba(255,255,255,.1); }
.km-mega .km-mega-org .km-grid a span.km-mono{ width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#0b1220; overflow:hidden; text-shadow:0 1px 2px rgba(255,255,255,.35); }
.km-mega .km-mega-org .km-grid a span.km-mono img{ width:100%; height:100%; object-fit:contain; border-radius:50%; }
.km-mega .km-mega-org .km-grid a span.km-nm{ font-size:11.5px; font-weight:600; text-align:center; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.km-mega .km-mega-org .km-mega-org-todos{ display:flex; align-items:center; justify-content:center; gap:6px; font-size:12.5px; font-weight:600; color:#fff !important; opacity:.75; }
.km-mega .km-mega-org .km-mega-org-todos:hover{ opacity:1; }
@media (max-width:1180px){ .km-mega{ left:auto; right:-22px; } }
@media (max-width:1120px){ .km-mega > div{ grid-template-columns:1fr 250px; } }
/* drawer mobile */
.km-drawer{ display:none; background:rgba(7,11,20,.97); backdrop-filter:blur(20px); border-bottom:1px solid rgba(255,255,255,.1); padding:10px 24px 26px; flex-direction:column; gap:2px; max-height:calc(100vh - 60px); overflow-y:auto; }
.km-header.km-header-marca .km-drawer{ background:rgba(10,8,8,.97); }
.km-drawer.km-aberto{ display:flex; }
.km-drawer > a{ color:#fff !important; font-size:16.5px; font-weight:600; padding:13px 6px; border-bottom:1px solid rgba(255,255,255,.07); text-decoration:none; }
.km-drawer .km-drawer-tit{ font-size:11px; font-weight:700; letter-spacing:.14em; color:rgba(255,255,255,.4); padding:14px 6px 8px; }
.km-drawer .km-drawer-orgs{ display:flex; gap:8px; flex-wrap:wrap; padding:0 6px 14px; }
.km-drawer .km-drawer-orgs a{ display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:99px; padding:6px 14px 6px 6px; color:#fff !important; font-size:13px; font-weight:600; }
.km-drawer .km-drawer-orgs a span.km-mono{ width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; color:#0b1220; overflow:hidden; }
.km-drawer .km-drawer-orgs a span.km-mono img{ width:100%; height:100%; object-fit:contain; }
.km-drawer .km-cta{ margin-top:14px; text-align:center; color:#fff !important; font-size:15px; font-weight:600; background:var(--km-accent); padding:14px; border-radius:14px; justify-content:center; display:flex; }
.km-drawer .km-live-mob{ display:flex; align-items:center; gap:10px; padding:14px 6px; color:#fff; }
.km-drawer .km-live-mob .km-dot{ width:8px; height:8px; border-radius:50%; background:var(--km-lima); animation:km-live 1.6s ease-out infinite; }
.km-drawer .km-live-mob .km-rotulo{ font-size:12px; font-weight:700; letter-spacing:.1em; color:var(--km-lima); }
@media (max-width:980px){
  .km-header nav.km-nav{ display:none; }
  /* topo do celular: logo 190px + carrinho + burger + gaps de 32px passavam de 360px e o burger saía da tela */
  body.km .km-header .km-util{ gap:14px; padding-left:16px; padding-right:16px; }
  .km-header .km-logo{ min-width:0; flex:0 1 auto; }
  body.km .km-header .km-logo img{ max-width:min(190px, 48vw); }
  .km-header .km-burger{ display:flex; }
  .km-header .km-header-cart-mob{ display:flex; margin-left:auto; }
  .km-header .km-header-cart-mob + .km-burger{ margin-left:0; }
  /* carrinho vazio fica .km-hidden (display:none) e levava o margin-left:auto junto: o burger colava na logo */
  .km-header .km-header-cart-mob.km-hidden + .km-burger{ margin-left:auto; }
}

/* =====================================================================
   COMPONENTES
   ===================================================================== */
.km-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; font-family:inherit; font-weight:700; font-size:15px; padding:14px 28px; border-radius:var(--km-r-btn); border:none; text-decoration:none; transition:box-shadow .25s,background .25s,color .25s,border-color .25s,opacity .25s; line-height:1.2; }
.km-btn i{ font-size:17px; }
.km-btn-accent{ background:var(--km-accent); color:#fff !important; box-shadow:0 0 28px var(--km-glow); }
.km-btn-accent:hover{ box-shadow:0 0 44px var(--km-glow-forte); color:#fff !important; }
.km-btn-grad{ background:linear-gradient(135deg,var(--km-azul),var(--km-azul2)); color:#fff !important; box-shadow:0 0 24px rgba(13,110,253,.45); }
.km-btn-grad:hover{ box-shadow:0 0 36px rgba(13,110,253,.7); }
.km-btn-glass{ border:1px solid rgba(255,255,255,.28); color:#fff !important; font-weight:600; backdrop-filter:blur(6px); background:rgba(255,255,255,.04); }
.km-btn-glass:hover{ border-color:#fff; background:rgba(255,255,255,.1); }
.km-btn-outline{ border:1.5px solid var(--km-accent); color:var(--km-accent) !important; background:#fff; font-weight:600; font-size:14.5px; padding:11px 20px; }
.km-btn-outline:hover{ background:var(--km-accent); color:#fff !important; }
.km-btn-escuro{ background:var(--km-escuro); color:#fff !important; font-weight:600; font-size:14.5px; padding:13px 24px; }
.km-btn-escuro:hover{ opacity:.85; }
.km-btn-whats{ background:linear-gradient(135deg,var(--km-whats1),var(--km-whats2)); color:#fff !important; box-shadow:0 0 32px rgba(37,211,102,.3); }
.km-btn-whats:hover{ box-shadow:0 0 44px rgba(37,211,102,.55); }
.km-btn-sm{ padding:9px 16px; font-size:13.5px; border-radius:10px; }
.km-btn-bloco{ width:100%; }
body.km-layout-editorial .km-btn-accent{ box-shadow:none; }
body.km-layout-editorial .km-btn-accent:hover{ filter:brightness(1.12); box-shadow:none; }

.km-tag{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:7px 16px; border-radius:var(--km-r-pill); white-space:nowrap; }
.km-tag-accent{ color:#fff; background:var(--km-accent); box-shadow:0 0 22px var(--km-glow); }
.km-tag-glass{ color:rgba(255,255,255,.65); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(6px); }
.km-tag-azul{ color:#fff; background:rgba(13,110,253,.9); backdrop-filter:blur(6px); padding:6px 12px; letter-spacing:.06em; }
.km-tag-lima{ color:var(--km-lima); border:1px solid rgba(203,255,0,.45); background:linear-gradient(135deg,rgba(203,255,0,.14),rgba(203,255,0,.04)); box-shadow:0 0 18px rgba(203,255,0,.18); padding:6px 14px; letter-spacing:.12em; }
.km-chip{ display:inline-flex; align-items:center; font-size:12px; font-weight:600; color:var(--km-accent); background:rgba(var(--km-accent-rgb),.09); padding:4px 11px; border-radius:var(--km-r-pill); }
.km-chip-glass{ font-size:13px; font-weight:700; color:#fff; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.07); backdrop-filter:blur(6px); padding:8px 18px; }
.km-chip-azul{ color:#8fbcff; border:1px solid rgba(61,139,253,.4); background:transparent; font-size:12.5px; }
.km-sobretitulo{ font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--km-accent); margin-bottom:10px; }
.km-sobretitulo.km-cinza{ color:var(--km-texto2); }
.km-h2{ font-size:clamp(26px,3.4vw,40px); }
.km-h2-lg{ font-size:clamp(30px,3.6vw,44px); }
.km-sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:36px; flex-wrap:wrap; }
.km-sec-head .km-link{ font-weight:600; font-size:15px; color:var(--km-accent) !important; }
.km-card{ background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); }
.km-sec{ max-width:var(--km-container); margin:0 auto; padding:clamp(40px,6vw,56px) 24px; }
.km-sec-dark{ background:var(--km-escuro); color:#fff; }

/* avatar / monograma */
.km-mono{ display:inline-flex; align-items:center; justify-content:center; font-weight:700; color:#0b1220; background:linear-gradient(135deg,#7db4ff,#0d6efd); border-radius:50%; overflow:hidden; }
.km-mono img{ width:100%; height:100%; object-fit:contain; }

/* card de evento (home + organizador) */
.km-grid-eventos{ display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:24px; }
.km-ev{ background:#fff; border:1px solid var(--km-borda); border-radius:var(--km-r-card); overflow:hidden; display:flex; flex-direction:column; transition:transform .25s,box-shadow .25s; color:inherit !important; text-decoration:none; }
.km-ev:hover{ transform:translateY(-6px); box-shadow:0 20px 50px -20px rgba(var(--km-accent-rgb),.35); }
.km-ev .km-ev-img{ position:relative; height:180px; overflow:hidden; background:#0b1220; }
.km-ev .km-ev-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.km-ev:hover .km-ev-img img{ transform:scale(1.05); }
.km-ev .km-ev-img:after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,11,20,.15),transparent 40%,rgba(7,11,20,.35)); }
/* As regras absolutas seguem valendo para o markup antigo (a badge solta dentro da imagem,
   como no card do painel do participante). O markup novo passa pela faixa .km-ev-topo. */
.km-ev .km-ev-data{ position:absolute; z-index:2; top:14px; left:14px; background:rgba(7,11,20,.85); backdrop-filter:blur(6px); color:#fff; font-size:12px; font-weight:700; padding:7px 13px; border-radius:10px; }
.km-ev .km-ev-mod{ position:absolute; z-index:2; top:14px; right:14px; background:var(--km-accent); color:#fff; font-size:11px; font-weight:700; letter-spacing:.06em; padding:6px 12px; border-radius:var(--km-r-pill); text-transform:uppercase; }
/* FAIXA SUPERIOR DO CARD: data à esquerda, modalidades à direita, numa linha só.
   Antes as duas eram absolutas no mesmo topo e a lista de modalidades crescia sobre a data. */
.km-ev .km-ev-topo{ position:absolute; z-index:2; top:14px; left:14px; right:14px; display:flex; align-items:flex-start; gap:8px; pointer-events:none; }
.km-ev .km-ev-topo .km-ev-data{ position:static; top:auto; left:auto; flex:0 0 auto; white-space:nowrap; }
.km-ev .km-ev-topo .km-ev-mods{ margin-left:auto; min-width:0; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; pointer-events:auto; }
.km-ev .km-ev-topo .km-ev-mod{ position:static; top:auto; right:auto; max-width:172px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.km-ev .km-ev-topo .km-ev-mod-mais{ background:rgba(7,11,20,.85); backdrop-filter:blur(6px); }
@media (max-width:560px){
  .km-ev .km-ev-topo{ top:10px; left:10px; right:10px; gap:6px; }
  .km-ev .km-ev-topo .km-ev-data{ font-size:11px; padding:6px 10px; }
  .km-ev .km-ev-topo .km-ev-mod{ font-size:10px; padding:5px 9px; max-width:104px; }
}
.km-ev .km-ev-enc{ position:absolute; z-index:2; bottom:14px; left:14px; background:rgba(255,255,255,.9); color:#0b1220; font-size:11px; font-weight:700; letter-spacing:.06em; padding:5px 11px; border-radius:99px; }
.km-ev.km-ev-encerrado .km-ev-img img{ filter:grayscale(.6); }
.km-ev .km-ev-body{ padding:22px; display:flex; flex-direction:column; gap:12px; flex:1; }
.km-ev h3{ font-size:21px; font-weight:700; letter-spacing:-.01em; }
.km-ev .km-ev-local{ display:flex; align-items:center; gap:7px; font-size:14px; color:var(--km-texto2); }
.km-ev .km-ev-local i{ font-size:16px; color:var(--km-accent); }
.km-ev .km-ev-chips{ display:flex; gap:7px; flex-wrap:wrap; }
.km-ev .km-btn-outline{ margin-top:auto; }
.km-ev-org{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--km-texto3); }
.km-ev-org .km-mono{ width:22px; height:22px; font-size:9px; }

/* filtros de modalidade */
.km-filtros{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px; }
.km-filtros button{ cursor:pointer; font-family:inherit; font-size:13.5px; font-weight:600; padding:9px 20px; border-radius:99px; border:1px solid var(--km-borda2); background:#fff; color:#33415a; transition:all .2s; }
.km-filtros button:hover{ border-color:var(--km-accent); }
.km-filtros button.km-ativo{ background:linear-gradient(135deg,var(--km-accent),rgba(var(--km-accent-rgb),.8)); border-color:var(--km-accent); color:#fff; box-shadow:0 6px 20px -6px var(--km-glow-forte); }

/* =====================================================================
   HOME KM
   ===================================================================== */
.km-hero{ position:relative; overflow:hidden; background:radial-gradient(1200px 600px at 70% -10%,rgba(13,110,253,.28),transparent 60%),radial-gradient(800px 500px at 10% 110%,rgba(61,139,253,.18),transparent 60%),#070b14; color:#fff; padding:110px 0 48px; min-height:calc(100vh - var(--km-barra-h, 0px)); display:flex; align-items:center; }
.km-hero .km-fx{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.km-hero .km-fx span{ position:absolute; left:0; height:1px; }
.km-hero .km-fx span:nth-child(1){ top:18%; width:45%; background:linear-gradient(90deg,transparent,rgba(61,139,253,.9),transparent); animation:km-sweep 5s linear infinite; }
.km-hero .km-fx span:nth-child(2){ top:64%; width:35%; background:linear-gradient(90deg,transparent,rgba(125,180,255,.7),transparent); animation:km-sweep 8s linear 2s infinite; }
.km-hero .km-fx span:nth-child(3){ top:86%; width:55%; background:linear-gradient(90deg,transparent,rgba(13,110,253,.6),transparent); animation:km-sweep 6.5s linear 1s infinite; }
.km-hero .km-fx span:nth-child(4){ bottom:-120px; top:auto; right:20%; left:auto; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle,rgba(13,110,253,.25),transparent 70%); filter:blur(20px); animation:km-pulse 6s ease-in-out infinite; }
.km-hero .km-hero-grid{ position:relative; width:100%; max-width:var(--km-container); margin:0 auto; padding:0 24px; display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(36px,5vw,64px); align-items:center; }
.km-hero .km-hero-txt{ display:flex; flex-direction:column; gap:26px; }
.km-hero .km-badge{ display:inline-flex; align-items:center; gap:10px; align-self:flex-start; border:1px solid rgba(61,139,253,.4); background:rgba(13,110,253,.12); padding:7px 16px; border-radius:99px; font-size:13px; font-weight:600; letter-spacing:.06em; color:#8fbcff; text-transform:uppercase; }
.km-hero .km-badge i{ width:7px; height:7px; border-radius:50%; background:#3d8bfd; box-shadow:0 0 12px #3d8bfd; display:block; }
.km-hero h1{ font-size:clamp(40px,5.2vw,68px); line-height:1.02; }
.km-hero h1 span{ background:linear-gradient(90deg,#3d8bfd,#7db4ff 60%,#0d6efd); -webkit-background-clip:text; background-clip:text; color:transparent; }
.km-hero .km-hero-txt p{ max-width:480px; font-size:17px; line-height:1.6; color:rgba(255,255,255,.62); }
.km-busca{ display:flex; flex-wrap:wrap; gap:10px; max-width:540px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:16px; padding:8px; backdrop-filter:blur(8px); }
.km-busca input{ flex:1; min-width:180px; background:transparent; border:none; outline:none; color:#fff; font-size:15.5px; padding:12px 14px; font-family:inherit; }
.km-busca input::placeholder{ color:rgba(255,255,255,.45); }
.km-busca button{ border:none; cursor:pointer; background:linear-gradient(135deg,#0d6efd,#3d8bfd); color:#fff; font-weight:600; font-size:15px; padding:12px 26px; border-radius:11px; font-family:inherit; box-shadow:0 0 28px rgba(13,110,253,.5); }
.km-busca button:hover{ box-shadow:0 0 40px rgba(13,110,253,.8); }
.km-hero .km-ultimas{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:13px; color:rgba(255,255,255,.45); }
.km-hero .km-ultimas a{ color:#8fbcff !important; border:1px solid rgba(61,139,253,.35); padding:5px 13px; border-radius:99px; font-weight:500; }
.km-hero .km-ultimas a:hover{ background:rgba(13,110,253,.15); color:#fff !important; }
.km-hero .km-hero-card-wrap{ position:relative; display:flex; justify-content:center; }
.km-hero .km-hero-card{ position:relative; width:340px; max-width:100%; animation:km-float 7s ease-in-out infinite; }
.km-hero .km-hero-card:before{ content:''; position:absolute; inset:-40px; background:radial-gradient(circle,rgba(13,110,253,.35),transparent 70%); filter:blur(30px); }
.km-hero .km-hero-card > div{ position:relative; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:22px; padding:26px; backdrop-filter:blur(12px); display:flex; flex-direction:column; gap:18px; }
.km-hero .km-hero-card .km-hc-top{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.km-hero .km-hero-card .km-hc-top span:first-child{ font-size:12px; letter-spacing:.12em; color:rgba(255,255,255,.5); font-weight:600; }
.km-hero .km-hero-card .km-hc-top span:last-child{ font-size:11px; font-weight:700; color:#0b1220; background:linear-gradient(135deg,#7db4ff,#3d8bfd); padding:4px 11px; border-radius:99px; white-space:nowrap; }
.km-hero .km-hero-card .km-hc-nome{ font-size:24px; font-weight:700; line-height:1.15; }
.km-hero .km-hero-card .km-hc-local{ display:flex; align-items:center; gap:7px; font-size:14px; color:rgba(255,255,255,.6); }
.km-hero .km-hero-card .km-hc-local i{ font-size:16px; color:#7db4ff; }
.km-hero .km-hero-card .km-hc-chips{ display:flex; gap:8px; flex-wrap:wrap; }
.km-hero .km-hero-card .km-hc-chips span{ font-size:12.5px; font-weight:600; color:#8fbcff; border:1px solid rgba(61,139,253,.4); padding:4px 12px; border-radius:99px; }
.km-countdown{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; text-align:center; }
.km-countdown div{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:12px; padding:10px 4px; }
.km-countdown div b{ display:block; font-size:22px; font-weight:700; color:#7db4ff; }
.km-countdown div small{ font-size:10px; letter-spacing:.1em; color:rgba(255,255,255,.45); }
.km-marquee{ background:var(--km-azul); overflow:hidden; padding:13px 0; position:relative; }
.km-marquee > div{ display:flex; gap:0; white-space:nowrap; width:max-content; font-weight:700; font-size:14px; letter-spacing:.14em; color:#fff; text-transform:uppercase; will-change:transform; }
.km-ver-mais{ display:flex; justify-content:center; margin-top:40px; }
.km-ver-mais a{ display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--km-texto) !important; font-size:15px; font-weight:600; }
.km-ver-mais a:hover{ color:var(--km-accent) !important; }
.km-ver-mais a span{ width:40px; height:40px; border-radius:50%; border:1.5px solid var(--km-accent); color:var(--km-accent); display:flex; align-items:center; justify-content:center; }
.km-ver-mais a span i{ font-size:19px; }
/* resultados recentes */
.km-recentes{ display:flex; flex-direction:column; gap:12px; }
.km-recentes a{ display:grid; grid-template-columns:110px 1fr auto auto; align-items:center; gap:20px; background:#fff; border:1px solid var(--km-borda); border-radius:16px; padding:18px 24px; color:inherit !important; transition:border-color .2s,box-shadow .2s; }
.km-recentes a:hover{ border-color:var(--km-accent); box-shadow:0 10px 30px -14px var(--km-glow); }
.km-recentes a span:nth-child(1){ font-size:13px; font-weight:600; color:var(--km-texto2); }
.km-recentes a span:nth-child(2){ font-size:17px; font-weight:700; }
.km-recentes a span:nth-child(3){ font-size:13px; color:var(--km-texto2); }
.km-recentes a span:nth-child(4){ font-size:14px; font-weight:600; color:var(--km-accent); }
/* números */
.km-numeros{ position:relative; overflow:hidden; background:radial-gradient(900px 400px at 50% -20%,rgba(13,110,253,.3),transparent 65%),#070b14; color:#fff; padding:88px 0; }
.km-numeros:before{ content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(61,139,253,.8),transparent); }
.km-numeros > div{ max-width:var(--km-container); margin:0 auto; padding:0 24px; display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:32px; text-align:center; }
.km-numeros b{ display:block; font-size:clamp(38px,4.5vw,56px); font-weight:700; background:linear-gradient(180deg,#fff,#7db4ff); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1.1; margin-bottom:8px; }
.km-numeros small{ font-size:14px; color:rgba(255,255,255,.55); letter-spacing:.04em; }
/* organizadores */
.km-grid-orgs{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:18px; }
.km-org{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--km-borda); border-radius:18px; padding:16px 18px; color:inherit !important; transition:transform .25s,box-shadow .25s,border-color .25s; }
.km-org:hover{ transform:translateY(-4px); border-color:var(--km-accent); box-shadow:0 20px 50px -24px rgba(7,11,20,.35); }
.km-org .km-mono{ width:52px; height:52px; font-size:15px; flex:none; background:#0b1220; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.12); }
.km-org .km-mono img{ padding:8px; }
.km-org b{ display:block; font-size:15px; font-weight:700; }
.km-org small{ display:block; font-size:12.5px; color:var(--km-texto2); }
/* serviços */
.km-servicos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:24px; }
.km-servico{ position:relative; background:#fff; border:1px solid var(--km-borda); border-radius:20px; padding:32px; display:flex; flex-direction:column; gap:14px; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.km-servico:hover{ transform:translateY(-6px); box-shadow:0 20px 50px -20px rgba(13,110,253,.35); }
.km-servico:before{ content:''; position:absolute; top:0; left:24px; right:24px; height:2px; background:linear-gradient(90deg,transparent,var(--km-azul),transparent); }
.km-servico .km-ico{ width:52px; height:52px; border-radius:14px; background:linear-gradient(135deg,#eaf2ff,#d5e5ff); display:flex; align-items:center; justify-content:center; }
.km-servico .km-ico i{ font-size:26px; color:var(--km-azul); }
.km-servico h3{ font-size:20px; }
.km-servico p{ font-size:15px; line-height:1.6; color:var(--km-texto2); }
/* sobre */
.km-sobre{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(32px,5vw,64px); align-items:center; }
.km-sobre .km-sobre-img{ position:relative; height:400px; border-radius:24px; overflow:hidden; background:#0b1220; }
.km-sobre .km-sobre-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.km-sobre .km-sobre-img:after{ content:''; position:absolute; inset:0; background:linear-gradient(200deg,rgba(13,110,253,.18),transparent 45%,rgba(7,11,20,.45)); }
.km-sobre .km-sobre-selo{ position:absolute; z-index:2; bottom:20px; left:20px; background:rgba(7,11,20,.85); backdrop-filter:blur(8px); color:#fff; padding:16px 22px; border-radius:16px; border:1px solid rgba(61,139,253,.35); }
.km-sobre .km-sobre-selo b{ display:block; font-size:24px; font-weight:700; color:#7db4ff; }
.km-sobre .km-sobre-selo small{ font-size:13px; color:rgba(255,255,255,.6); }
.km-sobre .km-sobre-txt{ display:flex; flex-direction:column; gap:20px; }
.km-sobre .km-sobre-txt p{ font-size:16px; line-height:1.7; color:var(--km-texto2); }
/* contato card escuro */
.km-contato{ position:relative; overflow:hidden; background:radial-gradient(700px 400px at 80% 0%,var(--km-glow),transparent 60%),var(--km-escuro); border-radius:var(--km-r-sec); color:#fff; padding:clamp(32px,6vw,64px); display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(28px,4vw,48px); align-items:center; }
.km-contato:before{ content:''; position:absolute; top:0; left:10%; right:10%; height:1px; background:linear-gradient(90deg,transparent,rgba(var(--km-accent-rgb),.9),transparent); }
.km-contato h2{ font-size:clamp(24px,3.2vw,38px); }
.km-contato p{ font-size:15px; line-height:1.65; color:rgba(255,255,255,.6); max-width:460px; }
.km-contato .km-contato-txt{ display:flex; flex-direction:column; gap:16px; }
.km-contato .km-contato-btns{ display:flex; flex-direction:column; gap:12px; }
.km-contato .km-contato-btns .km-obs{ text-align:center; font-size:13px; color:rgba(255,255,255,.45); }
.km-btn-glass-dark{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); color:#fff !important; font-weight:600; font-size:14.5px; }
.km-btn-glass-dark:hover{ background:rgba(255,255,255,.13); }

/* =====================================================================
   FOOTER
   ===================================================================== */
.km-footer{ background:var(--km-escuro); color:rgba(255,255,255,.55); padding:56px 0 32px; }
.km-footer .km-util{ display:flex; flex-direction:column; gap:36px; }
.km-footer .km-footer-top{ display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; align-items:flex-start; }
.km-footer .km-footer-marca{ display:flex; flex-direction:column; gap:14px; max-width:300px; }
.km-footer .km-footer-marca img{ height:28px; width:auto; align-self:flex-start; max-width:180px; object-fit:contain; }
.km-footer .km-footer-marca p{ font-size:13.5px; line-height:1.6; }
.km-footer nav{ display:flex; gap:28px; flex-wrap:wrap; }
.km-footer nav a{ color:rgba(255,255,255,.65) !important; font-size:14px; }
.km-footer nav a:hover{ color:#fff !important; }
.km-footer .km-footer-redes{ display:flex; gap:10px; flex-wrap:wrap; }
.km-footer .km-footer-redes a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; color:#fff !important; font-size:15px; }
.km-footer .km-footer-redes a:hover{ border-color:var(--km-accent); background:rgba(var(--km-accent-rgb),.15); }
.km-footer .km-footer-bottom{ border-top:1px solid rgba(255,255,255,.09); padding-top:22px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:rgba(255,255,255,.35); align-items:center; }
.km-footer .km-footer-bottom a{ color:rgba(255,255,255,.55) !important; }
.km-footer .km-footer-bottom a:hover{ color:#fff !important; }
.km-footer .km-footer-bottom .km-footer-redes{ display:flex; align-items:center; gap:10px; flex:none; }
/* com redes, os dois textos dividem o espaço em partes iguais e os ícones ficam no centro real */
.km-footer .km-footer-bottom.km-tem-redes > span:first-child{ flex:1 1 200px; }
.km-footer .km-footer-bottom.km-tem-redes > span:last-child{ flex:1 1 200px; text-align:right; }
.km-footer .km-footer-bottom .km-footer-redes a{ display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.05); color:rgba(255,255,255,.72) !important; font-size:15px; transition:background .25s,border-color .25s,color .25s,transform .25s; }
.km-footer .km-footer-bottom .km-footer-redes a:hover{ background:var(--km-accent); border-color:var(--km-accent); color:#fff !important; transform:translateY(-2px); }
@media (max-width:640px){ .km-footer .km-footer-bottom{ justify-content:center; text-align:center; } .km-footer .km-footer-bottom .km-footer-redes{ order:-1; margin:0 0 4px 0; } }
.km-footer .km-footer-km{ display:inline-flex; align-items:center; gap:8px; }
.km-footer .km-footer-km img{ height:16px; width:auto; }
.km-footer.km-footer-marca-org{ padding:40px 0; }
.km-footer.km-footer-marca-org .km-util{ flex-direction:row; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; }
.km-footer.km-footer-marca-org img.km-logo-org{ height:26px; width:auto; max-width:150px; object-fit:contain; }
.km-whats-flutuante{ position:fixed; right:22px; bottom:22px; z-index:990; width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg,var(--km-whats1),var(--km-whats2)); color:#fff !important; display:flex; align-items:center; justify-content:center; font-size:28px; box-shadow:0 10px 30px rgba(37,211,102,.45); }
.km-whats-flutuante:hover{ transform:scale(1.06); }

/* =====================================================================
   ORGANIZADOR
   ===================================================================== */
.km-org-hero{ position:relative; overflow:hidden; background:radial-gradient(900px 400px at 60% -20%,var(--km-glow),transparent 60%),#070b14; color:#fff; padding:124px 0 64px; }
.km-org-hero .km-util{ display:flex; flex-direction:column; gap:28px; }
.km-org-hero .km-voltar{ display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.55) !important; font-size:13.5px; font-weight:500; }
.km-org-hero .km-voltar:hover{ color:#fff !important; }
.km-org-hero .km-org-id{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.km-org-hero .km-org-id img{ height:76px; width:auto; max-width:300px; object-fit:contain; flex:none; margin-right:28px; }
.km-org-hero .km-org-id .km-mono{ width:84px; height:84px; border-radius:24px; font-size:26px; background:var(--km-accent); color:#fff; box-shadow:0 16px 40px -10px rgba(0,0,0,.5); flex:none; }
.km-org-hero .km-org-nome{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.km-org-hero h1{ font-size:clamp(20px,3.1vw,32px); line-height:1.05; }
.km-org-hero p{ max-width:560px; font-size:15.5px; line-height:1.6; color:rgba(255,255,255,.6); }
.km-outros-orgs{ background:var(--km-bg2); border:1px solid #e0e8f3; border-radius:24px; padding:clamp(24px,4vw,40px); }
.km-outros-orgs .km-sobretitulo{ margin-bottom:20px; }
.km-outros-orgs .km-lista{ display:flex; gap:12px; flex-wrap:wrap; }
.km-outros-orgs .km-lista a{ display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--km-borda2); border-radius:99px; padding:8px 18px 8px 8px; color:var(--km-texto) !important; font-size:14px; font-weight:600; transition:border-color .2s,box-shadow .2s; }
.km-outros-orgs .km-lista a:hover{ border-color:#0b1220; box-shadow:0 8px 20px -8px rgba(7,11,20,.3); }
.km-outros-orgs .km-lista a .km-mono{ width:32px; height:32px; font-size:11px; }

/* =====================================================================
   EVENTO — estrutura comum aos 3 layouts
   ===================================================================== */
.km-ev-hero{ position:relative; overflow:hidden; background:var(--km-escuro); color:#fff; padding:150px 0 90px; }
.km-ev-hero .km-ev-hero-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.22; filter:saturate(.6); }
.km-ev-hero .km-ev-hero-veu{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,8,8,.75),rgba(10,8,8,.25) 45%,var(--km-escuro)),radial-gradient(900px 460px at 65% 0%,var(--km-glow),transparent 60%); }
.km-ev-hero .km-ev-hero-in{ position:relative; max-width:var(--km-container); margin:0 auto; padding:0 24px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:20px; }
.km-ev-hero .km-voltar{ display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.55) !important; font-size:13px; font-weight:500; }
.km-ev-hero .km-voltar:hover{ color:#fff !important; }
.km-ev-hero .km-ev-tags{ display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; }
.km-ev-hero h1{ max-width:820px; font-size:clamp(38px,6vw,72px); line-height:1.02; text-shadow:0 10px 40px rgba(0,0,0,.6); }
.km-ev-hero .km-ev-dists{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.km-ev-hero .km-ev-ctas{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:6px; }
.km-ev-hero .km-ev-hero-side{ display:none; }
/* layout CARD: hero em cartão */
body.km-layout-card .km-ev-hero{ background:transparent; color:#fff; padding:82px 24px 0; overflow:visible; }
body.km-layout-card .km-ev-hero .km-ev-hero-card{ position:relative; overflow:hidden; border-radius:28px; background:var(--km-escuro); padding:clamp(48px,7vw,80px) clamp(24px,4vw,48px); box-shadow:0 30px 70px -30px rgba(7,11,20,.5); max-width:var(--km-container); margin:0 auto; }
body.km-layout-card .km-ev-hero .km-ev-hero-img{ opacity:.42; filter:saturate(.85); }
body.km-layout-card .km-ev-hero .km-ev-hero-veu{ background:linear-gradient(180deg,rgba(10,8,8,.56),rgba(10,8,8,.24) 45%,rgba(10,8,8,.76)),radial-gradient(900px 460px at 65% 0%,var(--km-glow),transparent 60%); }
body.km-layout-card .km-ev-hero .km-ev-hero-in{ max-width:820px; }
/* layout EDITORIAL: hero dividido */
body.km-layout-editorial .km-ev-hero{ background:transparent; color:var(--km-texto); padding:0; border-bottom:1px solid rgba(11,18,32,.14); overflow:visible; }
body.km-layout-editorial .km-ev-hero .km-ev-hero-img, body.km-layout-editorial .km-ev-hero .km-ev-hero-veu{ display:none; }
body.km-layout-editorial .km-ev-hero .km-ev-hero-card{ max-width:var(--km-container); margin:0 auto; padding:0 28px; display:grid; grid-template-columns:1.05fr .95fr; gap:0; align-items:stretch; }
body.km-layout-editorial .km-ev-hero .km-ev-hero-in{ padding:clamp(96px,11vw,150px) clamp(0px,3vw,48px) clamp(48px,6vw,72px) 0; align-items:flex-start; text-align:left; gap:24px; max-width:none; margin:0; }
body.km-layout-editorial .km-ev-hero .km-voltar{ color:rgba(11,18,32,.5) !important; font-size:11.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
body.km-layout-editorial .km-ev-hero .km-voltar:hover{ color:#0b1220 !important; }
body.km-layout-editorial .km-ev-hero .km-ev-tags{ justify-content:flex-start; gap:12px; }
body.km-layout-editorial .km-ev-hero .km-tag-accent{ background:none; box-shadow:none; color:var(--km-accent); padding:0; letter-spacing:.12em; }
body.km-layout-editorial .km-ev-hero .km-tag-accent:before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--km-accent); display:inline-block; }
body.km-layout-editorial .km-ev-hero .km-tag-glass{ border:none; padding:0; color:rgba(11,18,32,.45); backdrop-filter:none; letter-spacing:.12em; }
body.km-layout-editorial .km-ev-hero h1{ font-family:var(--km-font-titulo); font-weight:800; text-transform:uppercase; font-size:clamp(42px,6.4vw,80px); line-height:.9; letter-spacing:-.03em; text-shadow:none; max-width:none; }
body.km-layout-editorial .km-ev-hero h1 span{ display:block; color:var(--km-accent); }
body.km-layout-editorial .km-ev-hero .km-ev-dists{ justify-content:flex-start; gap:26px; border-top:1px solid rgba(11,18,32,.14); padding-top:20px; margin-top:4px; width:100%; }
body.km-layout-editorial .km-ev-hero .km-ev-dists .km-chip-glass{ border:none; background:none; backdrop-filter:none; padding:0; color:var(--km-texto); font-size:15px; font-weight:600; }
body.km-layout-editorial .km-ev-hero .km-ev-ctas{ justify-content:flex-start; gap:14px; align-items:center; }
body.km-layout-editorial .km-ev-hero .km-ev-ctas .km-btn-accent{ background:#0b1220; box-shadow:none; }
body.km-layout-editorial .km-ev-hero .km-ev-ctas .km-btn-accent:hover{ background:var(--km-accent); }
body.km-layout-editorial .km-ev-hero .km-ev-ctas .km-btn-glass{ background:none; border:none; backdrop-filter:none; color:var(--km-texto) !important; padding:0; border-bottom:1.5px solid rgba(11,18,32,.3); border-radius:0; padding-bottom:2px; font-size:14.5px; }
body.km-layout-editorial .km-ev-hero .km-ev-ctas .km-btn-glass:hover{ border-color:var(--km-accent); color:var(--km-accent) !important; }
body.km-layout-editorial .km-ev-hero .km-ev-hero-side{ display:block; position:relative; min-height:560px; overflow:hidden; background:#0b1220; }
body.km-layout-editorial .km-ev-hero .km-ev-hero-side img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
body.km-layout-editorial .km-ev-hero .km-ev-hero-side span{ position:absolute; left:0; bottom:0; background:var(--km-accent); color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.12em; padding:12px 20px; text-transform:uppercase; }
@media (max-width:980px){
  body.km-layout-editorial .km-ev-hero .km-ev-hero-card{ grid-template-columns:1fr; }
  body.km-layout-editorial .km-ev-hero .km-ev-hero-side{ min-height:320px; }
}

/* =====================================================================
   HERÓI DO ORGANIZADOR (Eventos > Banners) — substitui o herói automático
   Um slide por banner ativo; com mais de um vira carrossel.
   ===================================================================== */
.km-ev-hero.km-ev-hero-so-bn{ padding:0; background:var(--km-escuro); overflow:hidden; }
body.km-layout-card .km-ev-hero.km-ev-hero-so-bn{ padding:82px 24px 0; background:transparent; overflow:visible; }
body.km-layout-editorial .km-ev-hero.km-ev-hero-so-bn{ padding:0; background:var(--km-escuro); border-bottom:0; }

.km-hero-bn{ position:relative; max-width:100%; }
body.km-layout-card .km-hero-bn{ max-width:var(--km-container); margin:0 auto; border-radius:28px; overflow:hidden; box-shadow:0 30px 70px -30px rgba(7,11,20,.5); }
.km-hero-bn-trilho{ position:relative; }
.km-hero-bn-slide{ position:relative; display:none; min-height:clamp(380px,46vw,620px); background:var(--km-escuro); }
.km-hero-bn-slide.ativo{ display:block; }
.km-hero-bn-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.km-hero-bn-veu{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(10,8,8,.72),rgba(10,8,8,.30) 45%,rgba(10,8,8,.82)); }
.km-hero-bn-in{ position:relative; max-width:var(--km-container); margin:0 auto; padding:clamp(70px,9vw,120px) 24px clamp(52px,7vw,86px); display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px; color:#fff; }
.km-hero-bn-in .km-voltar{ display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.55) !important; font-size:13px; font-weight:500; }
.km-hero-bn-in .km-voltar:hover{ color:#fff !important; }
.km-hero-bn-in h1{ max-width:900px; font-size:clamp(34px,5.4vw,66px); line-height:1.04; text-shadow:0 10px 40px rgba(0,0,0,.6); }
.km-hero-bn-in h1 .km-hero-bn-realce{ color:var(--km-accent); }
.km-hero-bn-in p{ max-width:720px; font-size:clamp(15px,1.5vw,18px); line-height:1.6; color:rgba(255,255,255,.82); }
.km-hero-bn-in .km-ev-ctas{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:6px; }
/* editorial: mesma faixa, mas alinhada à esquerda como o resto do layout */
body.km-layout-editorial .km-hero-bn-in{ align-items:flex-start; text-align:left; padding-left:28px; padding-right:28px; }
body.km-layout-editorial .km-hero-bn-in h1{ font-family:var(--km-font-titulo); font-weight:800; text-transform:uppercase; letter-spacing:-.03em; line-height:.94; }
body.km-layout-editorial .km-hero-bn-in .km-ev-ctas{ justify-content:flex-start; }
/* o editorial pinta herói, link de volta e botões para FUNDO CLARO; sobre a arte do banner
   o fundo é escuro, então aqui eles voltam ao contraste do herói escuro. */
body.km-layout-editorial .km-ev-hero .km-hero-bn-in .km-voltar{ color:rgba(255,255,255,.55) !important; }
body.km-layout-editorial .km-ev-hero .km-hero-bn-in .km-voltar:hover{ color:#fff !important; }
body.km-layout-editorial .km-ev-hero .km-hero-bn-in .km-ev-ctas .km-btn-accent{ background:var(--km-accent); }
body.km-layout-editorial .km-ev-hero .km-hero-bn-in .km-ev-ctas .km-btn-glass{ color:#fff !important; border:1px solid rgba(255,255,255,.28); border-radius:var(--km-r-btn); background:rgba(255,255,255,.08); padding:0 22px; }
body.km-layout-editorial .km-ev-hero .km-hero-bn-in .km-ev-ctas .km-btn-glass:hover{ border-color:var(--km-accent); color:#fff !important; }

/* setas e pontinhos (só com 2+ banners) */
.km-hero-bn-seta{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.28); background:rgba(10,8,8,.38); color:#fff; font-size:20px; display:flex; align-items:center; justify-content:center; cursor:pointer; backdrop-filter:blur(6px); transition:background .2s, border-color .2s; }
.km-hero-bn-seta:hover{ background:var(--km-accent); border-color:var(--km-accent); }
.km-hero-bn-seta.ant{ left:clamp(10px,2vw,26px); }
.km-hero-bn-seta.prox{ right:clamp(10px,2vw,26px); }
.km-hero-bn-pontos{ position:absolute; left:0; right:0; bottom:clamp(16px,2.4vw,28px); z-index:3; display:flex; justify-content:center; gap:9px; }
.km-hero-bn-pontos button{ width:9px; height:9px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.38); cursor:pointer; transition:background .2s, width .2s, border-radius .2s; }
.km-hero-bn-pontos button.ativo{ width:26px; border-radius:5px; background:var(--km-accent); }
@media (max-width:720px){
  .km-hero-bn-seta{ display:none; }
  .km-hero-bn-slide{ min-height:420px; }
}
/* UM banner só (pg/evento.php): a altura é a da arte, na proporção dela — nada é recortado. O conteúdo
   (título, texto e botões, quando preenchidos) fica por cima da imagem, centralizado na altura. */
.km-hero-bn-unico .km-hero-bn-slide,
.km-hero-bn-unico .km-hero-bn-slide.ativo{ min-height:0 !important; }
.km-hero-bn-unico .km-hero-bn-img{ position:relative; inset:auto; display:block; width:100%; height:auto; object-fit:initial; }
.km-hero-bn-unico .km-hero-bn-in{ position:absolute; inset:0; justify-content:center; padding-top:24px; padding-bottom:24px; }
.km-hero-bn-unico .km-hero-bn-in{ pointer-events:none; } .km-hero-bn-unico .km-hero-bn-in a{ pointer-events:auto; } /* camada vazia não bloqueia nada */
/* o menu é fixo e fica por cima do topo do herói (imersivo/editorial): o banner único começa logo abaixo dele.
   --km-header-h é medido pelo js/evento.js; o cartão já tem o próprio respiro. */
body:not(.km-layout-card) .km-ev-hero.km-ev-hero-bn-unico{ padding-top:var(--km-header-h, 75px); }

/* KPIs */
.km-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px; margin-bottom:clamp(36px,5vw,52px); }
.km-kpi{ display:flex; flex-direction:column; gap:9px; background:#fff; border:1px solid var(--km-borda); border-radius:16px; padding:18px; color:inherit !important; transition:border-color .2s,box-shadow .2s; }
.km-kpi:hover{ border-color:var(--km-accent); box-shadow:0 12px 30px -14px rgba(7,11,20,.25); }
.km-kpi .km-kpi-top{ display:flex; align-items:center; justify-content:space-between; }
.km-kpi .km-kpi-top i:first-child{ font-size:22px; color:var(--km-accent); }
.km-kpi .km-kpi-top i:last-child{ font-size:14px; color:#c3d0e4; }
.km-kpi .km-kpi-rot{ font-size:11px; font-weight:700; letter-spacing:.1em; color:var(--km-texto3); text-transform:uppercase; }
.km-kpi .km-kpi-val{ font-size:14.5px; font-weight:700; line-height:1.3; }
body.km-layout-card .km-kpis{ grid-template-columns:repeat(auto-fit,minmax(178px,1fr)); }
body.km-layout-editorial .km-kpis-wrap{ border-bottom:1px solid rgba(11,18,32,.14); }
body.km-layout-editorial .km-kpis{ max-width:var(--km-container); margin:0 auto; padding:0 28px; gap:0; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); margin-bottom:0; }
body.km-layout-editorial .km-kpi{ background:none; border:none; border-left:1px solid rgba(11,18,32,.12); border-radius:0; padding:26px 22px; gap:8px; }
body.km-layout-editorial .km-kpi:first-child{ border-left:none; padding-left:0; }
body.km-layout-editorial .km-kpi:hover{ box-shadow:none; color:var(--km-accent) !important; }
body.km-layout-editorial .km-kpi .km-kpi-top i:last-child{ display:none; }
body.km-layout-editorial .km-kpi .km-kpi-top{ justify-content:flex-start; gap:8px; }
body.km-layout-editorial .km-kpi .km-kpi-top i:first-child{ font-size:15px; color:rgba(11,18,32,.45); }
body.km-layout-editorial .km-kpi .km-kpi-rot{ font-size:10.5px; color:rgba(11,18,32,.45); }
body.km-layout-editorial .km-kpi .km-kpi-val{ font-size:15px; font-weight:600; }

/* seções do evento */
.km-ev-sec{ max-width:var(--km-container); margin:0 auto; padding:clamp(40px,6vw,56px) 24px; }
.km-ev-sec.km-ev-sec-cat{ padding-top:clamp(56px,8vw,88px); }
.km-ev-sec .km-sec-head{ margin-bottom:28px; }
.km-ev-sec .km-sec-head h2{ font-size:clamp(24px,3.2vw,36px); }
.km-ev-sec .km-sec-head.km-centro{ justify-content:center; text-align:center; }
.km-ev-sec .km-sec-head .km-obs{ font-size:13.5px; color:var(--km-texto3); }
.km-ev-sec .km-sec-head .km-acao{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--km-accent) !important; border:1.5px solid var(--km-accent); padding:9px 16px; border-radius:var(--km-r-pill); cursor:pointer; }
.km-ev-sec .km-sec-head .km-acao:hover{ background:var(--km-accent); color:#fff !important; }
body.km-layout-editorial .km-ev-sec{ padding-left:28px; padding-right:28px; }
body.km-layout-editorial .km-ev-sec .km-sec-head{ position:sticky; top:53px; z-index:20; background:var(--km-bg); padding:14px 0; align-items:baseline; margin-bottom:22px; border-bottom:1px solid rgba(11,18,32,.16); }
body.km-layout-editorial .km-ev-sec .km-sec-head.km-centro{ justify-content:space-between; text-align:left; }
body.km-layout-editorial .km-ev-sec .km-sec-head h2{ font-family:var(--km-font-titulo); font-weight:800; text-transform:uppercase; font-size:clamp(28px,3.8vw,46px); line-height:1; }
body.km-layout-editorial .km-ev-sec .km-sec-head .km-sobretitulo{ order:2; margin:0; font-size:11.5px; color:rgba(11,18,32,.45); }
body.km-layout-editorial .km-ev-sec .km-sec-head > div{ display:contents; }

/* categorias */
.km-cats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:22px; }
.km-cat{ position:relative; background:#fff; border:1px solid var(--km-borda); border-radius:20px; display:flex; flex-direction:column; overflow:hidden; color:inherit !important; }
/* a categoria com tag ja se destaca pelo chip; a cor de acento fica so no hover */
.km-cat.km-destaque{ border-color:var(--km-borda); box-shadow:none; }
.km-cat .km-cat-img{ display:none; position:relative; height:132px; overflow:hidden; background:#0b1220; }
.km-cat .km-cat-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.km-cat:hover .km-cat-img img{ transform:scale(1.06); }
.km-cat .km-cat-img:after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,11,20,.1),rgba(7,11,20,.55)); }
.km-cat .km-cat-img .km-cat-nome-img{ position:absolute; z-index:2; bottom:12px; left:16px; font-size:22px; font-weight:700; color:#fff; letter-spacing:-.01em; }
.km-cat .km-cat-body{ padding:26px; display:flex; flex-direction:column; gap:14px; flex:1; }
.km-cat .km-cat-tag{ position:absolute; z-index:3; top:0; right:0; background:var(--km-accent); color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.08em; padding:6px 14px; border-radius:0 0 0 12px; text-transform:uppercase; }
.km-cat .km-cat-sub{ font-size:13px; font-weight:700; letter-spacing:.1em; color:var(--km-texto2); text-transform:uppercase; }
.km-cat .km-cat-nome{ font-size:24px; font-weight:700; letter-spacing:-.01em; }
.km-cat .km-cat-desc{ font-size:14px; line-height:1.55; color:var(--km-texto2); }
.km-cat .km-cat-preco{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.km-cat .km-cat-preco b{ font-size:30px; font-weight:700; color:var(--km-accent); }
.km-cat .km-cat-preco small{ font-size:12.5px; color:var(--km-texto3); }
.km-cat .km-cat-btn{ margin-top:auto; text-align:center; font-weight:600; font-size:14.5px; background:#fff; border:1.5px solid var(--km-accent); color:var(--km-accent) !important; padding:12px; border-radius:12px; display:block; }
/* o card em destaque não pode imitar o estado de hover: o preenchido é só no hover, igual aos demais */
.km-cat .km-cat-btn:hover{ background:var(--km-accent); color:#fff !important; }
.km-cat .km-cat-btn.km-embreve{ background:#eef1f6; border-color:#eef1f6; color:var(--km-texto3) !important; cursor:default; }
.km-cat .km-cat-num{ display:none; }
.km-cat .km-cat-seta{ display:none; }
body.km-layout-card .km-cat .km-cat-img{ display:block; width:100%; }
body.km-layout-card .km-cat .km-cat-body{ padding:22px 26px 26px; }
body.km-layout-card .km-cat .km-cat-nome{ display:none; }
body.km-layout-editorial .km-cats{ display:flex; flex-direction:column; gap:0; }
body.km-layout-editorial .km-cat{ display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:clamp(16px,3vw,36px); align-items:center; padding:26px 0; border:none; border-bottom:1px solid rgba(11,18,32,.16); border-radius:0; background:none; overflow:visible; }
body.km-layout-editorial .km-cat:hover{ background:rgba(11,18,32,.035); }
body.km-layout-editorial .km-cat .km-cat-num{ display:block; font-family:var(--km-font-titulo); font-weight:900; font-size:30px; line-height:1; color:rgba(11,18,32,.22); font-variant-numeric:tabular-nums; }
body.km-layout-editorial .km-cat .km-cat-body{ padding:0; gap:7px; min-width:0; }
body.km-layout-editorial .km-cat .km-cat-nome{ font-family:var(--km-font-titulo); font-size:clamp(21px,2.5vw,29px); font-weight:800; text-transform:uppercase; letter-spacing:-.01em; }
body.km-layout-editorial .km-cat .km-cat-tag{ position:static; border-radius:3px; padding:4px 10px; font-size:10px; display:inline-block; margin-left:12px; vertical-align:middle; }
body.km-layout-editorial .km-cat .km-cat-sub{ font-size:11px; color:rgba(11,18,32,.45); order:3; }
body.km-layout-editorial .km-cat .km-cat-desc{ max-width:560px; font-size:14.5px; color:rgba(11,18,32,.62); order:4; }
body.km-layout-editorial .km-cat .km-cat-preco{ flex-direction:column; align-items:flex-start; gap:4px; }
body.km-layout-editorial .km-cat .km-cat-preco b{ font-family:var(--km-font-titulo); font-size:clamp(23px,2.9vw,32px); font-weight:800; color:var(--km-texto); }
body.km-layout-editorial .km-cat .km-cat-btn{ display:none; }
body.km-layout-editorial .km-cat .km-cat-seta{ display:flex; align-items:center; justify-content:center; width:46px; height:46px; border:1px solid rgba(11,18,32,.25); border-radius:50%; flex:none; transition:background .2s,border-color .2s,color .2s; }
body.km-layout-editorial .km-cat .km-cat-seta i{ font-size:18px; }
body.km-layout-editorial .km-cat:hover .km-cat-seta{ background:var(--km-accent); border-color:var(--km-accent); color:#fff; }
@media (max-width:760px){ body.km-layout-editorial .km-cat{ grid-template-columns:auto 1fr; } body.km-layout-editorial .km-cat .km-cat-seta{ display:none; } }

/* estrutura */
.km-estrutura{ background:var(--km-escuro); border-radius:28px; color:#fff; padding:clamp(28px,5vw,56px); position:relative; overflow:hidden; }
.km-estrutura:before{ content:''; position:absolute; top:0; left:10%; right:10%; height:1px; background:linear-gradient(90deg,transparent,rgba(var(--km-accent-rgb),.9),transparent); }
.km-estrutura .km-sobretitulo{ color:var(--km-accent-texto); }
.km-estrutura h2{ font-size:clamp(24px,3.2vw,36px); margin-bottom:32px; }
.km-estrutura .km-estr-texto{ font-size:15px; line-height:1.7; color:rgba(255,255,255,.7); margin-bottom:28px; max-width:820px; }
.km-estrutura .km-estr-texto p{ margin-bottom:12px; }
.km-estrutura .km-estr-texto a{ color:var(--km-accent-texto) !important; text-decoration:underline; }
.km-estr-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; }
.km-estr-item{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:16px; padding:20px; display:flex; flex-direction:column; gap:10px; color:inherit !important; }
.km-estr-item .km-estr-ico{ width:40px; height:40px; display:flex; align-items:center; justify-content:center; }
.km-estr-item .km-estr-ico i{ font-size:30px; line-height:1; color:var(--km-accent-texto,var(--km-accent)); }
.km-estr-item .km-estr-ico img{ max-width:40px; max-height:40px; object-fit:contain; }
.km-estr-item .km-estr-ico img{ max-width:40px; max-height:40px; object-fit:contain; }
.km-estr-item .km-estr-ico i{ font-size:26px; color:var(--km-accent-texto); }
.km-estr-item b{ font-size:15.5px; font-weight:700; }
.km-estr-item small{ font-size:13px; line-height:1.5; color:rgba(255,255,255,.55); }
.km-estr-fotos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:24px; }
.km-estr-fotos a{ position:relative; border-radius:16px; overflow:hidden; height:200px; display:block; background:#0b1220; }
.km-estr-fotos a img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.km-estr-fotos a:hover img{ transform:scale(1.06); }
.km-estr-fotos a span{ position:absolute; left:12px; bottom:12px; background:rgba(7,11,20,.8); color:#fff; font-size:12px; font-weight:600; padding:6px 12px; border-radius:10px; }
body.km-layout-card .km-estrutura{ background:none; color:var(--km-texto); padding:0; border-radius:0; }
body.km-layout-card .km-estrutura:before{ display:none; }
body.km-layout-card .km-estrutura .km-sobretitulo{ color:var(--km-accent); }
body.km-layout-card .km-estrutura .km-estr-texto{ color:var(--km-texto2); }
body.km-layout-card .km-estrutura .km-estr-texto a{ color:var(--km-accent) !important; }
body.km-layout-card .km-estr-item{ background:#fff; border:1px solid var(--km-borda); padding:22px; transition:border-color .2s,box-shadow .2s; }
body.km-layout-card .km-estr-item:hover{ border-color:var(--km-accent); box-shadow:0 14px 34px -18px rgba(7,11,20,.28); }
body.km-layout-card .km-estr-item .km-estr-ico i{ color:var(--km-accent); }
body.km-layout-card .km-estr-item small{ color:var(--km-texto2); }
body.km-layout-editorial .km-estrutura{ background:none; color:var(--km-texto); padding:0; border-radius:0; }
body.km-layout-editorial .km-estrutura:before{ display:none; }
body.km-layout-editorial .km-estrutura .km-estr-texto{ color:rgba(11,18,32,.65); }
body.km-layout-editorial .km-estr-grid{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:0; }
body.km-layout-editorial .km-estr-item{ flex-direction:row; gap:16px; padding:22px 24px 22px 0; border:none; border-bottom:1px solid rgba(11,18,32,.12); border-radius:0; background:none; }
body.km-layout-editorial .km-estr-item .km-estr-ico{ width:auto; height:auto; margin-top:2px; }
body.km-layout-editorial .km-estr-item .km-estr-ico i{ font-size:22px; color:var(--km-accent); }
body.km-layout-editorial .km-estr-item .km-estr-ico img{ max-width:28px; max-height:28px; }
body.km-layout-editorial .km-estr-item small{ color:rgba(11,18,32,.6); font-size:13.5px; }
body.km-layout-editorial .km-estr-fotos a{ border-radius:0; }

/* galeria / banners */
.km-galeria{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.km-galeria a, .km-galeria div{ border-radius:16px; overflow:hidden; height:220px; display:block; position:relative; background:#0b1220; }
.km-galeria img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.km-galeria a:hover img{ transform:scale(1.06); }
.km-galeria .km-gal-txt{ position:absolute; left:0; right:0; bottom:0; padding:16px; background:linear-gradient(180deg,transparent,rgba(7,11,20,.85)); color:#fff; }
.km-galeria .km-gal-txt b{ display:block; font-size:16px; }
.km-galeria .km-gal-txt small{ font-size:12.5px; color:rgba(255,255,255,.7); }
body.km-layout-editorial .km-galeria{ grid-template-columns:repeat(3,1fr); gap:12px; }
body.km-layout-editorial .km-galeria a, body.km-layout-editorial .km-galeria div{ border-radius:0; height:340px; }
body.km-layout-editorial .km-galeria > :nth-child(4n+1), body.km-layout-editorial .km-galeria > :nth-child(4n){ grid-column:span 2; }
@media (max-width:760px){ body.km-layout-editorial .km-galeria{ grid-template-columns:1fr; } body.km-layout-editorial .km-galeria > *{ grid-column:auto !important; height:240px; } }
/* banner destaque (agenda_banners) */
.km-banner{ position:relative; border-radius:var(--km-r-sec); overflow:hidden; min-height:320px; display:flex; align-items:flex-end; background:#0b1220; color:#fff; margin-bottom:18px; }
.km-banner img.km-banner-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.km-banner:before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,11,20,.1),rgba(7,11,20,.85)); }
.km-banner .km-banner-in{ position:relative; padding:clamp(24px,4vw,40px); display:flex; flex-direction:column; gap:12px; max-width:720px; }
.km-banner h3{ font-size:clamp(24px,3.4vw,40px); }
.km-banner h3 span{ color:var(--km-accent-texto); }
.km-banner p{ font-size:15px; line-height:1.6; color:rgba(255,255,255,.75); }
.km-banner .km-banner-btns{ display:flex; gap:10px; flex-wrap:wrap; }

/* atalhos (agenda_atalhos) e depoimentos/destaques */
.km-atalhos{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.km-atalho{ background:#fff; border:1px solid var(--km-borda); border-radius:18px; padding:20px; display:flex; gap:16px; align-items:flex-start; }
.km-atalho img{ width:56px; height:56px; object-fit:contain; flex:none; }
.km-atalho b{ display:block; font-size:16px; margin-bottom:4px; }
.km-atalho p{ font-size:13.5px; line-height:1.55; color:var(--km-texto2); }
.km-atalho .km-banner-btns{ margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; }
.km-destaques{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.km-destaques .km-destaque{ background:#fff; border:1px solid var(--km-borda); border-radius:18px; padding:20px 16px 18px; display:flex; flex-direction:column; gap:8px; color:inherit !important; text-align:center; align-items:center; min-width:0; transition:border-color .2s, box-shadow .2s, transform .2s; }
a.km-destaque:hover{ border-color:var(--km-accent); box-shadow:0 18px 40px -28px rgba(7,11,20,.45); transform:translateY(-2px); }
.km-destaques .km-destaque-ico{ width:52px; height:52px; border-radius:14px; background:var(--km-bg2); display:flex; align-items:center; justify-content:center; margin-bottom:4px; }
.km-destaques .km-destaque-ico i{ font-size:26px; color:var(--km-accent); line-height:1; }
.km-destaques .km-destaque-ico img{ width:36px; height:36px; object-fit:contain; }
.km-destaques .km-destaque b{ font-size:14px; letter-spacing:.01em; overflow-wrap:anywhere; }
.km-destaques .km-destaque p{ font-size:13px; line-height:1.5; color:var(--km-texto2); overflow-wrap:anywhere; }
@media (max-width:1100px){ .km-destaques{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:860px){ .km-destaques{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; } .km-destaques .km-destaque{ padding:16px 12px 14px; } }
@media (max-width:560px){ .km-destaques{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* números do evento (agenda_presenca) */
.km-ev-numeros{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:18px; }
.km-ev-numeros div{ background:var(--km-escuro); color:#fff; border-radius:18px; padding:24px 18px; text-align:center; }
.km-ev-numeros b{ display:block; font-size:clamp(30px,4vw,44px); font-weight:700; color:var(--km-accent-texto); line-height:1.1; }
.km-ev-numeros small{ font-size:13px; color:rgba(255,255,255,.6); }

/* local / hotel / vídeo / patrocinadores */
.km-local{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:22px; }
.km-local-card{ background:#fff; border:1px solid var(--km-borda); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; }
.km-local-card .km-local-body{ padding:22px; display:flex; flex-direction:column; gap:10px; }
.km-local-card .km-local-body b{ font-size:18px; }
.km-local-card .km-local-body a.km-end{ display:flex; gap:8px; align-items:flex-start; font-size:14px; color:var(--km-texto2) !important; }
.km-local-card .km-local-body a.km-end i{ color:var(--km-accent); font-size:16px; flex:none; margin-top:2px; }
.km-local-card .km-local-body a.km-end:hover{ color:var(--km-accent) !important; }
.km-local-card .km-local-body .km-txt{ font-size:14px; line-height:1.6; color:var(--km-texto2); }
.km-local-card iframe{ width:100%; height:260px; border:0; display:block; }
.km-local-card .km-local-img{ height:200px; overflow:hidden; background:#0b1220; }
.km-local-card .km-local-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.km-site-pilula{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--km-accent) !important; background:rgba(var(--km-accent-rgb),.09); padding:4px 11px; border-radius:99px; margin-left:8px; vertical-align:middle; }
.km-video{ position:relative; border-radius:var(--km-r-sec); overflow:hidden; background:#0b1220; display:block; max-width:960px; margin:0 auto; }
.km-video img{ width:100%; display:block; aspect-ratio:16/9; object-fit:cover; opacity:.85; transition:opacity .3s; }
.km-video:hover img{ opacity:1; }
.km-video i{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); font-size:84px; color:#fff; text-shadow:0 10px 40px rgba(0,0,0,.6); }
.km-video b{ position:absolute; left:24px; bottom:20px; color:#fff; font-size:18px; text-shadow:0 4px 20px rgba(0,0,0,.6); }
.km-patros{ display:flex; flex-direction:column; gap:26px; }
.km-patro-cat{ text-align:center; }
.km-patro-cat .km-patro-nome{ font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--km-texto3); margin-bottom:14px; }
.km-patro-cat .km-patro-logos{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }
.km-patro-cat .km-patro-logos a, .km-patro-cat .km-patro-logos div{ background:#fff; border:1px solid var(--km-borda); border-radius:14px; padding:14px 22px; display:flex; align-items:center; justify-content:center; height:84px; width:190px; transition:border-color .2s; }
.km-patro-cat .km-patro-logos a:hover{ border-color:var(--km-accent); }
.km-patro-cat .km-patro-logos img{ max-width:100%; max-height:100%; object-fit:contain; }
.km-patro-cat.km-tam-1 .km-patro-logos a, .km-patro-cat.km-tam-1 .km-patro-logos div{ height:110px; width:260px; }
.km-patro-cat.km-tam-3 .km-patro-logos a, .km-patro-cat.km-tam-3 .km-patro-logos div{ height:66px; width:140px; }

/* FAQ */
.km-faq{ max-width:var(--km-container); margin:0 auto; } /* mesma largura do .util em todas as páginas (antes 880px, e o FAQ do organizador saía mais largo que o do rodapé) */
.km-faq-lista{ display:flex; flex-direction:column; gap:10px; }
.km-faq-item{ background:#fff; border:1px solid var(--km-borda); border-radius:16px; overflow:hidden; }
.km-faq-item .km-faq-q{ width:100%; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:space-between; gap:14px; background:none; border:none; padding:18px 22px; text-align:left; font-size:15.5px; font-weight:600; color:var(--km-texto); }
.km-faq-item .km-faq-q i{ font-size:18px; color:var(--km-accent); flex:none; }
.km-faq-item .km-faq-a{ display:none; padding:0 22px 20px; font-size:14.5px; line-height:1.65; color:var(--km-texto2); }
.km-faq-item .km-faq-a a{ color:var(--km-accent) !important; text-decoration:underline; }
.km-faq-item.km-aberta .km-faq-a{ display:block; }
/* Sem max-width:none aqui: o FAQ é uma seção comum e precisa respeitar o corpo útil
   (--km-container) como as demais. Com o none ele sangrava de ponta a ponta e ficava
   desalinhado do resto da página. O full-bleed é só do .km-ev-sec-final, de propósito. */
body.km-layout-editorial .km-faq{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(24px,5vw,64px); align-items:start; }
body.km-layout-editorial .km-faq .km-sec-head{ position:sticky; top:80px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; border:none; background:none; padding:0; }
body.km-layout-editorial .km-faq .km-sec-head .km-sobretitulo{ order:0; }
body.km-layout-editorial .km-faq-lista{ gap:0; border-top:1px solid rgba(11,18,32,.16); }
body.km-layout-editorial .km-faq-item{ border:none; border-bottom:1px solid rgba(11,18,32,.16); border-radius:0; background:none; }
body.km-layout-editorial .km-faq-item .km-faq-q{ padding:20px 0; font-size:16.5px; }
body.km-layout-editorial .km-faq-item .km-faq-a{ padding:0 40px 22px 0; color:rgba(11,18,32,.65); line-height:1.7; }
@media (max-width:860px){ body.km-layout-editorial .km-faq{ grid-template-columns:1fr; } body.km-layout-editorial .km-faq .km-sec-head{ position:static; } }

/* regulamento */
.km-regulamento{ max-width:none; margin:0 auto; background:var(--km-bg2); border:1px solid #e0e8f3; border-radius:24px; padding:clamp(24px,4vw,40px); display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.km-regulamento .km-reg-ico{ width:60px; height:60px; border-radius:16px; background:#fff; border:1px solid #e0e8f3; display:flex; align-items:center; justify-content:center; flex:none; }
.km-regulamento .km-reg-ico i{ font-size:28px; color:var(--km-accent); }
.km-regulamento .km-reg-txt{ flex:1; min-width:220px; }
.km-regulamento h2{ font-size:20px; margin-bottom:6px; }
.km-regulamento p{ font-size:14px; line-height:1.6; color:var(--km-texto2); }
/* contato do evento */
.km-ev-contato{ position:relative; overflow:hidden; background:radial-gradient(700px 400px at 80% 0%,var(--km-glow),transparent 60%),var(--km-escuro); border-radius:var(--km-r-sec); color:#fff; padding:clamp(32px,6vw,64px); display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(28px,4vw,48px); align-items:center; }
.km-ev-contato h2{ font-size:clamp(24px,3.2vw,38px); }
.km-ev-contato p{ font-size:15px; line-height:1.65; color:rgba(255,255,255,.6); }
.km-ev-contato > div:first-child{ display:flex; flex-direction:column; gap:16px; }
.km-ev-contato > div:last-child{ display:flex; flex-direction:column; gap:12px; }
/* editorial: regulamento + contato em bloco escuro */
body.km-layout-editorial .km-ev-sec-final{ background:#0b1220; color:#fff; margin-top:clamp(40px,6vw,64px); max-width:none; padding:0; }
body.km-layout-editorial .km-ev-sec-final .km-ev-final-in{ max-width:var(--km-container); margin:0 auto; padding:clamp(48px,7vw,80px) 28px; display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); }
body.km-layout-editorial .km-regulamento{ background:none; border:none; padding:0; border-radius:0; flex-direction:column; align-items:flex-start; gap:18px; max-width:none; }
body.km-layout-editorial .km-regulamento .km-reg-ico{ display:none; }
body.km-layout-editorial .km-regulamento h2{ font-family:var(--km-font-titulo); font-weight:800; text-transform:uppercase; font-size:clamp(28px,3.8vw,44px); line-height:1.02; }
body.km-layout-editorial .km-regulamento p{ color:rgba(255,255,255,.6); max-width:460px; font-size:14.5px; line-height:1.7; }
body.km-layout-editorial .km-regulamento .km-btn-escuro{ background:#fff; color:#0b1220 !important; }
body.km-layout-editorial .km-regulamento .km-btn-escuro:hover{ background:var(--km-accent); color:#fff !important; opacity:1; }
body.km-layout-editorial .km-ev-contato{ background:none; border-radius:0; padding:0; display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
body.km-layout-editorial .km-ev-contato h2{ font-family:var(--km-font-titulo); font-weight:800; text-transform:uppercase; font-size:clamp(28px,3.8vw,44px); line-height:1.02; }
body.km-layout-editorial .km-ev-contato .km-btn{ background:none; box-shadow:none; border:none; border-bottom:1px solid rgba(255,255,255,.2); border-radius:0; padding:0 0 12px; justify-content:flex-start; font-size:15px; font-weight:600; width:100%; }
body.km-layout-editorial .km-ev-contato .km-btn:hover{ color:var(--km-accent-texto) !important; box-shadow:none; }
/* O codepoint era '\e0b9', que NAO existe na fonte Phosphor 2.1.1: o navegador caia no
   fallback e desenhava um caractere estranho no fim de cada botao. '\e092' é o ph-arrow-up-right.
   font-weight normal de propósito: o botão é 600 e a fonte de ícone não tem peso bold,
   o que faria o navegador engrossar o glifo artificialmente. */
body.km-layout-editorial .km-ev-contato .km-btn:after{ content:'\e092'; font-family:'Phosphor'; font-weight:normal; font-style:normal; line-height:1; margin-left:auto; font-size:16px; }
body.km-layout-editorial .km-rot-editorial{ font-size:11.5px; font-weight:700; letter-spacing:.14em; color:rgba(255,255,255,.45); text-transform:uppercase; }
@media (max-width:860px){ body.km-layout-editorial .km-ev-sec-final .km-ev-final-in{ grid-template-columns:1fr; } }

/* contador / progresso / avisos */
.km-contador{ background:var(--km-escuro); color:#fff; border-radius:var(--km-r-card); padding:22px 24px; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-bottom:18px; }
.km-contador p{ font-size:15px; font-weight:600; }
.km-contador .km-countdown{ min-width:280px; }
.km-progresso{ background:#fff; border:1px solid var(--km-borda); border-radius:14px; padding:6px; margin-bottom:18px; }
.km-progresso div{ height:26px; border-radius:10px; background:linear-gradient(90deg,var(--km-accent),rgba(var(--km-accent-rgb),.7)); color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; padding:0 12px; white-space:nowrap; min-width:max-content; }
.km-aviso{ background:#fff; border:1px solid var(--km-borda); border-radius:20px; padding:32px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px; }
.km-aviso i{ font-size:36px; color:var(--km-accent); }
.km-aviso b{ font-size:20px; }
.km-aviso p{ font-size:14.5px; color:var(--km-texto2); }
.km-aviso.km-esgotado i{ color:var(--km-texto3); }
/* rodapé do evento (marca) */
.km-footer-ev{ background:var(--km-escuro); color:rgba(255,255,255,.55); padding:40px 0; }
.km-footer-ev .km-util{ display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:center; }
.km-footer-ev img.km-logo-org{ height:26px; width:auto; max-width:150px; object-fit:contain; }
.km-footer-ev .km-footer-km{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:rgba(255,255,255,.4); }
.km-footer-ev .km-footer-km img{ height:16px; width:auto; }
.km-footer-ev a{ color:rgba(255,255,255,.65) !important; font-size:13.5px; }
.km-footer-ev a:hover{ color:#fff !important; }
body.km-layout-editorial .km-footer-ev{ background:#0b1220; border-top:1px solid rgba(255,255,255,.12); padding:26px 0; }

/* =====================================================================
   CHECKOUT compartilhado (breadcrumb + barra do temporizador)
   ===================================================================== */
.km-timer-bar{ position:fixed; top:72px; left:0; right:0; z-index:990; background:var(--km-escuro); color:#fff; transition:background .4s; }
.km-timer-bar.km-alerta{ background:var(--km-accent); }
.km-timer-bar.km-expirado{ background:#5c141c; }
.km-timer-bar > div{ max-width:var(--km-container); margin:0 auto; display:flex; align-items:center; justify-content:center; gap:10px; padding:9px 24px; font-size:13.5px; font-weight:600; flex-wrap:wrap; text-align:center; }
.km-timer-bar i{ font-size:17px; animation:km-timer 1.4s ease-in-out infinite; }
.km-timer-bar b{ font-variant-numeric:tabular-nums; font-size:15px; font-weight:700; background:rgba(255,255,255,.16); padding:2px 10px; border-radius:8px; }
.km-timer-bar button{ cursor:pointer; font-family:inherit; background:#fff; color:#0b1220; border:none; font-size:13px; font-weight:700; padding:6px 16px; border-radius:99px; }
.km-breadcrumb{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:12.5px; font-weight:600; }
.km-breadcrumb > span, .km-breadcrumb > a{ display:flex; align-items:center; gap:7px; color:var(--km-texto3) !important; }
.km-breadcrumb > a:hover{ color:var(--km-accent) !important; }
.km-breadcrumb .km-num{ width:18px; height:18px; border-radius:50%; border:1.5px solid #c3d0e4; color:var(--km-texto3); font-size:11px; display:flex; align-items:center; justify-content:center; }
.km-breadcrumb .km-ativo{ color:var(--km-accent) !important; }
.km-breadcrumb .km-ativo .km-num{ background:var(--km-accent); border-color:var(--km-accent); color:#fff; }
.km-breadcrumb .km-feito{ color:var(--km-verde) !important; }
.km-breadcrumb .km-feito i{ font-size:17px; }
.km-breadcrumb > i{ font-size:13px; color:#c3d0e4; }
.km-voltar-link{ display:inline-flex; align-items:center; gap:8px; color:var(--km-texto2) !important; font-size:13.5px; font-weight:500; }
.km-voltar-link:hover{ color:var(--km-accent) !important; }
.km-checkout{ max-width:var(--km-container); margin:0 auto; padding:150px 24px clamp(64px,9vw,96px); display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:28px; align-items:start; }
.km-checkout-main{ display:flex; flex-direction:column; gap:24px; min-width:0; }
.km-checkout-aside{ display:flex; flex-direction:column; gap:20px; position:sticky; top:118px; }
.km-box{ background:#fff; border:1px solid var(--km-borda); border-radius:20px; padding:clamp(20px,3vw,30px); display:flex; flex-direction:column; gap:16px; }
.km-box h2{ font-size:19px; display:flex; align-items:center; gap:9px; }
.km-box h2 i{ font-size:21px; color:var(--km-accent); }
.km-box .km-box-sub{ font-size:13.5px; color:var(--km-texto2); }
.km-resumo{ background:var(--km-escuro); color:#fff; border-radius:20px; padding:24px; display:flex; flex-direction:column; gap:14px; position:relative; overflow:hidden; }
.km-resumo:before{ content:''; position:absolute; top:0; left:15%; right:15%; height:1px; background:linear-gradient(90deg,transparent,rgba(var(--km-accent-rgb),.9),transparent); }
.km-resumo h2{ font-size:17px; }
.km-resumo .km-resumo-itens{ display:flex; flex-direction:column; gap:9px; font-size:13.5px; }
.km-resumo .km-resumo-itens > div{ display:flex; justify-content:space-between; gap:12px; color:rgba(255,255,255,.75); }
.km-resumo .km-resumo-itens > div span:last-child{ font-variant-numeric:tabular-nums; font-weight:600; color:#fff; white-space:nowrap; }
.km-resumo .km-resumo-total{ border-top:1px solid rgba(255,255,255,.12); padding-top:14px; display:flex; justify-content:space-between; align-items:baseline; }
.km-resumo .km-resumo-total span{ font-size:14px; font-weight:600; color:rgba(255,255,255,.7); }
.km-resumo .km-resumo-total b{ font-size:26px; font-weight:700; color:var(--km-accent-texto); font-variant-numeric:tabular-nums; }
.km-resumo .km-resumo-obs{ display:flex; align-items:center; justify-content:center; gap:7px; font-size:11.5px; color:rgba(255,255,255,.4); }
.km-resumo .km-resumo-obs i{ font-size:13px; }
.km-input{ font-family:inherit; font-size:14.5px; padding:12px 14px; border:1px solid var(--km-borda2); border-radius:11px; outline:none; color:var(--km-texto); background:#fff; width:100%; }
.km-input:focus{ border-color:var(--km-accent); }
.km-label{ display:flex; flex-direction:column; gap:6px; font-size:12.5px; font-weight:600; color:var(--km-texto2); }
.km-form-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.km-opcoes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.km-opcao{ cursor:pointer; font-family:inherit; text-align:left; display:flex; flex-direction:column; gap:7px; background:#fff; border:1.5px solid var(--km-borda2); border-radius:16px; padding:16px; transition:border-color .2s,background .2s; color:var(--km-texto); }
.km-opcao:hover{ border-color:var(--km-accent); }
.km-opcao.km-sel{ border-color:var(--km-accent); background:rgba(var(--km-accent-rgb),.06); }
.km-opcao i.km-opcao-ico{ font-size:24px; color:var(--km-texto3); }
.km-opcao.km-sel i.km-opcao-ico{ color:var(--km-accent); }
.km-opcao b{ font-size:14.5px; font-weight:700; }
.km-opcao .km-opcao-tag{ font-size:11.5px; font-weight:700; letter-spacing:.03em; padding:4px 10px; border-radius:99px; align-self:flex-start; color:var(--km-texto2); background:#eef1f6; }
.km-opcao.km-sel .km-opcao-tag{ color:var(--km-accent); background:rgba(var(--km-accent-rgb),.12); }
.km-seguranca{ display:flex; gap:18px; flex-wrap:wrap; align-items:center; font-size:12px; color:var(--km-texto3); padding:0 6px; }
.km-seguranca span{ display:flex; align-items:center; gap:6px; }
.km-seguranca i{ font-size:15px; color:var(--km-verde); }
@media (max-width:980px){ .km-checkout{ grid-template-columns:1fr; padding-top:130px; } .km-checkout-aside{ position:static; } }

/* =====================================================================
   CONFIRMAÇÃO (sucesso)
   ===================================================================== */
body.km-pg-sucesso_cadastro{ background:var(--km-escuro); color:#fff; }
.km-confetes{ position:fixed; inset:0; pointer-events:none; overflow:hidden; z-index:40; }
.km-confetes span{ position:absolute; top:0; border-radius:2px; }
.km-confetes span.km-c-acc{ background:var(--km-accent); }
.km-confetes span.km-c-lima{ background:var(--km-lima); }
.km-confetes span.km-c-branco{ background:#fff; opacity:.7; }
.km-confetes span.km-c-round{ border-radius:50%; }
.km-sucesso{ position:relative; min-height:100vh; overflow:hidden; background:radial-gradient(1100px 560px at 50% -10%,var(--km-glow),transparent 60%),var(--km-escuro); padding:120px 24px 80px; }
.km-sucesso .km-sucesso-in{ position:relative; max-width:820px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:26px; text-align:center; }
.km-sucesso .km-breadcrumb > a, .km-sucesso .km-breadcrumb > span{ color:rgba(255,255,255,.6) !important; }
.km-sucesso .km-breadcrumb .km-feito{ color:#7bd88a !important; }
.km-sucesso .km-breadcrumb .km-ativo{ color:#fff !important; }
.km-sucesso .km-breadcrumb > i{ color:rgba(255,255,255,.25); }
.km-check{ position:relative; width:96px; height:96px; animation:km-pop .6s cubic-bezier(.2,1.4,.4,1) both; }
.km-check span.km-onda{ position:absolute; inset:0; border-radius:50%; border:2px solid #2e7d32; animation:km-onda 2.2s ease-out infinite; }
.km-check span.km-onda:nth-child(2){ animation-delay:1.1s; }
.km-check span.km-bola{ position:absolute; inset:0; border-radius:50%; background:linear-gradient(135deg,#34a853,#1e7e34); display:flex; align-items:center; justify-content:center; box-shadow:0 0 44px rgba(52,168,83,.5); }
.km-check span.km-bola i{ font-size:52px; color:#fff; }
.km-check.km-pendente span.km-onda{ border-color:#a97b1f; }
.km-check.km-pendente span.km-bola{ background:linear-gradient(135deg,#f0b429,#c98a12); box-shadow:0 0 44px rgba(240,180,41,.45); }
.km-sucesso h1{ font-size:clamp(28px,4.5vw,44px); line-height:1.05; }
.km-sucesso .km-sucesso-txt{ display:flex; flex-direction:column; gap:10px; animation:km-rise .6s ease-out .15s both; }
.km-sucesso .km-sucesso-txt p{ font-size:15.5px; line-height:1.6; color:rgba(255,255,255,.6); max-width:520px; margin:0 auto; }
.km-sucesso .km-sucesso-txt p a{ color:#fff !important; text-decoration:underline; }
.km-ticket-wrap{ width:100%; max-width:680px; animation:km-rise .7s ease-out .3s both; }
.km-ticket{ position:relative; display:grid; grid-template-columns:1fr auto; background:#fff; color:var(--km-texto); border-radius:22px; overflow:hidden; box-shadow:0 30px 80px -20px rgba(0,0,0,.7),0 0 60px var(--km-glow); text-align:left; }
.km-ticket:before{ content:''; position:absolute; top:0; left:0; right:0; height:6px; background:linear-gradient(90deg,var(--km-accent),var(--km-lima)); z-index:2; }
.km-ticket .km-ticket-main{ padding:28px; display:flex; flex-direction:column; gap:16px; min-width:0; }
.km-ticket .km-ticket-top{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.km-ticket .km-ticket-top img{ height:26px; width:auto; max-width:130px; object-fit:contain; background:var(--km-escuro); border-radius:6px; padding:4px 8px; }
.km-ticket .km-ticket-top .km-tag-oficial{ font-size:10.5px; font-weight:700; letter-spacing:.1em; color:var(--km-accent); border:1px solid rgba(var(--km-accent-rgb),.4); padding:4px 10px; border-radius:99px; text-transform:uppercase; }
.km-ticket .km-ticket-ev{ font-size:22px; font-weight:700; letter-spacing:-.01em; }
.km-ticket .km-ticket-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:12px; }
.km-ticket .km-ticket-grid small{ display:block; font-size:10.5px; font-weight:700; letter-spacing:.1em; color:var(--km-texto3); text-transform:uppercase; }
.km-ticket .km-ticket-grid b{ font-size:14px; font-weight:700; }
.km-ticket .km-ticket-peito{ display:flex; align-items:center; gap:14px; background:var(--km-escuro); color:#fff; border-radius:14px; padding:14px 18px; }
.km-ticket .km-ticket-peito small{ display:block; font-size:10.5px; font-weight:700; letter-spacing:.1em; color:rgba(255,255,255,.5); text-transform:uppercase; }
.km-ticket .km-ticket-peito b{ font-family:var(--km-font-titulo); font-size:34px; font-weight:900; color:var(--km-lima); line-height:1; letter-spacing:-.02em; }
.km-ticket .km-ticket-peito i{ font-size:26px; color:var(--km-accent-texto); }
.km-ticket .km-ticket-cod{ display:flex; align-items:center; gap:10px; background:#f2f6fc; border:1px dashed #c3d0e4; border-radius:12px; padding:12px 16px; flex-wrap:wrap; }
.km-ticket .km-ticket-cod i{ font-size:20px; color:var(--km-accent); }
.km-ticket .km-ticket-cod code{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:17px; font-weight:700; letter-spacing:.12em; }
.km-ticket .km-ticket-cod button{ cursor:pointer; font-family:inherit; margin-left:auto; background:none; border:none; color:var(--km-accent); font-size:12.5px; font-weight:700; display:flex; align-items:center; gap:5px; }
.km-ticket .km-ticket-stub{ position:relative; border-left:2px dashed var(--km-borda2); padding:28px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-width:170px; }
.km-ticket .km-ticket-stub .km-notch{ position:absolute; left:-14px; width:28px; height:28px; border-radius:50%; background:var(--km-escuro); }
.km-ticket .km-ticket-stub .km-notch.km-n1{ top:-14px; }
.km-ticket .km-ticket-stub .km-notch.km-n2{ bottom:-14px; }
.km-ticket .km-ticket-stub img{ width:120px; height:120px; display:block; }
.km-ticket .km-ticket-stub .km-qr-espera{ width:120px; height:120px; border-radius:12px; background:#f2f6fc; border:1px dashed #c3d0e4; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color:var(--km-texto3); font-size:10.5px; font-weight:700; text-align:center; padding:8px; }
.km-ticket .km-ticket-stub .km-qr-espera i{ font-size:30px; color:var(--km-accent); }
.km-ticket .km-ticket-stub small{ font-size:10.5px; font-weight:700; letter-spacing:.08em; color:var(--km-texto3); text-align:center; text-transform:uppercase; }
.km-ticket .km-ticket-stub small.km-peito-mini{ font-size:13px; color:var(--km-texto); }
.km-ticket + .km-ticket{ margin-top:16px; }
.km-sucesso .km-faltam{ font-size:12.5px; color:rgba(255,255,255,.45); animation:km-rise .7s ease-out .45s both; }
.km-sucesso .km-faltam strong{ color:var(--km-lima); }
.km-sucesso .km-sucesso-acoes{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; animation:km-rise .7s ease-out .6s both; }
.km-sucesso .km-sucesso-acoes .km-btn{ padding:14px 26px; font-size:14.5px; border-radius:13px; }
.km-sucesso .km-aviso-doc{ width:100%; max-width:680px; background:rgba(240,180,41,.1); border:1px solid rgba(240,180,41,.4); color:#fff; border-radius:16px; padding:16px 20px; text-align:left; display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.55; }
.km-sucesso .km-aviso-doc i{ font-size:22px; color:#f0b429; flex:none; }
@media (max-width:640px){ .km-ticket{ grid-template-columns:1fr; } .km-ticket .km-ticket-stub{ border-left:none; border-top:2px dashed var(--km-borda2); } .km-ticket .km-ticket-stub .km-notch{ display:none; } }

/* =====================================================================
   RESULTADOS (placeholder — escondido quando exibe_resultados = 0)
   ===================================================================== */
.km-res-hero{ background:radial-gradient(900px 400px at 60% -20%,rgba(13,110,253,.3),transparent 60%),#070b14; color:#fff; padding:124px 24px 48px; }
.km-res-hero .km-util{ display:flex; flex-direction:column; gap:18px; }
.km-res-hero h1{ font-size:clamp(28px,4vw,44px); }
.km-res-grid{ display:grid; grid-template-columns:300px 1fr; gap:28px; align-items:start; }
.km-res-side{ position:sticky; top:90px; display:flex; flex-direction:column; gap:8px; }
.km-res-side .km-sobretitulo{ margin-bottom:6px; }
.km-res-side a{ display:flex; flex-direction:column; gap:3px; background:#fff; border:1px solid var(--km-borda); border-radius:14px; padding:12px 14px; color:inherit !important; }
.km-res-side a.km-ativo{ background:#070b14; color:#fff !important; border-color:#070b14; }
.km-res-side a b{ font-size:14px; }
.km-res-side a small{ font-size:12px; color:var(--km-texto3); }
.km-res-side a.km-ativo small{ color:rgba(255,255,255,.55); }
.km-res-abas{ display:inline-flex; background:#e8edf5; border-radius:12px; padding:4px; gap:4px; }
.km-res-abas button{ cursor:pointer; font-family:inherit; font-size:13px; font-weight:700; padding:8px 16px; border:none; border-radius:9px; background:none; color:var(--km-texto2); }
.km-res-abas button.km-ativo{ background:#070b14; color:#fff; box-shadow:0 6px 16px -8px rgba(0,0,0,.5); }
.km-res-tabela{ overflow-x:auto; background:#fff; border:1px solid var(--km-borda); border-radius:16px; }
.km-res-tabela table{ width:100%; min-width:640px; border-collapse:collapse; }
.km-res-tabela th{ background:#070b14; color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:14px 16px; text-align:left; }
.km-res-tabela td{ padding:14px 16px; font-size:14px; border-bottom:1px solid var(--km-borda); }
.km-res-tabela tr:nth-child(1) td:first-child{ color:var(--km-azul); font-weight:700; }
.km-res-vazio{ padding:48px 24px; text-align:center; color:var(--km-texto3); font-size:14.5px; }
@media (max-width:900px){ .km-res-grid{ grid-template-columns:1fr; } .km-res-side{ position:static; } }

/* =====================================================================
   PAINEL / páginas antigas com o novo header: compensação do header fixo
   ===================================================================== */
body.km.km-topo-solido .util{ max-width:var(--km-container); }

/* responsivo geral */
@media (max-width:640px){
  .km-hero{ padding-top:96px; }
  .km-recentes a{ grid-template-columns:minmax(80px,110px) 1fr; }
  .km-recentes a span:nth-child(3), .km-recentes a span:nth-child(4){ display:none; }
  .km-ev-hero{ padding:120px 0 64px; }
  .km-ev-hero .km-ev-hero-in{ padding:0 20px; }
  .km-contador{ flex-direction:column; align-items:stretch; }
}

/* ajustes finos */
.km-cat, .km-cat .km-cat-body, .km-ev, .km-kpi, .km-estr-item, .km-atalho, .km-box{ text-align:left; }
.km-atalho img{ background:var(--km-escuro); border-radius:14px; padding:10px; }
body.km-layout-card .km-atalho img, body.km-layout-editorial .km-atalho img{ background:#0b1220; }

/* =====================================================================
   BARRA LGPD (aceite de cookies) — glassmorphism
   ===================================================================== */
body.km .aceite{
  width:min(var(--km-container),calc(100% - 32px)); max-width:none; left:50%; right:auto; bottom:22px;
  transform:translateX(-50%); display:flex; align-items:center; gap:22px; flex-wrap:wrap;
  padding:20px 24px; border-radius:22px; text-align:left; overflow:visible;
  background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.03)) , var(--km-escuro,rgba(10,15,26,.55));
  backdrop-filter:blur(22px) saturate(160%); -webkit-backdrop-filter:blur(22px) saturate(160%);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 24px 60px -18px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.18);
  animation:km-aceite-in .5s cubic-bezier(.2,.8,.2,1) both;
}
body.km .aceite:hover{ background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.04)) , var(--km-escuro,rgba(10,15,26,.62)); }
@keyframes km-aceite-in{ from{ opacity:0; transform:translateX(-50%) translateY(22px); } to{ opacity:1; transform:translateX(-50%) translateY(0); } }
body.km .aceite .chama-aceite{
  width:auto; flex:1 1 320px; min-width:0; padding:0; display:block; vertical-align:baseline;
  font-family:var(--km-font); font-size:13.5px; line-height:1.55; color:rgba(255,255,255,.78);
}
body.km .aceite .chama-aceite br{ display:block; }
body.km .aceite .chama-aceite br + br{ display:none; }
body.km .aceite .chama-aceite strong, body.km .aceite .chama-aceite b{ color:#fff; font-weight:700; }
body.km .aceite .chama-aceite a{
  font-family:var(--km-font); font-size:13.5px; font-weight:600; color:var(--km-accent-texto,var(--km-lima)); text-decoration:none;
  border-bottom:1px solid currentColor; padding-bottom:1px; opacity:.95;
}
body.km .aceite .chama-aceite a:hover{ background:transparent; color:#fff; border-bottom-color:#fff; }
body.km .aceite .cta-aceite{
  width:auto; flex:none; margin:0; padding:13px 30px; border-radius:var(--km-r-pill);
  background:var(--km-accent,linear-gradient(135deg,var(--km-azul),var(--km-azul2))); color:#fff;
  font-family:var(--km-font); font-size:13.5px; font-weight:700; letter-spacing:.02em; text-transform:none;
  box-shadow:0 0 24px var(--km-glow,rgba(13,110,253,.45)); border:1px solid rgba(255,255,255,.18);
}
body.km .aceite .cta-aceite:hover{ box-shadow:0 0 36px var(--km-glow-forte,rgba(13,110,253,.7)); transform:translateY(-1px); }
@media (max-width:720px){
  body.km .aceite{ width:calc(100% - 20px); bottom:12px; padding:18px; gap:14px; border-radius:18px; }
  body.km .aceite .chama-aceite{ flex:1 1 100%; text-align:left; }
  body.km .aceite .cta-aceite{ width:100%; text-align:center; }
}

/* =====================================================================
   INSCRIÇÃO EXTERNA (TicketSports e afins)
   ===================================================================== */
.km-aviso-externo{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; background:var(--km-azul-bg); border:1px solid rgba(var(--km-accent-rgb),.28); border-left:4px solid var(--km-accent); border-radius:var(--km-r-card); padding:16px 20px; margin-bottom:24px; }
.km-aviso-externo > i{ font-size:24px; color:var(--km-accent); flex:none; }
.km-aviso-externo > div{ display:flex; flex-direction:column; gap:3px; flex:1 1 260px; min-width:0; }
.km-aviso-externo b{ font-size:15px; font-weight:700; color:var(--km-texto); }
.km-aviso-externo span{ font-size:13.5px; color:var(--km-texto2); }
.km-aviso-externo .km-btn{ flex:none; }
.km-cat.km-cat-externa .km-cat-btn{ display:inline-flex; align-items:center; gap:7px; }
.km-cat.km-cat-externa .km-cat-seta{ color:var(--km-accent); }
/* interstício quando alguém abre a URL interna de uma categoria vendida fora */
.km-externo-box{ max-width:640px; margin:0 auto; background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:clamp(28px,5vw,44px); text-align:center; display:flex; flex-direction:column; align-items:center; gap:16px; box-shadow:0 24px 60px -34px rgba(7,11,20,.3); }
.km-externo-box .km-externo-ico{ width:64px; height:64px; border-radius:20px; background:var(--km-azul-bg); color:var(--km-accent); display:flex; align-items:center; justify-content:center; font-size:30px; }
.km-externo-box h1{ font-size:clamp(22px,3vw,30px); }
.km-externo-box p{ font-size:15px; line-height:1.6; color:var(--km-texto2); max-width:440px; }
.km-externo-box .km-externo-cats{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.km-externo-box .km-externo-cats a{ font-size:13px; font-weight:600; color:var(--km-accent) !important; border:1px solid rgba(var(--km-accent-rgb),.35); padding:6px 14px; border-radius:var(--km-r-pill); }

/* =====================================================================
   FAQ POR PÁGINA (grupos cadastrados no admin) + copiar link do bloco
   ===================================================================== */
.km-faq-antes-rodape{ display:block; background:var(--km-bg); padding:0 !important; }
.km-faq-pagina{ padding-top:clamp(36px,5vw,52px); padding-bottom:clamp(36px,5vw,52px); }
.km-faq-pagina .km-faq-sub{ margin-top:10px; font-size:15px; line-height:1.6; color:var(--km-texto2); max-width:560px; }
.km-faq-pagina .km-sec-head.km-centro{ justify-content:center; text-align:center; }
.km-faq-pagina .km-sec-head.km-centro .km-faq-sub{ margin-left:auto; margin-right:auto; }
/* layout editorial: o FAQ vira grid sem max-width (feito para dentro da página do evento); o FAQ antes do rodapé é
   uma section solta, então precisa manter o container do site (senão estoura a largura do .km-util) */
body.km-layout-editorial .km-faq-pagina{ max-width:var(--km-container); margin:0 auto; padding-left:24px; padding-right:24px; box-sizing:border-box; }
body.km-layout-editorial .km-faq-pagina .km-sec-head.km-centro{ text-align:left; align-items:flex-start; }
body.km-layout-editorial .km-faq-pagina .km-sec-head.km-centro .km-faq-sub{ margin-left:0; margin-right:0; }
.km-faq-titulo{ display:inline-flex; align-items:center; gap:10px; }
/* ícone de copiar link: aparece no hover do título/da pergunta */
.km-copia-link{ display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; flex:none; border:1px solid var(--km-borda2); background:var(--km-surface); border-radius:9px; color:var(--km-texto3); cursor:pointer; font-size:14px; padding:0; opacity:0; transform:translateY(-1px); transition:opacity .2s,color .2s,border-color .2s,background .2s; }
.km-faq-titulo:hover .km-copia-link, .km-faq-item .km-faq-q:hover .km-copia-link, .km-copia-link:focus-visible{ opacity:1; }
.km-copia-link:hover{ color:var(--km-accent); border-color:var(--km-accent); background:var(--km-azul-bg); }
.km-copia-link.km-copiado{ opacity:1; color:#fff; background:var(--km-verde); border-color:var(--km-verde); }
.km-copia-link.km-copiado:after{ content:'link copiado'; position:absolute; margin-top:-46px; background:var(--km-texto); color:#fff; font-size:11px; font-weight:600; padding:5px 9px; border-radius:7px; white-space:nowrap; }
.km-faq-item .km-faq-q{ position:relative; }
.km-faq-item .km-faq-rot{ min-width:0; }
.km-faq-item .km-faq-icos{ display:inline-flex; align-items:center; gap:8px; flex:none; }
.km-faq-item.km-faq-alvo{ border-color:var(--km-accent); box-shadow:0 0 0 3px var(--km-glow); }
@media (hover:none){ .km-copia-link{ opacity:.6; } }

/* ---------- página /faq e /faq/<grupo> ---------- */
.km-faq-hero{ position:relative; overflow:hidden; background:radial-gradient(900px 400px at 60% -20%,var(--km-glow),transparent 60%),var(--km-escuro); color:#fff; padding:124px 0 56px; }
.km-faq-hero .km-util{ display:flex; flex-direction:column; gap:12px; }
.km-faq-hero .km-voltar-faq{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; font-size:13px; font-weight:600; color:rgba(255,255,255,.6) !important; border:1px solid rgba(255,255,255,.18); border-radius:var(--km-r-pill); padding:6px 14px; }
.km-faq-hero .km-voltar-faq:hover{ color:#fff !important; border-color:#fff; }
.km-faq-hero .km-sobretitulo{ color:var(--km-accent-texto); }
.km-faq-hero h1{ font-size:clamp(28px,4vw,44px); line-height:1.05; }
.km-faq-hero p{ max-width:620px; font-size:16px; line-height:1.65; color:rgba(255,255,255,.62); }
.km-faq-outros{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:30px; padding-top:22px; border-top:1px solid var(--km-borda); font-size:13.5px; color:var(--km-texto3); }
.km-faq-outros a{ font-size:13.5px; font-weight:600; color:var(--km-accent) !important; border:1px solid rgba(var(--km-accent-rgb),.3); border-radius:var(--km-r-pill); padding:6px 14px; }
.km-faq-outros a:hover{ background:var(--km-accent); color:#fff !important; }
.km-faq-indice{ display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:14px; }
.km-faq-indice a{ display:flex; align-items:center; gap:16px; background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:20px 22px; color:inherit !important; transition:transform .25s,box-shadow .25s,border-color .25s; }
.km-faq-indice a:hover{ transform:translateY(-3px); border-color:var(--km-accent); box-shadow:0 20px 50px -28px rgba(7,11,20,.35); }
.km-faq-indice .km-faq-ind-ico{ width:46px; height:46px; flex:none; border-radius:14px; background:var(--km-azul-bg); color:var(--km-accent); display:flex; align-items:center; justify-content:center; font-size:22px; }
.km-faq-indice .km-faq-ind-txt{ flex:1; min-width:0; }
.km-faq-indice .km-faq-ind-txt b{ display:block; font-size:15.5px; font-weight:700; }
.km-faq-indice .km-faq-ind-txt small{ display:block; font-size:13px; color:var(--km-texto2); margin-top:3px; }
.km-faq-indice > a > i{ color:var(--km-accent); font-size:18px; flex:none; }
.km-faq-vazio{ background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:52px 24px; text-align:center; }
.km-faq-vazio i{ font-size:34px; color:var(--km-texto3); display:block; margin-bottom:10px; }
.km-faq-vazio b{ display:block; font-size:17px; }
.km-faq-vazio p{ margin-top:6px; font-size:14.5px; color:var(--km-texto2); }

/* =====================================================================
   BUSCA DE PROVAS (/buscar)
   ===================================================================== */
.km-busca-hero{ position:relative; overflow:hidden; background:radial-gradient(900px 400px at 65% -20%,var(--km-glow),transparent 60%),var(--km-escuro); color:#fff; padding:120px 0 44px; }
.km-busca-hero .km-sobretitulo{ color:var(--km-accent-texto); }
.km-busca-hero h1{ font-size:clamp(26px,3.6vw,40px); line-height:1.05; margin:8px 0 22px; }
.km-busca-linha{ display:flex; gap:10px; flex-wrap:wrap; }
.km-busca-campo{ position:relative; display:flex; align-items:center; flex:1 1 320px; min-width:0; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); border-radius:var(--km-r-pill); padding:0 18px; }
.km-busca-campo i{ font-size:18px; color:rgba(255,255,255,.5); flex:none; }
.km-busca-campo input{ flex:1; min-width:0; background:none; border:0; outline:none; color:#fff; font-family:inherit; font-size:15px; padding:15px 12px; }
.km-busca-campo input::placeholder{ color:rgba(255,255,255,.45); }
.km-busca-linha .km-btn{ flex:none; padding:15px 30px; }
.km-busca-filtros{ display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; margin-top:18px; }
.km-busca-filtros label{ display:flex; flex-direction:column; gap:5px; min-width:150px; }
.km-busca-filtros label span{ font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.45); }
.km-busca-filtros select, .km-busca-filtros input[type=text]{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.18); border-radius:12px; color:#fff; font-family:inherit; font-size:13.5px; padding:11px 12px; outline:none; }
.km-busca-filtros select option{ color:#0b1220; }
.km-busca-filtros input[type=text]::placeholder{ color:rgba(255,255,255,.4); }
.km-busca-limpa{ font-size:12.5px; color:rgba(255,255,255,.55) !important; text-decoration:underline; padding-bottom:12px; }
.km-busca-limpa:hover{ color:#fff !important; }
/* barra horizontal com links clicáveis */
.km-marquee.km-marquee-links a{ color:#fff !important; }
.km-marquee.km-marquee-links a:hover{ text-decoration:underline; }
.km-marquee.km-marquee-links i{ font-style:normal; margin:0 14px; opacity:.6; }

/* =====================================================================
   PÁGINAS DE DOCUMENTO DO EVENTO (regulamento) e contato do organizador
   ===================================================================== */
.km-doc-hero{ position:relative; overflow:hidden; background:radial-gradient(900px 400px at 60% -20%,var(--km-glow),transparent 60%),var(--km-escuro); color:#fff; padding:120px 0 44px; }
.km-doc-hero .km-util{ display:flex; flex-direction:column; gap:10px; }
.km-doc-hero .km-voltar{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; font-size:13px; font-weight:600; color:rgba(255,255,255,.6) !important; border:1px solid rgba(255,255,255,.18); border-radius:var(--km-r-pill); padding:6px 14px; }
.km-doc-hero .km-voltar:hover{ color:#fff !important; border-color:#fff; }
.km-doc-hero .km-sobretitulo{ color:var(--km-accent-texto); }
.km-doc-hero h1{ font-size:clamp(26px,3.6vw,40px); line-height:1.08; }
.km-doc-hero p{ font-size:15.5px; color:rgba(255,255,255,.6); max-width:640px; }
.km-doc-sec{ padding-top:clamp(30px,4vw,44px); }
.km-doc-box{ background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:clamp(24px,4vw,44px); font-size:15px; line-height:1.75; color:var(--km-texto2); box-shadow:0 24px 60px -40px rgba(7,11,20,.35); }
.km-doc-box h1,.km-doc-box h2,.km-doc-box h3,.km-doc-box h4{ color:var(--km-texto); margin:26px 0 10px; line-height:1.25; }
.km-doc-box h1:first-child,.km-doc-box h2:first-child,.km-doc-box h3:first-child{ margin-top:0; }
.km-doc-box h2{ font-size:20px; } .km-doc-box h3{ font-size:17px; }
.km-doc-box p{ margin:0 0 14px; }
.km-doc-box strong,.km-doc-box b{ color:var(--km-texto); }
.km-doc-box ul,.km-doc-box ol{ margin:0 0 16px; padding-left:22px; }
.km-doc-box li{ margin-bottom:7px; }
.km-doc-box a{ color:var(--km-accent) !important; text-decoration:underline; }
.km-doc-box img{ max-width:100%; height:auto; border-radius:12px; }
.km-doc-box table{ width:100%; border-collapse:collapse; margin:0 0 16px; font-size:14px; }
.km-doc-box th,.km-doc-box td{ border:1px solid var(--km-borda); padding:9px 12px; text-align:left; }
.km-doc-box th{ background:var(--km-bg2); color:var(--km-texto); }
.km-doc-acoes{ display:flex; gap:10px; flex-wrap:wrap; margin-top:22px; }
.km-doc-acoes .km-btn{ cursor:pointer; font-family:inherit; }
@media print{
  .km-header,.km-footer,.km-doc-hero,.km-doc-acoes,.km-whats-flutuante,.aceite,.km-faq-antes-rodape{ display:none !important; }
  .km-doc-box{ border:0; box-shadow:none; padding:0; }
}

/* ===== CONTATO (site principal e organizador/evento) ===== */
  .km-contato-hero{ position:relative; overflow:hidden; background:radial-gradient(900px 400px at 60% -20%,var(--km-glow),transparent 60%),var(--km-escuro); color:#fff; padding:120px 0 48px; }
  .km-contato-hero .km-sobretitulo{ color:var(--km-accent-texto); }
  .km-contato-hero h1{ font-size:clamp(28px,4vw,42px); line-height:1.05; margin:8px 0 12px; }
  .km-contato-hero p{ max-width:600px; font-size:16px; line-height:1.65; color:rgba(255,255,255,.62); }
  .km-contato-grid{ display:grid; grid-template-columns:minmax(0,320px) minmax(0,1fr); gap:clamp(20px,4vw,44px); align-items:start; }
  .km-contato-canais{ display:flex; flex-direction:column; gap:10px; }
  .km-canal{ display:flex; align-items:center; gap:14px; background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:16px 18px; color:inherit !important; transition:transform .25s,border-color .25s,box-shadow .25s; }
  .km-canal:hover{ transform:translateY(-2px); border-color:var(--km-accent); box-shadow:0 18px 40px -30px rgba(7,11,20,.4); }
  .km-canal-ico{ width:44px; height:44px; flex:none; border-radius:13px; background:var(--km-azul-bg); color:var(--km-accent); display:flex; align-items:center; justify-content:center; font-size:21px; }
  .km-canal b{ display:block; font-size:14.5px; }
  .km-canal small{ display:block; font-size:12.5px; color:var(--km-texto2); margin-top:2px; }
  .km-contato-form{ background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:clamp(20px,3vw,30px); }
  .km-contato-2col{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; }
  .km-label{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
  .km-label > span{ font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--km-texto3); }
  .km-label input, .km-label select, .km-label textarea{ width:100%; box-sizing:border-box; padding:13px 14px; border:1px solid var(--km-borda2); border-radius:var(--km-r-btn); font-family:inherit; font-size:14.5px; color:var(--km-texto); background:#fff; outline:none; }
  .km-label input:focus, .km-label select:focus, .km-label textarea:focus{ border-color:var(--km-accent); }
  .km-label textarea{ min-height:130px; resize:vertical; }
  .km-aceite-linha{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--km-texto2); margin:4px 0 18px; }
  .km-aceite-linha a{ color:var(--km-accent) !important; text-decoration:underline; }
  .km-contato-form .km-btn{ width:100%; justify-content:center; border:0; cursor:pointer; font-size:15px; padding:15px; }
  .km-contato-form .km-btn.opaco{ opacity:.45; cursor:not-allowed; }
  @media (max-width:820px){ .km-contato-grid{ grid-template-columns:1fr; } }

/* ---------- cadastro de equipe (evento) ---------- */
.km-eq-sec{ padding-top:clamp(30px,4vw,44px); }
.km-eq-grid{ display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:clamp(20px,4vw,40px); align-items:start; }
.km-eq-lado{ display:flex; flex-direction:column; gap:12px; }
.km-eq-info{ background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:18px 20px; }
.km-eq-ico{ display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:13px; background:var(--km-azul-bg); color:var(--km-accent); font-size:20px; margin-bottom:10px; }
.km-eq-info b{ display:block; font-size:14.5px; }
.km-eq-info small{ display:block; font-size:13px; line-height:1.55; color:var(--km-texto2); margin-top:4px; }
.km-eq-form{ background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:clamp(20px,3vw,32px); }
.km-eq-bloco{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--km-accent); padding-bottom:10px; margin:6px 0 16px; border-bottom:1px solid var(--km-borda); }
.km-eq-2col{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; }
.km-eq-form .linha_esconde{ display:none; }
.km-eq-form .km-btn{ width:100%; justify-content:center; border:0; cursor:pointer; font-size:15px; padding:15px; margin-top:4px; }
.km-eq-form .km-btn.opaco{ opacity:.45; cursor:not-allowed; }
.km-eq-ok{ max-width:620px; margin:0 auto; background:var(--km-surface); border:1px solid var(--km-borda); border-radius:var(--km-r-card); padding:clamp(28px,5vw,48px); text-align:center; }
.km-eq-ok-ico{ font-size:46px; color:var(--km-verde); line-height:1; margin-bottom:10px; }
.km-eq-ok b{ display:block; font-size:20px; margin-bottom:8px; }
.km-eq-ok p{ font-size:14.5px; line-height:1.65; color:var(--km-texto2); max-width:440px; margin:0 auto; }
.km-eq-ok-btns{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:22px; }
@media (max-width:860px){ .km-eq-grid{ grid-template-columns:1fr; } }
.km-eq-grid-solo{ grid-template-columns:minmax(0,1fr); }
.km-eq-grid-solo .km-eq-form{ max-width:860px; margin:0 auto; width:100%; }

/* imagem de categoria que não existe mais no servidor: o bloco continua com a cara certa
   (fundo escuro + nome), em vez de virar uma faixa branca estreita com o ícone quebrado */
.km-cat .km-cat-img{ width:100%; }
.km-cat .km-cat-img img{ display:block; width:100%; height:100%; object-fit:cover; color:transparent; font-size:0; }

/* hover do CARD inteiro nas categorias (o botão acompanha, como nos demais cards do site) */
.km-cat{ transition:transform .25s, box-shadow .25s, border-color .25s; }
.km-cat:hover{ transform:translateY(-4px); border-color:var(--km-accent); box-shadow:0 22px 50px -30px rgba(7,11,20,.45); }
.km-cat:hover .km-cat-btn{ background:var(--km-accent); color:#fff !important; }

/* hero + barra ocupando exatamente a primeira tela; em telas baixas o respiro diminui
   antes de deixar o conteúdo estourar */
@media (max-height:820px){ .km-hero{ padding:96px 0 34px; } }
@media (max-height:700px){ .km-hero{ padding:88px 0 26px; } .km-hero .km-hero-card > div{ padding:20px; gap:14px; } }
/* o espaço no fim do texto colapsa no HTML: o respiro entre um ciclo e outro vem do padding
   (que entra na largura do bloco e mantém o -50% exato) */
.km-marquee .km-mq-run{ display:inline-block; padding-right:16px; }
.km-busca-aviso{ font-size:14px; color:rgba(255,255,255,.65); margin:-8px 0 16px; }
.km-busca-aviso a{ color:var(--km-accent-texto) !important; font-weight:600; text-decoration:underline; }

/* endereço do organizador no rodapé (Dados gerais > Endereço, opcional) */
.km-footer-ev .km-footer-end{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; color:rgba(255,255,255,.62) !important; text-decoration:none; text-align:center; }
.km-footer-ev .km-footer-end i{ font-size:16px; color:var(--km-accent-texto); }
.km-footer-ev .km-footer-end:hover{ color:#fff !important; }

/* chamada "seja um patrocinador" na página do evento (quando ainda não há patrocinadores) */
.km-patro-chamada{ display:flex; align-items:center; gap:16px; background:var(--km-escuro); color:#fff !important; border-radius:var(--km-r-card); padding:18px 22px; text-decoration:none; transition:box-shadow .25s, transform .25s; }
.km-patro-chamada:hover{ transform:translateY(-2px); box-shadow:0 24px 50px -30px rgba(7,11,20,.6); }
.km-patro-chamada-ico{ flex:none; width:48px; height:48px; border-radius:14px; background:rgba(255,255,255,.08); color:var(--km-accent-texto); display:flex; align-items:center; justify-content:center; font-size:24px; }
.km-patro-chamada-txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.km-patro-chamada-txt b{ font-size:16px; } .km-patro-chamada-txt span{ font-size:13.5px; color:rgba(255,255,255,.62); }
.km-patro-chamada-cta{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#fff; border:1.5px solid rgba(255,255,255,.35); padding:10px 16px; border-radius:var(--km-r-pill); white-space:nowrap; }
@media (max-width:640px){ .km-patro-chamada{ flex-wrap:wrap; } .km-patro-chamada-cta{ width:100%; justify-content:center; } }

/* página de sucesso: aviso de documentação obrigatória (dentro do herói escuro) */
.km-sucesso .km-suc-docs{ width:100%; max-width:680px; margin:22px auto 0; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:20px; padding:20px 22px; text-align:left; display:flex; flex-direction:column; gap:12px; animation:km-rise .6s ease-out .25s both; backdrop-filter:blur(6px); }
.km-sucesso .km-suc-docs-cab{ display:flex; gap:14px; align-items:flex-start; }
.km-sucesso .km-suc-docs-ico{ flex:none; width:44px; height:44px; border-radius:13px; background:rgba(255,255,255,.1); color:var(--km-accent-texto); display:flex; align-items:center; justify-content:center; font-size:22px; }
.km-sucesso .km-suc-docs-cab b{ display:block; font-size:16px; color:#fff; margin-bottom:4px; }
.km-sucesso .km-suc-docs-cab p{ font-size:13.5px; line-height:1.55; color:rgba(255,255,255,.62); max-width:none; margin:0; }
.km-sucesso .km-suc-doc{ background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.1); border-radius:16px; padding:14px 16px; display:flex; flex-direction:column; gap:10px; }
.km-sucesso .km-suc-doc-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.km-sucesso .km-suc-doc-top > span{ display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:#fff; }
.km-sucesso .km-suc-doc-top > span i{ color:var(--km-accent-texto); font-size:18px; }
.km-sucesso .km-suc-doc-top > span small{ font-weight:600; color:rgba(255,255,255,.55); font-size:13px; }
.km-sucesso .km-suc-doc-top em{ font-style:normal; display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; color:#ffd58a; background:rgba(255,213,138,.12); border-radius:99px; padding:4px 10px; }
.km-sucesso .km-suc-doc-lista{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.km-sucesso .km-suc-doc-lista li{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:rgba(255,255,255,.85); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); border-radius:99px; padding:6px 12px; }
.km-sucesso .km-suc-doc-lista li i{ color:var(--km-accent-texto); }
.km-sucesso .km-suc-doc-bt{ align-self:flex-start; }
@media (max-width:560px){ .km-sucesso .km-suc-docs{ padding:16px; } .km-sucesso .km-suc-doc-bt{ width:100%; justify-content:center; } }
/* página de sucesso: o FAQ antes do rodapé fica no fundo claro, o título não pode herdar o branco do herói */
.km-faq-antes-rodape .km-faq-titulo, .km-faq-antes-rodape h2{ color:var(--km-texto) !important; }

/* FAQ da página do evento alinhada com as demais seções (mesma largura do container) */
.km-ev-sec.km-faq{ max-width:var(--km-container); }
/* WhatsApp flutuante: ícone proporcional ao círculo */
.km-whats-flutuante i{ font-size:34px; line-height:1; display:block; }

/* ---- hero: slider do card lateral (Clientes > Home do site) ---- */
.km-hero .km-hero-slider{ flex-direction:column; align-items:center; gap:14px; }
.km-hero .km-hero-slides{ display:grid; width:340px; max-width:100%; }
.km-hero .km-hero-slides .km-hero-slide{ grid-area:1 / 1; opacity:0; visibility:hidden; transform:translateX(24px); transition:opacity .5s, transform .5s, visibility .5s; }
.km-hero .km-hero-slides .km-hero-slide.on{ opacity:1; visibility:visible; transform:translateX(0); }
.km-hero .km-hero-dots{ display:flex; gap:8px; justify-content:center; position:relative; z-index:2; }
.km-hero .km-hero-dots button{ width:10px; height:10px; border-radius:99px; border:0; background:rgba(255,255,255,.28); cursor:pointer; padding:0; transition:width .25s, background .25s; }
.km-hero .km-hero-dots button.on{ width:28px; background:linear-gradient(135deg,#7db4ff,#3d8bfd); }
/* ---- serviços com link ---- */
a.km-servico{ color:inherit !important; text-decoration:none !important; cursor:pointer; }
.km-servico .km-servico-mais{ margin-top:auto; display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:var(--km-azul); }
.km-servico.km-servico-link:hover .km-servico-mais i{ transform:translateX(4px); } .km-servico-mais i{ transition:transform .2s; }

/* ---- modal "saindo do site do organizador" (item Cronometragem do menu) ---- */
.km-sair-modal{ position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center; padding:20px; }
.km-sair-modal.on{ display:flex; }
.km-sair-veu{ position:absolute; inset:0; background:rgba(7,11,20,.7); backdrop-filter:blur(4px); }
.km-sair-cx{ position:relative; width:460px; max-width:100%; background:#fff; color:#0b1220; border-radius:22px; padding:30px 28px; text-align:center; box-shadow:0 40px 90px -30px rgba(7,11,20,.8); animation:km-sair-in .25s ease; }
@keyframes km-sair-in{ from{ opacity:0; transform:translateY(12px) scale(.98);} to{ opacity:1; transform:none;} }
.km-sair-ico{ width:60px; height:60px; border-radius:18px; margin:0 auto 14px; display:flex; align-items:center; justify-content:center; background:rgba(13,110,253,.12); color:var(--km-azul,#0d6efd); font-size:30px; }
.km-sair-cx h3{ margin:0 0 8px; font-size:20px; line-height:1.25; color:#0b1220; }
.km-sair-cx p{ margin:0 0 20px; font-size:14px; line-height:1.55; color:#5c6b82; }
.km-sair-bts{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.km-sair-bts .km-btn-ghost{ color:#0b1220 !important; border-color:#cfd6e4 !important; }
/* BARRA DE PROVAS (hero): pausa ao passar o mouse e mostra a tooltip do evento (visual do card do hero, sem contador) */
.km-marquee.km-marquee-links:hover .km-mq-track, .km-marquee.km-mq-parada .km-mq-track{ animation-play-state:paused !important; }
.km-marquee.km-marquee-links a{ position:relative; padding:4px 2px; }
.km-mq-tip{ position:fixed; z-index:1200; width:320px; max-width:calc(100vw - 24px); opacity:0; pointer-events:none; transform:translateY(-6px); transition:opacity .18s ease, transform .18s ease; }
.km-mq-tip.on{ opacity:1; pointer-events:auto; transform:none; }
.km-mq-tip:before{ content:''; position:absolute; left:50%; top:-6px; width:12px; height:12px; margin-left:-6px; background:#0f1626; border-left:1px solid rgba(255,255,255,.14); border-top:1px solid rgba(255,255,255,.14); transform:rotate(45deg); }
.km-mq-tip.km-mq-tip-cima:before{ top:auto; bottom:-6px; transform:rotate(225deg); }
.km-mq-tip-cx{ position:relative; background:#0f1626; border:1px solid rgba(255,255,255,.14); border-radius:18px; padding:18px 20px; color:#fff; display:flex; flex-direction:column; gap:10px; box-shadow:0 30px 60px -20px rgba(0,0,0,.7), 0 0 40px rgba(13,110,253,.18); text-align:left; text-transform:none; letter-spacing:0; font-weight:400; white-space:normal; }
.km-mq-tip .km-hc-top{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.km-mq-tip .km-hc-top span:first-child{ font-size:11px; letter-spacing:.12em; color:rgba(255,255,255,.5); font-weight:600; }
.km-mq-tip .km-hc-top span:last-child{ font-size:10.5px; font-weight:700; color:#0b1220; background:linear-gradient(135deg,#7db4ff,#3d8bfd); padding:3px 10px; border-radius:99px; white-space:nowrap; }
.km-mq-tip .km-hc-nome{ font-size:19px; font-weight:700; line-height:1.15; }
.km-mq-tip .km-hc-local, .km-mq-tip .km-hc-data{ display:flex; align-items:center; gap:7px; font-size:13.5px; color:rgba(255,255,255,.65); }
.km-mq-tip .km-hc-local i, .km-mq-tip .km-hc-data i{ font-size:16px; color:#7db4ff; flex:none; }
.km-mq-tip .km-hc-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.km-mq-tip .km-hc-chips span{ font-size:11.5px; font-weight:600; color:#8fbcff; border:1px solid rgba(61,139,253,.4); padding:3px 10px; border-radius:99px; }
@media (hover:none){ .km-mq-tip{ display:none; } }
/* ===== PÁGINA /organizadores: um bloco por organizador (faixa de identificação + próximos eventos) ===== */
.km-orgs-hero{ padding:120px 0 40px; }
.km-orgs-intro{ max-width:640px; font-size:16px; line-height:1.65; color:rgba(255,255,255,.62); margin:0 0 18px; }
.km-orgs-nums{ display:flex; gap:10px; flex-wrap:wrap; }
.km-orgs-nums span{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:rgba(255,255,255,.7); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:99px; padding:7px 14px; }
.km-orgs-nums b{ color:#fff; font-size:15px; }
.km-orgs-bloco{ padding-top:0; padding-bottom:clamp(40px,6vw,64px); }
.km-orgs-primeiro{ padding-top:clamp(36px,5vw,52px); }
/* faixa do organizador: mesmo visual do hero da página dele, mas como cartão com as cores da marca */
.km-org-hero.km-orgs-faixa{ padding:clamp(24px,3.5vw,36px) clamp(20px,3vw,32px); border-radius:var(--km-r-card); background:radial-gradient(700px 320px at 70% -30%,rgba(var(--km-org-rgb,13,110,253),.38),transparent 60%),var(--km-org-esc,#0a0808); margin-bottom:22px; }
.km-org-hero.km-orgs-faixa .km-org-id{ gap:20px; }
.km-org-hero.km-orgs-faixa .km-org-id img{ height:64px; max-width:240px; margin-right:16px; }
.km-org-hero.km-orgs-faixa .km-org-id .km-mono{ width:72px; height:72px; border-radius:20px; font-size:22px; background:var(--km-org-acc,var(--km-accent)); }
.km-org-hero.km-orgs-faixa h2{ font-size:clamp(20px,2.6vw,28px); line-height:1.05; color:#fff; }
.km-org-hero.km-orgs-faixa p{ max-width:560px; font-size:14.5px; line-height:1.55; color:rgba(255,255,255,.62); margin:0; }
.km-orgs-meta{ display:flex; gap:8px 16px; flex-wrap:wrap; }
.km-orgs-meta span{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:rgba(255,255,255,.7); }
.km-orgs-meta i{ font-size:15px; color:var(--km-org-acc,var(--km-accent-texto)); }
.km-orgs-ir{ margin-left:auto; flex:none; padding:12px 20px; font-size:14px; background:var(--km-org-acc,var(--km-accent)); box-shadow:0 0 24px rgba(var(--km-org-rgb,13,110,253),.4); }
.km-orgs-sub{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.km-orgs-semev{ font-size:13px; color:var(--km-texto3,#8494ab); }
.km-orgs-vazio{ margin:0; }
@media (max-width:760px){ .km-orgs-ir{ margin-left:0; width:100%; justify-content:center; } .km-org-hero.km-orgs-faixa .km-org-id img{ margin-right:0; } }
/* organizadores: modalidades que o organizador atende (ícone da modalidade, como no mega menu) */
.km-orgs-mods{ display:flex; gap:8px; flex-wrap:wrap; }
.km-orgs-mods a{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; color:#fff !important; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:99px; padding:6px 12px 6px 8px; transition:background .2s, border-color .2s; }
.km-orgs-mods a i{ width:24px; height:24px; border-radius:8px; background:rgba(var(--km-org-rgb,13,110,253),.22); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:14px; }
.km-orgs-mods a:hover{ background:rgba(var(--km-org-rgb,13,110,253),.28); border-color:rgba(var(--km-org-rgb,13,110,253),.6); }
/* ===== /buscar: "Próximos de mim", botão Mapa, mapa Leaflet e pins ===== */
.km-busca-perto{ flex:none; display:inline-flex; align-items:center; gap:8px; padding:0 20px; border:1px solid rgba(255,255,255,.22); color:#fff !important; background:rgba(255,255,255,.06); font-family:inherit; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; }
.km-busca-perto i{ font-size:18px; color:var(--km-accent-texto); }
.km-busca-perto:hover{ border-color:#fff; background:rgba(255,255,255,.12); }
.km-busca-perto.on{ border-color:var(--km-accent); background:rgba(var(--km-accent-rgb),.22); }
.km-busca-perto.km-busca-perto-carregando i{ animation:km-perto-gira 1s linear infinite; }
@keyframes km-perto-gira{ to{ transform:rotate(360deg); } }
.km-busca-mapa-bt{ margin-left:auto; display:inline-flex; align-items:center; gap:8px; height:46px; padding:0 18px; border-radius:12px; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.06); color:#fff; font-family:inherit; font-size:13.5px; font-weight:700; cursor:pointer; }
.km-busca-mapa-bt i{ font-size:18px; color:var(--km-accent-texto); }
.km-busca-mapa-bt:hover{ border-color:#fff; background:rgba(255,255,255,.12); }
.km-busca-mapa-bt.on{ background:var(--km-accent); border-color:var(--km-accent); box-shadow:0 0 24px var(--km-glow); }
.km-busca-mapa-bt.on i{ color:#fff; }
.km-busca-perto-nota{ margin:8px 0 0; font-size:13.5px; color:var(--km-texto2); display:flex; align-items:center; gap:6px; }
.km-busca-perto-nota i{ color:var(--km-accent); }
.km-ev .km-ev-dist{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--km-accent); background:rgba(var(--km-accent-rgb),.09); border-radius:99px; padding:4px 10px; margin-bottom:6px; align-self:flex-start; }
.km-ev .km-ev-dist i{ font-size:14px; }
.km-mapa-sec{ padding-bottom:0 !important; }
.km-mapa-topo{ display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.km-mapa-legenda{ font-size:13px; color:var(--km-texto2); background:var(--km-surface); border:1px solid var(--km-borda); border-radius:99px; padding:6px 12px; }
.km-mapa{ width:100%; height:clamp(340px,52vh,560px); border-radius:var(--km-r-card); border:1px solid var(--km-borda); overflow:hidden; background:#e9eef5; box-shadow:0 20px 50px -30px rgba(7,11,20,.35); z-index:0; }
.km-mapa .leaflet-control-attribution{ font-size:10px; }
/* pin: bolha com bandeira; pulsa ao passar o mouse (mesma animação da bolinha "ao vivo") */
.km-pin-wrap{ background:none !important; border:0 !important; }
.km-pin{ position:relative; display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50% 50% 50% 4px; transform:rotate(-45deg); background:var(--km-accent); border:3px solid #fff; box-shadow:0 8px 18px -6px rgba(7,11,20,.6); transition:transform .18s ease; }
.km-pin i{ transform:rotate(45deg); color:#fff; font-size:16px; }
.km-pin:before{ content:''; position:absolute; inset:-3px; border-radius:inherit; border:2px solid var(--km-accent); opacity:0; }
.km-pin-hover .km-pin{ transform:rotate(-45deg) scale(1.18); z-index:2; }
.km-pin-hover .km-pin:before{ animation:km-pin-onda 1.1s ease-out infinite; }
@keyframes km-pin-onda{ 0%{ transform:scale(1); opacity:.7; } 100%{ transform:scale(1.9); opacity:0; } }
.leaflet-marker-icon.km-pin-hover{ z-index:1000 !important; }
/* tooltip do mapa é um link inteiro (clicar leva ao evento) */
.km-mq-tip a.km-mq-tip-cx{ color:#fff !important; text-decoration:none !important; cursor:pointer; }
.km-mq-tip a.km-mq-tip-cx:hover{ border-color:rgba(var(--km-accent-rgb),.6); }
.km-mq-tip-ir{ display:inline-flex; align-items:center; gap:6px; margin-top:4px; font-size:12.5px; font-weight:700; color:var(--km-accent-texto); }
@media (max-width:760px){ .km-busca-mapa-bt{ margin-left:0; width:100%; justify-content:center; } .km-busca-perto{ width:100%; justify-content:center; } }
/* mapa: agrupamento de provas próximas (leaflet.markercluster) */
.km-cluster-wrap{ background:none !important; border:0 !important; }
.km-cluster{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:var(--km-accent); color:#fff; border:3px solid #fff; box-shadow:0 10px 24px -8px rgba(7,11,20,.55), 0 0 0 6px rgba(var(--km-accent-rgb),.22); cursor:pointer; transition:transform .18s ease; line-height:1; }
.km-cluster b{ font-size:16px; font-weight:800; }
.km-cluster small{ font-size:8.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; opacity:.85; margin-top:1px; }
.km-cluster-wrap:hover .km-cluster{ transform:scale(1.1); }
.marker-cluster-spider-leg{ stroke:var(--km-accent); stroke-opacity:.5; stroke-width:1.5; }
/* página do organizador: chips de modalidade no hero usam a cor de destaque do organizador */
.km-org-hero:not(.km-orgs-faixa) .km-orgs-mods a i{ background:rgba(var(--km-accent-rgb),.28); }
.km-org-hero:not(.km-orgs-faixa) .km-orgs-mods a:hover{ background:rgba(var(--km-accent-rgb),.3); border-color:rgba(var(--km-accent-rgb),.6); }
/* mega menu compacto (sem organizadores escolhidos no admin): só a coluna de modalidades */
.km-mega.km-mega-compacta > div{ width:min(420px,calc(100vw - 32px)); grid-template-columns:1fr; }
/* sucesso: pago mas com documentação pendente (alerta âmbar) */
.km-check.km-docs span.km-onda{ border-color:#c98a12; }
.km-check.km-docs span.km-bola{ background:linear-gradient(135deg,#f0b429,#d97706); box-shadow:0 0 44px rgba(240,180,41,.5); }
.km-sucesso .km-sucesso-docs-nota{ display:flex; gap:8px; align-items:flex-start; text-align:left; background:rgba(240,180,41,.12); border:1px solid rgba(240,180,41,.4); border-radius:14px; padding:12px 14px; color:#ffe4a3 !important; font-size:14px !important; max-width:560px !important; }
.km-sucesso .km-sucesso-docs-nota i{ font-size:20px; color:#f0b429; flex:none; }
/* página de equipes: bloco de introdução dos benefícios (editável no admin), no padrão do "por que patrocinar" */
.km-eq-intro{ background:var(--km-escuro); color:#fff; border-radius:var(--km-r-card); padding:20px 22px; display:flex; flex-direction:column; gap:8px; }
.km-eq-intro .km-sobretitulo{ color:var(--km-accent-texto); }
.km-eq-intro strong{ font-size:18px; line-height:1.2; }
.km-eq-intro p{ margin:0; font-size:13.5px; line-height:1.55; color:rgba(255,255,255,.65); }

/* ---------- aviso de cookies (.aceite, de config.css) no celular ----------
   No desktop é uma faixa de 1150px; no celular herdava padding de 30px e fonte de 13px e ocupava
   ~270px de altura, cobrindo rodapé, WhatsApp flutuante e o fim dos formulários. */
@media (max-width:560px){
  body.km .aceite{ width:calc(100% - 20px); bottom:10px; padding:12px 14px; border-radius:12px; }
  body.km .aceite .chama-aceite{ width:100%; padding:0; font-size:11.5px; line-height:1.4; }
  body.km .aceite .cta-aceite{ width:100%; margin-top:10px; padding:11px 0; }
}
