/*
 * EndoColuna: camada visual neon / tecnologica + componentes de conteudo (SEO/GEO).
 * Carregado por ultimo. CSS puro. Animacoes desligadas com prefers-reduced-motion.
 */
:root {
  --neon: #5C84E6;
  --neon-2: #1B47BB;
  --neon-soft: rgba(92, 132, 230, 0.16);
  --glass: rgba(28, 28, 28, 0.78);
  --glass-2: rgba(14, 14, 14, 0.9);
  --edge: linear-gradient(140deg, rgba(92, 132, 230, 0.45), rgba(27, 71, 187, 0.12) 38%, rgba(255, 255, 255, 0.05) 70%, rgba(92, 132, 230, 0.25));
  --glow: 0 0 0 1px rgba(92, 132, 230, 0.35), 0 18px 50px -18px rgba(92, 132, 230, 0.45);
  --mono: 'Sora', 'Poppins', system-ui, sans-serif;
}

::selection { background: rgba(92, 132, 230, 0.35); color: #fff; }
html { scrollbar-color: rgba(92, 132, 230, 0.45) #000000; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #000000; }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--primary), var(--neon)); border-radius: 10px; border: 2px solid #000000; }

/* ------------------------------------------------------------------
 * Fundo: grade tecnica + brilhos
 * ---------------------------------------------------------------- */
body { background: radial-gradient(1200px 600px at 85% -10%, rgba(27, 71, 187, 0.35), transparent 60%), radial-gradient(900px 500px at -10% 30%, rgba(92, 132, 230, 0.07), transparent 60%), var(--bg); }
body::before {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(92, 132, 230, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(92, 132, 230, 0.06) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, #000 30%, transparent 80%);
  mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, #000 30%, transparent 80%);
}
.site-main { position: relative; }
.section-alt { background: linear-gradient(180deg, rgba(92, 132, 230, 0.025), rgba(27, 71, 187, 0.02)); border-color: rgba(92, 132, 230, 0.12); }

/* ------------------------------------------------------------------
 * Cabecalho e navegacao
 * ---------------------------------------------------------------- */
.site-header { background: rgba(0, 0, 0, 0.72); border-bottom-color: transparent; }
.site-header::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--neon) 20%, var(--neon-2) 50%, var(--neon) 80%, transparent);
  background-size: 200% 100%; opacity: 0.7; animation: ec-flow 8s linear infinite;
}
@keyframes ec-flow { to { background-position: -200% 0; } }
.brand-text span { color: var(--neon); text-shadow: 0 0 18px rgba(92, 132, 230, 0.55); }
.nav-list a { position: relative; }
.nav-list a::after { content: ''; position: absolute; left: 0.75rem; right: 0.75rem; bottom: 0.25rem; height: 2px; border-radius: 2px; background: var(--neon); box-shadow: 0 0 10px var(--neon); transform: scaleX(0); transition: transform 0.3s; }
.nav-list a:hover::after, .nav-list a[aria-current='page']::after, .nav-list .current-menu-item > a::after { transform: scaleX(1); }
.nav-list a:hover { text-shadow: 0 0 12px rgba(92, 132, 230, 0.6); }
.subnav { background: rgba(0, 0, 0, 0.85); border-bottom-color: rgba(92, 132, 230, 0.15); }
.subnav a:hover, .subnav a.is-active { background: rgba(92, 132, 230, 0.12); color: #fff; box-shadow: inset 0 0 0 1px rgba(92, 132, 230, 0.45), 0 0 18px rgba(92, 132, 230, 0.2); }

/* ------------------------------------------------------------------
 * Tipografia tecnica
 * ---------------------------------------------------------------- */
.eyebrow { display: inline-flex; align-items: center; gap: 0.55rem; font-family: var(--mono); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--neon); }
.eyebrow::before { content: ''; width: 7px; height: 7px; border-radius: 2px; background: var(--neon); box-shadow: 0 0 10px var(--neon); animation: ec-blink 2.4s steps(2) infinite; }
@keyframes ec-blink { 50% { opacity: 0.35; } }
.section-title { position: relative; }
.section-title::after { content: ''; display: block; width: 56px; height: 3px; margin-top: 0.85rem; border-radius: 3px; background: linear-gradient(90deg, var(--neon), var(--neon-2)); box-shadow: 0 0 14px rgba(92, 132, 230, 0.6); }
.faq .section-title::after, .cta-band h2::after { margin-inline: auto; }
.hero h1, .page-header h1, .article-title {
  color: #fff;
}
.lead { color: rgba(226, 236, 255, 0.72); }

/* ------------------------------------------------------------------
 * Hero e cabecalhos internos
 * ---------------------------------------------------------------- */
