:root {
  --navy: #0b2341;
  --navy-2: #13375f;
  --gold: #b88a2d;
  --gold-light: #e7cc8a;
  --cream: #f8f5ee;
  --paper: #fffdf8;
  --ink: #172033;
  --muted: #5f6977;
  --line: #d9d2c4;
  --white: #ffffff;
  --success: #2f6d52;
  --shadow: 0 14px 40px rgba(11, 35, 65, .12);
  --radius: 18px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  color: var(--ink);
  background: var(--cream);
  line-height: 1.6;
}
a { color: inherit; }
img { max-width: 100%; }
.container { width: min(var(--max), calc(100% - 36px)); margin: 0 auto; }
.skip-link { position: absolute; left: -999px; top: 0; background: var(--white); color: var(--navy); padding: 10px 14px; z-index: 999; }
.skip-link:focus { left: 12px; top: 12px; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,253,248,.96);
  border-bottom: 1px solid rgba(184,138,45,.28);
  backdrop-filter: blur(10px);
}
.header-row { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { text-decoration: none; display: flex; align-items: center; gap: 13px; min-width: 240px; }
.brand-logo {
  width: 58px; height: 58px; flex: 0 0 58px; border-radius: 50%;
  object-fit: cover; background: var(--white);
  border: 2px solid var(--gold);
  box-shadow: 0 3px 12px rgba(11,35,65,.16);
}
.brand-copy { display:flex; flex-direction:column; justify-content:center; line-height:1.05; }
.brand-copy strong { display: block; color: var(--navy); font-size: 1rem; line-height: 1.15; }
.brand-copy span { display: block; color: var(--muted); font-size: .72rem; line-height:1.2; letter-spacing: .05em; text-transform: uppercase; margin-top:3px; }
.nav-toggle { display: none; border: 1px solid var(--line); background: var(--white); border-radius: 10px; padding: 9px 11px; font-size: 1.25rem; }
.site-nav ul { display: flex; align-items: center; gap: 5px; list-style: none; margin: 0; padding: 0; }
.site-nav a { text-decoration: none; display: inline-flex; align-items:center; justify-content:center; min-height:42px; padding: 10px 11px; border-radius: 10px; color: #26374d; font-size: .94rem; line-height:1.1; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--navy); background: #f0eadc; }
.site-nav .nav-cta { background: var(--navy); color: var(--white); }
.site-nav .nav-cta:hover { background: var(--navy-2); color: var(--white); }

.hero {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #071a31 0%, #0d2c50 62%, #163a63 100%);
  color: var(--white); border-bottom: 5px solid var(--gold);
}
.hero::before, .hero::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(231,204,138,.18); }
.hero::before { width: 540px; height: 540px; right: -180px; top: -180px; }
.hero::after { width: 360px; height: 360px; right: -60px; top: -90px; }
.hero-grid { position: relative; z-index: 1; min-height: 610px; display: grid; grid-template-columns: 1.18fr .82fr; gap: 56px; align-items: center; padding: 70px 0; }
.eyebrow { color: var(--gold-light); text-transform: uppercase; font-weight: 700; letter-spacing: .16em; font-size: .78rem; }
.hero h1 { margin: 13px 0 20px; font-size: clamp(2.55rem, 6vw, 5.1rem); line-height: .98; letter-spacing: -.045em; }
.hero h1 span { color: var(--gold-light); }
.hero-lead { max-width: 720px; font-size: 1.15rem; color: #e9eef4; }
.hero-actions { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 12px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; border-radius: 12px; padding: 13px 18px; font-weight: 700; border: 1px solid transparent; transition: .2s ease; }
.btn-primary { background: var(--gold); color: #10223a; }
.btn-primary:hover { background: #c99a3b; transform: translateY(-1px); }
.btn-ghost { border-color: rgba(255,255,255,.36); color: var(--white); }
.btn-ghost:hover { background: rgba(255,255,255,.08); }
.hero-panel { background: rgba(255,255,255,.07); border: 1px solid rgba(231,204,138,.32); border-radius: 26px; padding: 30px; box-shadow: 0 25px 70px rgba(0,0,0,.18); }
.hero-panel .seal-note { color: var(--gold-light); font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; }
.hero-panel h2 { margin: 10px 0 10px; font-size: 1.7rem; }
.hero-panel p { color: #dce6f0; }
.hero-panel ul { padding-left: 19px; margin: 20px 0 0; }
.hero-panel li { margin: 8px 0; }

.section { padding: 82px 0; }
.section.white { background: var(--paper); }
.section.navy { background: var(--navy); color: var(--white); }
.section-header { max-width: 780px; margin-bottom: 34px; }
.section-header .kicker { color: var(--gold); font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .76rem; }
.section-header h2 { color: var(--navy); font-size: clamp(2rem, 4vw, 3.15rem); line-height: 1.08; margin: 8px 0 12px; letter-spacing: -.035em; }
.section.navy .section-header h2 { color: var(--white); }
.section-header p { color: var(--muted); font-size: 1.06rem; margin: 0; }
.section.navy .section-header p { color: #cbd8e7; }

.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.card { background: var(--white); border: 1px solid #e3ddd2; border-radius: var(--radius); padding: 27px; box-shadow: 0 8px 24px rgba(11,35,65,.05); }
.card .num { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: #f2ead8; color: var(--navy); font-weight: 800; margin-bottom: 18px; }
.card h3 { margin: 0 0 10px; color: var(--navy); font-size: 1.18rem; }
.card p { margin: 0; color: var(--muted); }

.quote-band { border-top: 1px solid rgba(231,204,138,.38); border-bottom: 1px solid rgba(231,204,138,.38); padding: 28px 0; }
.quote-band blockquote { max-width: 900px; margin: 0 auto; text-align: center; font-size: 1.25rem; color: #eef3f8; }
.quote-band cite { display: block; margin-top: 12px; font-style: normal; color: var(--gold-light); font-size: .9rem; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 46px; align-items: start; }
.feature-list { display: grid; gap: 16px; }
.feature { display: grid; grid-template-columns: 42px 1fr; gap: 14px; }
.feature-icon { width: 38px; height: 38px; border: 1px solid var(--gold); color: var(--gold); border-radius: 50%; display: grid; place-items: center; font-weight: 800; }
.feature h3 { margin: 0 0 4px; color: var(--navy); font-size: 1.04rem; }
.feature p { margin: 0; color: var(--muted); }

.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.stat { background: rgba(255,255,255,.07); border: 1px solid rgba(231,204,138,.25); border-radius: 16px; padding: 22px; }
.stat strong { font-size: 2rem; display: block; color: var(--gold-light); }
.stat span { color: #d7e1ec; font-size: .9rem; }

.curriculum-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; counter-reset: modules; }
.module { counter-increment: modules; background: var(--white); border: 1px solid #e0d9cc; border-radius: 14px; padding: 18px 18px 18px 60px; position: relative; min-height: 82px; display: flex; align-items: center; color: var(--navy); font-weight: 700; }
.module::before { content: counter(modules, decimal-leading-zero); position: absolute; left: 15px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: var(--navy); color: var(--gold-light); font-size: .79rem; }

.callout { background: #efe6d3; border-left: 4px solid var(--gold); border-radius: 0 14px 14px 0; padding: 20px 22px; color: #314157; }
.callout strong { color: var(--navy); }

.page-hero { background: linear-gradient(135deg, var(--navy), var(--navy-2)); color: white; padding: 74px 0 64px; border-bottom: 4px solid var(--gold); }
.breadcrumb { font-size: .85rem; color: #c6d5e5; margin-bottom: 18px; }
.breadcrumb a { color: var(--gold-light); text-decoration: none; }
.page-hero h1 { font-size: clamp(2.2rem, 5vw, 4.2rem); margin: 0 0 12px; line-height: 1.02; }
.page-hero p { max-width: 780px; margin: 0; color: #dae4ee; font-size: 1.08rem; }

.prose { max-width: 860px; }
.prose h2 { color: var(--navy); margin-top: 42px; line-height: 1.2; }
.prose h3 { color: var(--navy); margin-top: 28px; }
.prose p, .prose li { color: #3e4b5b; }
.prose strong { color: var(--navy); }

.pub-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.pub { background: var(--white); border: 1px solid #e1dacc; border-radius: 16px; overflow: hidden; }
.pub-top { background: var(--navy); color: white; padding: 23px; min-height: 130px; border-bottom: 3px solid var(--gold); }
.pub-top small { color: var(--gold-light); text-transform: uppercase; letter-spacing: .1em; }
.pub-top h3 { margin: 8px 0 0; font-size: 1.35rem; }
.pub-body { padding: 23px; color: var(--muted); }
.status { display: inline-block; font-size: .75rem; border-radius: 999px; padding: 5px 9px; background: #e7f0eb; color: var(--success); font-weight: 700; }

.contact-box { max-width: 850px; background: var(--white); border-radius: 20px; border: 1px solid #e0d8ca; padding: 30px; }
.contact-box dl { display: grid; grid-template-columns: 180px 1fr; gap: 10px 20px; margin: 0; }
.contact-box dt { font-weight: 800; color: var(--navy); }
.contact-box dd { margin: 0; color: var(--muted); }

.site-footer { background: #07172a; color: #d9e1ea; border-top: 4px solid var(--gold); }
.footer-grid { padding: 52px 0 34px; display: grid; grid-template-columns: 1.4fr .8fr .8fr; gap: 40px; }
.site-footer h2, .site-footer h3 { color: white; margin-top: 0; }
.site-footer p, .site-footer a { color: #b8c5d3; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--gold-light); }
.footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 7px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding: 18px 0 28px; display: flex; justify-content: space-between; gap: 20px; color: #91a3b5; font-size: .83rem; }
.logo-disclaimer { font-size: .78rem; color: #8598aa; margin-top: 12px; }

@media (max-width: 980px) {
  .nav-toggle { display: block; }
  .site-nav { position: absolute; top: 78px; left: 0; right: 0; background: var(--paper); border-bottom: 1px solid var(--line); display: none; }
  .site-nav.open { display: block; }
  .site-nav ul { flex-direction: column; align-items: stretch; padding: 12px 18px 20px; }
  .hero-grid, .two-col { grid-template-columns: 1fr; }
  .hero-grid { min-height: auto; gap: 32px; }
  .cards, .curriculum-grid { grid-template-columns: repeat(2, 1fr); }
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  .container { width: min(100% - 24px, var(--max)); }
  .brand-copy span { display: none; }
  .brand { min-width: auto; }
  .hero-grid { padding: 50px 0; }
  .section { padding: 62px 0; }
  .cards, .curriculum-grid, .pub-grid, .stat-grid, .footer-grid { grid-template-columns: 1fr; }
  .footer-grid > :first-child { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .contact-box dl { grid-template-columns: 1fr; }
  .contact-box dd { margin-bottom: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
}


.hero-seal-wrap { display: flex; justify-content: center; margin: 4px 0 22px; }
.hero-seal { width: min(220px, 62vw); aspect-ratio: 1; object-fit: cover; border-radius: 50%; background: #fff; border: 3px solid var(--gold-light); box-shadow: 0 18px 48px rgba(0,0,0,.28); }
.footer-brand { display: flex; gap: 18px; align-items: flex-start; }
.footer-logo { width: 92px; height: 92px; flex: 0 0 92px; object-fit: cover; border-radius: 50%; background: #fff; border: 2px solid var(--gold); }
@media (max-width: 650px) {
  .brand-logo { width: 50px; height: 50px; flex-basis: 50px; }
  .header-row { min-height: 72px; }
  .site-nav { top: 72px; }
  .footer-brand { align-items: center; }
  .footer-logo { width: 76px; height: 76px; flex-basis: 76px; }
}


/* v1.4.3 — perfil autoral por funções e links contextuais */
.identity-seal { background: var(--paper); border: 1px solid var(--line); border-radius: 22px; padding: 28px; text-align: center; box-shadow: 0 16px 38px rgba(11,35,65,.08); }
.identity-seal img { width: min(260px, 72vw); aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 3px solid var(--gold-light); }
.identity-seal p { margin: 18px 0 0; color: var(--muted); line-height: 1.65; }
.mission-panel { max-width: 980px; margin: 0 auto; border-left: 5px solid var(--gold); background: var(--paper); padding: 30px 34px; border-radius: 0 18px 18px 0; box-shadow: 0 14px 34px rgba(11,35,65,.07); }
.mission-panel p { margin: 0; font-size: clamp(1.08rem, 2vw, 1.28rem); line-height: 1.8; }
.principles-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.principles-grid article { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 26px; }
.principles-grid h3 { margin-top: 0; color: var(--navy); }
.principles-grid p { margin-bottom: 0; color: var(--muted); }
.course-summary { background: var(--navy); color: var(--white); border: 1px solid rgba(255,255,255,.12); border-radius: 22px; padding: 30px; box-shadow: 0 18px 44px rgba(11,35,65,.18); }
.course-summary strong { display: block; font-size: 1.45rem; color: var(--gold-light); }
.course-summary span { display: block; margin-top: 5px; color: rgba(255,255,255,.82); }
.course-summary hr { border: 0; border-top: 1px solid rgba(255,255,255,.15); margin: 22px 0; }
.module-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; counter-reset: none; }
.module-detail { display: grid; grid-template-columns: 52px 1fr; gap: 18px; align-items: start; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 25px; box-shadow: 0 8px 24px rgba(11,35,65,.05); }
.module-number { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 14px; background: var(--navy); color: var(--gold-light); font-weight: 800; letter-spacing: .03em; }
.module-detail h2 { margin: 2px 0 10px; font-size: 1.2rem; color: var(--navy); }
.module-detail p { margin: 0; color: var(--muted); line-height: 1.67; }
.module-detail .module-approach { margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--line); }
.module-detail .module-approach strong { color: var(--navy); }
@media (max-width: 900px) { .principles-grid { grid-template-columns: repeat(2, 1fr); } .module-detail-grid { grid-template-columns: 1fr; } }
@media (max-width: 650px) { .principles-grid { grid-template-columns: 1fr; } .mission-panel { padding: 24px; } .module-detail { grid-template-columns: 44px 1fr; padding: 20px; gap: 14px; } .module-number { width: 44px; height: 44px; } }


/* v1.2.2 — alinhamento editorial dos textos corridos */
.hero-lead,
.hero-panel p,
.section-header p,
.card p,
.feature p,
.callout,
.page-hero p,
.prose p,
.prose li,
.pub-body,
.identity-seal p,
.mission-panel p,
.principles-grid p,
.module-detail p {
  text-align: justify;
  text-justify: inter-word;
  text-align-last: left;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

/* Mantém elementos curtos e funcionais sem justificação artificial. */
.site-nav,
.brand-copy,
.eyebrow,
.kicker,
.btn,
.stat,
.module,
.module-number,
.contact-box,
.site-footer,
.breadcrumb,
.quote-band,
.course-summary {
  text-align: left;
}

/* Em telas muito estreitas, prioriza legibilidade e evita "rios" de espaço. */
@media (max-width: 650px) {
  .hero-lead,
  .hero-panel p,
  .section-header p,
  .card p,
  .feature p,
  .callout,
  .page-hero p,
  .prose p,
  .prose li,
  .pub-body,
  .identity-seal p,
  .mission-panel p,
  .principles-grid p,
  .module-detail p {
    text-align: left;
    hyphens: none;
    -webkit-hyphens: none;
  }
}


/* v1.2.3 — composição do selo institucional na página O Instituto */
.identity-seal {
  text-align: center;
}
.identity-seal p,
.identity-seal p strong {
  text-align: center;
  text-align-last: center;
  hyphens: none;
  -webkit-hyphens: none;
}


/* v1.2.4 — links contextuais e páginas disciplinares */
.module-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 16px;
  padding-top: 13px;
  border-top: 1px solid rgba(11,35,65,.12);
}
.module-links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  font-size: .94rem;
  color: var(--navy);
  text-decoration: none;
}
.module-links a::after {
  content: "›";
  color: var(--gold);
  font-size: 1.15em;
  line-height: 1;
}
.module-links a:hover,
.module-links a:focus-visible {
  color: var(--gold-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.discipline-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 6px 10px;
  border: 1px solid rgba(183,135,44,.35);
  border-radius: 999px;
  background: rgba(183,135,44,.08);
  color: var(--navy);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .02em;
}
.placeholder-panel {
  max-width: 860px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid rgba(11,35,65,.12);
  border-radius: 18px;
  background: var(--white);
  box-shadow: 0 12px 32px rgba(11,35,65,.07);
}
.placeholder-panel h2 {
  margin-top: 0;
}
.placeholder-status {
  margin: 18px 0 0;
  padding: 14px 16px;
  border-left: 4px solid var(--gold);
  background: rgba(183,135,44,.08);
  font-weight: 700;
}
.editorial-skeleton {
  display: grid;
  gap: 0;
  margin: 24px 0 0;
  border: 1px solid rgba(11,35,65,.12);
  border-radius: 12px;
  overflow: hidden;
}
.editorial-row {
  display: grid;
  grid-template-columns: minmax(170px, 32%) 1fr;
  gap: 18px;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(11,35,65,.10);
}
.editorial-row:last-child { border-bottom: 0; }
.editorial-row dt { font-weight: 700; color: var(--navy); }
.editorial-row dd { margin: 0; color: var(--muted); }
.discipline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
}

@media (max-width: 650px) {
  .module-links { gap: 9px 16px; }
  .editorial-row { grid-template-columns: 1fr; gap: 4px; }
}

/* v1.2.5 — identificação autoral nas páginas com conteúdo publicado */
.author-byline {
  margin: -4px 0 24px;
  color: var(--muted);
  text-align: left;
}
.author-byline strong {
  color: var(--navy);
}


/* v1.2.6 — ficha editorial, capa e sumário do Módulo 1 */
.publication-resource-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 14px;
  margin: 18px 0 24px;
}
.publication-resource-card {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 16px 18px;
  border: 1px solid rgba(11,35,65,.14);
  border-radius: 12px;
  background: rgba(183,135,44,.06);
  color: var(--navy);
  text-decoration: none;
}
.publication-resource-card:hover,
.publication-resource-card:focus-visible {
  border-color: var(--gold);
  transform: translateY(-1px);
}
.publication-resource-card strong { font-size: 1rem; }
.publication-resource-card span { color: var(--muted); font-size: .9rem; }
.editorial-note {
  margin-top: 20px;
  padding: 15px 16px;
  border-left: 4px solid var(--gold);
  background: rgba(11,35,65,.04);
}
.anchor-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.publication-section {
  scroll-margin-top: 96px;
}
.cover-stage {
  display: flex;
  justify-content: center;
  padding: 14px 0 8px;
}
.book-cover-web {
  width: min(520px, 92vw);
  aspect-ratio: 0.70;
  padding: 14px;
  border-radius: 4px;
  background: linear-gradient(160deg, #071a31 0%, #0b2d55 48%, #0a2444 100%);
  box-shadow: 0 24px 55px rgba(5,20,38,.22);
}
.book-cover-frame {
  height: 100%;
  border: 3px solid var(--gold);
  padding: clamp(24px, 6vw, 54px) clamp(18px, 5vw, 44px);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #fff;
  background:
    radial-gradient(circle at 50% 25%, rgba(255,255,255,.08), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,0));
}
.book-cover-logo {
  width: min(150px, 34%);
  height: auto;
  border-radius: 50%;
  margin-bottom: clamp(22px, 5vw, 40px);
  box-shadow: 0 8px 22px rgba(0,0,0,.22);
}
.book-cover-course {
  max-width: 90%;
  font-weight: 800;
  letter-spacing: .08em;
  font-size: clamp(.76rem, 1.5vw, 1rem);
  line-height: 1.45;
}
.book-cover-rule {
  width: 86px;
  height: 2px;
  background: var(--gold);
  margin: 22px 0 28px;
}
.book-cover-web h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 6vw, 3.9rem);
  line-height: .98;
  letter-spacing: .015em;
}
.book-cover-author {
  margin-top: auto;
  padding-top: 30px;
  color: #f1d68e;
  font-weight: 800;
  letter-spacing: .09em;
}
.book-cover-place {
  margin-top: 14px;
  font-size: .9rem;
  letter-spacing: .05em;
}
.book-cover-year {
  margin-top: 8px;
  color: #f1d68e;
  font-weight: 800;
}
.publication-caption {
  max-width: 760px;
  margin: 18px auto 0;
  text-align: center !important;
  text-align-last: center !important;
  color: var(--muted);
  font-size: .92rem;
}
.toc-panel {
  max-width: 1020px;
  margin: 0 auto;
  padding: clamp(18px, 4vw, 34px);
  border: 1px solid rgba(11,35,65,.12);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(11,35,65,.06);
}
.toc-row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: end;
  gap: 8px;
  padding: 7px 0;
  line-height: 1.38;
}
.toc-title {
  color: var(--text);
}
.toc-dots {
  border-bottom: 1px dotted rgba(11,35,65,.34);
  transform: translateY(-4px);
}
.toc-page {
  min-width: 2.2em;
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--navy);
  font-weight: 700;
}
.toc-row.level-0 {
  margin-top: 14px;
  padding-top: 11px;
  font-weight: 800;
  color: var(--navy);
}
.toc-row.level-0:first-child { margin-top: 0; }
.toc-row.level-1 .toc-title { padding-left: 18px; }
.toc-row.level-2 .toc-title { padding-left: 36px; color: var(--muted); }

@media (max-width: 650px) {
  .publication-resource-links { grid-template-columns: 1fr; }
  .publication-section { scroll-margin-top: 78px; }
  .toc-row {
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: start;
  }
  .toc-dots { display: none; }
  .toc-row.level-1 .toc-title { padding-left: 12px; }
  .toc-row.level-2 .toc-title { padding-left: 24px; }
}


/* v1.3.0 — ingresso, formulários e modalidades */
.preinscricao-float {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 90;
  padding: 12px 17px;
  border-radius: 999px;
  background: var(--gold);
  color: var(--navy);
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(5,20,38,.22);
  border: 1px solid rgba(255,255,255,.55);
}
.preinscricao-float:hover,
.preinscricao-float:focus-visible { transform: translateY(-2px); background: var(--gold-light); }

.entry-grid, .path-grid, .color-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 18px;
}
.entry-card, .path-card, .color-card {
  border: 1px solid rgba(11,35,65,.12);
  border-radius: 16px;
  background: #fff;
  padding: 22px;
  box-shadow: 0 9px 25px rgba(11,35,65,.05);
}
.entry-card h3, .path-card h3, .color-card h3 { margin-top: 0; }
.entry-card .btn, .path-card .btn { margin-top: 10px; }

.form-shell {
  max-width: 980px;
  margin: 0 auto;
}
.form-intro {
  margin-bottom: 24px;
}
.form-section {
  margin: 0 0 22px;
  padding: clamp(20px,4vw,30px);
  border: 1px solid rgba(11,35,65,.13);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(11,35,65,.05);
}
.form-section legend {
  padding: 0 8px;
  color: var(--navy);
  font-size: 1.1rem;
  font-weight: 800;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
}
.form-grid .full { grid-column: 1/-1; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field label, .field-label { font-weight: 700; color: var(--navy); }
.field small, .form-help { color: var(--muted); font-size: .88rem; }
.field input, .field select, .field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(11,35,65,.22);
  border-radius: 9px;
  padding: 11px 12px;
  font: inherit;
  background: #fff;
  color: var(--text);
}
.field textarea { min-height: 112px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline: 3px solid rgba(183,135,44,.18);
  border-color: var(--gold);
}
.choice-row { display: flex; flex-wrap: wrap; gap: 12px 20px; margin-top: 8px; }
.choice-row label, .check-line {
  display: inline-flex;
  gap: 8px;
  align-items: flex-start;
}
.check-line { margin: 9px 0; }
.form-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.form-status {
  display: none;
  margin-top: 20px;
  padding: 18px;
  border-radius: 12px;
  border-left: 4px solid var(--gold);
  background: rgba(183,135,44,.08);
}
.form-status.show { display: block; }
.form-status.success { border-left-color: #3d7d57; background: rgba(61,125,87,.08); }
.form-status.reject { border-left-color: #a64a4a; background: rgba(166,74,74,.07); }
.pending-integration {
  margin: 18px 0;
  padding: 14px 16px;
  border: 1px dashed rgba(11,35,65,.28);
  border-radius: 10px;
  background: rgba(11,35,65,.035);
  color: var(--muted);
}
.flow-steps {
  counter-reset: flow;
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 10px;
  margin: 24px 0;
}
.flow-step {
  counter-increment: flow;
  padding: 14px 12px;
  border-radius: 12px;
  background: rgba(11,35,65,.045);
  border: 1px solid rgba(11,35,65,.1);
  font-size: .9rem;
  text-align: center;
}
.flow-step::before {
  content: counter(flow);
  display: block;
  width: 28px; height: 28px; line-height: 28px;
  margin: 0 auto 8px;
  border-radius: 50%;
  background: var(--navy); color: #fff; font-weight: 800;
}
.privacy-callout {
  margin: 18px 0;
  padding: 16px 18px;
  border-left: 4px solid var(--navy);
  background: rgba(11,35,65,.045);
}
.license-box {
  padding: 20px;
  border-radius: 14px;
  background: rgba(183,135,44,.08);
  border: 1px solid rgba(183,135,44,.25);
}
.gate-panel {
  padding: 18px;
  border: 1px solid rgba(11,35,65,.14);
  border-radius: 14px;
  background: #fff;
}
.gate-ok { display: none; }
[data-pre-ok="true"] .gate-ok { display: block; }
[data-pre-ok="true"] .gate-need { display: none; }

.color-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.color-card { border-top-width: 7px; }
.color-card.blue { border-top-color: #416c9f; }
.color-card.orange { border-top-color: #d98532; }
.color-card.green { border-top-color: #4d8b61; }
.color-card.magenta { border-top-color: #a74275; }
.color-card ul { padding-left: 20px; margin-bottom: 0; }
.color-card .color-note { color: var(--muted); font-size: .92rem; }

.cover-integrity-panel {
  max-width: 720px;
  margin: 0 auto;
  padding: clamp(26px,5vw,46px);
  border: 2px solid rgba(11,35,65,.16);
  border-radius: 16px;
  background: #fff;
  text-align: center;
  box-shadow: 0 12px 32px rgba(11,35,65,.06);
}
.cover-integrity-panel .seal-mini {
  width: 110px; height: 110px; object-fit: cover; border-radius: 50%;
  margin-bottom: 16px;
}
.cover-integrity-panel p {
  text-align: center !important;
  text-align-last: center !important;
}
.cover-integrity-panel .integrity-tag {
  display: inline-block;
  margin-bottom: 12px;
  padding: 5px 10px;
  border-radius: 999px;
  background: rgba(61,125,87,.09);
  color: #2e6544;
  font-weight: 800;
  font-size: .85rem;
}
@media (max-width: 820px) {
  .entry-grid, .path-grid, .color-grid { grid-template-columns: 1fr; }
  .flow-steps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 650px) {
  .preinscricao-float { right: 12px; bottom: 12px; padding: 11px 14px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .full { grid-column: auto; }
  .flow-steps { grid-template-columns: 1fr; }
}


/* v1.3.1 — capa original real do Módulo 1 */
.real-cover-figure {
  margin: 0;
  text-align: center;
}
.real-cover-image {
  width: min(540px, 92vw);
  height: auto;
  border-radius: 6px;
  box-shadow: 0 22px 48px rgba(5,20,38,.18);
  border: 1px solid rgba(11,35,65,.12);
}


/* v1.3.2 — capas oficiais na Grade Curricular */
.module-cover {
  margin: 0 auto 18px;
  width: min(178px, 62%);
}
.module-cover-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 595 / 842;
  object-fit: contain;
  border-radius: 4px;
  box-shadow: 0 12px 26px rgba(11,35,65,.16);
  background: transparent;
}
.covers-note {
  margin-top: 12px !important;
  padding-top: 12px;
  border-top: 1px solid rgba(11,35,65,.10);
  font-size: .92rem;
  color: var(--muted);
}
@media (max-width: 650px) {
  .module-cover {
    width: min(190px, 72%);
    margin-bottom: 16px;
  }
}

/* v1.3.3 — política comercial */
.price-hero-note{display:inline-block;margin-top:14px;padding:8px 12px;border-radius:999px;background:rgba(183,135,44,.12);border:1px solid rgba(183,135,44,.30);color:var(--navy);font-weight:800}
.price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.price-card{border:1px solid rgba(11,35,65,.13);border-radius:16px;background:#fff;padding:22px;box-shadow:0 10px 28px rgba(11,35,65,.05)}
.price-card h3{margin-top:0}.price-main{margin:12px 0 6px;color:var(--navy);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:900;line-height:1}
.price-regular{margin:0 0 12px;color:var(--muted);font-size:.95rem}
.price-card ul{margin-bottom:0;padding-left:20px}
.price-rule{margin:22px 0;padding:18px 20px;border-left:5px solid var(--gold);background:rgba(183,135,44,.07)}
.launch-table{width:100%;border-collapse:collapse;margin:18px 0 26px;background:#fff}
.launch-table th,.launch-table td{padding:12px 13px;border-bottom:1px solid rgba(11,35,65,.12);text-align:left;vertical-align:top}
.launch-table th{color:var(--navy);background:rgba(11,35,65,.045)}
.launch-table td:nth-child(n+2),.launch-table th:nth-child(n+2){white-space:nowrap}
.launch-table .highlight{font-weight:800;color:var(--navy)}
.trail-price-card{border-top-width:7px}.trail-price-card.orange{border-top-color:#d98532}.trail-price-card.magenta{border-top-color:#a74275}.trail-price-card.blue{border-top-color:#416c9f}.trail-price-card.green{border-top-color:#4d8b61}
.price-footnote{color:var(--muted);font-size:.9rem}
@media(max-width:760px){.price-grid{grid-template-columns:1fr}.launch-table{display:block;overflow-x:auto}}


/* v1.4.1 — identidade autoral */
.founder-byline {
  margin: .35rem 0 .55rem;
  font-size: .88rem;
  color: var(--muted);
  letter-spacing: .01em;
}
.founder-byline a {
  color: var(--navy);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(183,135,44,.55);
}
.founder-byline a:hover,
.founder-byline a:focus-visible {
  color: var(--gold-dark);
  border-bottom-color: currentColor;
}
.author-profile-grid {
  display: grid;
  grid-template-columns: minmax(0,1.7fr) minmax(250px,.75fr);
  gap: 34px;
  align-items: start;
}
.author-profile-card {
  padding: 26px;
  border: 1px solid rgba(11,35,65,.12);
  border-radius: 18px;
  background: rgba(11,35,65,.035);
  text-align: center;
}
.author-profile-logo {
  display: block;
  width: min(210px,75%);
  height: auto;
  margin: 0 auto 20px;
}
.author-profile-card h2 {
  margin-top: 8px;
}
@media (max-width: 800px) {
  .author-profile-grid {
    grid-template-columns: 1fr;
  }
}


/* v1.4.3 — perfil autoral por funções e links contextuais */
.author-bio-link {
  margin-top: 1.25rem;
  font-size: .95rem;
  color: var(--muted);
}
.author-bio-link a {
  color: var(--navy);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(183,135,44,.55);
}
.author-bio-link a:hover,
.author-bio-link a:focus-visible {
  color: var(--gold-dark);
  border-bottom-color: currentColor;
}

/* v1.4.3 — fundador visível e navegação autoral */
.founder-byline{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem;margin:.4rem 0 .65rem;font-size:.92rem;color:var(--navy)}
.founder-label,.founder-name{color:var(--navy)}
.founder-name{font-weight:800}
.founder-separator{color:var(--muted)}
.founder-profile-link,.context-author-link a{color:var(--gold-dark);font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.founder-profile-link:hover,.founder-profile-link:focus-visible,.context-author-link a:hover,.context-author-link a:focus-visible{color:var(--navy)}
.context-author-link{margin-top:1.1rem;font-size:.95rem}
.author-anchor-nav-section{padding-top:18px;padding-bottom:18px}
.author-anchor-nav{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.author-anchor-nav a{display:inline-block;padding:9px 13px;border:1px solid rgba(11,35,65,.16);border-radius:999px;background:#fff;color:var(--navy);font-weight:700;text-decoration:none}
.author-anchor-nav a:hover,.author-anchor-nav a:focus-visible{border-color:var(--gold);color:var(--gold-dark)}
.author-profile-section{scroll-margin-top:90px}


/* v1.4.4 — fundador permanentemente visível no hero da homepage */
.hero .founder-byline {
  color: #e7cc8a;
}
.hero .founder-label,
.hero .founder-name,
.hero .founder-separator {
  color: #e7cc8a;
}
.hero .founder-name {
  color: #f2cf72;
  font-weight: 800;
}
.hero .founder-profile-link {
  color: #f2cf72;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: #f2cf72;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
  border-bottom: 0;
}
.hero .founder-profile-link:visited {
  color: #f2cf72;
}
.hero .founder-profile-link:hover,
.hero .founder-profile-link:focus-visible {
  color: #fff0b6;
  text-decoration-color: #fff0b6;
}


/* ===== v1.4.6 — responsabilidade do aprendizado ===== */
.learning-header { max-width: 920px; }
.learning-layout {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 24px;
  align-items: start;
}
.learning-text-panel,
.learning-infographic {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(231,204,138,.26);
  border-radius: 22px;
  padding: 26px;
  box-shadow: 0 16px 36px rgba(0,0,0,.12);
}
.learning-panel-label {
  display: inline-block;
  margin-bottom: 14px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(231,204,138,.35);
  background: rgba(231,204,138,.10);
  color: var(--gold-light);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.learning-prose p {
  color: #e2ebf4;
  margin-top: 0;
}
.learning-support-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 18px;
}
.support-card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  padding: 16px;
}
.support-card strong {
  display: block;
  margin-bottom: 6px;
  color: var(--gold-light);
}
.support-card span {
  color: #dae4ee;
  display: block;
}
.learning-infographic h3 {
  margin: 0 0 10px;
  color: var(--white);
  font-size: 1.38rem;
}
.learning-mini-intro {
  margin: 0 0 18px;
  color: #d4e0ea;
}
.learning-step {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  align-items: start;
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,.12);
}
.learning-step:first-of-type {
  border-top: none;
}
.learning-step-badge {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(231,204,138,.16);
  border: 1px solid rgba(231,204,138,.50);
  color: var(--gold-light);
  font-weight: 800;
}
.learning-step h4 {
  margin: 0 0 5px;
  color: var(--gold-light);
  font-size: 1.04rem;
}
.learning-step p {
  margin: 0;
  color: #e1e9f1;
}
.learning-footnote {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed rgba(231,204,138,.35);
  color: #d7e1ea;
  font-size: .96rem;
}
@media (max-width: 960px) {
  .learning-layout {
    grid-template-columns: 1fr;
  }
  .learning-support-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== v1.4.7 — infográfico aprovado "Como o aprendizado se aprofunda" ===== */
.learning-source-text {
  max-width: 980px;
  color: #e3ebf3;
}
.learning-source-text p {
  color: #e3ebf3;
}
.learning-source-text blockquote {
  margin: 18px 0;
  padding: 16px 20px;
  border-left: 4px solid #d8b75d;
  background: rgba(255,255,255,.07);
  border-radius: 0 14px 14px 0;
  color: #fff;
  font-style: italic;
}
.learning-source-text blockquote cite {
  display: block;
  margin-top: 7px;
  color: #e7cc8a;
  font-style: normal;
  font-size: .92rem;
}
.learning-source-text ul {
  padding-left: 1.25rem;
}
.learning-source-text li {
  color: #e3ebf3;
  margin: 10px 0;
}
.approved-learning-infographic {
  margin: 34px 0;
}
.approved-learning-frame {
  background: #f4eddf;
  border: 5px double #b78931;
  outline: 3px solid #173a63;
  outline-offset: -13px;
  border-radius: 22px;
  padding: 30px 28px 0;
  overflow: hidden;
  box-shadow: 0 20px 48px rgba(0,0,0,.18);
}
.approved-learning-title-group {
  text-align: center;
  padding: 8px 12px 24px;
}
.approved-learning-title-group h3 {
  margin: 0;
  color: #173a63;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 5vw, 3.7rem);
  line-height: .98;
  letter-spacing: .015em;
}
.approved-learning-title-group p {
  margin: 12px 0 0;
  color: #173a63;
  font-size: 1.02rem;
}
.approved-learning-ornament {
  margin: 15px auto 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  max-width: 520px;
  color: #b78931;
}
.approved-learning-ornament span {
  height: 1px;
  background: #b78931;
  flex: 1;
}
.approved-learning-ornament b {
  font-size: .78rem;
}
.approved-learning-flow {
  display: grid;
  grid-template-columns: 1fr 28px 1fr 28px 1fr 28px 1fr 28px 1fr 28px 1fr;
  gap: 8px;
  align-items: stretch;
  padding: 6px 0 28px;
}
.approved-learning-step {
  position: relative;
  min-width: 0;
  padding: 25px 12px 18px;
  border: 1.5px solid #b78931;
  border-radius: 16px;
  background: #fffaf0;
  text-align: center;
}
.approved-learning-number {
  position: absolute;
  top: -17px;
  left: 50%;
  transform: translateX(-50%);
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #173a63;
  border: 3px solid #c9a24a;
  color: #f4df9a;
  font-weight: 800;
}
.approved-learning-step h3 {
  min-height: 48px;
  margin: 5px 0 10px;
  color: #173a63;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .98rem;
  line-height: 1.15;
}
.approved-learning-icon {
  width: 46px;
  height: 46px;
  margin: 0 auto;
  color: #b78931;
}
.approved-learning-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.approved-learning-divider {
  width: 34px;
  height: 1px;
  background: #c9a24a;
  margin: 9px auto;
  position: relative;
}
.approved-learning-divider:after {
  content: "";
  position: absolute;
  left: 50%;
  top: -2px;
  width: 5px;
  height: 5px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: #c9a24a;
}
.approved-learning-step p {
  margin: 0;
  color: #263b55;
  font-size: .86rem;
  line-height: 1.35;
}
.approved-learning-arrow {
  align-self: center;
  color: #173a63;
  font-size: 1.8rem;
  font-weight: 800;
  text-align: center;
}
.approved-learning-footer {
  margin: 0 -28px;
  padding: 10px 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  background: #173a63;
  color: #fff;
  border-top: 3px solid #b78931;
}
.approved-learning-footer img {
  width: 52px;
  height: 52px;
  object-fit: contain;
}
.approved-learning-footer strong,
.approved-learning-footer span {
  display: block;
}
.approved-learning-footer strong {
  color: #efd17a;
}
.approved-learning-footer span {
  color: #fff;
  font-size: .9rem;
}
.approved-learning-infographic figcaption {
  margin-top: 12px;
  color: #d8e2ec;
  text-align: center;
  font-size: .9rem;
}
.approved-learning-infographic figcaption span {
  color: #b9c9d7;
}
.learning-source-text-after {
  margin-top: 26px;
}
@media (max-width: 1180px) {
  .approved-learning-flow {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px 16px;
  }
  .approved-learning-arrow {
    display: none;
  }
}
@media (max-width: 720px) {
  .approved-learning-frame {
    padding-left: 18px;
    padding-right: 18px;
  }
  .approved-learning-flow {
    grid-template-columns: 1fr;
  }
  .approved-learning-step h3 {
    min-height: auto;
  }
  .approved-learning-footer {
    margin-left: -18px;
    margin-right: -18px;
  }
}


/* v1.4.8 — vínculo institucional com canal oficial do YouTube */
.official-channel-link {
  margin-top: 1rem;
  color: inherit;
}
.official-channel-link a {
  color: #b78931;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.official-channel-link a:visited {
  color: #9e772a;
}
.official-channel-link a:hover,
.official-channel-link a:focus-visible {
  color: #173a63;
}
.section.navy .official-channel-link,
.section.navy .official-channel-link a {
  color: #f2cf72;
}
.section.navy .official-channel-link a:hover,
.section.navy .official-channel-link a:focus-visible {
  color: #fff0b6;
}


/* ===== v1.4.9 — infográfico exato da apostila ===== */
.exact-learning-figure {
  margin: 34px 0;
}
.learning-infographic-image {
  display: block;
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  height: auto;
  border-radius: 18px;
  box-shadow: 0 20px 48px rgba(0,0,0,.18);
}
.exact-learning-figure figcaption {
  margin-top: 12px;
  color: #d8e2ec;
  text-align: center;
}
.exact-learning-figure figcaption span {
  color: #cfd8e3;
}


/* v1.6.0 — Google Forms integration */
.integration-live{margin:18px 0 0;padding:14px 16px;border:1px solid rgba(11,35,65,.16);border-radius:12px;background:#f4f7fb;color:#203248;}
.google-form-shell{width:100%;margin:22px auto 0;border:1px solid rgba(11,35,65,.14);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 28px rgba(11,35,65,.08);}
.google-form-frame{display:block;width:100%;border:0;background:#fff;}
.google-form-frame-pre{height:1900px;}
.google-form-frame-mat{height:3900px;}
.google-form-actions{margin-top:20px;}
@media (max-width:700px){
  .google-form-shell{border-radius:10px;}
  .google-form-frame-pre{height:2050px;}
  .google-form-frame-mat{height:4300px;}
}


/* ===== v1.7.0 — canais oficiais e WhatsApp ===== */
.footer-official-channels {
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 22px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}
.footer-official-channels > strong { color: #fff; }
.footer-channel-links { display: flex; gap: 10px; flex-wrap: wrap; }
.footer-channel-links a {
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  color: #d9e1ea;
  text-decoration: none;
}
.footer-channel-links a:hover,
.footer-channel-links a:focus-visible {
  color: var(--gold-light);
  border-color: rgba(231,204,138,.55);
}
.contact-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 22px;
}
.contact-box a { word-break: break-word; }
.whatsapp-float {
  position: fixed;
  right: 22px;
  bottom: 78px;
  z-index: 91;
  padding: 12px 17px;
  border-radius: 999px;
  background: #25d366;
  color: #082716;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(5,20,38,.22);
  border: 1px solid rgba(255,255,255,.65);
}
.whatsapp-float:hover,
.whatsapp-float:focus-visible {
  transform: translateY(-2px);
  background: #40df7b;
}
@media (max-width: 650px) {
  .footer-official-channels { align-items: flex-start; flex-direction: column; }
  .whatsapp-float { right: 12px; bottom: 62px; padding: 11px 14px; }
}


/* ===== v1.8.0 — certificação, área do aluno e estrutura acadêmica ===== */
.nav-student{display:inline-flex!important;align-items:center;justify-content:center;padding:9px 14px!important;border:1px solid #b88a2d;border-radius:999px;color:var(--navy)!important;font-weight:900;text-decoration:none!important;white-space:nowrap;background:linear-gradient(180deg,#e7cc8a 0%,#cda84f 100%);box-shadow:0 4px 12px rgba(184,138,45,.18)}
.nav-student:hover,.nav-student:focus-visible{background:linear-gradient(180deg,#efd99d 0%,#b88a2d 100%);color:var(--navy)!important;transform:translateY(-1px)}
.certificate-roadmap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-top:30px}.certificate-stage{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px 18px;box-shadow:0 10px 28px rgba(11,35,65,.06);min-height:220px}.certificate-stage .metal{display:inline-flex;padding:6px 10px;border-radius:999px;font-weight:900;letter-spacing:.08em;font-size:.78rem;text-transform:uppercase}.metal-copper{background:linear-gradient(135deg,#8f4529,#c07145 52%,#8e4529);color:#fff3e8}.metal-bronze{background:linear-gradient(135deg,#573821,#8b633d 52%,#5d3d25);color:#fff5e5}.metal-silver{background:linear-gradient(135deg,#777f88,#c2c7cc 52%,#8a9199);color:#15263b;border:1px solid #8d949b}.metal-gold{background:linear-gradient(135deg,#a87b1d,#e0bd5d 52%,#a87918);color:#18243a}.metal-platinum{background:linear-gradient(135deg,#dce7ee,#f4f8fb 48%,#c7dce9);color:#12304d;border:1px solid #9fbccc;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}.certificate-stage h3{margin:16px 0 8px;color:var(--navy)}.certificate-stage p{margin:0;color:var(--muted);line-height:1.6}.certificate-stage .milestone{display:block;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-weight:800;color:var(--navy)}
.criteria-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.criteria-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}.criteria-card strong{display:block;color:var(--navy);font-size:1.06rem;margin-bottom:7px}.criteria-card p{margin:0;color:var(--muted);line-height:1.58}.score-strip{display:grid;grid-template-columns:7fr 1fr 2fr;gap:8px;margin:20px 0 8px}.score-strip span{padding:15px 10px;text-align:center;border-radius:12px;font-weight:800}.score-exam{background:#173a63;color:#fff}.score-exercises{background:#e8d7ab;color:#3b2f15}.score-work{background:#c9a24a;color:#15243a}.rule-note{border-left:4px solid #a95b34;background:#fff8ef;padding:16px 18px;border-radius:0 12px 12px 0;color:#3b3027}
.portal-shell{max-width:1160px;margin:0 auto}.portal-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:26px;align-items:start}.portal-side{background:var(--navy);color:#fff;border-radius:18px;padding:20px;position:sticky;top:92px}.portal-side h2{font-size:1rem;margin:0 0 16px;color:var(--gold-light)}.portal-side a{display:block;color:#e7edf4;text-decoration:none;padding:10px 11px;border-radius:10px;margin:3px 0}.portal-side a:hover,.portal-side a[aria-current="page"]{background:rgba(255,255,255,.1);color:#fff}.portal-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 10px 30px rgba(11,35,65,.06);margin-bottom:18px}.portal-card h2,.portal-card h3{color:var(--navy);margin-top:0}.portal-card p{color:var(--muted)}.portal-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.portal-stat{background:#f6f8fb;border:1px solid var(--line);border-radius:14px;padding:16px}.portal-stat strong{display:block;color:var(--navy);font-size:1.35rem}.portal-stat span{color:var(--muted);font-size:.88rem}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.03em}.status-ok{background:#e7f5eb;color:#1e6b38}.status-warn{background:#fff2d8;color:#79550c}.status-lock{background:#edf0f4;color:#5e6875}.status-bad{background:#fde8e6;color:#8a2b22}.progress-track{height:10px;background:#e7ebf0;border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:#c9a24a;border-radius:999px}.module-row{display:grid;grid-template-columns:minmax(0,1.4fr) .7fr .7fr .8fr;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.module-row:last-child{border-bottom:0}.module-row strong{color:var(--navy)}.module-meta{font-size:.9rem;color:var(--muted)}.grade-table{width:100%;border-collapse:collapse}.grade-table th,.grade-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left}.grade-table th{color:var(--navy);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.grade-table td{color:#34465b}.certificate-eligibility{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.certificate-eligibility .certificate-title{font-size:1.2rem;font-weight:900;color:var(--navy)}.portal-login{max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:0 18px 42px rgba(11,35,65,.08)}.portal-login label{display:block;font-weight:800;color:var(--navy);margin:15px 0 7px}.portal-login input{width:100%;padding:13px 14px;border:1px solid #bdc7d2;border-radius:10px;font:inherit}.portal-login .form-status{margin-top:16px}.portal-notice{padding:14px 16px;border:1px solid #d8c68e;background:#fff9e9;border-radius:12px;color:#5e4d1e}.demo-badge{display:none;background:#fff2d8;color:#79550c;padding:7px 10px;border-radius:999px;font-size:.78rem;font-weight:900}.demo-mode .demo-badge{display:inline-flex}.student-header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.student-header h1{margin:0;color:var(--navy)}.student-header p{margin:5px 0 0;color:var(--muted)}
.admin-shell{max-width:1200px;margin:0 auto}.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.admin-table th{background:#f2f5f8;color:var(--navy);font-size:.82rem}.admin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.admin-form-grid label{display:block;color:var(--navy);font-weight:800;font-size:.88rem}.admin-form-grid input,.admin-form-grid select{width:100%;margin-top:6px;padding:11px;border:1px solid #bdc7d2;border-radius:10px;font:inherit}.api-state{font-size:.9rem;color:var(--muted);margin-top:12px}
@media(max-width:1050px){.certificate-roadmap{grid-template-columns:repeat(3,1fr)}.portal-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.portal-grid{grid-template-columns:1fr}.portal-side{position:static}.criteria-grid{grid-template-columns:1fr}.module-row{grid-template-columns:1fr 1fr}.certificate-eligibility{grid-template-columns:1fr}.admin-form-grid{grid-template-columns:1fr}.site-nav .nav-student{display:block!important}}
@media(max-width:650px){.certificate-roadmap{grid-template-columns:1fr}.portal-stats{grid-template-columns:1fr}.score-strip{grid-template-columns:1fr}.module-row{grid-template-columns:1fr}.student-header{align-items:flex-start;flex-direction:column}.grade-table{font-size:.9rem}}


/* v1.8.1 — refinamentos de certificação, matrícula e administração */
.certificate-stage.stage-silver{border-top:4px solid #8f969d}.certificate-stage.stage-platinum{border-top:4px solid #b9d3e2}
.stage-explanations{display:grid;gap:18px;margin-top:30px}.stage-explanation{display:grid;grid-template-columns:170px minmax(0,1fr);gap:24px;align-items:start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 10px 28px rgba(11,35,65,.05)}.stage-explanation h3{margin:0 0 8px;color:var(--navy)}.stage-explanation p{margin:0 0 10px;color:var(--muted)}.stage-explanation ul{margin:10px 0 0;padding-left:20px}.stage-explanation li{margin:4px 0}.stage-label{display:flex;flex-direction:column;gap:10px}.stage-label .milestone{font-weight:900;color:var(--navy);font-size:.9rem}
.second-call-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}.second-call-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.second-call-card h3{margin:0 0 8px;color:var(--navy)}.second-call-card .fee{display:inline-block;margin:4px 0 10px;font-size:1.15rem;font-weight:900;color:#8b651d}.second-call-card p{margin:0;color:var(--muted)}
.dependency-flow{background:#f8f5ee;border-left:5px solid var(--gold);padding:18px 20px;border-radius:0 14px 14px 0;margin-top:20px}.dependency-flow h3{color:var(--navy);margin-top:0}
.enrollment-cta{margin-top:20px;padding:18px;border:1px solid rgba(184,138,45,.35);background:#fffaf0;border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:18px}.enrollment-cta strong{display:block;color:var(--navy);font-size:1.05rem}.enrollment-cta p{margin:4px 0 0;color:var(--muted)}.enrollment-cta .btn{flex:0 0 auto}
.admin-section-title{margin:30px 0 12px;color:var(--navy)}.admin-payment-note{font-size:.9rem;color:var(--muted);margin-top:10px}.admin-check{display:flex!important;align-items:flex-start;gap:10px;grid-column:1/-1}.admin-check input{width:auto!important;margin-top:4px}.admin-form-grid textarea{min-height:90px;resize:vertical;padding:12px;border:1px solid #bdc7d2;border-radius:10px;font:inherit}
@media(max-width:900px){.stage-explanation{grid-template-columns:1fr}.second-call-grid{grid-template-columns:1fr}.enrollment-cta{align-items:stretch;flex-direction:column}.enrollment-cta .btn{width:100%}}


/* v1.8.2 — botões institucionais no cabeçalho da página principal */
.home-header-buttons .site-nav ul{gap:6px}
.home-header-buttons .site-nav a:not(.nav-student){
  display:inline-flex;align-items:center;justify-content:center;
  min-height:42px;padding:9px 10px;border:1px solid var(--navy);
  border-radius:10px;background:var(--navy);color:var(--white)!important;
  font-weight:800;text-align:center!important;white-space:nowrap;
  box-shadow:0 3px 10px rgba(11,35,65,.12);
}
.home-header-buttons .site-nav a:not(.nav-student):hover,
.home-header-buttons .site-nav a:not(.nav-student):focus-visible,
.home-header-buttons .site-nav a:not(.nav-student)[aria-current="page"]{
  background:var(--navy-2);color:var(--white)!important;border-color:var(--navy-2);
  transform:translateY(-1px);
}
.home-header-buttons .site-nav .nav-institute{
  text-align:center!important;justify-content:center!important;align-items:center!important;
}
@media(max-width:980px){
  .home-header-buttons .site-nav a:not(.nav-student){display:flex;width:100%;}
  .home-header-buttons .site-nav .nav-student{display:flex!important;width:100%;}
}

/* v1.9.0 — Diagnóstico FLC / Teste seus conhecimentos */
.knowledge-challenge{background:linear-gradient(135deg,#0b2341 0%,#173a63 62%,#244d79 100%);color:#fff;border-radius:22px;padding:30px;box-shadow:0 18px 42px rgba(11,35,65,.16);position:relative;overflow:hidden}.knowledge-challenge:after{content:"?";position:absolute;right:24px;top:-35px;font:900 180px/1 Georgia,serif;color:rgba(255,255,255,.05)}.knowledge-challenge h2{color:#fff;margin:6px 0 12px}.knowledge-challenge p{color:#e4edf6;max-width:760px}.knowledge-challenge .kicker{color:#efd17a}.knowledge-challenge-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.knowledge-challenge .btn.btn-primary{background:#c9a24a;border-color:#c9a24a;color:#0b2341}.knowledge-challenge .btn.btn-primary:hover{background:#e0bf6e;border-color:#e0bf6e}
.quiz-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}.quiz-module-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;position:relative;box-shadow:0 8px 24px rgba(11,35,65,.05)}.quiz-module-card h3{margin:8px 0;color:var(--navy)}.quiz-module-card p{color:var(--muted);margin:0 0 16px}.quiz-module-card .quiz-module-number{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--navy);color:#fff;font-weight:900}.quiz-module-status{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.75rem;font-weight:900;margin-bottom:10px}.quiz-module-status.available{background:#e9f6ee;color:#17623a}.quiz-module-status.pending{background:#f2f4f6;color:#637083}.quiz-module-card.is-pending{background:#f8f9fa}.quiz-module-card.is-pending .btn{pointer-events:none;opacity:.56}.quiz-module-card.is-available{border-top:4px solid #c9a24a}.quiz-intro-note{margin-top:24px;padding:18px 20px;border-left:5px solid #c9a24a;background:#fffaf0;border-radius:0 14px 14px 0;color:#31445a}
.module-quiz-link{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:9px 12px;border-radius:9px;text-decoration:none;font-weight:900;background:#0b2341;color:#fff!important}.module-quiz-link:hover{background:#173a63}.module-quiz-link span{font-size:.72rem;font-weight:800;opacity:.75}.module-quiz-link.module-quiz-pending{background:#eef1f4;color:#6b7684!important;border:1px solid #d9dee4}
.prequiz-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);gap:28px;align-items:start}.prequiz-card{background:#f8fbff;border:1px solid #d7e3ef;border-radius:18px;padding:24px}.prequiz-card h3{margin-top:0;color:var(--navy)}.prequiz-form{display:grid;gap:14px}.prequiz-form label{display:block;color:var(--navy);font-weight:800;font-size:.9rem}.prequiz-form input[type="text"],.prequiz-form input[type="email"],.prequiz-form input[type="tel"]{width:100%;margin-top:6px;padding:12px 13px;border:1px solid #bac7d4;border-radius:10px;font:inherit}.prequiz-consent{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important;color:#46596f!important}.prequiz-consent input{margin-top:4px}.prequiz-card .form-status{margin-top:14px}
.quiz-shell{max-width:900px;margin:0 auto}.quiz-gate{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 12px 32px rgba(11,35,65,.07)}.quiz-gate h2{color:var(--navy)}.quiz-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.quiz-rule{background:#f5f7f9;border-radius:12px;padding:14px}.quiz-rule strong{display:block;color:var(--navy);margin-bottom:4px}.quiz-ready{padding:16px;border-radius:12px;background:#edf7f1;color:#235c3c;margin:16px 0}.quiz-gate-error{padding:12px;border-radius:10px;background:#fff1f1;color:#8b1e1e;margin:12px 0}.quiz-progress{margin-bottom:18px}.quiz-progress-meta{display:flex;justify-content:space-between;gap:12px;font-size:.88rem;color:#55677b;margin-bottom:7px}.quiz-progress-track{height:9px;background:#e6ebf0;border-radius:999px;overflow:hidden}.quiz-progress-track span{display:block;height:100%;background:linear-gradient(90deg,#c9a24a,#e1c06f);border-radius:999px;transition:width .25s ease}.quiz-question-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 12px 32px rgba(11,35,65,.07)}.quiz-question-head{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;align-items:start;margin-bottom:20px}.quiz-question-head h2{margin:0;color:var(--navy);font-size:1.35rem;line-height:1.35}.quiz-question-number{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#0b2341;color:#fff;font-weight:900;font-size:1.1rem}.quiz-options{display:grid;gap:11px}.quiz-option{width:100%;border:1px solid #cdd6df;background:#fff;border-radius:13px;padding:13px 14px;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;text-align:left;align-items:center;cursor:pointer;font:inherit;color:#263b55;transition:.15s ease}.quiz-option:hover:not(:disabled){border-color:#173a63;background:#f7faff;transform:translateY(-1px)}.quiz-option span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#eaf0f6;color:#0b2341;font-weight:900}.quiz-option strong{font-weight:650}.quiz-option.is-correct{border-color:#2a8b52;background:#eaf7ef;color:#164f30}.quiz-option.is-correct span{background:#2a8b52;color:#fff}.quiz-option.is-wrong{border-color:#b84343;background:#fff0f0;color:#7f2424}.quiz-option.is-wrong span{background:#b84343;color:#fff}.quiz-option:disabled{cursor:default}.quiz-feedback{display:grid;gap:12px;margin-top:18px}.feedback-card{padding:16px 18px;border-radius:13px}.feedback-card strong{display:block;margin-bottom:6px}.feedback-card p{margin:0;line-height:1.55}.feedback-correct{background:#edf8f1;border-left:5px solid #2a8b52;color:#215a39}.feedback-wrong{background:#fff1f1;border-left:5px solid #b84343;color:#7b2b2b}.quiz-next-wrap{display:flex;justify-content:flex-end;margin-top:18px}.quiz-result{background:#fff;border-radius:22px;padding:30px;border:1px solid var(--line);box-shadow:0 14px 36px rgba(11,35,65,.08)}.quiz-result h2{color:var(--navy)}.quiz-result.quiz-band-excellent{border-top:5px solid #c9a24a}.quiz-result.quiz-band-good{border-top:5px solid #2a8b52}.quiz-result.quiz-band-developing{border-top:5px solid #577fa7}.quiz-result.quiz-band-foundational{border-top:5px solid #9a6c46}.quiz-score{display:flex;gap:24px;flex-wrap:wrap;align-items:end;background:#f6f8fa;border-radius:14px;padding:16px;margin:16px 0}.quiz-score strong{font-size:1.35rem;color:var(--navy)}.quiz-score span{color:var(--muted)}.quiz-result-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.quiz-once-note{font-size:.88rem;color:#59697b;border-top:1px solid var(--line);padding-top:16px;margin-top:22px}.quiz-source-note{margin-top:16px;color:#6c7886;font-size:.84rem}.post-module-teaser{background:#f7f4ec;border:1px solid #e3d6b8;border-radius:16px;padding:20px;margin-top:24px}.post-module-teaser strong{color:var(--navy)}
@media(max-width:950px){.quiz-hub-grid{grid-template-columns:repeat(2,1fr)}.prequiz-shell{grid-template-columns:1fr}.quiz-rules{grid-template-columns:1fr}}
@media(max-width:650px){.quiz-hub-grid{grid-template-columns:1fr}.quiz-question-card,.quiz-gate,.quiz-result{padding:20px}.quiz-question-head{grid-template-columns:42px minmax(0,1fr);gap:12px}.quiz-question-number{width:40px;height:40px}.quiz-score{align-items:flex-start;flex-direction:column;gap:3px}}


/* ===== v1.9.1 — cabeçalho institucional unificado em todas as páginas ===== */
.site-header .site-nav ul{gap:6px}
.site-header .site-nav a:not(.nav-student){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:9px 10px;
  border:1px solid var(--navy);
  border-radius:10px;
  background:var(--navy);
  color:var(--white)!important;
  font-weight:800;
  text-align:center!important;
  white-space:nowrap;
  box-shadow:0 3px 10px rgba(11,35,65,.12);
}
.site-header .site-nav a:not(.nav-student):hover,
.site-header .site-nav a:not(.nav-student):focus-visible,
.site-header .site-nav a:not(.nav-student)[aria-current="page"]{
  background:var(--navy-2);
  color:var(--white)!important;
  border-color:var(--navy-2);
  transform:translateY(-1px);
}
.site-header .site-nav a[href$="instituto.html"]{
  text-align:center!important;
  justify-content:center!important;
  align-items:center!important;
}
.site-header .site-nav .nav-student{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-height:42px;
  text-align:center!important;
}
@media(max-width:980px){
  .site-header .site-nav a:not(.nav-student){display:flex;width:100%}
  .site-header .site-nav .nav-student{display:flex!important;width:100%}
}


/* ===== v1.9.2 — acessibilidade visível e ajustes do monitoramento ===== */
.accessibility-toggle {
  position:fixed; left:16px; bottom:16px; z-index:990;
  border:2px solid var(--gold); border-radius:999px;
  background:var(--navy); color:#fff; font-weight:800;
  padding:11px 15px; cursor:pointer;
  box-shadow:0 8px 20px rgba(11,35,65,.22);
}
.accessibility-toggle:hover,.accessibility-toggle:focus-visible {
  background:var(--navy-2); outline:3px solid rgba(215,183,103,.35); outline-offset:2px;
}
.accessibility-panel {
  position:fixed; left:16px; bottom:70px; z-index:989;
  width:min(330px,calc(100vw - 32px));
  background:#fff; color:var(--navy);
  border:2px solid var(--gold); border-radius:14px;
  padding:16px; box-shadow:0 14px 34px rgba(11,35,65,.24);
}
.accessibility-panel[hidden] { display:none!important; }
.accessibility-actions { display:grid; gap:8px; margin:12px 0; }
.accessibility-actions button {
  width:100%; border:1px solid var(--navy); border-radius:9px;
  padding:9px 10px; background:var(--navy); color:#fff; font-weight:700; cursor:pointer;
}
.accessibility-actions button:focus-visible,.accessibility-more:focus-visible {
  outline:3px solid var(--gold); outline-offset:2px;
}
.accessibility-more { color:var(--navy); font-weight:800; text-decoration:underline; }
html.a11y-font-large { font-size:112.5%; }
html.a11y-font-xlarge { font-size:125%; }
html.a11y-contrast body,
html.a11y-contrast .section,
html.a11y-contrast .section.white,
html.a11y-contrast .section.soft,
html.a11y-contrast .card,
html.a11y-contrast .callout,
html.a11y-contrast .portal-login,
html.a11y-contrast .form-shell,
html.a11y-contrast .page-hero {
  background:#000!important; color:#fff!important;
}
html.a11y-contrast h1,html.a11y-contrast h2,html.a11y-contrast h3,
html.a11y-contrast p,html.a11y-contrast li,html.a11y-contrast label,
html.a11y-contrast strong { color:#fff!important; }
html.a11y-contrast a:not(.btn):not(.nav-student) {
  color:#ffea00!important; text-decoration:underline!important;
}
html.a11y-contrast .site-header .site-nav a:not(.nav-student),
html.a11y-contrast .btn-primary {
  background:#000!important; color:#fff!important; border-color:#fff!important;
}
html.a11y-contrast input,html.a11y-contrast textarea,html.a11y-contrast select {
  background:#000!important; color:#fff!important; border:2px solid #fff!important;
}
.form-honeypot {
  position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important;
}
@media(max-width:700px){
  .accessibility-toggle { left:10px; bottom:10px; padding:10px 12px; }
  .accessibility-panel { left:10px; bottom:62px; width:calc(100vw - 20px); }
}

/* Diagnóstico cronometrado — ajuste de teste */
.quiz-session-bar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px;padding:12px 14px;border:1px solid #d8e0e8;background:#f8fafc;border-radius:14px}.quiz-timer{display:flex;align-items:baseline;gap:10px;color:#31445a}.quiz-timer span{font-size:.84rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.quiz-timer strong{font-size:1.45rem;color:var(--navy);font-variant-numeric:tabular-nums}.quiz-timer.is-warning strong{color:#9a6c00}.quiz-timer.is-danger strong{color:#a42c2c}.quiz-exit{white-space:nowrap}.quiz-finish-note{margin:18px 0;padding:14px 16px;border-radius:12px;background:#f5f7f9;color:#40536a}.quiz-rules{grid-template-columns:repeat(4,1fr)}
@media(max-width:950px){.quiz-rules{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.quiz-session-bar{align-items:stretch;flex-direction:column}.quiz-exit{width:100%}.quiz-rules{grid-template-columns:1fr}}
.scholarship-knowledge-gate{margin:22px 0;padding:22px;border:1px solid #dfcf9d;border-radius:16px;background:#fffaf0}.scholarship-knowledge-gate h3{margin:7px 0 10px;color:var(--navy)}.scholarship-knowledge-gate p{margin-top:8px}.scholarship-band-table{margin-bottom:14px}
.scholarship-progress-panel{margin:18px 0;padding:18px;border-radius:14px;border:1px solid #d7e3ef;background:#f8fbff}.scholarship-progress-panel h3{margin:0 0 10px;color:var(--navy)}.scholarship-progress-panel .progress-track{margin:10px 0}.scholarship-progress-panel p{margin:7px 0}.scholarship-progress-panel .scholarship-status-line{display:flex;gap:18px;flex-wrap:wrap}.scholarship-progress-panel .scholarship-status-line strong{color:var(--navy)}


/* Bíblia Espelho FLC + diálogos institucionais */
.flc-dialog{border:0;padding:0;background:transparent;max-width:min(680px,calc(100vw - 28px));width:100%;color:var(--text)}
.flc-dialog::backdrop{background:rgba(4,18,34,.66);backdrop-filter:blur(2px)}
.flc-dialog-card{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 80px rgba(4,18,34,.28);overflow:hidden}
.flc-dialog-head{padding:24px 26px 8px}.flc-dialog-head h2{margin:6px 0 0;color:var(--navy)}
.flc-dialog-body{padding:4px 26px 18px;color:#40536a}.flc-dialog-body p{margin:10px 0;line-height:1.6}
.flc-dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:18px 26px 24px;background:#f7f9fb;border-top:1px solid var(--line)}
.btn-danger{background:#8f2f2f;border:1px solid #8f2f2f;color:#fff}.btn-danger:hover,.btn-danger:focus-visible{background:#742323;border-color:#742323;color:#fff}
.quiz-exit-rule{margin:-6px 0 16px;padding:10px 13px;border-left:4px solid #c9a24a;background:#fffaf0;border-radius:0 10px 10px 0;color:#526173;font-size:.88rem;line-height:1.5}
.bible-mirror-hero{background:linear-gradient(135deg,#f7f2e6 0%,#fff 58%,#eef4fa 100%)}
.bible-mirror-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-bottom:18px}.bible-mirror-intro h2{margin:6px 0 8px;color:var(--navy)}
.bible-selection-status{min-width:220px;padding:16px 18px;border-radius:14px;background:#0b2341;color:#fff}.bible-selection-status strong{display:block;font-size:1.15rem}.bible-selection-status span{display:block;margin-top:4px;color:#dce7f2;font-size:.84rem}
.bible-teaching-note,.bible-external-note{padding:18px 20px;border-radius:14px;line-height:1.6}.bible-teaching-note{background:#fffaf0;border:1px solid #e6d5a8;color:#4b5360}.bible-external-note{margin-top:28px;background:#f7f9fb;border:1px solid #dbe3eb;color:#526173}
.bible-version-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}.bible-version-card{display:flex;flex-direction:column;min-height:300px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(11,35,65,.05);transition:.15s ease}.bible-version-card.is-selected{border-color:#c9a24a;box-shadow:0 10px 30px rgba(201,162,74,.18)}.bible-version-card h3{margin:14px 0 6px;color:var(--navy);font-size:1.08rem}.bible-version-card p{color:#5f6e7e;margin:6px 0 10px;line-height:1.5}.bible-version-card .btn{margin-top:auto;align-self:flex-start}.bible-version-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bible-version-abbr{display:inline-grid;place-items:center;min-width:48px;height:48px;padding:0 9px;border-radius:12px;background:var(--navy);color:#fff;font-weight:900}.bible-compare-check{display:flex;gap:7px;align-items:flex-start;font-size:.78rem;color:#485a6e;cursor:pointer}.bible-compare-check input{margin-top:3px;accent-color:#0b2341}.bible-version-source{font-size:.82rem;font-weight:800;color:#6f5a20!important}
.bible-selected-panel{margin-top:28px;padding:22px;border-radius:18px;background:#f8fbff;border:1px solid #d7e3ef}.bible-selected-panel h2{margin:5px 0 8px;color:var(--navy)}.bible-selected-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
@media(max-width:1000px){.bible-version-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.bible-mirror-intro{grid-template-columns:1fr}.bible-selection-status{min-width:0}.bible-version-grid{grid-template-columns:1fr}.flc-dialog-actions{flex-direction:column-reverse}.flc-dialog-actions .btn{width:100%}.bible-version-card{min-height:0}}


/* ===== Bíblia Espelho FLC — revisão ampliada de traduções e recursos ===== */
.bible-subnav{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 28px}.bible-subnav a{display:inline-flex;padding:8px 12px;border:1px solid #cfd9e3;border-radius:999px;text-decoration:none;color:var(--navy);background:#f8fbff;font-weight:800;font-size:.86rem}.bible-subnav a:hover,.bible-subnav a:focus-visible{border-color:#c9a24a;background:#fffaf0}
.bible-section-title{margin:30px 0 0;color:var(--navy)}.bible-catholic-section,.bible-tools-section{margin-top:42px;padding-top:34px;border-top:1px solid var(--line)}.bible-catholic-section h2,.bible-tools-section h2{color:var(--navy);margin:6px 0 12px}.bible-tradition-alert{padding:18px 20px;border:1px solid #d6c9a1;border-left:5px solid #9a7b34;border-radius:12px;background:#fffaf1;color:#51462c;line-height:1.62}.bible-availability-note{color:#607083;line-height:1.6}.bible-tradition-badge{display:inline-flex;align-self:flex-start;padding:5px 9px;border-radius:999px;background:#f5ead0;border:1px solid #ddc98c;color:#70571d;font-size:.74rem;font-weight:900;letter-spacing:.03em;text-transform:uppercase;margin-top:10px}.bible-version-card-catholic{background:linear-gradient(180deg,#fffdf7 0%,#fff 46%)}.bible-dialog-tradition{padding:12px 14px;background:#fff7e6;border-left:4px solid #c9a24a;border-radius:0 10px 10px 0;color:#594919!important}
.bible-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.bible-tool-card{display:flex;flex-direction:column;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(11,35,65,.05)}.bible-tool-card h3{margin:14px 0 8px;color:var(--navy)}.bible-tool-card p{margin:0 0 18px;color:#5f6e7e;line-height:1.58}.bible-tool-card .btn{margin-top:auto;align-self:flex-start}.bible-tool-icon{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:14px;background:#0b2341;color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.08em}.bible-tool-card-internal{background:#f8fbff;border-color:#cbdceb}
.measure-warning{padding:18px 20px;border:1px solid #e1d3aa;border-left:5px solid #c9a24a;border-radius:12px;background:#fffaf0;color:#4f493a;line-height:1.62;margin-bottom:28px}.measure-converter{padding:24px;border:1px solid #d7e3ef;border-radius:18px;background:#f8fbff;margin-bottom:34px}.measure-converter h2{margin:6px 0 18px;color:var(--navy)}.measure-converter-grid{display:grid;grid-template-columns:1fr 1.3fr .8fr 1.2fr;gap:14px;align-items:end}.measure-converter-grid label{display:grid;gap:7px;font-weight:800;color:var(--navy)}.measure-converter-grid select,.measure-converter-grid input{width:100%;padding:11px 12px;border:1px solid #bcc9d5;border-radius:10px;background:#fff;font:inherit;color:#20364f}.measure-result{min-height:68px;padding:11px 14px;border-radius:12px;background:#0b2341;color:#fff;display:flex;flex-direction:column;justify-content:center}.measure-result span{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#dce7f2}.measure-result strong{font-size:1.2rem;margin-top:4px;font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto;margin-bottom:30px}.measure-table{width:100%;border-collapse:collapse;min-width:680px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.measure-table th,.measure-table td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.measure-table th{background:#0b2341;color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.035em}.measure-table td:first-child{font-weight:800;color:var(--navy)}.measure-source-note{padding:17px 18px;border-radius:12px;background:#f5f7f9;color:#526173;line-height:1.6}.measure-back{margin-top:24px}
@media(max-width:1000px){.bible-tool-grid{grid-template-columns:1fr 1fr}.measure-converter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.bible-tool-grid{grid-template-columns:1fr}.measure-converter-grid{grid-template-columns:1fr}.bible-subnav{gap:6px}.bible-subnav a{font-size:.82rem}.bible-tradition-alert{padding:15px 16px}.measure-table{min-width:620px}}


/* ===== Consolidação FLC 2026-09 — cabeçalho, Bíblia Espelho, quiz e bolsa ===== */
/* O cabeçalho ganha largura própria e recolhe para menu antes de qualquer overflow horizontal. */
.site-header .container.header-row{width:min(1480px,calc(100% - 28px));max-width:none}
@media(max-width:1400px){
  .nav-toggle{display:block}
  .site-nav{position:absolute;top:78px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);display:none;max-height:calc(100vh - 90px);overflow:auto}
  .site-nav.open{display:block}
  .site-nav ul{flex-direction:column;align-items:stretch;padding:12px 18px 20px}
  .site-header .site-nav a:not(.nav-student),.site-header .site-nav .nav-student{display:flex!important;width:100%}
}
@media(max-width:650px){.site-header .container.header-row{width:calc(100% - 20px)}}

.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border-radius:12px;padding:13px 18px;font-weight:800;border:1px solid #9aa9b8;background:#fff;color:var(--navy);transition:.2s ease;cursor:pointer}
.btn-outline:hover,.btn-outline:focus-visible{border-color:var(--navy);background:#eef4fa;color:var(--navy)}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.bible-cover-hero{background:#f5f0e4;border-bottom:4px solid var(--gold);padding:18px 0}
.bible-cover-frame{width:min(1480px,calc(100% - 24px));margin:0 auto;border-radius:18px;overflow:hidden;box-shadow:0 18px 48px rgba(11,35,65,.14);background:#fff}
.bible-cover-frame img{display:block;width:100%;height:auto;aspect-ratio:1672/941;object-fit:cover}
.bible-tool-cover{display:block;width:100%;aspect-ratio:1672/941;object-fit:cover;border-radius:13px;margin-bottom:16px;border:1px solid #e4ded0}
.bible-selected-chip{display:inline-flex;align-items:center;padding:9px 12px;border:1px solid #cfd9e3;border-radius:999px;background:#fff;color:var(--navy);font-weight:800;font-size:.84rem}
.bible-open-selection-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.bible-open-selection-wrap small{color:#667587}

.quiz-next-wrap{justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.quiz-question-exit{border-color:#b77a7a;color:#7a2424;background:#fff}
.quiz-question-exit:hover,.quiz-question-exit:focus-visible{background:#fff4f4;border-color:#8f2f2f;color:#7a2424}
.quiz-session-bar .quiz-exit{border-color:#b77a7a;color:#7a2424;background:#fff}
.quiz-session-bar .quiz-exit:hover,.quiz-session-bar .quiz-exit:focus-visible{background:#fff4f4;border-color:#8f2f2f;color:#7a2424}
.flc-dialog-actions .btn-remain{background:var(--gold);border:1px solid var(--gold);color:#10223a}
.flc-dialog-actions .btn-remain:hover,.flc-dialog-actions .btn-remain:focus-visible{background:#d8b25a;border-color:#d8b25a;color:#10223a}

.scholarship-entry-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.scholarship-access-gate{padding:26px;border:1px solid #dfcf9d;border-radius:18px;background:#fffaf0;box-shadow:0 10px 28px rgba(11,35,65,.06)}
.scholarship-access-gate h2{margin:6px 0 10px;color:var(--navy)}
.scholarship-test-link{margin:16px 0;padding:18px;border:1px solid #cbdceb;border-radius:14px;background:#f8fbff}
.scholarship-test-link h4{margin:0 0 6px;color:var(--navy)}
.scholarship-test-link p{margin:0 0 12px;color:#526173}
.scholarship-prospect-note{margin:0 0 20px;padding:12px 15px;border-radius:12px;background:#edf7f1;color:#235c3c}

@media(max-width:650px){
  .bible-cover-hero{padding:8px 0}.bible-cover-frame{width:calc(100% - 12px);border-radius:10px}
  .quiz-next-wrap .btn,.quiz-next-wrap .btn-outline{width:100%}
}


/* ===== v1.10 — página principal atualizada ===== */
.home-v110-hero .hero-grid{min-height:590px}
.home-v110-hero-actions .btn{min-width:160px}
.home-v110-hero-panel{padding:28px}
.home-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}
.home-mini-stats span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:78px;padding:10px;border:1px solid rgba(231,204,138,.25);border-radius:13px;background:rgba(255,255,255,.05);color:#dce6f0;text-align:center;font-size:.78rem}
.home-mini-stats strong{display:block;color:var(--gold-light);font-size:1.42rem;line-height:1.1;margin-bottom:4px}
.home-portal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.home-portal-card{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border:1px solid #e2dbcf;border-radius:20px;padding:24px;box-shadow:0 10px 28px rgba(11,35,65,.06);min-height:100%}
.home-portal-card-bible{border-top:4px solid var(--gold)}
.home-portal-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:var(--navy);color:var(--gold-light);font-weight:900;letter-spacing:.03em;margin-bottom:16px}
.home-portal-card h3{margin:0 0 8px;color:var(--navy);font-size:1.2rem}
.home-portal-card p{color:var(--muted);margin:0 0 18px;flex:1}
.home-inline-actions{display:flex;gap:10px;flex-wrap:wrap}
.home-bible-showcase{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:44px;align-items:center}
.home-bible-image-wrap{background:#07172a;border-radius:22px;padding:9px;box-shadow:0 18px 46px rgba(11,35,65,.15)}
.home-bible-image-wrap img{display:block;width:100%;height:auto;border-radius:15px;object-fit:contain}
.home-bible-copy .kicker{color:var(--gold);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.76rem}
.home-bible-copy h2{color:var(--navy);font-size:clamp(2rem,4vw,3.15rem);line-height:1.08;margin:8px 0 14px;letter-spacing:-.035em}
.home-bible-copy p{color:var(--muted)}
.home-check-list{padding-left:20px;color:#425266;margin:18px 0 24px}
.home-check-list li{margin:8px 0}
.home-course-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.home-section-action{margin-top:24px}
.home-certificate-track{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.home-certificate-track div{background:#fff;border:1px solid #dfd6c7;border-radius:16px;padding:18px;text-align:center;box-shadow:0 6px 20px rgba(11,35,65,.04)}
.home-certificate-track strong{display:block;color:var(--navy);font-size:1.08rem;margin-bottom:4px}
.home-certificate-track span{display:block;color:var(--muted);font-size:.84rem}
.home-entry-grid-v110 .entry-card{position:relative}
.home-entry-label{display:inline-flex;padding:5px 9px;border-radius:999px;background:#efe6d3;color:#6a511f;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}
.home-v110-challenge{padding:34px}

@media(max-width:1120px){
  .home-portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-certificate-track{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .home-bible-showcase{grid-template-columns:1fr}
  .home-bible-copy{max-width:760px}
}
@media(max-width:650px){
  .home-mini-stats{grid-template-columns:1fr}
  .home-portal-grid{grid-template-columns:1fr}
  .home-certificate-track{grid-template-columns:1fr}
  .home-inline-actions .btn,.home-inline-actions .btn-outline{width:100%}
  .home-v110-hero-actions .btn{width:100%}
  .home-v110-challenge{padding:24px 20px}
}

/* ===== v1.10 — Bíblia Espelho: tamanhos equilibrados dos recursos ===== */
.bible-tool-grid{grid-template-columns:repeat(3,minmax(240px,320px));justify-content:center;gap:22px}
.bible-tool-card{max-width:320px;width:100%;margin:0 auto}
.bible-tool-cover{width:100%;max-height:180px;object-fit:cover}
@media(max-width:1000px){.bible-tool-grid{grid-template-columns:repeat(2,minmax(240px,320px))}}
@media(max-width:650px){.bible-tool-grid{grid-template-columns:1fr}.bible-tool-card{max-width:360px}.bible-tool-cover{max-height:200px}}

/* ===== v1.10 — Bíblia Espelho: capa integral e ampla, sem corte ===== */
.bible-cover-hero{width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;padding:18px 0 24px!important;background:#f5f0e4!important}
.bible-cover-frame{width:94%!important;max-width:1500px!important;height:auto!important;max-height:none!important;overflow:visible!important;margin:0 auto!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
.bible-cover-frame img{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;border-radius:14px!important}
@media(max-width:700px){.bible-cover-frame{width:97%!important}}
