/* Techleads Academy — versão Pixel */
:root {
  --bg: #FFFFFF;
  --surface: #FFFFFF;
  --ink: #0B0B0B;
  --ink-2: #2B2B2B;
  --muted: #555555;
  --soft: #6B6B6B;
  --line: #0B0B0B;
  --line-soft: #D4D4D4;
  --line-2: #E8E8E8;
  --accent: #E8341C;
  --accent-light: #FF6A4D;
  --ok-bg: #EAF4EC;
  --ok-ink: #1F5A30;
  --dark-2: #161616;
  --dark-3: #222222;
  --dark-line: #333333;
  --dark-muted: #BDBDBD;
  --max: 1280px;
  --display: 'Space Grotesk', system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif; font-size: 17px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: var(--ink); }
a:hover { color: var(--accent); }
img { max-width: 100%; display: block; }
.mono, .label { font-family: var(--display); }
.wrap { max-width: var(--max); margin: 0 auto; padding-left: 80px; padding-right: 80px; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 16px; top: 16px; background: var(--ink); color: #fff; padding: 10px 16px; z-index: 50; }
.red { color: var(--accent); }

/* Navegação */
.topbar { position: relative; z-index: 10; }
.nav { max-width: var(--max); margin: 0 auto; padding: 32px 80px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.brand { font-family: var(--display); font-weight: 700; font-size: 20px; letter-spacing: -0.02em; text-decoration: none; display: inline-flex; align-items: center; }
.brand-sq { color: var(--accent); margin: 0 1px; }
.brand-mark { display: none; }
.nav-links { display: flex; flex-wrap: wrap; align-items: center; gap: 32px; font-size: 15px; font-weight: 500; }
.nav-links a { text-decoration: none; }
.nav-links a[aria-current="page"] { border-bottom: 2px solid var(--accent); }
.nav-links .nav-cta { background: var(--ink); color: #fff; padding: 13px 22px; font-weight: 600; border: 0; }
.nav-links .nav-cta:hover { background: var(--accent); color: #fff; }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; padding: 20px 30px; font-weight: 600; font-size: 17px; border: 2px solid transparent; cursor: pointer; font-family: inherit; border-radius: 0; }
.btn-dark { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn-dark:hover { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn-light { background: #fff; border-color: var(--ink); color: var(--ink); }
.btn-light:hover { background: var(--ink); color: #fff; }
.btn-accent { background: var(--accent); color: #fff; border-color: var(--accent); }
.btn-accent:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.btn-cream { background: #fff; color: var(--ink); border-color: #fff; }
.btn-row { display: flex; flex-wrap: wrap; gap: 0; margin-top: 36px; }
.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--accent); padding-bottom: 2px; align-self: flex-start; }

/* Tipografia */
.eyebrow { margin: 0 0 16px; font-family: var(--display); font-size: 15px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink); }
.eyebrow::before { content: "[ "; }
.eyebrow::after { content: " ]"; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 700; }
.h1 { font-size: clamp(48px, 7.4vw, 108px); line-height: 0.92; letter-spacing: -0.055em; }
.h2 { font-size: clamp(36px, 5.4vw, 80px); line-height: 0.95; letter-spacing: -0.05em; max-width: 900px; }
.h3 { font-size: 30px; line-height: 1.08; letter-spacing: -0.03em; }
.lead { margin: 28px 0 0; max-width: 520px; font-size: 20px; line-height: 1.55; color: #3B3B3B; }
.muted { color: var(--muted); }

/* Selos */
.pill { display: inline-flex; align-items: center; gap: 10px; border: 2px solid var(--ink); padding: 6px 14px 6px 6px; font-size: 14px; font-weight: 500; text-decoration: none; color: var(--ink); }
.pill b { background: var(--accent); color: #fff; padding: 3px 10px; font-weight: 600; text-transform: uppercase; font-size: 12px; }
.tag { display: inline-block; padding: 4px 12px; font-size: 13px; font-weight: 500; border: 2px solid var(--ink); color: var(--ink); background: #fff; border-radius: 0 !important; }
.tag-ok { background: var(--ink); color: #fff; border-color: var(--ink); }
.tag-accent { background: var(--accent); color: #fff !important; border-color: var(--accent); }
.tag-dark { background: var(--dark-3); color: #DADADA; border-color: var(--dark-3); }

/* Seções */
.section { padding-bottom: 140px; }
.hero { padding-top: 48px; padding-bottom: 96px; display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.hero > * { flex: 1 1 460px; min-width: 0; }
.page-hero { padding-top: 40px; padding-bottom: 80px; }
.breadcrumb { font-family: var(--display); font-size: 14px; color: var(--soft); margin: 0 0 28px; }
.breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.breadcrumb li + li::before { content: "/"; margin-right: 8px; color: #AAAAAA; }
.breadcrumb a { color: var(--soft); }

/* Resposta direta (AEO) */
.answer { margin-top: 36px; max-width: 760px; border-left: 4px solid var(--accent); padding: 6px 0 6px 24px; background: transparent; }
.answer p { margin: 0; font-size: 18px; }
.answer .eyebrow { margin-bottom: 8px; font-size: 13px; }

/* Cartões */
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 0; margin-top: 56px; border-top: 2px solid var(--ink); border-left: 2px solid var(--ink); }
.grid > * { border-width: 0 2px 2px 0; border-style: solid; border-color: var(--ink); }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.grid-3 > * + * { border-left: 1px solid var(--ink); }
.card { background: #fff; border: 2px solid var(--ink); padding: 36px; display: flex; flex-direction: column; gap: 14px; min-width: 0; border-radius: 0; }
.card-sm { padding: 28px 32px; gap: 8px; border: 0; }
.grid-3 .card-sm:first-child { padding-left: 0; }
.card-sm > span:first-child { font-family: var(--display); font-size: 14px; color: var(--ink) !important; text-transform: uppercase; }
.card-sm > span:first-child::before { content: "[ "; }
.card-sm > span:first-child::after { content: " ]"; }
.card-sm strong { font-size: 18px; line-height: 1.4; }
.card-dark { background: var(--ink); color: #fff; border-color: var(--ink); }
.grid-3 > .card-sm + .card-sm { border-left: 1px solid var(--ink); }
.card-dark p, .card-dark .muted { color: var(--dark-muted); }
.card-dark h3, .card-dark .price { color: #fff; }
.span-2 { grid-column: span 2; }
.span-all { grid-column: 1 / -1; }
.card .push { margin-top: auto; }
.price { margin: 0; font-family: var(--display); font-size: 36px; font-weight: 700; letter-spacing: -0.03em; }
.card-foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.card-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.split { display: flex; flex-wrap: wrap; gap: 40px; }
.split > * { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.feature { border: 1px solid var(--dark-line); padding: 16px 18px; display: flex; gap: 12px; align-items: center; color: #fff; }
.feature svg { stroke: var(--accent-light); }
.list { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }

/* Ilustrações (páginas internas) */
.illus { height: 140px; background: #F4F4F4; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 18px; }
.card-dark .illus { background: var(--dark-2); border: 1px solid var(--dark-line); }
.bubble { padding: 8px 12px; font-size: 13px; border-radius: 0 !important; }
.chip { background: #fff; border: 2px solid var(--ink); padding: 8px 12px; font-size: 13px; font-weight: 600; }
.panel-wrap, .panel-deco { display: none; }

/* Passos */
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.step { display: flex; gap: 14px; }
.step-n { flex: none; width: 40px; height: 40px; border: 2px solid var(--ink); display: inline-flex; align-items: center; justify-content: center; font-family: var(--display); font-size: 14px; font-weight: 700; background: #fff !important; }
.step:last-child .step-n { background: var(--accent) !important; color: #fff; border-color: var(--accent); }
.step p { margin: 0; }

/* FAQ (AEO) */
.faq { margin-top: 48px; display: flex; flex-direction: column; max-width: 960px; border-top: 2px solid var(--ink); }
.faq details { border-bottom: 1px solid var(--ink); padding: 0; }
.faq summary { cursor: pointer; list-style: none; padding: 26px 0; font-weight: 600; font-size: 21px; display: flex; justify-content: space-between; gap: 24px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--display); font-weight: 400; font-size: 24px; line-height: 1; }
.faq details[open] summary::after { content: "–"; color: var(--accent); }
.faq details p { margin: 0 0 26px; color: #3B3B3B; max-width: 760px; }

/* Sobre */
.about { display: flex; flex-wrap: wrap; gap: 72px; align-items: center; }
.photo-img { flex: 0 0 440px !important; width: 440px !important; height: 520px !important; border-radius: 0 !important; object-fit: cover; object-position: 30% center !important; filter: grayscale(1); }
.photo { flex: 0 0 440px; height: 520px; background: #EEE; display: flex; align-items: center; justify-content: center; color: var(--soft); }
.about-text { flex: 1 1 400px; min-width: 0; }
.quote { margin: 0; font-family: var(--display); font-weight: 700; font-size: clamp(30px, 3.6vw, 52px); line-height: 1.05; letter-spacing: -0.04em; }
.chips { margin-top: 28px; display: flex; flex-wrap: wrap; }
.chips span, .chips a { border: 2px solid var(--ink); margin: 0 -2px -2px 0; padding: 8px 16px; font-size: 15px; font-weight: 500; text-decoration: none; }

/* Contato */
.cta-box { background: var(--ink); color: #fff; padding: 72px; display: flex; flex-wrap: wrap; gap: 72px; }
.cta-box > * { flex: 1 1 380px; min-width: 0; }
.cta-box .h2 { color: #fff; font-size: clamp(36px, 5vw, 72px); }
.cta-box p { color: var(--dark-muted); font-size: 18px; }
.cta-box .eyebrow { color: var(--accent-light); }
.form { background: transparent; color: #fff; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.form label { display: flex; flex-direction: column; gap: 8px; font-size: 14px; font-weight: 500; }
.form input, .form textarea, .form select { background: transparent; border: 0; border-bottom: 2px solid #fff; border-radius: 0; padding: 12px 0; font-size: 17px; font-family: inherit; color: #fff; }
.form select option { color: var(--ink); }
.form input:focus, .form textarea:focus, .form select:focus { outline: none; border-bottom-color: var(--accent-light); }
.form .check { flex-direction: row; align-items: flex-start; gap: 10px; font-weight: 400; font-size: 13px; color: var(--dark-muted); }
.form .check a { color: #fff; }
.form .check input { margin-top: 3px; }
.form .btn { align-self: flex-start; background: var(--accent); border-color: var(--accent); color: #fff; }
.form .btn:hover { background: #fff; color: var(--ink); border-color: #fff; }

/* Linhas de cursos (home) */
.temas { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.temas span { padding: 22px 8px; text-align: center; font-family: var(--display); font-weight: 500; font-size: 17px; }
.temas span + span { border-left: 1px solid var(--ink); }
.course-list { margin-top: 56px; border-top: 2px solid var(--ink); }
.course-row { display: grid; grid-template-columns: 180px minmax(0, 1fr) 260px 60px; align-items: center; gap: 16px; padding: 28px 32px; border-bottom: 2px solid var(--ink); text-decoration: none; }
.course-row .num { font-family: var(--display); font-weight: 700; font-size: 96px; letter-spacing: -0.06em; line-height: 0.9; color: #D4D4D4; }
.course-row .ttl { margin: 0; font-family: var(--display); font-size: 40px; font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; }
.course-row .sub { margin: 6px 0 0; font-size: 17px; color: var(--muted); }
.course-row .status { font-family: var(--display); font-size: 22px; font-weight: 500; }
.course-row .arrow { font-size: 40px; text-align: right; }
.course-row.is-live { background: var(--ink); color: #fff; }
.course-row.is-live .num { color: var(--accent); }
.course-row.is-live .sub { color: var(--dark-muted); }
.course-row.is-live .status { font-size: 40px; font-weight: 700; }
.course-row:hover { color: var(--ink); }
.course-row.is-live:hover { color: #fff; }
.course-row.is-live:hover .arrow { color: var(--accent); }
.course-row:not(.is-live):hover { background: #F6F6F6; }

/* Hero da home */
.hero-home { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: 24px; padding-top: 32px; padding-bottom: 72px; position: relative; }
.hero-figure { position: relative; margin: 0; }
.hero-figure figcaption { position: absolute; right: 0; bottom: 24px; background: #fff; padding: 10px 14px; font-family: var(--display); font-size: 14px; text-align: right; line-height: 1.5; }
.px { position: absolute; background: var(--ink); }
.px.r { background: var(--accent); }
.big-stat { margin: 0; font-family: var(--display); font-weight: 700; font-size: clamp(52px, 6.4vw, 92px); line-height: 0.92; letter-spacing: -0.055em; }
.boxlist { border: 2px solid var(--ink); }
.boxlist > div { display: flex; justify-content: space-between; gap: 16px; padding: 18px 24px; border-bottom: 2px solid var(--ink); }
.boxlist > div:last-child { border-bottom: 0; background: var(--accent); color: #fff; }
.boxlist .n { font-family: var(--display); }
.two-col { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 80px; align-items: start; }
.faq-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 80px; }
.faq-wrap .faq { margin-top: 0; }

/* Prosa */
.prose { max-width: 760px; }
.prose h2 { font-size: 26px; margin: 44px 0 8px; letter-spacing: -0.02em; }
.prose p, .prose li { color: var(--ink-2); }

/* Rodapé */
.footer { margin-top: 140px; border-top: 2px solid var(--ink); }
.footer-top { padding-top: 72px; display: flex; flex-wrap: wrap; gap: 48px; }
.footer-brand { flex: 2 1 320px; min-width: 0; }
.footer-brand .brand { font-size: 26px; }
.footer-brand p { margin: 20px 0 0; max-width: 400px; color: #3B3B3B; }
.footer-col { flex: 1 1 180px; min-width: 0; }
.footer-col h2 { margin: 0 0 20px; font-family: var(--display); font-size: 13px; font-weight: 500; letter-spacing: 0.14em; color: var(--soft); }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-col a { text-decoration: none; color: var(--ink-2); }
.footer-col a:hover { color: var(--accent); }
.footer-bottom { margin-top: 56px; padding: 28px 0 40px; border-top: 1px solid var(--line-soft); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-family: var(--display); font-size: 13px; color: var(--soft); }
.footer-bottom p { margin: 0; }

/* Tablet */
@media (max-width: 1024px) {
  .wrap, .nav { padding-left: 40px; padding-right: 40px; }
  .course-row { grid-template-columns: 110px minmax(0, 1fr) 200px 40px; padding: 24px; }
  .course-row .num { font-size: 64px; }
  .course-row .ttl { font-size: 30px; }
  .two-col, .faq-wrap { gap: 48px; }
}

/* Celular */
@media (max-width: 760px) {
  body { font-size: 16px; }
  .wrap { padding-left: 20px; padding-right: 20px; }
  .nav { padding: 18px 20px; gap: 12px; }
  .brand { font-size: 18px; }
  .nav-links { width: 100%; justify-content: space-between; gap: 0; font-size: 14px; }
  .nav-links a { padding: 8px 6px; }
  .nav-links .nav-cta { padding: 10px 14px; }
  .hero-home { grid-template-columns: 1fr; padding-top: 8px; padding-bottom: 48px; gap: 8px; }
  .hero-home .hero-figure { max-width: 300px; margin: 8px auto 0; width: 100%; }
  .hero-figure figcaption { bottom: 8px; font-size: 12px; }
  .px { display: none; }
  .hero, .page-hero { padding-top: 16px; padding-bottom: 56px; }
  .section { padding-bottom: 88px; }
  .lead { font-size: 17px; }
  .btn-row { flex-direction: column; }
  .btn-row .btn { width: 100%; }
  .btn-row .btn + .btn { border-top: 0; }
  .grid { margin-top: 36px; }
  .span-2 { grid-column: auto; }
  .card { padding: 24px; }
  .grid-3 > * + * { border-left: 0; border-top: 1px solid var(--ink); }
  .grid-3 .card-sm { padding: 20px 0; }
  .grid-3 > .card-sm + .card-sm { border-left: 0; border-top: 1px solid var(--ink); }
  .temas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .temas span { font-size: 15px; padding: 16px 4px; }
  .temas span:nth-child(4) { border-left: 0; }
  .temas span:nth-child(n+4) { border-top: 1px solid var(--ink); }
  .course-row { grid-template-columns: 56px minmax(0, 1fr); padding: 20px 16px; row-gap: 8px; }
  .course-row .num { font-size: 44px; grid-row: span 2; align-self: start; }
  .course-row .ttl { font-size: 24px; }
  .course-row .sub { font-size: 15px; }
  .course-row .status { grid-column: 2; font-size: 18px; }
  .course-row.is-live .status { font-size: 28px; }
  .course-row .arrow { display: none; }
  .two-col, .faq-wrap { grid-template-columns: 1fr; gap: 32px; }
  .big-stat { font-size: 52px; }
  .faq summary { font-size: 17px; padding: 20px 0; }
  .about { gap: 28px; }
  .photo-img, .photo { flex: none !important; width: 100% !important; height: 380px !important; }
  .cta-box { padding: 40px 24px; gap: 36px; }
  .footer { margin-top: 88px; }
  .footer-top { padding-top: 48px; gap: 32px; }
  .footer-bottom { flex-direction: column; }
}
@media (max-width: 360px) {
  .nav-links { font-size: 13px; }
  .nav-links a[href="/sobre/"] { display: none; }
}

/* cartões pequenos dentro da grade */
.grid > .card-sm { border-width: 0 2px 2px 0; border-style: solid; border-color: var(--ink); padding: 28px 32px; }

.h1-home { font-size: clamp(44px, 6.4vw, 96px); }
.two-col > *, .faq-wrap > * { min-width: 0; }
@media (max-width: 760px) { .temas span { font-size: 14px; overflow-wrap: anywhere; } }
@media (max-width: 360px) { .temas span { font-size: 12px; } .course-row { grid-template-columns: 44px minmax(0, 1fr); } .course-row .num { font-size: 36px; } }
@media (max-width: 400px) { .big-stat { font-size: 40px; } .h1-home { font-size: 42px; } }

.footer-brand .footer-mail { margin-top: 12px; }
.footer-brand .footer-mail a { font-weight: 500; }

/* Empresas onde já atuou (grade 3x2) */
.chips-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 560px; }
.chips-grid span { text-align: center; }
@media (max-width: 760px) { .chips-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; } }

/* Curso em destaque: textos sempre claros, com ou sem mouse */
.course-row.is-live .ttl, .course-row.is-live .status, .course-row.is-live .arrow, .course-row.is-live .num { color: #fff; }
.course-row.is-live .num { color: var(--accent); }
.course-row.is-live:hover .ttl, .course-row.is-live:hover .status { color: #fff; }
.course-row.is-live:hover .arrow { color: var(--accent); }

/* Etiqueta do topo: frases que se revezam */
.eyebrow-rotator { display: grid; justify-items: start; }
.eyebrow-rotator::before, .eyebrow-rotator::after { content: none; }
.eyebrow-rotator span { grid-area: 1 / 1; opacity: 0; animation: tl-eyebrow 24s ease-in-out infinite both; }
.eyebrow-rotator span:nth-child(1) { animation-delay: -0.6s; }
.eyebrow-rotator span:nth-child(2) { animation-delay: -18.6s; }
.eyebrow-rotator span:nth-child(3) { animation-delay: -12.6s; }
.eyebrow-rotator span:nth-child(4) { animation-delay: -6.6s; }
@keyframes tl-eyebrow { 0% { opacity: 0; } 2.25% { opacity: 1; } 22.5% { opacity: 1; } 24.75% { opacity: 0; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .eyebrow-rotator span { animation: none; } .eyebrow-rotator span:first-child { opacity: 1; } }

/* Selo do topo: cursos que se revezam (troca a cada 6s) */
.pill-rotator { display: grid; justify-items: start; }
.pill-rotator .pill { grid-area: 1 / 1; opacity: 0; visibility: hidden; animation: tl-pill 24s ease-in-out infinite both; }
.pill-rotator .pill:nth-child(1) { animation-delay: -0.6s; }
.pill-rotator .pill:nth-child(2) { animation-delay: -18.6s; }
.pill-rotator .pill:nth-child(3) { animation-delay: -12.6s; }
.pill-rotator .pill:nth-child(4) { animation-delay: -6.6s; }
@keyframes tl-pill { 0% { opacity: 0; visibility: visible; } 2.25% { opacity: 1; } 22.5% { opacity: 1; } 24.75% { opacity: 0; visibility: visible; } 25.1% { visibility: hidden; } 100% { opacity: 0; visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .pill-rotator .pill { animation: none; } .pill-rotator .pill:first-child { opacity: 1; visibility: visible; } }

/* Faixa de temas em carrossel infinito (pausa com o mouse em cima) */
.marquee { display: flex; overflow: hidden; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.marquee-track { display: flex; flex: none; margin: 0; padding: 0; list-style: none; animation: tl-marquee 55s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track li { flex: none; display: flex; align-items: center; gap: 14px; padding: 22px 32px; border-right: 1px solid var(--ink); font-family: var(--display); font-weight: 500; font-size: 17px; white-space: nowrap; cursor: default; transition: background-color .2s ease, color .2s ease; }
.marquee-track li::before { content: ""; width: 8px; height: 8px; background: var(--accent); transition: background-color .2s ease; }
.marquee-track li:hover { background: var(--accent); color: #fff; }
.marquee-track li:hover::before { background: #fff; }
@keyframes tl-marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@media (max-width: 760px) { .marquee-track li { padding: 16px 22px; font-size: 15px; } .marquee-track { animation-duration: 45s; } }
@media (prefers-reduced-motion: reduce) { .marquee { -webkit-mask-image: none; mask-image: none; } .marquee-track { animation: none; flex-wrap: wrap; flex: 1; } .marquee-track[aria-hidden] { display: none; } }

/* Página Gestão Ágil com IA */
.ga-meta { display: flex; flex-wrap: wrap; margin-top: 28px; }
.ga-meta span { border: 2px solid var(--ink); margin: 0 -2px -2px 0; padding: 8px 16px; font-family: var(--display); font-size: 15px; font-weight: 500; }
.ga-meta span:first-child { background: var(--ink); color: #fff; }
.ga-bloco { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: start; padding-top: 72px; padding-bottom: 72px; }
.ga-bloco, .ga-bloco + .section { --gut: 80px; background: linear-gradient(var(--ink), var(--ink)) center top / calc(100% - 2 * var(--gut)) 2px no-repeat; }
.ga-bloco:last-of-type { margin-bottom: 0; }
.ga-num { margin: 0; font-family: var(--display); font-weight: 700; font-size: clamp(56px, 7vw, 96px); line-height: 0.9; letter-spacing: -0.05em; color: #CFCFCF; }
.ga-rotulo { margin: 14px 0 0; font-family: var(--display); font-size: 14px; font-weight: 500; letter-spacing: 0.3em; text-transform: uppercase; }
.ga-h2 { margin-top: 18px; font-size: clamp(36px, 4.6vw, 64px); }
.ga-txt { margin: 28px 0 0; padding-top: 24px; max-width: 460px; font-size: 18px; color: #3B3B3B; position: relative; }
.ga-txt::before { content: ""; position: absolute; top: 0; left: 0; width: 48px; height: 4px; background: var(--accent); }
.ga-itens { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--ink); }
.ga-itens li { display: flex; flex-direction: column; gap: 4px; padding: 22px 0 22px 32px; position: relative; }
.ga-itens li + li { border-top: 1px solid #DADADA; }
.ga-itens li::before { content: ""; position: absolute; left: -7px; top: 30px; width: 12px; height: 12px; background: var(--ink); }
.ga-itens li:last-child::before { background: var(--accent); }
.ga-itens strong { font-family: var(--display); font-size: 20px; font-weight: 700; }
.ga-itens span { color: #3B3B3B; }
.ga-bloco + .section { padding-top: 72px; }
.ga-banner { margin-top: 32px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 24px 28px; border: 2px solid var(--ink); text-decoration: none; color: var(--ink); transition: background-color .2s ease, color .2s ease; }
.ga-banner-tag { background: var(--accent); color: #fff; padding: 4px 10px; font-size: 12px; font-weight: 600; text-transform: uppercase; }
.ga-banner-txt { display: flex; flex-direction: column; gap: 4px; }
.ga-banner-txt strong { font-family: var(--display); font-size: 22px; }
.ga-banner-txt span { color: #3B3B3B; font-size: 15px; }
.ga-banner-arrow { font-size: 28px; color: var(--accent); }
.ga-banner:hover { background: var(--ink); color: #fff; }
.ga-banner:hover .ga-banner-txt span { color: #DADADA; }
@media (max-width: 900px) { .ga-bloco { grid-template-columns: 1fr; gap: 40px; padding-top: 56px; padding-bottom: 56px; } }
@media (max-width: 760px) { .ga-banner { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 16px; padding: 20px; } .ga-banner-tag { grid-column: 1 / -1; justify-self: start; } .ga-banner-txt strong { font-size: 19px; } .ga-itens li { padding-left: 24px; } }
@media (max-width: 1024px) { .ga-bloco, .ga-bloco + .section { --gut: 40px; } }
@media (max-width: 760px) { .ga-bloco, .ga-bloco + .section { --gut: 20px; } }

/* Cartão com mais de uma etiqueta */
.card-tags { display: flex; flex-wrap: wrap; gap: 8px; align-self: flex-start; }
.card-tags .tag-accent { text-transform: uppercase; font-weight: 600; font-size: 12px; letter-spacing: 0.04em; display: inline-flex; align-items: center; }
.grid > .card { border-style: solid; border-color: var(--ink); border-width: 0 2px 2px 0; }

/* Sobre: projetos */
.proj-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px; border-top: 2px solid var(--ink); border-left: 2px solid var(--ink); }
.proj { display: flex; flex-direction: column; gap: 10px; padding: 32px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); text-decoration: none; color: var(--ink); min-width: 0; transition: background-color .2s ease, color .2s ease; }
.proj-cat { font-family: var(--display); font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.proj-nome { font-family: var(--display); font-weight: 700; font-size: 28px; letter-spacing: -0.03em; }
.proj-desc { color: #3B3B3B; flex: 1; }
.proj-ver { margin-top: 12px; font-weight: 600; font-size: 15px; }
.proj:hover { background: var(--ink); color: #fff; }
.proj:hover .proj-desc { color: #DADADA; }
.proj:hover .proj-ver { color: var(--accent); }
@media (max-width: 1024px) { .proj-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .proj-grid { grid-template-columns: 1fr; } .proj { padding: 24px; } .proj-nome { font-size: 24px; } }
/* Sobre: chamada final */
.cta-final { position: relative; background: var(--ink); color: #fff; padding: 72px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 72px; align-items: start; }
.cta-final::after { content: ""; position: absolute; top: 28px; right: 28px; width: 14px; height: 14px; background: var(--accent); box-shadow: -28px 0 0 #fff, -14px 14px 0 #fff, 0 28px 0 #fff; }
.cta-final .eyebrow { color: var(--accent-light); }
.cta-final .h2 { color: #fff; font-size: clamp(36px, 4.6vw, 64px); margin-top: 16px; }
.cta-final .cta-red { color: var(--accent); }
.cta-final-txt { margin: 24px 0 0; color: var(--dark-muted); font-size: 18px; max-width: 480px; }
.cta-final-btns { margin-top: 32px; }
.cta-final-btn { background: var(--accent); border-color: var(--accent); color: #fff; }
.cta-final-btn:hover { background: #fff; border-color: #fff; color: var(--ink); }
.cta-final-list { list-style: none; margin: 16px 0 0; padding: 0; border-top: 1px solid var(--dark-line); }
.cta-final-list a { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--dark-line); color: #fff; text-decoration: none; transition: padding .2s ease, color .2s ease; }
.cta-final-list a span:first-child { display: flex; flex-direction: column; gap: 2px; }
.cta-final-list strong { font-family: var(--display); font-size: 20px; }
.cta-final-list small { color: var(--dark-muted); font-size: 14px; }
.cta-final-list a > span:last-child { color: var(--accent); font-size: 22px; }
.cta-final-list a:hover { padding-left: 10px; color: var(--accent-light); }
.cta-final-alt { margin: 24px 0 0; color: var(--dark-muted); font-size: 15px; }
.cta-final-alt a { color: #fff; font-weight: 600; }
@media (max-width: 900px) { .cta-final { grid-template-columns: 1fr; gap: 48px; padding: 48px 24px; } .cta-final::after { top: 20px; right: 20px; } }
.cta-final-alt a { white-space: nowrap; }
@media (max-width: 760px) { .cta-final-btn { padding-left: 20px; padding-right: 20px; white-space: nowrap; font-size: 15px; } }

/* Página de curso: título e bloco do orquestrador */
.hero-curso { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.h1-curso { font-size: clamp(44px, 5.6vw, 84px); overflow-wrap: break-word; }
.orq-card { background: var(--ink); color: #fff; padding: 32px; display: flex; flex-direction: column; gap: 28px; position: relative; }
.orq-card::after { content: ""; position: absolute; top: 20px; right: 20px; width: 10px; height: 10px; background: var(--accent); box-shadow: -20px 0 0 #fff, -10px 10px 0 #fff, 0 20px 0 #fff; }
.orq-head { display: flex; align-items: center; gap: 10px; font-family: var(--display); font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dark-muted); }
.orq-dot { width: 8px; height: 8px; background: var(--accent); animation: tl-blink 1.6s steps(2, start) infinite; }
@keyframes tl-blink { to { visibility: hidden; } }
.orq-diagram { display: flex; flex-direction: column; align-items: center; }
.orq-node { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 12px; border: 1px solid var(--dark-line); background: var(--dark-2); text-align: center; min-width: 0; }
.orq-node b { font-family: var(--display); font-size: 15px; font-weight: 700; }
.orq-node small { font-size: 12px; color: var(--dark-muted); line-height: 1.3; }
.orq-main { background: var(--accent); border-color: var(--accent); padding: 12px 22px; }
.orq-main small { color: #FFE3DD; }
.orq-out { border: 1px solid #fff; background: transparent; padding: 10px 22px; }
.orq-bus { position: relative; width: 75%; height: 28px; }
.orq-bus::before { content: ""; position: absolute; left: 50%; top: 0; width: 2px; height: 14px; background: #5A5A5A; transform: translateX(-1px); }
.orq-bus::after { content: ""; position: absolute; left: 0; right: 0; top: 14px; height: 2px; background: #5A5A5A; }
.orq-bus-up::before { top: auto; bottom: 0; }
.orq-bus-up::after { top: auto; bottom: 14px; }
.orq-agents { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; width: 100%; position: relative; }
.orq-agent { position: relative; animation: tl-agent 6s ease-in-out infinite; }
.orq-agent::before, .orq-agent::after { content: ""; position: absolute; left: 50%; width: 2px; height: 14px; background: #5A5A5A; transform: translateX(-1px); }
.orq-agent::before { top: -14px; } .orq-agent::after { bottom: -14px; }
.orq-agent:nth-child(2) { animation-delay: 1.5s; } .orq-agent:nth-child(3) { animation-delay: 3s; } .orq-agent:nth-child(4) { animation-delay: 4.5s; }
@keyframes tl-agent { 0%, 30%, 100% { border-color: var(--dark-line); } 8%, 22% { border-color: var(--accent); } }
.orq-def { border-top: 1px solid var(--dark-line); padding-top: 24px; }
.orq-def .eyebrow { color: var(--accent-light); font-size: 13px; margin: 0 0 10px; }
.orq-def-txt { margin: 0; color: #E6E6E6; font-size: 16px; line-height: 1.6; }
.orq-def-txt strong { color: #fff; }
.orq-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--dark-line); }
.orq-facts span { padding: 16px 12px 0 0; font-size: 14px; color: var(--dark-muted); line-height: 1.35; }
.orq-facts span + span { padding-left: 14px; border-left: 1px solid var(--dark-line); }
.orq-facts b { display: block; font-family: var(--display); font-size: 22px; color: #fff; }
@media (max-width: 1024px) { .hero-curso { grid-template-columns: 1fr; gap: 48px; } }
@media (max-width: 560px) { .orq-card { padding: 24px 20px; } .orq-agents { grid-template-columns: repeat(2, minmax(0, 1fr)); } .orq-agent::before, .orq-agent::after { display: none; } .orq-bus { width: 50%; } .orq-facts b { font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .orq-agent, .orq-dot { animation: none; } }
.orq-head { padding-right: 48px; }

/* Menu fixo no topo */
html { scroll-padding-top: 148px; }
.topbar { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid transparent; transition: border-color .2s ease; }
.topbar .nav { transition: padding .2s ease; }
.topbar.is-stuck { border-bottom-color: var(--ink); }
.topbar.is-stuck .nav { padding-top: 14px; padding-bottom: 14px; }
@media (max-width: 760px) { html { scroll-padding-top: 180px; } .topbar.is-stuck .nav { padding-top: 10px; padding-bottom: 10px; } }

/* Curso Vibecoding */
.course-new { display: inline-block; vertical-align: middle; margin-left: 8px; background: var(--accent); color: #fff; font-family: var(--body, inherit); font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; padding: 3px 8px; }
.vc-red { color: var(--accent); }
.vc-hero-term { display: flex; flex-direction: column; gap: 8px; padding: 22px 24px; background: var(--dark-2); border: 1px solid var(--dark-line); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 15px; color: #F2F2F2; }
.vc-hero-term b, .vc-term b { color: var(--accent-light); font-weight: 400; }
.vc-hero-term em, .vc-term em { font-style: normal; color: #9A9A9A; }
.vc-cursor { display: inline-block; width: 9px; height: 16px; margin-left: 6px; vertical-align: -2px; background: var(--accent); animation: tl-blink 1.1s steps(2, start) infinite; }
.vc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 56px; border-top: 2px solid var(--ink); border-left: 2px solid var(--ink); }
.vc-card { display: flex; flex-direction: column; gap: 12px; padding: 36px 32px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); min-width: 0; }
.vc-num { font-family: var(--display); font-weight: 700; font-size: 72px; line-height: 0.9; letter-spacing: -0.05em; color: var(--accent); }
.vc-card .h3 { font-size: 26px; margin-top: 8px; }
.vc-card .muted { margin: 0; flex: 1; }
.vc-term { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; padding: 18px 20px; background: var(--ink); color: #F2F2F2; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; }
@media (max-width: 1024px) { .vc-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .vc-card { padding: 28px 22px; } .vc-num { font-size: 56px; } .vc-hero-term { font-size: 13px; padding: 18px; } .vc-term { font-size: 13px; } }
@media (prefers-reduced-motion: reduce) { .vc-cursor { animation: none; } }

/* Página 404 */
.e404 { padding-top: 40px; padding-bottom: 120px; }
.e404-top { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.e404-card { background: var(--ink); padding: 40px; display: flex; flex-direction: column; gap: 28px; }
.e404-px { width: 100%; height: auto; fill: #fff; shape-rendering: crispEdges; }
.e404-px .r { fill: var(--accent); }
.e404-term { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px; background: var(--dark-2); border: 1px solid var(--dark-line); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 14px; color: #F2F2F2; overflow-wrap: anywhere; }
.e404-term b { color: var(--accent-light); font-weight: 400; }
.e404-term em { font-style: normal; color: #9A9A9A; }
.e404-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 16px; border-top: 2px solid var(--ink); border-left: 2px solid var(--ink); }
.e404-link { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 24px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); text-decoration: none; color: var(--ink); transition: background-color .2s ease, color .2s ease; }
.e404-link span:first-child { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.e404-link strong { font-family: var(--display); font-size: 20px; }
.e404-link small { color: #5A5A5A; font-size: 14px; }
.e404-link > span:last-child { color: var(--accent); font-size: 22px; }
.e404-link:hover { background: var(--ink); color: #fff; }
.e404-link:hover small { color: #BDBDBD; }
@media (max-width: 1024px) { .e404-top { grid-template-columns: 1fr; gap: 40px; } .e404-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .e404-card { padding: 24px; } .e404-grid { grid-template-columns: 1fr; } .e404-link { padding: 18px 20px; } }

/* Hero: mosaico de losangos */
.dia-grid { position: relative; aspect-ratio: 1; --hx: 15.6%; --hy: 15.6%; }
.dia-tile { position: absolute; inset: 0; pointer-events: none; }
.dia-face { position: absolute; inset: 0; opacity: 0; clip-path: polygon(var(--cx) calc(var(--cy) - var(--hy)), calc(var(--cx) + var(--hx)) var(--cy), var(--cx) calc(var(--cy) + var(--hy)), calc(var(--cx) - var(--hx)) var(--cy)); }
.dia-face.is-on { opacity: 1; z-index: 2; animation: dia-in .8s cubic-bezier(.2,.7,.2,1) var(--d, 0s) both; }
.dia-face.was-on { opacity: 1; z-index: 1; }
@keyframes dia-in { from { clip-path: polygon(var(--cx) var(--cy), var(--cx) var(--cy), var(--cx) var(--cy), var(--cx) var(--cy)); } }
.dia-face img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.dia-face span { position: absolute; left: var(--cx); top: var(--cy); transform: translate(-50%, -50%); font-family: var(--display); font-weight: 700; font-size: clamp(13px, 1.5vw, 20px); line-height: 1.1; letter-spacing: -0.02em; text-align: center; white-space: nowrap; }
.dia-face span small { display: block; margin-bottom: 4px; font-size: 10px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; opacity: .7; }
.k-dark { background: var(--ink); color: #fff; }
.k-red { background: var(--accent); color: #fff; }
.k-line { background: #F1F1F1; color: var(--ink); }
.k-line small { color: var(--accent); opacity: 1 !important; }
.dia figcaption { position: static; margin: 8px 0 0 auto; width: max-content; }
@media (max-width: 900px) { .hero-home .hero-figure.dia { max-width: 440px; } }
@media (prefers-reduced-motion: reduce) { .dia-face.is-on { animation: none; } }

/* Barra de anúncio */
.announce { background: var(--ink); }
.announce a { max-width: var(--max); margin: 0 auto; padding: 10px 80px; display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 6px 16px; color: #fff; text-decoration: none; font-size: 15px; line-height: 1.4; text-align: center; }
.announce-tag { font-family: var(--display); font-size: 12px; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--accent-light); }
.announce-cta { color: var(--accent-light); font-weight: 600; }
.announce a:hover .announce-cta, .announce a:focus-visible .announce-cta { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) { .announce a { padding: 9px 20px; font-size: 14px; } .announce-tag { display: none; } }