.hero, .page-header, .article-header { position: relative; overflow: hidden; isolation: isolate; background: radial-gradient(700px 400px at 80% 20%, rgba(92, 132, 230, 0.16), transparent 60%), radial-gradient(800px 500px at 10% 100%, rgba(27, 71, 187, 0.18), transparent 60%), linear-gradient(220deg, #000000 0%, #1f1f1f 70%, #3A3A3A 150%); border-bottom: 1px solid rgba(92, 132, 230, 0.15); }
.hero::before, .page-header::before, .article-header::before {
  content: ''; position: absolute; left: -50%; right: -50%; bottom: -10%; height: 70%; z-index: -1;
  background-image: linear-gradient(rgba(92, 132, 230, 0.22) 1px, transparent 1px), linear-gradient(90deg, rgba(92, 132, 230, 0.22) 1px, transparent 1px);
  background-size: 64px 64px; transform: perspective(520px) rotateX(62deg); transform-origin: bottom;
  -webkit-mask-image: linear-gradient(to top, #000 10%, transparent 85%); mask-image: linear-gradient(to top, #000 10%, transparent 85%);
  animation: ec-grid 14s linear infinite; opacity: 0.55;
}
.page-header::before, .article-header::before { opacity: 0.3; height: 90%; }
@keyframes ec-grid { to { background-position: 0 64px; } }
.hero::after, .page-header::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(92, 132, 230, 0.08) 50%, transparent);
  height: 30%; animation: ec-scan 7s ease-in-out infinite; opacity: 0.6;
}
@keyframes ec-scan { 0% { transform: translateY(-120%); } 100% { transform: translateY(420%); } }
.hero-spine { filter: drop-shadow(0 0 28px rgba(92, 132, 230, 0.45)); }
.hero-visual { position: relative; }
.hero-visual::before { content: ''; position: absolute; inset: 10% 15%; border-radius: 50%; background: radial-gradient(circle, rgba(92, 132, 230, 0.28), transparent 65%); filter: blur(20px); z-index: -1; animation: ec-breathe 5s ease-in-out infinite; }
@keyframes ec-breathe { 50% { transform: scale(1.12); opacity: 0.7; } }
.stats dd { color: var(--neon); text-shadow: 0 0 18px rgba(92, 132, 230, 0.5); }
.breadcrumb { font-family: var(--mono); font-size: 0.78rem; letter-spacing: 0.02em; }

/* ------------------------------------------------------------------
 * Superficies de vidro com borda neon e brilho que segue o mouse
 * ---------------------------------------------------------------- */
.card, .person-card, .post-card, .widget, .turma-card, .faq-item, .timeline li, .skill, .hub-card, .glossary-item,
.evidence-card, .checklist-cards li, .policy-list li, .history li, .stat-grid > div, .facts > div, .schedule li,
.steps li, .quote-card, .note-box, .cert-card, .trust-card, .article-body, .author-box, .toc, .sources, .refs,
.contact-list--cards li, .keypoints, .table-wrap, .empty-state {
  border: 1px solid transparent;
  background:
    radial-gradient(420px circle at var(--mx, -400px) var(--my, -400px), rgba(92, 132, 230, 0.12), transparent 45%) padding-box,
    linear-gradient(160deg, var(--glass), var(--glass-2)) padding-box,
    var(--edge) border-box;
  backdrop-filter: blur(6px);
}
.card, .person-card, .post-card, .turma-card, .skill, .hub-card, .glossary-item, .evidence-card, .checklist-cards li, .policy-list li, .history li, .stat-grid > div, .quote-card, .steps li, .contact-list--cards li {
  transition: transform 0.35s var(--ease, ease), box-shadow 0.35s;
}
.card:hover, .person-card:hover, .post-card:hover, .turma-card:hover, .skill:hover, .hub-card:hover, .glossary-item:hover, .evidence-card:hover, .checklist-cards li:hover, .policy-list li:hover, .history li:hover, .stat-grid > div:hover, .quote-card:hover, .steps li:hover, .contact-list--cards li:hover {
  transform: translateY(-4px); box-shadow: var(--glow); border-color: transparent;
}
.card-icon, .trust-icon { color: var(--neon); background: radial-gradient(circle at 30% 30%, rgba(92, 132, 230, 0.35), rgba(27, 71, 187, 0.35)); box-shadow: inset 0 0 0 1px rgba(92, 132, 230, 0.35), 0 0 22px rgba(92, 132, 230, 0.25); }
.faq-item[open] { box-shadow: var(--glow); }
.faq-item summary:hover { color: var(--neon); }
.steps li::before { background: linear-gradient(135deg, var(--primary), var(--neon)); box-shadow: 0 0 16px rgba(92, 132, 230, 0.6); font-family: var(--mono); }
.timeline { border-left-color: rgba(92, 132, 230, 0.35); }
.timeline li::before, .history li::before { background: var(--neon); box-shadow: 0 0 0 4px rgba(92, 132, 230, 0.18), 0 0 18px var(--neon); animation: ec-pulse-dot 2.6s ease-in-out infinite; }
@keyframes ec-pulse-dot { 50% { box-shadow: 0 0 0 8px rgba(92, 132, 230, 0.05), 0 0 26px var(--neon); } }
.timeline-num, .history-year, .schedule time { font-family: var(--mono); color: var(--neon); }
.stat-grid dd, .facts dd { color: #fff; }
.stat-grid dd { background: linear-gradient(90deg, #fff, var(--neon)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.facts dt { font-family: var(--mono); color: var(--neon); }
.check-list li::before { background-color: transparent; box-shadow: inset 0 0 0 1.5px var(--neon), 0 0 10px rgba(92, 132, 230, 0.45); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235C84E6' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); }

/* ------------------------------------------------------------------
 * Botoes, chips, abas
 * ---------------------------------------------------------------- */
.btn { position: relative; overflow: hidden; isolation: isolate; }
.btn-primary { background: linear-gradient(110deg, var(--primary) 0%, #2C5BD6 55%, #5C84E6 100%); box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.35), 0 10px 30px -8px rgba(21, 89, 255, 0.7); }
.btn-primary:hover { background: linear-gradient(110deg, #0a3fcc 0%, #3A6AE0 50%, var(--neon) 110%); box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.7), 0 0 34px rgba(92, 132, 230, 0.45); }
.btn::after { content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; z-index: -1; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.35), transparent); transform: skewX(-20deg); transition: left 0.6s; }
.btn:hover::after { left: 130%; }
.btn-outline, .btn-ghost { border-color: rgba(92, 132, 230, 0.45); background: rgba(92, 132, 230, 0.04); }
.btn-outline:hover, .btn-ghost:hover { border-color: var(--neon); box-shadow: 0 0 22px rgba(92, 132, 230, 0.3), inset 0 0 14px rgba(92, 132, 230, 0.15); }
.chip { border-color: rgba(92, 132, 230, 0.2); background: rgba(92, 132, 230, 0.04); }
.chip:hover { border-color: var(--neon); color: #fff; box-shadow: 0 0 16px rgba(92, 132, 230, 0.25); }
.chip.active, .chip-solid { background: linear-gradient(110deg, var(--primary), #2C5BD6); border-color: var(--neon); box-shadow: 0 0 18px rgba(92, 132, 230, 0.35); }
.tab[aria-selected='true'] { background: linear-gradient(110deg, var(--primary), #2C5BD6); border-color: var(--neon); box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.5), 0 0 24px rgba(92, 132, 230, 0.35); }
.tab { font-family: var(--mono); font-size: 0.82rem; letter-spacing: 0.04em; }
.carousel-btn { border-color: rgba(92, 132, 230, 0.35); }
.carousel-btn:hover:not(:disabled) { background: rgba(92, 132, 230, 0.15); border-color: var(--neon); box-shadow: 0 0 18px rgba(92, 132, 230, 0.4); }
.carousel-dots button[aria-current='true'] { background: var(--neon); box-shadow: 0 0 10px var(--neon); }
.wa-float { box-shadow: 0 0 0 0 rgba(31, 168, 85, 0.6); animation: ec-ring 2.8s infinite; }
@keyframes ec-ring { 0% { box-shadow: 0 0 0 0 rgba(31, 168, 85, 0.55); } 70% { box-shadow: 0 0 0 16px rgba(31, 168, 85, 0); } 100% { box-shadow: 0 0 0 0 rgba(31, 168, 85, 0); } }
.reading-progress { background: linear-gradient(90deg, var(--neon-2), var(--neon)); box-shadow: 0 0 12px var(--neon); }

/* ------------------------------------------------------------------
 * Molduras HUD das ilustracoes e midias
 * ---------------------------------------------------------------- */
.illus-frame, .approaches-figure { position: relative; isolation: isolate; border-color: rgba(92, 132, 230, 0.2); background: radial-gradient(120% 90% at 20% 0%, rgba(92, 132, 230, 0.14), transparent 60%), linear-gradient(160deg, rgba(26, 26, 26, 0.92), rgba(27, 71, 187, 0.18)); box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.08), 0 30px 80px -30px rgba(92, 132, 230, 0.35); }
.illus-frame::before, .approaches-figure::before {
  content: ''; position: absolute; inset: 10px; pointer-events: none; z-index: 2;
  background:
    linear-gradient(var(--neon), var(--neon)) top left / 20px 2px no-repeat,
    linear-gradient(var(--neon), var(--neon)) top left / 2px 20px no-repeat,
    linear-gradient(var(--neon), var(--neon)) top right / 20px 2px no-repeat,
    linear-gradient(var(--neon), var(--neon)) top right / 2px 20px no-repeat,
    linear-gradient(var(--neon), var(--neon)) bottom left / 20px 2px no-repeat,
    linear-gradient(var(--neon), var(--neon)) bottom left / 2px 20px no-repeat,
    linear-gradient(var(--neon), var(--neon)) bottom right / 20px 2px no-repeat,
    linear-gradient(var(--neon), var(--neon)) bottom right / 2px 20px no-repeat;
  filter: drop-shadow(0 0 6px var(--neon)); opacity: 0.85;
}
.illus-frame::after, .approaches-figure::after {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--neon), transparent); box-shadow: 0 0 16px var(--neon);
  animation: ec-scanline 4.5s ease-in-out infinite; opacity: 0.7;
}
@keyframes ec-scanline { 0% { top: 0; opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.8; } 100% { top: 100%; opacity: 0; } }
.approaches-figure { overflow: hidden; }
.illus .ill-monitor rect:first-child, .illus-lab rect[stroke] { filter: drop-shadow(0 0 6px rgba(92, 132, 230, 0.5)); }
.approaches-figure[data-active] .trajectory line { filter: none; }
.approaches-figure[data-active='transforaminal'] [data-approach='transforaminal'] line,
.approaches-figure[data-active='interlaminar'] [data-approach='interlaminar'] line,
.approaches-figure[data-active='ube'] [data-approach='ube'] line { stroke: var(--neon); filter: drop-shadow(0 0 6px var(--neon)); }
.approaches-figure[data-active='transforaminal'] [data-approach='transforaminal'] circle,
.approaches-figure[data-active='interlaminar'] [data-approach='interlaminar'] circle,
.approaches-figure[data-active='ube'] [data-approach='ube'] circle { fill: var(--neon); }
.media-frame, .person-media img, .gallery-slide { box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.25), 0 30px 60px -30px rgba(92, 132, 230, 0.45); }

/* ------------------------------------------------------------------
 * CTA, rodape, faixa de confianca
 * ---------------------------------------------------------------- */
.cta-band { position: relative; overflow: hidden; isolation: isolate; background: linear-gradient(120deg, #0d2a78, var(--primary) 35%, #2C5BD6 65%, #1B47BB); background-size: 200% 200%; animation: ec-gradient 12s ease infinite; border-block: 1px solid rgba(92, 132, 230, 0.35); }
.cta-band::before { content: ''; position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.08) 1px, transparent 1px); background-size: 40px 40px; -webkit-mask-image: radial-gradient(ellipse at center, #000, transparent 75%); mask-image: radial-gradient(ellipse at center, #000, transparent 75%); }
.cta-band h2 { text-shadow: 0 0 30px rgba(92, 132, 230, 0.5); }
@keyframes ec-gradient { 50% { background-position: 100% 50%; } }
.site-footer { position: relative; background: linear-gradient(180deg, #0d0d0d, #000000); border-top-color: transparent; }
.site-footer::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--neon), var(--neon-2), transparent); box-shadow: 0 0 18px var(--neon); }
.footer-title { font-family: var(--mono); color: var(--neon); letter-spacing: 0.14em; }
.social a:hover { border-color: var(--neon); color: var(--neon); box-shadow: 0 0 18px rgba(92, 132, 230, 0.4); }
.trust-strip { background: rgba(0, 0, 0, 0.7); border-color: rgba(92, 132, 230, 0.15); }

/* ------------------------------------------------------------------
 * Componentes de conteudo (SEO / GEO / AI Overviews)
 * ---------------------------------------------------------------- */
.mt-12 { margin-top: 3rem; }

/* Pontos-chave em estilo terminal */
.keypoints { position: relative; border-radius: 1.1rem; padding: 0; overflow: hidden; box-shadow: var(--glow); }
.keypoints-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.75rem 1.25rem; border-bottom: 1px solid rgba(92, 132, 230, 0.18); background: rgba(92, 132, 230, 0.06); }
.keypoints-head h2 { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; font-family: var(--mono); font-size: 0.82rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--neon); }
.keypoints-date { font-family: var(--mono); font-size: 0.75rem; color: rgba(255, 255, 255, 0.5); }
.keypoints ul { list-style: none; margin: 0; padding: 1.1rem 1.25rem 1.25rem; display: grid; gap: 0.7rem; }
@media (min-width: 900px) { .keypoints ul { grid-template-columns: 1fr 1fr; gap: 0.9rem 2rem; } }
.keypoints li { position: relative; padding-left: 1.5rem; color: rgba(226, 236, 255, 0.86); line-height: 1.6; }
.keypoints li::before { content: '>'; position: absolute; left: 0; font-family: var(--mono); font-weight: 700; color: var(--neon); text-shadow: 0 0 8px var(--neon); }

/* Evidencia */
.section-evidence { position: relative; background: radial-gradient(800px 400px at 50% 0%, rgba(92, 132, 230, 0.1), transparent 70%); }
.evidence-grid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .evidence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .evidence-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.evidence-card { border-radius: 1.1rem; padding: 1.5rem; display: flex; flex-direction: column; gap: 0.6rem; }
.evidence-card .evidence-num { margin: 0 0 0.6rem; display: flex; align-items: baseline; gap: 0.35rem; font: 700 3rem/1 Sora, Poppins, sans-serif; background: linear-gradient(90deg, #fff, var(--neon)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 16px rgba(92, 132, 230, 0.35)); }
.evidence-num small { font: 700 1rem var(--mono); color: var(--neon); -webkit-text-fill-color: var(--neon); }
.evidence-card h3 { font-size: 1rem; line-height: 1.45; margin: 0; }
.evidence-card p { margin: 0; color: var(--muted); font-size: 0.88rem; }
.evidence-note, .table-note { margin-top: 1.25rem; font-size: 0.85rem; color: rgba(255, 255, 255, 0.55); max-width: 60rem; }
sup.ref { font-size: 0.7em; margin-left: 0.15em; }
sup.ref a { color: var(--neon); text-decoration: none; font-family: var(--mono); }
sup.ref a:hover { text-shadow: 0 0 8px var(--neon); }

/* Tabelas comparativas */
.table-wrap { border-radius: 1.1rem; overflow-x: auto; }
.compare { width: 100%; border-collapse: collapse; font-size: 0.9rem; min-width: 720px; }
.compare caption { text-align: left; padding: 0.9rem 1.1rem; font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--neon); border-bottom: 1px solid rgba(92, 132, 230, 0.18); }
.compare th, .compare td { padding: 0.85rem 1.1rem; text-align: left; vertical-align: top; border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.compare thead th { font-size: 0.82rem; color: #fff; background: rgba(92, 132, 230, 0.07); }
.compare tbody th { color: var(--neon); font-weight: 600; font-size: 0.85rem; white-space: nowrap; }
.compare td { color: rgba(226, 236, 255, 0.8); }
.compare tbody tr { transition: background 0.25s; }
.compare tbody tr:hover { background: rgba(92, 132, 230, 0.05); }
@media (max-width: 760px) {
  .compare { min-width: 0; }
  .compare thead { display: none; }
  .compare, .compare tbody, .compare tr, .compare th, .compare td { display: block; width: 100%; }
  .compare tr { padding: 0.75rem 0; border-bottom: 1px solid rgba(92, 132, 230, 0.15); }
  .compare tbody th { padding-bottom: 0.25rem; white-space: normal; }
  .compare td { border: 0; padding: 0.3rem 1.1rem; }
  .compare td::before { content: attr(data-label); display: block; font-family: var(--mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); }
}

/* Habilidades e checklist */
.skills, .checklist-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; counter-reset: sk; }
@media (min-width: 640px) { .skills, .checklist-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .skills, .checklist-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Grade fixa em 2 colunas (ex.: Sua jornada no curso, 4 etapas) */
@media (min-width: 640px) { .checklist-cards.checklist-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.skill, .checklist-cards li { position: relative; border-radius: 1rem; padding: 1.25rem 1.25rem 1.25rem 4rem; counter-increment: sk; }
.skill::before, .checklist-cards li::before { content: counter(sk, decimal-leading-zero); position: absolute; left: 1.1rem; top: 1.15rem; font: 700 1rem var(--mono); color: var(--neon); text-shadow: 0 0 10px var(--neon); }
.skill h3, .checklist-cards h3 { font-size: 1.02rem; margin: 0 0 0.3rem; }
.skill p, .checklist-cards p { margin: 0; font-size: 0.9rem; color: var(--muted); }

/* Glossario */
.glossary { margin: 0; display: grid; gap: 1rem; }
@media (min-width: 640px) { .glossary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .glossary { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.glossary-item { border-radius: 1rem; padding: 1.1rem 1.25rem; }
.glossary dt { font-weight: 800; color: #fff; margin-bottom: 0.3rem; }
.glossary dt::before { content: '#'; margin-right: 0.4rem; font-family: var(--mono); color: var(--neon); }
.glossary dd { margin: 0; font-size: 0.9rem; color: var(--muted); line-height: 1.6; }

/* Hub de temas do blog */
.topic-hub { padding-bottom: 0; }
.hub-grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .hub-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hub-card { border-radius: 1.1rem; padding: 1.4rem; display: flex; flex-direction: column; gap: 0.4rem; }
.hub-card h3 { margin: 0.25rem 0 0; font-size: 1.1rem; }
.hub-card h3 a { color: #fff; text-decoration: none; }
.hub-card h3 a::after { content: ''; position: absolute; inset: 0; }
.hub-card { position: relative; }
.hub-card h3 a:hover { color: var(--neon); }
.hub-card p { margin: 0; color: var(--muted); font-size: 0.9rem; }
.hub-count { margin-top: auto; padding-top: 0.5rem; font-family: var(--mono); font-size: 0.75rem; color: var(--neon); }
.hub-card.is-soon { opacity: 0.75; }
.hub-card.is-soon .hub-count { color: rgba(255, 255, 255, 0.45); }

/* Sobre: o que ensinamos */
.teach-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
@media (min-width: 640px) { .teach-grid { grid-template-columns: 1fr 1fr; } }
.teach-grid li { display: flex; gap: 0.8rem; padding: 1rem; border-radius: 0.9rem; border: 1px solid rgba(92, 132, 230, 0.18); background: rgba(26, 26, 26, 0.75); transition: border-color 0.3s, box-shadow 0.3s; }
.teach-grid li:hover { border-color: var(--neon); box-shadow: 0 0 22px rgba(92, 132, 230, 0.2); }
.teach-grid svg { flex: none; margin-top: 0.15rem; color: var(--neon); }
.teach-grid strong { display: block; font-size: 0.95rem; }
.teach-grid span { display: block; font-size: 0.85rem; color: var(--muted); }
.teach-grid a, .steps a { color: var(--neon); }

/* Referencias */
.refs { margin: 1rem 0 4rem; border-radius: 1.1rem; padding: 1.4rem 1.5rem; }
.refs-title { display: flex; align-items: center; gap: 0.5rem; font-size: 1.05rem; margin-bottom: 0.9rem; }
.refs-title svg { color: var(--neon); }
.refs ol { margin: 0; padding-left: 1.4rem; display: grid; gap: 0.6rem; font-size: 0.85rem; color: rgba(226, 236, 255, 0.75); }
.refs li { scroll-margin-top: 9rem; }
.refs li:target { color: #fff; text-shadow: 0 0 12px rgba(92, 132, 230, 0.5); }
.refs a { color: var(--neon); word-break: break-all; font-family: var(--mono); font-size: 0.8rem; }
.refs-note { margin: 1rem 0 0; font-size: 0.78rem; color: rgba(255, 255, 255, 0.45); }

/* ------------------------------------------------------------------
 * Lista de posts: cartao horizontal (imagem, categoria, titulo, resumo,
 * data e "Ler artigo") + paginacao em quadrados
 * ---------------------------------------------------------------- */
.post-list { gap: 1.75rem; }
.post-card { position: relative; display: grid; gap: 1.25rem; padding: 1.25rem; border-radius: 1.25rem; overflow: visible; background: #141414; border: 1px solid rgba(255, 255, 255, 0.08); backdrop-filter: none; }
.post-card:hover { transform: translateY(-3px); border-color: rgba(92, 132, 230, 0.35); box-shadow: 0 18px 50px -22px rgba(92, 132, 230, 0.35); }
.post-card--list { grid-template-columns: 1fr; }
@media (min-width: 768px) { .post-card--list { grid-template-columns: 300px minmax(0, 1fr); gap: 2.25rem; align-items: center; } }
.post-card .post-thumb { display: flex; align-items: center; justify-content: center; min-height: 0; aspect-ratio: 300 / 222; border-radius: 1rem; overflow: hidden; background: linear-gradient(135deg, #1a1a1a, var(--primary)); color: rgba(255, 255, 255, 0.25); }
.post-card--grid .post-thumb { aspect-ratio: 16 / 10; }
.post-card .post-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.post-card:hover .post-thumb img { transform: scale(1.04); }
.post-card .post-body { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; padding: 0; min-width: 0; }
.post-cat { display: inline-flex; padding: 0.4rem 0.95rem; border-radius: 999px; background: rgba(27, 71, 187, 0.32); color: var(--accent); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; transition: background 0.2s, color 0.2s; }
.post-cat:hover { background: var(--primary); color: #fff; }
.post-card .post-title { margin: 0; font-size: 1.45rem; line-height: 1.3; font-weight: 800; }
.post-card--grid .post-title { font-size: 1.15rem; }
.post-card .post-title a { color: #fff; text-decoration: none; }
.post-card .post-title a:hover { color: var(--neon); }
.post-card .post-title a::after { content: ''; position: absolute; inset: 0; border-radius: inherit; }
.post-card .post-excerpt { margin: 0; font-size: 0.98rem; line-height: 1.7; color: rgba(255, 255, 255, 0.55); }
.post-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; margin-top: 0.5rem; }
.post-date { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.88rem; color: rgba(255, 255, 255, 0.5); }
.post-date svg { color: var(--accent); }
.post-more { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 700; font-size: 0.92rem; color: var(--accent); text-decoration: none; }
.post-more:hover { color: #fff; }
.post-more svg { transition: transform 0.2s; }
.post-more:hover svg { transform: translateX(3px); }
.post-cat { position: relative; z-index: 1; }

.pagination .nav-links { gap: 0.75rem; margin-top: 3rem; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 3.25rem; height: 3.25rem; padding: 0 0.75rem; border-radius: 0.75rem; border: 1px solid rgba(255, 255, 255, 0.1); background: transparent; color: rgba(255, 255, 255, 0.6); font-weight: 600; text-decoration: none; transition: all 0.2s; }
.pagination .page-numbers:hover { border-color: rgba(92, 132, 230, 0.5); color: #fff; }
.pagination .page-numbers.current { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 10px 24px -10px rgba(27, 71, 187, 0.9); }
.pagination .page-numbers.dots { border-color: rgba(255, 255, 255, 0.1); }
.icon.flip { transform: rotate(180deg); }

/* Artigos recentes (sidebar) com miniatura */
.widget-list--thumbs { gap: 1rem; }
.widget-list--thumbs .mini-post { display: flex; flex-direction: row; align-items: center; gap: 0.85rem; }
.mini-thumb { flex: 0 0 72px; width: 72px; height: 72px; border-radius: 0.75rem; overflow: hidden; display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, 0.3); background: linear-gradient(135deg, #1a1a1a, var(--primary)); }
.mini-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.mini-post:hover .mini-thumb img { transform: scale(1.06); }
.mini-body { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.mini-body a { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; font-size: 0.86rem; line-height: 1.4; font-weight: 500; color: rgba(255, 255, 255, 0.88); text-decoration: none; }
.mini-body a:hover { color: var(--accent); }
.mini-body small { font-size: 0.74rem; color: rgba(255, 255, 255, 0.45); }

/* ------------------------------------------------------------------
 * Movimento reduzido
 * ---------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .site-header::after, .eyebrow::before, .hero::before, .page-header::before, .article-header::before, .hero::after, .page-header::after,
  .hero-visual::before, .timeline li::before, .history li::before, .illus-frame::after, .approaches-figure::after, .cta-band, .wa-float { animation: none; }
  .illus-frame::after, .approaches-figure::after, .hero::after, .page-header::after { display: none; }
}

/* ------------------------------------------------------------------
 * Tipografia da marca (site endocoluna.com.br): Sora nos titulos, Poppins no texto
 * ---------------------------------------------------------------- */
body { font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif; }
h1, h2, h3, h4, h5, .font-display, .brand-text, .btn, .post-title, .section-title, .evidence-num, .stat-grid dd, .history-year { font-family: 'Sora', 'Poppins', system-ui, sans-serif; }
h1, h2 { font-weight: 600; letter-spacing: -0.02em; }
h3, h4 { font-weight: 600; }
.hero h1, .page-header h1, .article-title { font-weight: 600; }
.btn { font-weight: 600; }
.brand-text { font-weight: 700; }
.eyebrow, .facts dt, .footer-title, .keypoints-head h2, .compare caption, .timeline-num, .tab { font-weight: 600; }
.post-card .post-title { font-weight: 600; }
/* ------------------------------------------------------------------
 * Submenu do menu principal (ex.: Blog > Glossario)
 * ---------------------------------------------------------------- */
.nav-list .menu-item-has-children { position: relative; }
.nav-list .menu-item-has-children > a { display: inline-flex; align-items: center; gap: 0.35rem; }
.nav-list .menu-item-has-children > a::before { content: ''; order: 2; width: 0.45rem; height: 0.45rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: 0.7; }
.nav-list .sub-menu { list-style: none; margin: 0; padding: 0.25rem 0 0.25rem 1rem; }
.nav-list .sub-menu a { font-size: 0.85rem; }
/* Mobile: submenu fechado; o botao .sub-toggle (criado no main.js) abre e fecha */
.sub-toggle { display: none; }
@media (max-width: 1023.98px) {
  .nav-list .menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
  .nav-list .menu-item-has-children > a::before { display: none; }
  .sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; margin: -0.5rem -0.5rem -0.5rem 0; padding: 0; border: 0; border-radius: 0.5rem; background: transparent; color: inherit; cursor: pointer; }
  .sub-toggle::before { content: ''; width: 0.5rem; height: 0.5rem; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); opacity: 0.8; transition: transform 0.2s; }
  .sub-toggle[aria-expanded="true"]::before { transform: rotate(-135deg) translate(-2px, 0); }
  .sub-toggle:focus-visible { outline: 2px solid rgba(92, 132, 230, 0.8); }
  .nav-list .menu-item-has-children > .sub-menu { display: none; flex-basis: 100%; }
  .nav-list .menu-item-has-children.is-sub-open > .sub-menu { display: block; }
}
@media (min-width: 1024px) {
  .nav-list .sub-menu { position: absolute; top: 100%; left: 0; z-index: 60; min-width: 13rem; padding: 0.5rem; border-radius: 0.85rem; background: #0d0d0d; border: 1px solid rgba(92, 132, 230, 0.25); box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(27, 71, 187, 0.15); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity 0.2s, transform 0.2s, visibility 0.2s; }
  .nav-list .menu-item-has-children:hover > .sub-menu, .nav-list .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
  .nav-list .sub-menu a { padding: 0.55rem 0.8rem; border-radius: 0.55rem; white-space: nowrap; }
  .nav-list .sub-menu a:hover { background: rgba(27, 71, 187, 0.25); }
  .nav-list .sub-menu a::after { display: none; }
}
.nav-list .current-menu-ancestor > a, .nav-list .current-menu-parent > a { color: #fff; }

/* ------------------------------------------------------------------
 * Glossario: barra A-Z
 * ---------------------------------------------------------------- */
.az-bar { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1.25rem; padding: 0.9rem; border-radius: 1rem; background: #111; border: 1px solid rgba(255, 255, 255, 0.08); }
.az-bar a, .az-bar span { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 2.25rem; padding: 0 0.5rem; border-radius: 0.55rem; font-family: 'Sora', 'Poppins', sans-serif; font-weight: 600; font-size: 0.85rem; text-decoration: none; }
.az-bar a { color: #fff; border: 1px solid rgba(92, 132, 230, 0.3); background: rgba(27, 71, 187, 0.12); transition: all 0.2s; }
.az-bar a:hover { border-color: var(--accent); background: rgba(27, 71, 187, 0.3); }
.az-bar a.active { background: var(--primary); border-color: var(--primary); box-shadow: 0 8px 20px -8px rgba(27, 71, 187, 0.9); }
.az-bar span { color: rgba(255, 255, 255, 0.22); border: 1px solid transparent; }
.az-bar .az-all { padding: 0 0.85rem; }
.az-count { margin: 0 0 1rem; font-size: 0.85rem; color: rgba(255, 255, 255, 0.5); }
/* ------------------------------------------------------------------
 * Cabecalho do blog (lista, temas, busca e glossario) no azul da marca
 * ---------------------------------------------------------------- */
.page-header.page-header--blog { background: radial-gradient(700px 380px at 85% 0%, rgba(255, 255, 255, 0.14), transparent 60%), linear-gradient(135deg, #1B47BB 0%, #163c9f 55%, #0f2f86 100%); border-bottom-color: rgba(255, 255, 255, 0.12); }
.page-header.page-header--blog::before { background-image: linear-gradient(rgba(255, 255, 255, 0.14) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.14) 1px, transparent 1px); opacity: 0.35; }
.page-header.page-header--blog::after { background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.08) 50%, transparent); }
.page-header--blog h1 { color: #fff; }
.page-header--blog .lead { color: rgba(255, 255, 255, 0.85); }
.page-header--blog .breadcrumb, .page-header--blog .breadcrumb a { color: rgba(255, 255, 255, 0.72); }
.page-header--blog .breadcrumb a:hover, .page-header--blog .breadcrumb [aria-current] { color: #fff; }
/* ------------------------------------------------------------------
 * Estudos comentados: ficha do estudo original
 * ---------------------------------------------------------------- */
.study-card { margin: 0 0 2rem; padding: 1.25rem 1.4rem; border-radius: 1rem; border: 1px solid rgba(92, 132, 230, 0.35); background: linear-gradient(150deg, rgba(27, 71, 187, 0.22), rgba(20, 20, 20, 0.9)); }
.study-card-title { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.9rem; font-family: 'Sora', sans-serif; font-weight: 600; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent); }
.study-card dl { display: grid; gap: 0.55rem; margin: 0; }
.study-card dl > div { display: grid; grid-template-columns: 7rem 1fr; gap: 0.75rem; font-size: 0.92rem; }
.study-card dt { color: rgba(255, 255, 255, 0.5); }
.study-card dd { margin: 0; color: rgba(255, 255, 255, 0.9); }
.study-card-links { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 0; }
.study-card-links a { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.4rem 0.8rem; border-radius: 0.6rem; font-size: 0.85rem; font-weight: 600; color: #fff; text-decoration: none; background: rgba(27, 71, 187, 0.45); border: 1px solid rgba(92, 132, 230, 0.4); }
.study-card-links a:hover { background: var(--primary); }
.study-card-note { margin: 0.9rem 0 0; font-size: 0.8rem; color: rgba(255, 255, 255, 0.5); }
@media (max-width: 640px) { .study-card dl > div { grid-template-columns: 1fr; gap: 0.1rem; } }
.widget-text { margin: 0; font-size: 0.88rem; color: rgba(255, 255, 255, 0.65); line-height: 1.6; }
/* ── Equipe (/equipe/) ─────────────────────────────────────────── */
.team-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.team-card .person-media { aspect-ratio: 1 / 1; }
.team-name { font-size: 1.2rem; margin: 0; line-height: 1.3; }
.team-name a { color: #fff; text-decoration: none; }
.team-name a:hover { color: var(--accent); }
.team-foot { margin-top: auto; padding-top: 0.9rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.social-links { display: flex; gap: 0.4rem; list-style: none; margin: 0; padding: 0; }
.social-links a { display: inline-flex; width: 2.1rem; height: 2.1rem; align-items: center; justify-content: center; border-radius: 0.6rem; border: 1px solid rgba(92, 132, 230, 0.35); color: rgba(255, 255, 255, 0.85); transition: background 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s; }
.social-links a:hover { background: var(--primary); border-color: var(--primary-light); color: #fff; box-shadow: 0 0 18px rgba(92, 132, 230, 0.45); }
.profile-head .btn-row .btn svg { vertical-align: -3px; }
.study-card .study-card-orig { grid-column: 1 / -1; }
.study-card .study-card-orig dd { font-style: italic; }
/* Equipe: 5 colunas no desktop e funcao sem o marcador piscante. */
@media (min-width: 1200px) { .team-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; } }
@media (min-width: 900px) and (max-width: 1199px) { .team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.team-card .eyebrow::before, .person-card .eyebrow::before, .profile-head .eyebrow::before { content: none; display: none; }
.team-card .eyebrow, .person-card .eyebrow, .profile-head .eyebrow { gap: 0; }
/* Carrossel de docentes ("Quem ensina no EndoColuna"): 4 por vez no desktop. */
@media (min-width: 1024px) { .carousel--people .carousel-track { grid-auto-columns: calc((100% - 3.75rem) / 4); } }
.carousel--people .person-media { aspect-ratio: 1 / 1; }
.section-title .section-count { font-size: 0.55em; font-weight: 500; color: rgba(255, 255, 255, 0.55); }
/* Perfil do integrante: cabecalho azul (mesmo do blog) com textos e icones legiveis. */
.page-header--profile .eyebrow { color: rgba(255, 255, 255, 0.85); }
.page-header--profile .profile-meta { color: rgba(255, 255, 255, 0.92); }
.page-header--profile .profile-meta svg { color: #fff; opacity: 0.85; }
.page-header--profile .profile-photo { border-color: rgba(255, 255, 255, 0.35); box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.55); }
.page-header--profile .btn-outline { color: #fff; border-color: rgba(255, 255, 255, 0.55); background: rgba(255, 255, 255, 0.06); }
.page-header--profile .btn-outline:hover { background: #fff; color: #1B47BB; border-color: #fff; }
/* Sem efeitos "passando" nas secoes: faixa de luz (scan), linha que desce nas ilustracoes e grade em movimento. */
.hero::after, .page-header::after, .article-header::after, .illus-frame::after, .approaches-figure::after { content: none; display: none; animation: none; }
.hero::before, .page-header::before, .article-header::before { animation: none; }

/* ── Galerias de eventos ───────────────────────────────────────── */
.gallery-cards { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.gallery-card { overflow: hidden; border-radius: 1.25rem; border: 1px solid var(--line); background: var(--surface); transition: transform 0.35s var(--ease), border-color 0.35s; }
.gallery-card:hover { transform: translateY(-4px); border-color: var(--primary); }
.gallery-card-media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(150deg, #1a1a1a, var(--primary)); }
.gallery-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.gallery-card:hover .gallery-card-media img { transform: scale(1.04); }
.gallery-card-count { position: absolute; right: 0.75rem; bottom: 0.75rem; display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.3rem 0.7rem; border-radius: 999px; font-size: 0.8rem; font-weight: 600; color: #fff; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(6px); }
.gallery-card-body { padding: 1.1rem 1.25rem 1.3rem; }
.gallery-card-body h2 { font-size: 1.15rem; margin: 0 0 0.5rem; line-height: 1.35; }
.gallery-card-body h2 a { color: #fff; text-decoration: none; }
.gallery-card-body h2 a:hover { color: var(--accent); }
.gallery-card-meta { display: flex; flex-wrap: wrap; gap: 0.35rem 1rem; margin: 0; font-size: 0.85rem; color: rgba(255, 255, 255, 0.65); }
.gallery-card-meta span { display: inline-flex; align-items: center; gap: 0.35rem; }
.gallery-card-meta svg { color: var(--accent); }
.page-header--blog .gallery-meta { color: rgba(255, 255, 255, 0.92); }
.page-header--blog .gallery-meta svg { color: #fff; opacity: 0.85; }
.gallery-intro { max-width: 52rem; margin-bottom: 2rem; }

/* Mosaico (masonry) em colunas: cada foto mantem a proporcao original. */
.gallery-masonry { column-count: 1; column-gap: 1rem; }
@media (min-width: 560px) { .gallery-masonry { column-count: 2; } }
@media (min-width: 1024px) { .gallery-masonry { column-count: 3; } }
@media (min-width: 1400px) { .gallery-masonry { column-count: 4; } }
.gallery-item { display: block; margin: 0 0 1rem; break-inside: avoid; overflow: hidden; border-radius: 0.9rem; border: 1px solid rgba(255, 255, 255, 0.06); background: #111; cursor: zoom-in; }
.gallery-item img { display: block; width: 100%; height: auto; transition: transform 0.5s var(--ease), opacity 0.3s; }
.gallery-item:hover img { transform: scale(1.03); opacity: 0.92; }
.gallery-item:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.gallery-back { margin-top: 2rem; }

/* Lightbox */
html.lb-open { overflow: hidden; }
.lb { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 3.5rem 4.5rem; background: rgba(0, 0, 0, 0.94); }
.lb[hidden] { display: none; }
.lb-figure { margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; max-width: 100%; max-height: 100%; }
.lb-img { max-width: 100%; max-height: calc(100vh - 8rem); object-fit: contain; border-radius: 0.5rem; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6); transition: opacity 0.2s; }
.lb.is-loading .lb-img { opacity: 0.35; }
.lb-cap { margin-top: 0.75rem; color: rgba(255, 255, 255, 0.8); font-size: 0.9rem; text-align: center; }
.lb-count { position: absolute; top: 1rem; left: 1.25rem; margin: 0; color: rgba(255, 255, 255, 0.75); font-size: 0.9rem; font-weight: 600; }
.lb-close, .lb-nav { position: absolute; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, 0.2); background: rgba(255, 255, 255, 0.08); color: #fff; cursor: pointer; transition: background 0.2s, border-color 0.2s; }
.lb-close:hover, .lb-nav:hover { background: var(--primary); border-color: var(--primary-light); }
.lb-close { top: 0.75rem; right: 0.75rem; width: 2.75rem; height: 2.75rem; border-radius: 50%; font-size: 1.75rem; line-height: 1; }
.lb-nav { top: 50%; width: 3rem; height: 3rem; margin-top: -1.5rem; border-radius: 50%; font-size: 2rem; line-height: 1; }
.lb-prev { left: 1rem; }
.lb-next { right: 1rem; }
@media (max-width: 640px) { .lb { padding: 3.5rem 0.5rem; } .lb-nav { top: auto; bottom: 1rem; margin: 0; } .lb-prev { left: calc(50% - 3.5rem); } .lb-next { right: calc(50% - 3.5rem); } }

/* ── Cursos (Tutor LMS) ────────────────────────────────────────── */
.course-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.course-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 1.25rem; border: 1px solid var(--line); background: var(--surface); transition: transform 0.35s var(--ease), border-color 0.35s; }
.course-card:hover { transform: translateY(-4px); border-color: var(--primary); }
.course-card-media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(150deg, #1a1a1a, var(--primary)); }
.course-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--ease); }
.course-card:hover .course-card-media img { transform: scale(1.04); }
.course-card-price { position: absolute; left: 0.85rem; top: 0.85rem; padding: 0.3rem 0.8rem; border-radius: 999px; font-size: 0.8rem; font-weight: 700; color: #fff; background: rgba(0, 0, 0, 0.65); backdrop-filter: blur(6px); }
.course-card-price.is-free { background: #1B47BB; }
.course-card-body { display: flex; flex: 1; flex-direction: column; gap: 0.5rem; padding: 1.25rem 1.35rem 1.4rem; }
.course-card-body .eyebrow { margin: 0; }
.course-card-body .eyebrow::before { content: none; display: none; }
.course-card-body h2 { font-size: 1.2rem; line-height: 1.35; margin: 0; }
.course-card-body h2 a { color: #fff; text-decoration: none; }
.course-card-body h2 a:hover { color: var(--accent); }
.course-card-excerpt { margin: 0; font-size: 0.92rem; color: rgba(255, 255, 255, 0.7); }
.course-card-meta { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; list-style: none; margin: 0.25rem 0 0; padding: 0; font-size: 0.85rem; color: rgba(255, 255, 255, 0.75); }
.course-card-meta li { display: inline-flex; align-items: center; gap: 0.35rem; }
.course-card-meta svg { color: var(--accent); }
.course-card-cta { margin-top: auto; align-self: flex-start; }
.course-card-body .course-card-cta { margin-top: 0.9rem; }
/* Fotos no lugar das ilustracoes (Home). */
.illus-frame--photo { padding: 0; overflow: hidden; }
.illus-frame--photo .illus-photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: inherit; }
.illus-frame--photo figcaption { padding: 0.85rem 1.1rem 1rem; }

/* Cadaverlab: como funciona (teoria online + pratica). */
.format-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.format-card { padding: 1.6rem; border-radius: 1.25rem; border: 1px solid var(--line); background: var(--surface); }
.format-card h3 { margin: 0.9rem 0 0.6rem; font-size: 1.05rem; color: var(--accent); }
.format-card .format-num { display: block; margin-bottom: 0.35rem; font: 700 2.6rem/1 Sora, sans-serif; color: #fff; }
.format-card p { margin: 0; color: rgba(255, 255, 255, 0.75); }

/* Logo oficial (PNG branco 1199x299). */
.brand-logo { display: block; height: 40px; width: auto; max-width: none; }
@media (max-width: 640px) { .brand-logo { height: 34px; } }
.brand-logo--footer { height: 48px; margin-bottom: 1rem; }

/* ── Home: selos do hero, diferenciais numerados e numeros da estrutura ── */
.hero-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 1.25rem 0 0; padding: 0; }
.hero-chips li { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.8rem; border-radius: 999px; border: 1px solid rgba(92, 132, 230, 0.35); background: rgba(27, 71, 187, 0.14); font-size: 0.85rem; font-weight: 500; color: rgba(255, 255, 255, 0.9); }
.hero-chips svg { color: var(--accent); }
.pillars { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pillar { position: relative; padding: 1.75rem 1.6rem 1.6rem; border-radius: 1.25rem; border: 1px solid var(--line); background: var(--surface); overflow: hidden; }
.pillar-num { display: block; font: 700 2.4rem/1 Sora, sans-serif; color: transparent; -webkit-text-stroke: 1px rgba(92, 132, 230, 0.7); margin-bottom: 1rem; }
.pillar h3 { margin: 0 0 0.5rem; font-size: 1.15rem; color: #fff; }
.pillar p { margin: 0; color: rgba(255, 255, 255, 0.72); }
.pillar::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, #2C5BD6, transparent); }
@media (min-width: 900px) { .stat-grid.stat-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Faixa resumida da equipe (Home). */
.team-strip-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.75rem; }
.team-strip-head .section-title { margin-bottom: 0; }
.team-strip { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); list-style: none; margin: 0; padding: 0; }
.team-strip a { display: flex; align-items: center; gap: 0.85rem; padding: 0.8rem 1rem; border-radius: 1rem; border: 1px solid var(--line); background: var(--surface); text-decoration: none; transition: border-color 0.25s, transform 0.25s; }
.team-strip a:hover { border-color: var(--primary); transform: translateY(-2px); }
.team-strip-photo { flex: none; width: 3.25rem; height: 3.25rem; border-radius: 50%; overflow: hidden; background: linear-gradient(150deg, #1a1a1a, var(--primary)); }
.team-strip-photo img, .team-strip-photo .person-photo--initials { width: 100%; height: 100%; object-fit: cover; font-size: 1rem; }
.team-strip-text { display: flex; flex-direction: column; line-height: 1.3; }
.team-strip-text strong { color: #fff; font-size: 0.92rem; }
.team-strip-text small { color: rgba(255, 255, 255, 0.6); font-size: 0.78rem; }

/* ══ Cabecalhos das paginas: azul da marca sobre foto do laboratorio (textura), em todo o site ══ */
.page-header,
.page-header.page-header--blog,
.article-header {
  position: relative; isolation: isolate; overflow: hidden;
  background:
    linear-gradient(115deg, rgba(14, 44, 130, 0.95) 0%, rgba(27, 71, 187, 0.86) 48%, rgba(10, 32, 96, 0.95) 100%),
    var(--ec-header-img, none) center 40% / cover no-repeat,
    #1B47BB;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
/* grade sutil por cima da foto */
.page-header::before, .article-header::before { opacity: 0.22; }
/* brilho no canto e pontos da "coluna" (marca) como textura leve */
.site-main .page-header::after,
.site-main .article-header::after {
  content: ''; display: block; position: absolute; inset: 0; z-index: -1; pointer-events: none; height: auto; animation: none; transform: none; opacity: 1;
  background:
    radial-gradient(620px 340px at 88% -10%, rgba(255, 255, 255, 0.16), transparent 62%),
    radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.13) 1px, transparent 1.6px) 0 0 / 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
}

/* Textos legiveis sobre o azul */
.page-header h1, .article-header h1, .article-header .article-title { color: #fff; }
.page-header .lead, .article-header .lead { color: rgba(255, 255, 255, 0.86); }
.page-header .eyebrow, .article-header .eyebrow { color: rgba(255, 255, 255, 0.85); }
.page-header .eyebrow::before, .article-header .eyebrow::before { background: #fff; box-shadow: none; animation: none; }
.page-header .breadcrumb, .page-header .breadcrumb a,
.article-header .breadcrumb, .article-header .breadcrumb a { color: rgba(255, 255, 255, 0.75); }
.page-header .breadcrumb a:hover, .page-header .breadcrumb [aria-current],
.article-header .breadcrumb a:hover, .article-header .breadcrumb [aria-current] { color: #fff; }
.page-header .breadcrumb svg, .article-header .breadcrumb svg { color: rgba(255, 255, 255, 0.6); }

/* Artigo: categoria, autor e metadados */
.article-header .chip-solid { background: #fff; color: #1B47BB; border-color: #fff; }
.article-header .article-meta, .article-header .meta-item, .article-header .article-meta a { color: rgba(255, 255, 255, 0.85); }
.article-header .article-meta strong { color: #fff; }
.article-header .article-meta svg { color: #fff; opacity: 0.8; }
.article-header .author-reg { color: rgba(255, 255, 255, 0.7); }

/* Cadaverlab (cabecalho dividido) e outras paginas com botoes e fatos */
.page-header .btn-outline { color: #fff; border-color: rgba(255, 255, 255, 0.55); background: rgba(255, 255, 255, 0.06); }
.page-header .btn-outline:hover { background: #fff; color: #1B47BB; border-color: #fff; }
.page-header .facts > div { background: rgba(4, 16, 52, 0.45); border-color: rgba(255, 255, 255, 0.14); backdrop-filter: blur(6px); }
.page-header .facts dt { color: rgba(255, 255, 255, 0.7); }
.page-header .facts dd { color: #fff; }
.page-header .media-frame, .page-header .illus-frame { box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.6); }
.page-header .profile-meta, .page-header .gallery-meta { color: rgba(255, 255, 255, 0.92); }
.page-header .profile-meta svg, .page-header .gallery-meta svg { color: #fff; opacity: 0.85; }

/* ══ Hero da Home: azul com textura (mesmo sistema dos cabecalhos), texto enxuto ══ */
.hero.hero--blue {
  background:
    linear-gradient(115deg, rgba(14, 44, 130, 0.96) 0%, rgba(27, 71, 187, 0.88) 50%, rgba(10, 32, 96, 0.96) 100%),
    var(--ec-header-img, none) center 40% / cover no-repeat,
    #1B47BB;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.hero.hero--blue::before { opacity: 0.22; }
.site-main .hero.hero--blue::after {
  content: ''; display: block; position: absolute; inset: 0; z-index: -1; pointer-events: none; height: auto; animation: none; transform: none; opacity: 1;
  background: radial-gradient(700px 380px at 85% 0%, rgba(255, 255, 255, 0.16), transparent 62%), radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.13) 1px, transparent 1.6px) 0 0 / 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
}
.hero--blue h1 { color: #fff; max-width: 15ch; }
.hero--blue .lead { color: rgba(255, 255, 255, 0.88); max-width: 34rem; }
.hero--blue .hero-visual::before { background: radial-gradient(circle, rgba(255, 255, 255, 0.18), transparent 65%); animation: none; }
.hero--blue .hero-img { border-radius: 1.5rem; box-shadow: 0 30px 70px -30px rgba(0, 0, 0, 0.7); border: 1px solid rgba(255, 255, 255, 0.18); }
.hero--blue .btn-outline { color: #fff; border-color: rgba(255, 255, 255, 0.6); background: rgba(255, 255, 255, 0.06); }
.hero--blue .btn-outline:hover { background: #fff; color: #1B47BB; border-color: #fff; }
.btn-light { background: #fff; color: #1B47BB; border: 1px solid #fff; box-shadow: 0 14px 34px -14px rgba(0, 0, 0, 0.55); }
.btn-light:hover { background: #eef2ff; color: #163c9f; }

/* Rodape: marca + 3 colunas de links (+ contato quando houver), linha legal. */
.ft { padding: 0 0 2rem; color: rgba(255, 255, 255, 0.72); }
.ft-grid { display: grid; gap: 2.5rem 2rem; grid-template-columns: 1.6fr repeat(3, 1fr); padding-top: 3.5rem; padding-bottom: 2.5rem; }
.ft-grid--contact { grid-template-columns: 1.5fr repeat(4, 1fr); }
.ft-brand p { margin: 0 0 1.25rem; max-width: 22rem; line-height: 1.6; }
.ft-brand .brand { display: inline-block; }
.ft .footer-title { margin: 0 0 1rem; font-size: 0.75rem; text-transform: uppercase; }
.ft-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.ft-list a { color: rgba(255, 255, 255, 0.78); text-decoration: none; transition: color 0.2s; }
.ft-list a:hover { color: #fff; }
.ft-contact li { display: flex; align-items: flex-start; gap: 0.55rem; }
.ft-contact .icon { flex: none; margin-top: 0.2rem; color: var(--neon); }
.ft-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.08); font-size: 0.82rem; color: rgba(255, 255, 255, 0.55); }
.ft-bottom p { margin: 0; }
.ft-note { flex-basis: 100%; }
@media (max-width: 1024px) {
	.ft-grid, .ft-grid--contact { grid-template-columns: repeat(3, 1fr); }
	.ft-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
	.ft-grid, .ft-grid--contact { grid-template-columns: 1fr 1fr; padding-top: 2.5rem; }
}

/* Fluent Forms no visual do tema (pagina de contato). Seletores com .ec-fluentform para vencer
   o CSS do plugin sem !important; so o botao usa !important porque o plugin grava a cor inline. */
.ec-fluentform .fluentform .ff-el-group { margin-bottom: 1.25rem; }
.ec-fluentform .fluentform .ff-t-container { gap: 1.25rem; }
.ec-fluentform .fluentform .ff-t-cell { padding: 0; }
.ec-fluentform .fluentform .ff-el-input--label label { margin-bottom: 0.375rem; font-size: 0.875rem; line-height: 1.25rem; font-weight: 600; color: rgba(255, 255, 255, 0.85); }
.ec-fluentform .fluentform .ff-el-is-required.asterisk-right label::after { color: var(--accent); }
.ec-fluentform .fluentform .ff-el-form-control { width: 100%; min-height: 0; padding: 0.75rem 1rem; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 0.75rem; background-color: rgba(255, 255, 255, 0.05); color: #fff; font: inherit; box-shadow: none; transition: border-color 0.2s, box-shadow 0.2s; }
.ec-fluentform .fluentform .ff-el-form-control::placeholder { color: rgba(255, 255, 255, 0.4); }
.ec-fluentform .fluentform .ff-el-form-control:focus { border-color: var(--accent); background-color: rgba(255, 255, 255, 0.07); box-shadow: 0 0 0 3px rgba(92, 132, 230, 0.25); outline: none; }
.ec-fluentform .fluentform select.ff-el-form-control { appearance: none; padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-opacity='.6' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; }
.ec-fluentform .fluentform select.ff-el-form-control option { background-color: var(--bg, #000); color: #fff; }
.ec-fluentform .fluentform .ff-el-tc label.ff_tc_label { display: flex; align-items: flex-start; gap: 0.75rem; font-size: 0.875rem; line-height: 1.25rem; font-weight: 400; color: rgba(255, 255, 255, 0.64); }
.ec-fluentform .fluentform .ff-el-tc .ff_tc_checkbox { padding: 0; }
.ec-fluentform .fluentform .ff-el-tc input[type="checkbox"] { margin-top: 0.15rem; width: 1rem; height: 1rem; accent-color: var(--primary); }
.ec-fluentform .fluentform .ff-el-tc a { color: var(--accent); text-decoration: underline; }
.ec-fluentform .fluentform .ff-el-is-error .ff-el-form-control { border-color: rgba(231, 76, 60, 0.7); }
.ec-fluentform .fluentform .error, .ec-fluentform .fluentform .text-danger { margin-top: 0.35rem; font-size: 0.8rem; color: #ffa498; }
.ec-fluentform .fluentform .ff-btn-submit { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.85rem 1.75rem; border: 0; border-radius: 999px; font-family: inherit; font-size: 1rem; font-weight: 600; line-height: 1.2; color: #fff !important; background: linear-gradient(110deg, var(--primary) 0%, #2C5BD6 55%, #5C84E6 100%) !important; box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.35), 0 10px 30px -8px rgba(21, 89, 255, 0.7); transition: transform 0.2s, box-shadow 0.2s, opacity 0.2s; }
.ec-fluentform .fluentform .ff-btn-submit:hover { opacity: 1; transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.55), 0 14px 34px -8px rgba(21, 89, 255, 0.85); }
.ec-fluentform .fluentform .ff-btn-submit:disabled { opacity: 0.6; transform: none; }
.ec-fluentform .ff-message-success { margin: 0; padding: 1rem 1.25rem; border: 1px solid rgba(39, 174, 96, 0.5); border-radius: 0.75rem; background: rgba(39, 174, 96, 0.14); color: #8fe3ad; box-shadow: none; }
.ec-fluentform .ff-errors-in-stack { margin-top: 1rem; padding: 0.75rem 1rem; border: 1px solid rgba(231, 76, 60, 0.5); border-radius: 0.75rem; background: rgba(231, 76, 60, 0.14); color: #ffa498; }
@media (max-width: 767px) { .ec-fluentform .fluentform .ff-t-container { flex-direction: column; gap: 0; } }

/* ------------------------------------------------------------------
 * Newsletter e aviso de turma (inc/newsletter.php)
 * ---------------------------------------------------------------- */
.nl-card { display: grid; gap: 1.5rem; padding: 1.75rem; border-radius: 1.25rem; border: 1px solid rgba(92, 132, 230, 0.35); background: radial-gradient(120% 140% at 0% 0%, rgba(27, 71, 187, 0.28), transparent 60%), rgba(255, 255, 255, 0.03); }
.nl-card .eyebrow { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0 0 0.5rem; }
.nl-title { margin: 0 0 0.6rem; font-size: 1.35rem; line-height: 1.25; }
.nl-text p:last-child { margin: 0; color: var(--muted); font-size: 0.95rem; }
.nl-form .ec-fluentform .fluentform .ff-el-group { margin-bottom: 0.9rem; }
.nl-form .ec-fluentform .fluentform .ff-btn-submit { width: 100%; }
.nl-card--inline { margin: 2.5rem 0; }
@media (min-width: 900px) {
  .nl-card--band, .nl-card--alert { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 3rem; padding: 2.5rem 3rem; }
  .nl-card--band .nl-title, .nl-card--alert .nl-title { font-size: 1.6rem; }
}

/* Cadaverlab, "Onde acontece": estrutura do local em cards com icone por assunto.
   O 1o item (o local) e o card principal, em duas colunas. 4 colunas no desktop, 2 no tablet, 1 no celular. */
.venue-head { display: grid; gap: 0.75rem 3rem; align-items: end; margin-bottom: 2.25rem; }
@media (min-width: 900px) { .venue-head { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.venue-head .section-title { margin-bottom: 0; }
.venue-head .lead { margin: 0; }
.venue-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) {
	.venue-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.venue-card--main { grid-column: span 2; }
}
@media (min-width: 1024px) { .venue-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.venue-card { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; border-radius: 1.1rem; background: #141414; border: 1px solid rgba(255, 255, 255, 0.08); transition: transform 0.25s, border-color 0.25s, box-shadow 0.25s; }
.venue-card:hover { transform: translateY(-3px); border-color: rgba(92, 132, 230, 0.45); box-shadow: 0 18px 40px -22px rgba(92, 132, 230, 0.45); }
.venue-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 0.9rem; color: #fff; background: linear-gradient(135deg, var(--primary), #2C5BD6); box-shadow: 0 0 0 1px rgba(92, 132, 230, 0.35), 0 10px 24px -10px rgba(27, 71, 187, 0.9); }
.venue-text { font-size: 0.98rem; line-height: 1.45; font-weight: 500; color: rgba(255, 255, 255, 0.88); }
.venue-card--main { padding: 1.5rem; background: linear-gradient(120deg, rgba(27, 71, 187, 0.38), #141414 70%); border-color: rgba(92, 132, 230, 0.4); }
.venue-card--main .venue-icon { width: 3.5rem; height: 3.5rem; }
.venue-card--main .venue-text { font-size: 1.12rem; font-weight: 700; color: #fff; }
@media (prefers-reduced-motion: reduce) { .venue-card, .venue-card:hover { transition: none; transform: none; } }

/* Portal Conteudos (/blog/): manchete, faixas por tipo e registro do ultimo evento. */
.portal-nav { padding-top: 1.75rem; }
.portal-nav .chip-row { margin: 0; flex-wrap: wrap; }
.chip--ghost { opacity: 0.75; }
.portal-top { padding-top: 2rem; }
.portal-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.75rem; }
.portal-head .section-title { margin-bottom: 0; }
.portal-head .lead { margin: 0.5rem 0 0; max-width: 40rem; }
.portal-head .btn { display: inline-flex; align-items: center; gap: 0.4rem; }
/* Faixa azul (mesmo azul do hero da Home): estudos no /blog/ e "Do blog" na Home. Cards em vidro claro. */
.section-blue { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(115deg, #0e2c82 0%, #1B47BB 50%, #0a2060 100%); border-block: 1px solid rgba(255, 255, 255, 0.12); }
.section-blue::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(700px 380px at 85% 0%, rgba(255, 255, 255, 0.16), transparent 62%), radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.13) 1px, transparent 1.6px) 0 0 / 22px 22px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 55%); mask-image: linear-gradient(90deg, transparent 0%, #000 55%);
}
.section-blue .eyebrow { color: rgba(255, 255, 255, 0.85); }
.section-blue .eyebrow::before { background: #fff; box-shadow: 0 0 10px rgba(255, 255, 255, 0.8); }
.section-blue .section-title { color: #fff; }
.section-blue .section-title::after { background: #fff; box-shadow: none; }
.section-blue .lead { color: rgba(255, 255, 255, 0.85); }
.section-blue .post-card { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.18); }
.section-blue .post-card:hover { background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.45); box-shadow: 0 18px 50px -22px rgba(0, 0, 0, 0.55); }
.section-blue .post-cat { background: rgba(255, 255, 255, 0.16); color: #fff; }
.section-blue .post-cat:hover { background: #fff; color: #1B47BB; }
.section-blue .post-card .post-title a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.section-blue .post-card .post-excerpt, .section-blue .post-date { color: rgba(255, 255, 255, 0.8); }
.section-blue .post-date svg, .section-blue .post-more { color: #fff; }
.post-card--nothumb .post-body { height: 100%; }
.post-card--nothumb .post-foot { margin-top: auto; }
.section-blue .link-arrow { color: #fff; }
.section-blue .link-arrow:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Home: faixa azul com 2 estudos comentados lado a lado e, na coluna lateral (320px, mesma
   largura da sidebar do blog), os 4 ultimos artigos no formato do widget "Artigos recentes".
   Abaixo de 1024px a coluna desce para baixo dos estudos. */
.home-content { display: grid; gap: 2.5rem; }
.home-content-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem 1.5rem; margin-bottom: 1.75rem; }
.home-content-head .section-title { margin-bottom: 0; }
.home-studies { display: grid; gap: 1.5rem; }
.home-studies .post-card .post-excerpt { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.home-content-side { display: flex; flex-direction: column; background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.18); }
.home-content-side .widget-title { color: #fff; font-size: 1.1rem; }
.mini-title { margin: 0; font: inherit; }
.home-content-side .mini-body a { color: #fff; }
.home-content-side .mini-body a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.home-content-side .mini-body small { color: rgba(255, 255, 255, 0.7); }
.home-blog-more { margin-top: auto; padding-top: 1.25rem; font-size: 0.9rem; }
@media (min-width: 768px) {
	.home-studies { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.home-content { grid-template-columns: minmax(0, 1fr) 320px; }
	.home-content--single { grid-template-columns: minmax(0, 1fr); }
}
.lead-story { display: grid; grid-template-columns: 1.25fr 1fr; gap: 0; border-radius: 1.4rem; overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.lead-story-media { display: block; min-height: 100%; background: #0b1430; }
.lead-story-media img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; display: block; }
.lead-story-body { display: flex; flex-direction: column; justify-content: center; gap: 1rem; padding: 2.5rem; }
.lead-story-kicker { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 0; font: 600 0.75rem/1 var(--mono); letter-spacing: 0.12em; text-transform: uppercase; }
.lead-story-kicker span { padding: 0.35rem 0.6rem; border-radius: 999px; background: var(--primary); color: #fff; }
.lead-story-kicker a { padding: 0.35rem 0.6rem; border-radius: 999px; border: 1px solid rgba(92, 132, 230, 0.45); color: var(--neon); text-decoration: none; }
.lead-story-title { margin: 0; font: 700 clamp(1.45rem, 2.6vw, 2.1rem)/1.2 Sora, Poppins, sans-serif; }
.lead-story-title a { color: #fff; text-decoration: none; }
.lead-story-title a:hover { color: var(--neon); }
.lead-story-excerpt { margin: 0; color: rgba(255, 255, 255, 0.75); line-height: 1.65; }
.lead-story-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 0; font-size: 0.88rem; color: rgba(255, 255, 255, 0.6); }
.lead-story-meta span { display: inline-flex; align-items: center; gap: 0.4rem; }
.lead-story-body .btn { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.45rem; }
.event-strip { display: grid; grid-template-columns: 1fr 1.6fr; gap: 2rem; align-items: center; padding: 1.75rem; border-radius: 1.4rem; border: 1px solid var(--line); background: var(--surface); }
.event-strip-info { display: flex; flex-direction: column; gap: 0.85rem; align-items: flex-start; }
.event-strip-info h3 { margin: 0; font-size: 1.3rem; line-height: 1.3; }
.event-strip-info h3 a { color: #fff; text-decoration: none; }
.event-strip-info p { margin: 0; color: rgba(255, 255, 255, 0.72); }
.event-strip-photos { display: grid; gap: 0.5rem; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 120px; border-radius: 1rem; overflow: hidden; }
.event-strip-photos img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s, opacity 0.3s; }
.event-strip-photos:hover img { opacity: 0.85; }
.event-strip-photos--5 img:first-child { grid-row: span 2; }
.event-strip-photos--4 img:first-child, .event-strip-photos--2 img:first-child { grid-row: span 2; }
.event-strip-photos--1 { grid-template-columns: 1fr; grid-auto-rows: 260px; }
@media (max-width: 900px) {
	.lead-story, .event-strip { grid-template-columns: 1fr; }
	.lead-story-media img { min-height: 220px; max-height: 300px; }
	.lead-story-body { padding: 1.5rem; }
	.event-strip { padding: 1.25rem; }
	.event-strip-photos { grid-auto-rows: 90px; }
}
@media (max-width: 640px) {
	.portal-nav .chip-row { flex-wrap: nowrap; overflow-x: auto; margin-right: -16px; padding-right: 16px; padding-bottom: 0.25rem; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.portal-nav .chip-row::-webkit-scrollbar { display: none; }
	.portal-nav .chip { flex: none; white-space: nowrap; }
}
