/* ==========================================================================
   Instituto VIM — Folha de estilos
   Paleta oficial: Petróleo (#14555A) · Terracota (#C05B3D) · Sálvia (#A8B6A1)
                   Floresta (#344A3D) · Marfim (#F7F3EA)
   Proporção 60/25/10/5 — terracota é escassa: só CTAs e destaques de decisão.
   Fontes: Lora (títulos) · Inter (texto)
   ========================================================================== */

:root {
  /* Paleta oficial VIM */
  --petroleo: #14555a;
  --petroleo-dark: #0d3f43;
  --terracota: #c05b3d;
  --terracota-dark: #a34a30;
  --salvia: #a8b6a1;
  --floresta: #344a3d;
  --marfim: #f7f3ea;

  /* Variáveis semânticas usadas no restante da folha de estilos */
  --primary: var(--petroleo);          /* Uso institucional: ícones, títulos, links, bordas */
  --primary-dark: var(--petroleo-dark);
  --primary-foreground: var(--marfim);
  --slate: var(--floresta);
  --background: var(--marfim);
  --foreground: var(--floresta);
  --card: #ffffff;
  --muted: #e9ede6;                    /* Sálvia clara */
  --muted-foreground: #5c6b5f;
  --accent: var(--terracota);          /* Uso escasso: divisores, destaques pontuais */
  --border: #dbe3d7;                   /* Sálvia clara, bordas suaves */
  --radius: 0.65rem;

  --font-serif: "Lora", Georgia, serif;
  --font-sans: "Inter", system-ui, -apple-system, sans-serif;

  --container: 1280px;
  --shadow-sm: 0 1px 2px rgba(52, 74, 61, 0.06), 0 1px 3px rgba(52, 74, 61, 0.08);
  --shadow-lg: 0 10px 15px -3px rgba(52, 74, 61, 0.1), 0 4px 6px -4px rgba(52, 74, 61, 0.1);
}

/* --------------------------------------------------------------------------
   Reset
   -------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5rem; /* compensa header fixo */
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--font-sans);
  background-color: var(--background);
  color: var(--foreground);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 700;
  line-height: 1.2;
  color: var(--foreground);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  z-index: 100;
  background: var(--primary);
  color: var(--primary-foreground);
  padding: 0.75rem 1rem;
  border-radius: 0 0 var(--radius) 0;
}
.skip-link:focus {
  left: 0;
}

:focus-visible {
  outline: 3px solid var(--primary);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   Layout helpers
   -------------------------------------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 1rem;
}

@media (min-width: 640px) {
  .container { padding: 0 1.5rem; }
}
@media (min-width: 1024px) {
  .container { padding: 0 2rem; }
}

.section {
  padding: 6rem 0;
}
.section-white { background: #ffffff; }
.section-bg { background: var(--background); }
.section-soft {
  background: linear-gradient(135deg, rgba(20, 85, 90, 0.06), rgba(168, 182, 161, 0.08));
}
.section-soft-alt {
  background: linear-gradient(135deg, rgba(168, 182, 161, 0.08), rgba(20, 85, 90, 0.06));
}

.section-head {
  text-align: center;
  max-width: 42rem;
  margin: 0 auto 4rem;
}
.section-title {
  font-size: clamp(1.85rem, 4vw, 2.25rem);
  color: var(--primary);
  margin-bottom: 1rem;
}
.section-subtitle {
  font-size: 1.125rem;
  color: rgba(52, 74, 61, 0.7);
}

.lead {
  font-size: 1.125rem;
  color: rgba(52, 74, 61, 0.8);
  margin-bottom: 1rem;
}

.grid-2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem;
}
@media (min-width: 768px) {
  .grid-2 { grid-template-columns: 1fr 1fr; }
  .grid-2--center { align-items: center; }
}

.stack { display: flex; flex-direction: column; gap: 1.5rem; }

.mt-8 { margin-top: 2rem; }
.mb-4 { margin-bottom: 1rem; }
.muted { color: rgba(52, 74, 61, 0.7); }

.rounded-img {
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  width: 100%;
}

/* --------------------------------------------------------------------------
   Icons
   -------------------------------------------------------------------------- */
.icon {
  width: 1.25rem;
  height: 1.25rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 0.9375rem;
  line-height: 1;
  padding: 0.625rem 1.1rem;
  border-radius: var(--radius);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s, transform 0.1s;
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }

.btn-lg { padding: 0.85rem 1.6rem; font-size: 1rem; }
.btn-sm { padding: 0.5rem 0.9rem; font-size: 0.8125rem; }
.btn-block { width: 100%; }

.btn-primary {
  background: var(--terracota);
  color: var(--marfim);
}
.btn-primary:hover { background: var(--terracota-dark); }

/* O CSS do widget do Hotmart (hotmart-fb.min.css) tenta aplicar seu próprio
   visual ao botão. Estas regras forçam o estilo VIM por cima, respeitando
   a variante (primary = terracota sólido, secondary = branco/terracota). */
.btn.hotmart-fb.hotmart__button-checkout {
  background-image: none !important;
  font-family: var(--font-sans) !important;
}
.btn-primary.hotmart-fb.hotmart__button-checkout {
  background: var(--terracota) !important;
  color: var(--marfim) !important;
}
.btn-primary.hotmart-fb.hotmart__button-checkout:hover {
  background: var(--terracota-dark) !important;
}
.btn-secondary.hotmart-fb.hotmart__button-checkout {
  background: #ffffff !important;
  color: var(--terracota) !important;
}
.btn-secondary.hotmart-fb.hotmart__button-checkout:hover {
  background: rgba(255, 255, 255, 0.9) !important;
}

.btn-secondary {
  background: #ffffff;
  color: var(--terracota);
}
.btn-secondary:hover { background: rgba(255, 255, 255, 0.9); }

.btn-outline {
  background: transparent;
  color: var(--foreground);
  border-color: var(--border);
}
.btn-outline:hover { background: rgba(20, 85, 90, 0.05); border-color: var(--primary); }

.btn-outline-light {
  background: transparent;
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.8);
}
.btn-outline-light:hover { background: rgba(255, 255, 255, 0.1); }

.btn-ghost {
  background: transparent;
  color: var(--primary);
}
.btn-ghost:hover { background: rgba(20, 85, 90, 0.08); }

.btn-icon { padding: 0.5rem; }

.btn-row { display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(247, 243, 234, 0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--border);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 4rem;
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.brand-badge {
  width: 2rem;
  height: 2rem;
  border-radius: 9999px;
  background: var(--primary);
  color: var(--primary-foreground);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}
.brand-name {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--primary);
}

.main-nav {
  display: none;
  gap: 2rem;
}
.main-nav a {
  font-size: 0.875rem;
  color: var(--foreground);
  transition: color 0.2s;
}
.main-nav a:hover { color: var(--primary); }

.header-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.header-only-desktop { display: none; }

.menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  background: transparent;
  border: none;
  color: var(--primary);
  cursor: pointer;
  border-radius: var(--radius);
}
.menu-toggle:hover { background: rgba(20, 85, 90, 0.08); }

@media (min-width: 768px) {
  .main-nav { display: flex; }
  .header-only-desktop { display: inline-flex; }
  .menu-toggle { display: none; }
}

/* Mobile nav open state */
.main-nav.is-open {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: absolute;
  top: 4rem;
  left: 0;
  right: 0;
  background: var(--background);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-lg);
}
.main-nav.is-open a {
  padding: 0.9rem 1.5rem;
  border-top: 1px solid var(--border);
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.hero {
  position: relative;
  overflow: hidden;
}
.hero-bg {
  position: absolute;
  inset: 0;
}
.hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(13, 63, 67, 0.78), rgba(13, 63, 67, 0.48), transparent);
}
.hero-content {
  position: relative;
  z-index: 10;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
@media (min-width: 768px) {
  .hero-content { padding-top: 12rem; padding-bottom: 12rem; }
}
.hero-text { max-width: 42rem; }
.hero-text h1 {
  font-size: clamp(2.5rem, 7vw, 3.75rem);
  color: #ffffff;
  margin-bottom: 1.5rem;
  line-height: 1.1;
}
.hero-text p {
  font-size: 1.25rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 2rem;
  line-height: 1.6;
}
.hero-tese {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.85);
  max-width: 34rem;
  padding: 1rem 0;
  margin-bottom: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  border-bottom: 1px solid rgba(255, 255, 255, 0.25);
}
.hero-actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (min-width: 640px) {
  .hero-actions { flex-direction: row; }
}

/* --------------------------------------------------------------------------
   Dividers
   -------------------------------------------------------------------------- */
.divider {
  height: 4px;
}
.divider-a {
  background: linear-gradient(to right, var(--primary), var(--accent), rgba(192, 91, 61, 0.5));
}
.divider-b {
  background: linear-gradient(to right, rgba(192, 91, 61, 0.5), var(--accent), var(--primary));
}

/* --------------------------------------------------------------------------
   Feature list (Quem somos / Organizacional)
   -------------------------------------------------------------------------- */
.feature-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.5rem;
}
.feature {
  display: flex;
  gap: 1rem;
}
.feature-icon {
  width: 3rem;
  height: 3rem;
  border-radius: 9999px;
  background: rgba(20, 85, 90, 0.1);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.feature-icon .icon { width: 1.5rem; height: 1.5rem; }
.feature h3 {
  font-size: 1rem;
  margin-bottom: 0.25rem;
}
.feature p {
  font-size: 0.875rem;
  color: rgba(52, 74, 61, 0.7);
}

/* --------------------------------------------------------------------------
   Cards
   -------------------------------------------------------------------------- */
.card {
  background: #ffffff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: 2rem;
}
.card-bordered-left { border-left: 4px solid var(--primary); }
.card-bordered-top { border-top: 4px solid var(--primary); }
.card-plain {
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border);
  padding: 1.5rem;
}
.card-gradient {
  background: linear-gradient(135deg, rgba(20, 85, 90, 0.1), rgba(168, 182, 161, 0.12));
  box-shadow: none;
  padding: 1.5rem;
}
.card-title {
  font-size: 1.5rem;
  margin-bottom: 1.5rem;
}
.card-title-sm {
  font-size: 1.125rem;
  margin-bottom: 0.75rem;
}

/* --------------------------------------------------------------------------
   Blocos padronizados da seção Grupo de Estudos — mesma largura,
   padding, raio e espaçamento em todos
   -------------------------------------------------------------------------- */
.meeting-card,
.dates-highlight,
.final-invite {
  border-radius: var(--radius);
  padding: 2.5rem;
  margin-bottom: 2.5rem;
}
@media (max-width: 640px) {
  .meeting-card, .dates-highlight, .final-invite { padding: 1.75rem; }
}

.meeting-card {
  background: #ffffff;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
.meeting-photo {
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 0.75rem;
}
.meeting-photo img { display: block; width: 100%; height: auto; }
.meeting-photo-caption {
  font-size: 0.8125rem;
  color: rgba(52, 74, 61, 0.65);
  text-align: center;
  margin-bottom: 1rem;
}
.meeting-recording-note {
  text-align: center;
  font-size: 0.875rem;
  color: var(--petroleo);
  background: rgba(20, 85, 90, 0.06);
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
  margin: 0;
}

/* --------------------------------------------------------------------------
   Depoimento (prova social real de encontros/eventos) — discreto
   -------------------------------------------------------------------------- */
.testimonial-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 700px) {
  .testimonial-grid { grid-template-columns: 1fr 1fr 1fr; }
}
.testimonial-card {
  background: rgba(168, 182, 161, 0.12);
  border-left: 3px solid var(--salvia);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
}
.testimonial-quote {
  font-style: italic;
  color: var(--floresta);
  font-size: 0.875rem;
  line-height: 1.5;
  margin-bottom: 0.5rem;
}
.testimonial-author {
  font-size: 0.75rem;
  color: rgba(52, 74, 61, 0.65);
  font-weight: 600;
}

/* Aspas grandes decorativas + depoimento anônimo, estilo editorial discreto */
.testimonial-card--quote {
  background: #ffffff;
  border: none;
  border-radius: var(--radius);
  padding: 1.5rem 1.5rem 1.25rem;
  box-shadow: var(--shadow-sm);
}
.testimonial-quote-mark {
  font-family: var(--font-serif);
  font-size: 2.5rem;
  line-height: 1;
  color: var(--salvia);
  display: block;
  margin-bottom: 0.25rem;
}
.testimonial-card--quote .testimonial-quote {
  font-family: var(--font-serif);
  font-style: normal;
  font-size: 0.9375rem;
  color: var(--floresta);
}
.testimonial-card--quote .testimonial-author {
  color: var(--terracota);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.6875rem;
}

/* --------------------------------------------------------------------------
   Mensagens reais do WhatsApp — recortes discretos, tipo "evidência"
   -------------------------------------------------------------------------- */
.evidence-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 2rem;
}
@media (min-width: 700px) {
  .evidence-grid { grid-template-columns: 1fr 1fr 1fr; }
}
.evidence-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.evidence-card img { display: block; width: 100%; height: auto; }
.evidence-label {
  text-align: center;
  font-size: 0.75rem;
  color: rgba(52, 74, 61, 0.55);
  margin: -1rem 0 2rem;
}

/* --------------------------------------------------------------------------
   Tags de temas (chips)
   -------------------------------------------------------------------------- */
.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  justify-content: center;
}
.tag-chip {
  background: rgba(20, 85, 90, 0.07);
  color: var(--petroleo);
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.5rem 1.1rem;
  border-radius: 999px;
}

/* --------------------------------------------------------------------------
   Bloco de destaque escuro — livro + calendário consolidados
   -------------------------------------------------------------------------- */
.dates-highlight {
  background: var(--petroleo);
  color: var(--marfim);
}
.dates-highlight-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 1.25rem;
}
.dates-highlight-book {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  margin-bottom: 1rem;
}
.dates-highlight-book img {
  width: 4rem;
  height: auto;
  border-radius: 4px;
  box-shadow: var(--shadow-lg);
  flex-shrink: 0;
}
.dates-highlight-book-title {
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--marfim);
  margin: 0;
}
.dates-highlight-book-author {
  font-style: italic;
  font-size: 0.9375rem;
  color: rgba(247, 243, 234, 0.7);
  margin: 0.15rem 0 0;
}
.dates-highlight-caption {
  color: rgba(247, 243, 234, 0.75);
  font-size: 0.875rem;
  max-width: 24rem;
  margin-bottom: 1.25rem;
}
.dates-highlight-numbers {
  display: flex;
  gap: 2.5rem;
}
.date-block { text-align: center; }
.date-block + .date-block { margin-left: 2.5rem; }
.date-block .day {
  font-family: var(--font-serif);
  font-size: 3rem;
  line-height: 1;
  color: var(--marfim);
  font-weight: 600;
}
.date-block .month {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  color: var(--terracota);
  text-transform: uppercase;
  margin-top: 0.35rem;
}
.dates-highlight .btn-primary {
  background: var(--terracota);
}

/* --------------------------------------------------------------------------
   Prova social — depoimentos discretos
   -------------------------------------------------------------------------- */
.testimonial-block { margin-bottom: 2.5rem; }
.testimonial-block-label {
  text-align: center;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--terracota);
  font-weight: 700;
  margin-bottom: 1.5rem;
}

/* --------------------------------------------------------------------------
   Convite final
   -------------------------------------------------------------------------- */
.final-invite {
  background: #ffffff;
  text-align: center;
}
.final-invite-quote {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--floresta);
  font-size: 1.125rem;
  margin-bottom: 1.5rem;
}

/* --------------------------------------------------------------------------
   Quem conduz — equipe com foto real
   -------------------------------------------------------------------------- */
.team-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.5rem;
  margin: 2.5rem 0;
}
.team-member {
  text-align: center;
  width: 10rem;
}
.team-member img {
  width: 6rem;
  height: 6rem;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: var(--shadow-lg);
  margin-bottom: 0.75rem;
}
.team-member-name {
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--petroleo);
  font-size: 1rem;
  margin-bottom: 0.15rem;
}
.team-member-role {
  font-size: 0.8125rem;
  color: rgba(52, 74, 61, 0.65);
}

.check-list { display: flex; flex-direction: column; gap: 1rem; }
.check-list li { display: flex; gap: 0.75rem; }
.check-list span:last-child { color: rgba(52, 74, 61, 0.8); }
.check {
  color: var(--primary);
  font-weight: 700;
  flex-shrink: 0;
}

.numbered-list { display: flex; flex-direction: column; gap: 1rem; }
.numbered-list li { display: flex; gap: 1rem; }
.numbered-list .num {
  color: var(--primary);
  font-weight: 700;
  font-size: 1.125rem;
  flex-shrink: 0;
}
.numbered-list h4 { font-size: 1rem; margin-bottom: 0.25rem; }
.numbered-list p { font-size: 0.875rem; color: rgba(52, 74, 61, 0.7); }

.dot-list { display: flex; flex-direction: column; gap: 0.5rem; }
.dot-list li {
  font-size: 0.875rem;
  color: rgba(52, 74, 61, 0.8);
  padding-left: 1rem;
  position: relative;
}
.dot-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--primary);
}

/* --------------------------------------------------------------------------
   Panels (Mediação Básica)
   -------------------------------------------------------------------------- */
.panel {
  background: #ffffff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 1.5rem;
}
.panel-primary { border-left: 4px solid var(--primary); }
.panel-accent { border-left: 4px solid var(--accent); }
.panel h4 { font-size: 1.125rem; margin-bottom: 0.5rem; }
.panel p { color: rgba(52, 74, 61, 0.7); }

/* --------------------------------------------------------------------------
   Course cards grid
   -------------------------------------------------------------------------- */
.cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px) {
  .cards-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .cards-grid { grid-template-columns: repeat(3, 1fr); }
}
.course-card {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1.5rem;
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
}
.course-card:hover {
  border-color: var(--primary);
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
}
.course-icon {
  width: 3rem;
  height: 3rem;
  border-radius: var(--radius);
  background: rgba(20, 85, 90, 0.1);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  transition: background-color 0.3s;
}
.course-card:hover .course-icon { background: rgba(20, 85, 90, 0.2); }
.course-icon .icon { width: 1.5rem; height: 1.5rem; }
.course-card h3 { font-size: 1.125rem; margin-bottom: 0.5rem; }
.course-card p { font-size: 0.875rem; color: rgba(52, 74, 61, 0.7); }

.por-que {
  background: rgba(20, 85, 90, 0.05);
  border-left: 4px solid var(--salvia);
  border-radius: var(--radius);
  padding: 1.5rem 2rem;
}
.por-que p { margin: 0.75rem 0; line-height: 1.7; color: var(--floresta); }

/* --------------------------------------------------------------------------
   Equipe (página Sobre)
   -------------------------------------------------------------------------- */
.team-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .team-grid { grid-template-columns: repeat(3, 1fr); }
}
.team-card {
  background: #ffffff;
  border-top: 4px solid var(--terracota);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  padding: 2rem;
  text-align: center;
}
.team-photo {
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 1.25rem;
  display: block;
  border: 3px solid var(--marfim);
  box-shadow: 0 0 0 3px var(--terracota);
}
.team-photo-placeholder {
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 50%;
  margin: 0 auto 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(20, 85, 90, 0.08);
  border: 3px solid var(--marfim);
  box-shadow: 0 0 0 3px var(--salvia);
  color: var(--petroleo);
  font-family: var(--font-serif);
  font-size: 1.75rem;
  font-weight: 600;
}
.team-card h3 {
  font-family: var(--font-serif);
  color: var(--petroleo);
  font-size: 1.3rem;
  margin-bottom: 0.25rem;
}
.team-role {
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--terracota);
  font-weight: 600;
  margin-bottom: 1rem;
}
.team-card p:not(.team-role) {
  color: var(--floresta);
  font-size: 0.9375rem;
  line-height: 1.65;
}

/* --------------------------------------------------------------------------
   Páginas de curso (hero, tabela de conteúdo, formato, FAQ)
   -------------------------------------------------------------------------- */
.course-hero {
  background: linear-gradient(135deg, var(--petroleo) 0%, var(--petroleo-dark) 100%);
  color: var(--marfim);
  padding: 5rem 0;
  text-align: center;
}
.course-hero h1 {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 5vw, 2.75rem);
  color: var(--marfim);
  margin-bottom: 1rem;
}
.course-hero .lead-white {
  font-size: 1.15rem;
  color: rgba(247, 243, 234, 0.9);
  max-width: 38rem;
  margin: 0 auto 0.5rem;
}
.course-hero .tese-mae {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1rem;
  color: rgba(247, 243, 234, 0.8);
  max-width: 34rem;
  margin: 1.5rem auto;
  padding: 1rem 0;
  border-top: 1px solid rgba(247, 243, 234, 0.25);
  border-bottom: 1px solid rgba(247, 243, 234, 0.25);
}
.course-hero .price-tag-white {
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--marfim);
  margin-top: 1.75rem;
}
.course-hero .urgencia {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  color: rgba(247, 243, 234, 0.85);
}

.content-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
}
.content-table th {
  background: var(--petroleo);
  color: var(--marfim);
  padding: 0.9rem 1rem;
  text-align: left;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 0.9375rem;
}
.content-table td {
  padding: 0.9rem 1rem;
  border-bottom: 1px solid var(--border);
  font-size: 0.9375rem;
}
.content-table tr:hover td { background: rgba(20, 85, 90, 0.04); }
.content-table td:first-child { color: var(--terracota); font-weight: 700; width: 3rem; }

.format-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-top: 1.5rem;
}
@media (min-width: 640px) {
  .format-grid { grid-template-columns: 1fr 1fr; }
}
.format-item {
  background: rgba(168, 182, 161, 0.15);
  border-left: 4px solid var(--salvia);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
}
.format-item strong { display: block; color: var(--petroleo); font-size: 1rem; margin-bottom: 0.35rem; }
.format-item span { color: var(--floresta); font-size: 0.9375rem; }

.faq-item {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--border);
}
.faq-item:last-child { border-bottom: none; }
.faq-pergunta {
  font-family: var(--font-sans);
  font-weight: 600;
  color: var(--petroleo);
  font-size: 1.0625rem;
  margin-bottom: 0.6rem;
}
.faq-resposta {
  color: var(--floresta);
  line-height: 1.7;
  padding-left: 1rem;
  border-left: 3px solid var(--salvia);
}

/* --------------------------------------------------------------------------
   Course preview cards (home → páginas de venda)
   -------------------------------------------------------------------------- */
.course-preview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 3rem;
}
@media (min-width: 640px) {
  .course-preview-grid { grid-template-columns: 1fr 1fr; }
}
.course-preview-card {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2rem;
  text-align: center;
}
.course-preview-card--highlight {
  border: 2px solid var(--terracota);
  box-shadow: var(--shadow-lg);
}
.course-preview-grid--pricing {
  max-width: 64rem;
  margin: 3rem auto 0;
}
@media (min-width: 900px) {
  .course-preview-grid--pricing { grid-template-columns: 1fr 1fr 1fr; }
}
.course-preview-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--terracota);
  background: rgba(192, 91, 61, 0.1);
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  margin-bottom: 1rem;
}
.course-preview-card h3 {
  font-family: var(--font-serif);
  color: var(--petroleo);
  font-size: 1.35rem;
  margin-bottom: 0.5rem;
}
.course-preview-card p {
  color: rgba(52, 74, 61, 0.75);
  font-size: 0.9375rem;
  margin-bottom: 1.25rem;
}
.course-preview-price {
  font-family: var(--font-serif);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--floresta);
  margin-bottom: 1.5rem;
}

/* --------------------------------------------------------------------------
   Ebook (vitrine na home + captura na página dedicada)
   -------------------------------------------------------------------------- */
.ebook-box {
  background: linear-gradient(135deg, rgba(20, 85, 90, 0.06), rgba(168, 182, 161, 0.1));
  border-radius: var(--radius);
  padding: 3rem;
  text-align: center;
}
.ebook-box .ebook-text { max-width: 42rem; margin: 0 auto; }
.ebook-box .section-title { text-align: center !important; }
@media (min-width: 768px) {
  .ebook-box { padding: 3.5rem 4rem; }
}
.ebook-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 26rem;
  margin: 0 auto;
}
.ebook-form input {
  padding: 0.85rem 1rem;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  background: #ffffff;
  color: var(--floresta);
}
.ebook-form input:focus {
  outline: 2px solid var(--petroleo);
  outline-offset: 1px;
}
.ebook-form-note {
  font-size: 0.8125rem;
  color: rgba(52, 74, 61, 0.65);
  text-align: center;
}
.ebook-consent {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0.25rem 0 0.5rem;
}
.ebook-consent input[type="checkbox"] {
  margin-top: 0.2rem;
  flex-shrink: 0;
}
.ebook-consent label {
  font-size: 0.75rem;
  color: rgba(52, 74, 61, 0.7);
  line-height: 1.4;
}
.ebook-capture-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: start;
}
@media (min-width: 768px) {
  .ebook-capture-grid { grid-template-columns: 1fr 1fr; }
}
.ebook-capture-grid--center {
  grid-template-columns: 1fr;
}

/* --------------------------------------------------------------------------
   Hero da página de guias gratuitos (tratamento próprio, não genérico)
   -------------------------------------------------------------------------- */
.ebook-hero {
  background:
    radial-gradient(circle at 15% 20%, rgba(192, 91, 61, 0.25), transparent 45%),
    radial-gradient(circle at 85% 75%, rgba(168, 182, 161, 0.2), transparent 45%),
    linear-gradient(135deg, var(--petroleo) 0%, var(--petroleo-dark) 100%);
  color: var(--marfim);
  padding: 4.5rem 0;
  text-align: center;
}
.ebook-hero-inner { max-width: 42rem; margin: 0 auto; }
.ebook-hero-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--marfim);
  background: rgba(192, 91, 61, 0.35);
  border: 1px solid rgba(192, 91, 61, 0.6);
  padding: 0.3rem 0.9rem;
  border-radius: 999px;
  margin-bottom: 1.25rem;
}
.ebook-hero h1 {
  font-family: var(--font-serif);
  font-size: clamp(1.85rem, 4.5vw, 2.5rem);
  line-height: 1.25;
  color: var(--marfim);
  margin-bottom: 1rem;
}
.ebook-hero .lead-white {
  font-size: 1.0625rem;
  color: rgba(247, 243, 234, 0.9);
  line-height: 1.6;
}

/* --------------------------------------------------------------------------
   Guias gratuitos (kit de 2 PDFs) — capas reais como protagonistas
   -------------------------------------------------------------------------- */
.guide-grid {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.guide-card {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .guide-card { grid-template-columns: 15rem 1fr; }
  .guide-card--2 { grid-template-columns: 19rem 1fr; }
}

.guide-cover-wrap {
  background: var(--marfim);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.75rem;
}
.guide-cover {
  width: 100%;
  max-width: 11rem;
  border-radius: 6px;
  box-shadow: 0 12px 28px -8px rgba(20, 85, 90, 0.35);
  transform: rotate(-2deg);
}
.guide-cover--wide {
  max-width: 100%;
  transform: rotate(1deg);
}

.guide-body {
  padding: 1.75rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.guide-tag {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.guide-card--1 .guide-tag { color: var(--petroleo); }
.guide-card--2 .guide-tag { color: var(--terracota); }
.guide-card--1 { border-top: 4px solid var(--petroleo); }
.guide-card--2 { border-top: 4px solid var(--terracota); }

.guide-body h3 {
  font-family: var(--font-serif);
  color: var(--floresta);
  font-size: 1.25rem;
  line-height: 1.3;
  margin: 0;
}
.guide-subtitle {
  font-style: italic;
  color: rgba(52, 74, 61, 0.65);
  font-size: 0.875rem;
  margin: 0;
}
.guide-desc {
  color: var(--floresta);
  font-size: 0.9375rem;
  line-height: 1.65;
  margin: 0.25rem 0 0;
}
.guide-highlights {
  background: rgba(168, 182, 161, 0.16);
  border-radius: var(--radius);
  padding: 1.1rem 1.25rem;
  margin-top: 0.5rem;
}
.guide-highlights-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--floresta);
  margin: 0 0 0.5rem;
}
.check-list--compact { margin: 0; }
.check-list--compact li {
  font-size: 0.875rem;
  padding: 0.35rem 0;
}

/* --------------------------------------------------------------------------
   Próximo Encontro (Grupo de Estudos) — mini cartão de leitura
   -------------------------------------------------------------------------- */
.next-meeting-eyebrow {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--terracota);
  margin-bottom: 0.9rem;
}
.next-meeting-book {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background: rgba(20, 85, 90, 0.05);
  border-radius: var(--radius);
  margin-bottom: 1rem;
}
.next-meeting-cover {
  width: 5rem;
  height: auto;
  border-radius: 4px;
  box-shadow: var(--shadow-lg);
  flex-shrink: 0;
}
.next-meeting-split {
  display: flex;
  gap: 2.75rem;
  align-items: center;
  margin-bottom: 1.25rem;
}
@media (max-width: 520px) {
  .next-meeting-split { flex-direction: column; text-align: center; }
}
.next-meeting-book-col {
  flex-shrink: 0;
  text-align: center;
}
.next-meeting-cover-lg {
  width: 10rem;
  height: auto;
  border-radius: 5px;
  box-shadow: var(--shadow-lg);
  margin-bottom: 0.6rem;
}
.next-meeting-dates-col {
  flex: 1;
  min-width: 0;
  border-left: 1px solid var(--border);
  padding-left: 2rem;
}
@media (max-width: 520px) {
  .next-meeting-dates-col { border-left: none; padding-left: 0; }
}
.next-meeting-book-title {
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--petroleo);
  font-size: 1.125rem;
  margin: 0;
  line-height: 1.3;
}
.next-meeting-book-author {
  font-size: 0.9375rem;
  font-style: italic;
  color: rgba(52, 74, 61, 0.65);
  margin: 0.2rem 0 0;
}
.next-meeting-dates {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
}
.next-meeting-dates li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.875rem;
}
.next-meeting-dates li:last-child { border-bottom: none; }
.next-meeting-dates strong {
  color: var(--floresta);
  font-weight: 600;
}
.next-meeting-dates span {
  color: var(--terracota);
  font-weight: 600;
  font-family: var(--font-serif);
}

/* --------------------------------------------------------------------------
   Price box (Grupo de Estudos) + marcadores pendentes
   -------------------------------------------------------------------------- */
.price-box {
  margin-top: 1.5rem;
  padding: 1rem 1.25rem;
  background: rgba(20, 85, 90, 0.06);
  border-left: 4px solid var(--terracota);
  border-radius: var(--radius);
}
.price-tag {
  display: block;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--petroleo);
}
.price-note {
  display: block;
  font-size: 0.8125rem;
  color: var(--terracota);
  font-weight: 600;
  margin-top: 0.25rem;
}
.pendente {
  color: var(--terracota);
  font-weight: 700;
}
.checkout-note {
  font-size: 0.8125rem;
  color: rgba(52, 74, 61, 0.7);
  margin-top: 0.75rem;
  text-align: center;
}

/* --------------------------------------------------------------------------
   CTA
   -------------------------------------------------------------------------- */
.cta {
  padding: 6rem 0;
  background: var(--primary);
  color: var(--primary-foreground);
}
.cta-inner { text-align: center; }
.cta h2 {
  font-size: clamp(1.85rem, 4vw, 2.25rem);
  color: #ffffff;
  margin-bottom: 1.5rem;
}
.cta p {
  font-size: 1.25rem;
  max-width: 42rem;
  margin: 0 auto 2rem;
  opacity: 0.9;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.site-footer {
  background: var(--foreground);
  color: var(--background);
  padding: 3rem 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}
@media (min-width: 768px) {
  .footer-grid { grid-template-columns: repeat(4, 1fr); }
}
.footer-brand { margin-bottom: 1rem; }
.footer-brand .brand-name { color: var(--background); }
.footer-tag { font-size: 0.875rem; color: rgba(247, 243, 234, 0.7); }
.footer-assinatura {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 0.875rem;
  color: var(--salvia);
  margin-top: 0.5rem;
}

.site-footer h4 {
  color: var(--background);
  margin-bottom: 1rem;
  font-size: 1rem;
}
.site-footer ul { display: flex; flex-direction: column; gap: 0.5rem; }
.site-footer ul a {
  font-size: 0.875rem;
  color: rgba(247, 243, 234, 0.7);
  transition: color 0.2s;
}
.site-footer ul a:hover { color: var(--background); }

.footer-contact { margin-bottom: 0.75rem; }
.footer-contact a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: rgba(247, 243, 234, 0.7);
  transition: color 0.2s;
}
.footer-contact a:hover { color: var(--background); }

.footer-social { display: flex; gap: 0.75rem; }
.footer-social a {
  color: rgba(247, 243, 234, 0.7);
  transition: color 0.2s;
}
.footer-social a:hover { color: var(--background); }
.footer-social .icon { width: 1.25rem; height: 1.25rem; }

.footer-bottom {
  border-top: 1px solid rgba(247, 243, 234, 0.2);
  padding-top: 2rem;
  text-align: center;
  font-size: 0.875rem;
  color: rgba(247, 243, 234, 0.6);
}

/* --------------------------------------------------------------------------
   Diagnóstico do Conflito (quiz interativo)
   -------------------------------------------------------------------------- */
.quiz-hero {
  background: var(--petroleo);
  color: var(--marfim);
  padding: 4rem 0 3rem;
  text-align: center;
}
.quiz-hero-tag {
  display: inline-block;
  background: var(--terracota);
  color: var(--marfim);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.4rem 0.9rem;
  border-radius: 20px;
  margin-bottom: 1.25rem;
}
.quiz-hero h1 { color: var(--marfim); font-size: clamp(1.75rem, 4vw, 2.5rem); margin-bottom: 0.75rem; }
.quiz-hero p { color: rgba(247,243,234,0.88); max-width: 34rem; margin: 0 auto; font-size: 1.0625rem; line-height: 1.65; }
.quiz-hero .quiz-meta { color: var(--salvia); font-size: 0.8125rem; margin-top: 1rem; }

.quiz-wrap { max-width: 32rem; margin: -2.5rem auto 0; padding: 0 1.25rem 4rem; position: relative; z-index: 2; }
.quiz-card {
  background: var(--marfim);
  border-radius: 1.1rem;
  box-shadow: var(--shadow-lg);
  padding: 2rem 1.75rem;
  min-height: 420px;
  display: flex;
  flex-direction: column;
  animation: quiz-fade .35s ease;
}
@media (min-width: 640px) { .quiz-card { padding: 2.5rem 2.25rem; } }
@keyframes quiz-fade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.quiz-intro { text-align: left; }
.quiz-intro h2 { font-size: 1.5rem; margin-bottom: 0.75rem; }
.quiz-intro p { color: var(--muted-foreground); margin-bottom: 1.5rem; line-height: 1.6; }

.quiz-top { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
.quiz-progress-track { flex: 1; height: 6px; background: var(--muted); border-radius: 4px; overflow: hidden; }
.quiz-progress-fill { height: 100%; background: var(--terracota); border-radius: 4px; transition: width .35s ease; }
.quiz-progress-label { font-size: 0.75rem; color: var(--muted-foreground); white-space: nowrap; }
.quiz-reinforce { font-size: 0.8125rem; color: var(--terracota); font-weight: 600; margin: 0.75rem 0 1.25rem; min-height: 1rem; }
.quiz-question { font-family: var(--font-serif); font-weight: 700; font-size: 1.25rem; color: var(--primary); line-height: 1.4; margin-bottom: 1.25rem; }
.quiz-options { display: flex; flex-direction: column; gap: 0.625rem; }
.quiz-option {
  text-align: left;
  background: #ffffff;
  border: 1.5px solid var(--border);
  border-radius: 0.65rem;
  padding: 0.9rem 1rem;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  color: var(--foreground);
  cursor: pointer;
  line-height: 1.5;
  transition: border-color .15s ease, background .15s ease;
}
.quiz-option:hover { border-color: var(--terracota); background: rgba(192,91,61,0.05); }

.quiz-capture h2 { font-size: 1.375rem; margin-bottom: 0.6rem; }
.quiz-capture > p { color: var(--muted-foreground); margin-bottom: 1.5rem; line-height: 1.6; }
.quiz-gdpr-text { font-size: 0.6875rem; color: var(--muted-foreground); margin-bottom: 0.35rem; line-height: 1.5; }
.quiz-gdpr-text a { color: var(--terracota); }
.quiz-fineprint { font-size: 0.75rem; color: var(--muted-foreground); margin-top: 1rem; line-height: 1.5; }

.quiz-result-head { background: var(--petroleo); color: var(--marfim); padding: 2.25rem 1.75rem 1.75rem; margin: -2rem -1.75rem 1.5rem; border-radius: 1.1rem 1.1rem 0 0; text-align: center; }
@media (min-width: 640px) { .quiz-result-head { margin: -2.5rem -2.25rem 1.5rem; } }
.quiz-result-head .quiz-kicker { font-size: 0.75rem; color: var(--salvia); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.5rem; }
.quiz-result-head h2 { font-family: var(--font-serif); font-style: italic; font-weight: 700; font-size: 1.625rem; color: var(--marfim); margin: 0; }
.quiz-result-icons { display: flex; justify-content: center; gap: 0.5rem; margin: 0.75rem 0; }
.quiz-result-icons svg { width: 42px; height: 42px; }
.quiz-result-body p { color: var(--foreground); line-height: 1.65; margin-bottom: 1.5rem; }
.quiz-cta-stack { display: flex; flex-direction: column; gap: 0.65rem; margin-top: auto; }
.quiz-share-row { text-align: center; margin-top: 1.1rem; }
.quiz-share-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8125rem;
  color: var(--terracota);
  font-weight: 600;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.3rem 0.2rem;
}
.quiz-share-link:disabled { opacity: 0.6; cursor: default; }
.quiz-ig-icon { width: 16px; height: 16px; flex-shrink: 0; }
.quiz-share-status { font-size: 0.75rem; color: var(--muted-foreground); margin-top: 0.5rem; min-height: 1rem; line-height: 1.5; }
.quiz-restart { text-align: center; margin-top: 0.9rem; }
.quiz-restart button { background: none; border: none; font-size: 0.75rem; color: var(--muted-foreground); cursor: pointer; text-decoration: underline; }

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

/* ========================================================================== 
   VIM 2026 — Redesign editorial / institucional
   Atualização: 03/09/2026
   ========================================================================== */

:root {
  --vim-ink: #203b34;
  --vim-ink-2: #2d4a41;
  --vim-petrol: #14555a;
  --vim-clay: #b85d43;
  --vim-clay-dark: #9f4c36;
  --vim-sage: #aebbad;
  --vim-sage-soft: #e8ede5;
  --vim-ivory: #f6f2e9;
  --vim-paper: #fbfaf6;
  --vim-line: rgba(32, 59, 52, 0.14);
  --vim-shadow: 0 24px 70px rgba(32, 59, 52, 0.10);
  --vim-shadow-soft: 0 12px 35px rgba(32, 59, 52, 0.07);
  --container: 1180px;
  --radius: 0.85rem;
}

.site-v2 {
  background: var(--vim-paper);
  color: var(--vim-ink);
}
.site-v2 h1,
.site-v2 h2,
.site-v2 h3,
.site-v2 h4 { color: var(--vim-ink); }
.site-v2 .section { padding: clamp(4.5rem, 8vw, 7.25rem) 0; }
.site-v2 .section-white { background: #fff; }
.site-v2 .section-bg { background: var(--vim-ivory); }
.site-v2 .section-soft,
.site-v2 .section-soft-alt { background: var(--vim-sage-soft); }
.site-v2 .divider { display: none; }
.site-v2 .container { padding-left: clamp(1.25rem, 3vw, 2rem); padding-right: clamp(1.25rem, 3vw, 2rem); }
.site-v2 .section-title { color: var(--vim-ink); font-size: clamp(2rem, 4.2vw, 3.15rem); letter-spacing: -0.035em; }
.site-v2 .section-subtitle { color: rgba(32,59,52,.72); line-height: 1.75; }
.site-v2 .lead { color: rgba(32,59,52,.82); line-height: 1.78; }

/* lançamento global */
.launch-strip {
  background: var(--vim-ink);
  color: var(--vim-paper);
  position: relative;
  z-index: 60;
}
.launch-strip-inner {
  width: min(100% - 2rem, 1180px);
  min-height: 2.55rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  font-size: .77rem;
  letter-spacing: .01em;
  color: rgba(251,250,246,.88);
}
.launch-strip-label {
  display: inline-flex;
  align-items: center;
  padding: .2rem .52rem;
  border-radius: 999px;
  background: var(--vim-clay);
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-size: .62rem;
}
.launch-strip-link { color: var(--vim-sage); font-weight: 600; }
.launch-strip-inner:hover .launch-strip-link { color: #fff; }

/* header */
.site-v2 .site-header {
  top: 0;
  background: rgba(251,250,246,.94);
  border-bottom: 1px solid rgba(32,59,52,.10);
  backdrop-filter: blur(14px);
}
.site-v2 .header-inner { height: 4.75rem; }
.site-v2 .brand { gap: .72rem; }
.site-v2 .brand-badge {
  width: 2.48rem;
  height: 2.48rem;
  border-radius: 50%;
  background: var(--vim-ink);
  color: var(--vim-paper);
  font-family: var(--font-serif);
  font-size: .72rem;
  letter-spacing: .08em;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.16);
}
.brand-wordmark { display: flex; flex-direction: column; line-height: 1.08; gap: .18rem; }
.site-v2 .brand-name { color: var(--vim-ink); font-size: 1.04rem; letter-spacing: -.02em; }
.brand-descriptor {
  font-size: .58rem;
  color: rgba(32,59,52,.60);
  letter-spacing: .065em;
  text-transform: uppercase;
  white-space: nowrap;
}
.site-v2 .main-nav { gap: 1.35rem; align-items: center; }
.site-v2 .main-nav a {
  font-size: .78rem;
  font-weight: 600;
  color: rgba(32,59,52,.78);
}
.site-v2 .main-nav a:hover { color: var(--vim-clay); }
.site-v2 .main-nav .nav-featured {
  color: var(--vim-clay);
  position: relative;
}
.site-v2 .main-nav .nav-featured::after {
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--vim-clay);
  position: absolute;
  right: -.48rem;
  top: .18rem;
}
.site-v2 .header-actions .btn-primary {
  padding: .68rem 1rem;
  font-size: .76rem;
  border-radius: 999px;
}
.site-v2 .menu-toggle { color: var(--vim-ink); }

/* botões */
.site-v2 .btn {
  border-radius: 999px;
  font-weight: 650;
  letter-spacing: -.01em;
  min-height: 2.65rem;
}
.site-v2 .btn-lg { min-height: 3.15rem; padding: .9rem 1.45rem; }
.site-v2 .btn-primary { background: var(--vim-clay); color: #fff; }
.site-v2 .btn-primary:hover { background: var(--vim-clay-dark); }
.site-v2 .btn-outline { border-color: rgba(32,59,52,.24); color: var(--vim-ink); background: transparent; }
.site-v2 .btn-outline:hover { background: rgba(32,59,52,.05); border-color: var(--vim-ink); }
.btn-light { background: var(--vim-paper); color: var(--vim-ink); }
.btn-light:hover { background: #fff; }
.btn-dark { background: var(--vim-ink); color: var(--vim-paper); }
.btn-dark:hover { background: #142e28; }
.site-v2 .btn-outline-light { border-color: rgba(255,255,255,.4); color: #fff; }
.site-v2 .btn-outline-light:hover { background: rgba(255,255,255,.08); }
.text-link { color: var(--vim-clay); font-weight: 700; font-size: .94rem; }
.text-link:hover { color: var(--vim-clay-dark); }

/* utilitários editoriais */
.eyebrow {
  margin-bottom: 1rem;
  font-size: .69rem;
  line-height: 1.2;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--vim-clay);
}
.eyebrow-light { color: var(--vim-sage); }
.pill {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: .35rem .72rem;
  border: 1px solid rgba(32,59,52,.15);
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(32,59,52,.72);
  background: rgba(255,255,255,.4);
}
.pill-clay { border-color: transparent; background: var(--vim-clay); color: #fff; }
.pill-light { border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.10); color: #fff; }
.section-ivory { background: var(--vim-ivory); }
.section-sage { background: var(--vim-sage-soft); }
.section-intro { margin-bottom: clamp(2.7rem, 5vw, 4.5rem); }
.section-intro-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
}
.section-intro h2 {
  max-width: 12ch;
  font-size: clamp(2.15rem, 5vw, 3.75rem);
  line-height: 1.04;
  letter-spacing: -.045em;
  font-weight: 600;
}
.section-intro > p { color: rgba(32,59,52,.70); line-height: 1.8; font-size: 1.02rem; }

/* HOME — Hero */
.vim-hero {
  background: var(--vim-paper);
  padding: clamp(3.8rem, 8vw, 7.8rem) 0 clamp(4.5rem, 8vw, 7rem);
  overflow: hidden;
}
.vim-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(3rem, 7vw, 6.5rem);
  align-items: center;
}
.vim-hero-copy h1 {
  max-width: 9.5ch;
  margin-bottom: 1.5rem;
  font-size: clamp(3.25rem, 7.1vw, 6.2rem);
  font-weight: 500;
  line-height: .94;
  letter-spacing: -.065em;
}
.hero-lead {
  max-width: 41rem;
  font-size: clamp(1.04rem, 1.6vw, 1.24rem);
  line-height: 1.78;
  color: rgba(32,59,52,.76);
}
.hero-lead strong { color: var(--vim-ink); font-weight: 700; }
.vim-hero .hero-actions { margin-top: 2rem; }
.hero-footnote {
  max-width: 39rem;
  margin-top: 1.55rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--vim-line);
  font-size: .77rem;
  line-height: 1.65;
  color: rgba(32,59,52,.56);
}
.vim-hero-media {
  position: relative;
  margin: 0;
  min-height: 580px;
}
.vim-hero-media::before {
  content: "";
  position: absolute;
  width: 70%;
  aspect-ratio: 1;
  left: -11%;
  bottom: -12%;
  border-radius: 50%;
  background: rgba(184,93,67,.12);
  z-index: 0;
}
.vim-hero-media img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 580px;
  object-fit: cover;
  object-position: 59% center;
  border-radius: 16rem 16rem 1.4rem 1.4rem;
  box-shadow: var(--vim-shadow);
}
.hero-quote-card {
  position: absolute;
  z-index: 3;
  left: -2.5rem;
  bottom: 2.25rem;
  width: min(19rem, 68%);
  padding: 1.45rem 1.55rem;
  border: 1px solid rgba(32,59,52,.10);
  background: rgba(251,250,246,.94);
  backdrop-filter: blur(10px);
  box-shadow: var(--vim-shadow-soft);
}
.hero-quote-mark { display:block; font-family: var(--font-serif); color: var(--vim-clay); font-size: 2rem; line-height: .6; }
.hero-quote-card p { margin: .55rem 0 .35rem; font-family: var(--font-serif); font-size: 1.35rem; color: var(--vim-ink); }
.hero-quote-card > span:last-child { font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; color: rgba(32,59,52,.56); }

/* manifesto */
.manifesto-band { background: var(--vim-ink); color: var(--vim-paper); padding: clamp(3.5rem, 7vw, 5.8rem) 0; }
.manifesto-grid { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.manifesto-grid h2 { color: #fff; font-weight: 500; font-size: clamp(2rem, 4.4vw, 3.5rem); letter-spacing: -.045em; line-height: 1.05; max-width: 12ch; }
.manifesto-copy > p { color: rgba(251,250,246,.82); font-size: 1.13rem; line-height: 1.8; }
.manifesto-copy strong { color: #fff; }
.manifesto-tags { display:flex; flex-wrap:wrap; gap:.55rem; margin-top: 1.55rem; }
.manifesto-tags span { border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:.45rem .78rem; font-size:.69rem; color:rgba(255,255,255,.72); }

/* destaque Adv 360 */
.spotlight-section { padding-top: clamp(4rem, 8vw, 7rem); }
.launch-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(16rem, .65fr);
  overflow: hidden;
  background: var(--vim-petrol);
  color: #fff;
  box-shadow: var(--vim-shadow);
  border-radius: 1.4rem;
}
.launch-card-copy { padding: clamp(2.2rem, 5vw, 4.7rem); }
.launch-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; margin-bottom: 2.3rem; color:rgba(255,255,255,.70); font-size:.76rem; }
.launch-card .eyebrow { color: var(--vim-sage); }
.launch-card h2 { color: #fff; font-size: clamp(2.4rem, 5.2vw, 4.5rem); line-height: .98; letter-spacing: -.05em; font-weight: 500; max-width: 13ch; }
.launch-card h2 em { font-style: italic; font-weight: 400; color: rgba(255,255,255,.82); }
.launch-card-copy > p:not(.eyebrow) { max-width: 47rem; margin-top: 1.5rem; color: rgba(255,255,255,.78); line-height: 1.8; font-size: 1.02rem; }
.inline-proof-list { display:flex; gap:0; margin: 2.1rem 0 2.3rem; border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); max-width: 34rem; }
.inline-proof-list li { padding: 1rem 1.35rem 1rem 0; margin-right:1.35rem; display:flex; flex-direction:column; gap:.08rem; border-right:1px solid rgba(255,255,255,.16); }
.inline-proof-list li:last-child { border-right:0; }
.inline-proof-list strong { font-family:var(--font-serif); font-size:1.45rem; color:#fff; font-weight:500; }
.inline-proof-list span { font-size:.67rem; text-transform:uppercase; letter-spacing:.09em; color:rgba(255,255,255,.58); }
.launch-card-side {
  position: relative;
  min-height: 100%;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-end;
  padding: 2rem;
  background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.015));
  border-left:1px solid rgba(255,255,255,.10);
}
.launch-card-side::before {
  content:"";
  position:absolute;
  width: 25rem;
  height:25rem;
  border:1px solid rgba(255,255,255,.15);
  border-radius:50%;
  top:-8rem;
  right:-10rem;
}
.launch-card-side::after {
  content:"";
  position:absolute;
  width: 11rem;
  height:11rem;
  border-radius:50%;
  background:var(--vim-clay);
  right:-4rem;
  bottom:-4rem;
  opacity:.95;
}
.launch-number { position:relative; z-index:2; font-family:var(--font-serif); font-size:clamp(4.2rem, 8vw, 7.6rem); line-height:.85; letter-spacing:-.08em; color:rgba(255,255,255,.92); writing-mode:vertical-rl; transform:rotate(180deg); }
.launch-side-copy { position:relative; z-index:2; align-self:flex-start; text-transform:uppercase; letter-spacing:.13em; line-height:1.9; font-size:.65rem; color:rgba(255,255,255,.64); }

/* formações */
.formation-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:1rem; }
.formation-card {
  min-height: 410px;
  padding: 1.65rem;
  display:flex;
  flex-direction:column;
  border: 1px solid var(--vim-line);
  background: var(--vim-paper);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.formation-card:hover { transform: translateY(-4px); box-shadow: var(--vim-shadow-soft); border-color: rgba(32,59,52,.25); }
.formation-card-featured { background: var(--vim-ink); border-color: var(--vim-ink); }
.formation-card-featured h3, .formation-card-featured .formation-price { color:#fff; }
.formation-card-featured > p { color:rgba(255,255,255,.70); }
.formation-card-featured .pill { color:rgba(255,255,255,.72); border-color:rgba(255,255,255,.18); background:rgba(255,255,255,.05); }
.formation-card-featured .card-index { color:rgba(255,255,255,.30); }
.formation-card-featured .formation-card-bottom { border-color:rgba(255,255,255,.13); }
.formation-card-featured .formation-card-bottom a { color:var(--vim-sage); }
.formation-card-soft { background: var(--vim-sage-soft); }
.formation-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; }
.card-index { font-family:var(--font-serif); font-size:.9rem; color:rgba(32,59,52,.38); }
.formation-card h3 { margin-top:2.7rem; font-size:clamp(1.7rem, 2.6vw, 2.3rem); line-height:1.05; letter-spacing:-.04em; font-weight:500; max-width:10ch; }
.formation-card > p { margin-top:1rem; color:rgba(32,59,52,.67); line-height:1.7; font-size:.94rem; }
.formation-card-bottom { margin-top:auto; padding-top:1.35rem; border-top:1px solid var(--vim-line); display:flex; justify-content:space-between; align-items:end; gap:1rem; }
.formation-price { font-family:var(--font-serif); font-size:1.4rem; color:var(--vim-ink); }
.formation-card-bottom a { text-align:right; font-size:.76rem; color:var(--vim-clay); font-weight:700; }

/* organizações */
.org-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap: clamp(3rem,7vw,6.5rem); align-items:center; }
.org-media { position:relative; }
.org-media img { width:100%; min-height:520px; height:56vw; max-height:650px; object-fit:cover; border-radius: 1rem 10rem 1rem 1rem; box-shadow:var(--vim-shadow-soft); }
.org-media-label { position:absolute; left:1.4rem; bottom:1.4rem; max-width:18rem; padding:1rem 1.15rem; background:rgba(251,250,246,.94); color:var(--vim-ink); font-family:var(--font-serif); font-size:1.1rem; line-height:1.35; }
.org-copy h2 { font-size:clamp(2.3rem,4.8vw,3.9rem); line-height:1.02; letter-spacing:-.05em; font-weight:500; max-width:11ch; }
.org-copy > p { margin-top:1.35rem; color:rgba(32,59,52,.71); line-height:1.8; }
.org-list { margin:2rem 0; border-top:1px solid rgba(32,59,52,.17); }
.org-list > div { display:grid; grid-template-columns:2rem 1fr; gap:1rem; padding:.85rem 0; border-bottom:1px solid rgba(32,59,52,.17); }
.org-list span { font-family:var(--font-serif); color:var(--vim-clay); font-size:.78rem; }
.org-list strong { font-size:.93rem; font-weight:650; }

/* fundadores */
.founders-intro h2 { max-width:14ch; }
.founders-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.founder-card { position:relative; overflow:hidden; min-height:430px; background:var(--vim-ivory); }
.founder-card img { width:100%; height:430px; object-fit:cover; filter:saturate(.82); transition:transform .4s ease, filter .4s ease; }
.founder-card:hover img { transform:scale(1.015); filter:saturate(1); }
.founder-card > div { position:absolute; left:0; right:0; bottom:0; padding:3.8rem 1.25rem 1.25rem; background:linear-gradient(transparent,rgba(17,40,34,.88)); }
.founder-card h3 { color:#fff; font-size:1.22rem; margin:0; }
.founder-card p { color:rgba(255,255,255,.68); font-size:.73rem; text-transform:uppercase; letter-spacing:.08em; margin-top:.25rem; }
.founders-cta { margin-top:1.6rem; text-align:right; }

/* grupo de estudos */
.study-section { background: var(--vim-ink); color:#fff; }
.study-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:clamp(3rem,7vw,7rem); align-items:center; }
.study-copy h2 { color:#fff; max-width:9ch; font-size:clamp(2.7rem,5.4vw,4.7rem); line-height:.98; letter-spacing:-.055em; font-weight:500; }
.study-copy > p:not(.eyebrow) { margin-top:1.4rem; max-width:37rem; color:rgba(255,255,255,.72); line-height:1.8; }
.study-dates { display:flex; gap:.8rem; margin:2rem 0; }
.study-dates > div { width:9.4rem; min-height:8.8rem; padding:1rem; border:1px solid rgba(255,255,255,.18); display:flex; flex-direction:column; }
.study-dates span { font-family:var(--font-serif); font-size:2.7rem; line-height:1; color:#fff; }
.study-dates strong { font-size:.72rem; text-transform:uppercase; letter-spacing:.09em; color:var(--vim-sage); margin-top:.3rem; }
.study-dates small { margin-top:auto; color:rgba(255,255,255,.45); font-size:.62rem; }
.study-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.study-price { color:rgba(255,255,255,.55); font-size:.72rem; }
.study-proof { position:relative; padding-bottom:2.2rem; }
.study-proof img { width:100%; min-height:420px; object-fit:cover; box-shadow:0 26px 70px rgba(0,0,0,.18); }
.study-proof blockquote { position:relative; width:85%; margin:-3.25rem 0 0 auto; padding:1.35rem 1.5rem; background:var(--vim-paper); color:var(--vim-ink); font-family:var(--font-serif); font-size:1.2rem; line-height:1.45; }
.study-proof > p { margin:.55rem 0 0 15%; color:rgba(255,255,255,.48); font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; }

/* conteúdos gratuitos */
.free-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.free-card { min-height:350px; padding:2rem; border:1px solid var(--vim-line); background:#fff; display:flex; justify-content:space-between; gap:1.5rem; transition:transform .2s ease, box-shadow .2s ease; }
.free-card:hover { transform:translateY(-3px); box-shadow:var(--vim-shadow-soft); }
.free-card-dark { background:var(--vim-petrol); border-color:var(--vim-petrol); }
.free-card h3 { margin-top:2.6rem; max-width:11ch; font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.03; letter-spacing:-.045em; font-weight:500; }
.free-card p { margin-top:1rem; max-width:30rem; color:rgba(32,59,52,.68); line-height:1.7; }
.free-card-dark h3 { color:#fff; }
.free-card-dark p { color:rgba(255,255,255,.70); }
.free-card-arrow { align-self:flex-end; font-size:2.2rem; font-family:var(--font-serif); color:var(--vim-clay); }
.free-card-dark .free-card-arrow { color:var(--vim-sage); }

/* CTA final */
.closing-cta { background: var(--vim-clay); color:#fff; padding:clamp(4.5rem,8vw,7.4rem) 0; }
.closing-cta-grid { text-align:center; }
.closing-cta .eyebrow { color:rgba(255,255,255,.68); }
.closing-cta h2 { max-width:19ch; margin:0 auto; color:#fff; font-size:clamp(2.4rem,5.2vw,4.6rem); line-height:1.02; letter-spacing:-.052em; font-weight:500; }
.closing-actions { margin-top:2.2rem; display:flex; justify-content:center; gap:.8rem; flex-wrap:wrap; }

/* SUBPÁGINAS — hero, seções, tabelas, cards */
.site-v2 .course-hero {
  position:relative;
  overflow:hidden;
  padding: clamp(4.5rem, 8vw, 7rem) 0;
  background: var(--vim-ink);
  text-align:left;
}
.site-v2 .course-hero::before {
  content:"";
  position:absolute;
  width:34rem;
  height:34rem;
  border:1px solid rgba(255,255,255,.10);
  border-radius:50%;
  right:-8rem;
  top:-13rem;
}
.site-v2 .course-hero::after {
  content:"";
  position:absolute;
  width:13rem;
  height:13rem;
  border-radius:50%;
  background:rgba(184,93,67,.48);
  right:6%;
  bottom:-7rem;
}
.site-v2 .course-hero .container { position:relative; z-index:2; }
.site-v2 .course-hero h1 { max-width:14ch; margin:0 0 1.25rem; color:#fff; font-size:clamp(2.7rem,6vw,5rem); line-height:.98; letter-spacing:-.055em; font-weight:500; }
.site-v2 .course-hero .lead-white { max-width:45rem; margin:0; color:rgba(255,255,255,.76); font-size:1.08rem; line-height:1.75; }
.site-v2 .course-hero .tese-mae { max-width:39rem; margin:1.6rem 0; border-color:rgba(255,255,255,.14); color:rgba(255,255,255,.72); }
.site-v2 .course-hero .price-tag-white { color:#fff; margin-top:1.5rem; }
.site-v2 .course-hero .urgencia { color:var(--vim-sage); margin-top:1.1rem; font-size:.8rem; letter-spacing:.02em; }
.site-v2 .course-hero .btn { margin-top:1rem; }

.site-v2 .section-head { max-width:48rem; margin-bottom:3.2rem; }
.site-v2 .section-head .section-title { font-weight:500; }
.site-v2 .check-list { gap:.15rem; }
.site-v2 .check-list li { border-bottom:1px solid var(--vim-line); padding:1rem 0; }
.site-v2 .check { background:transparent; color:var(--vim-clay); font-weight:800; }
.site-v2 .por-que { background:var(--vim-sage-soft); border:0; border-left:3px solid var(--vim-clay); border-radius:0; padding:1.5rem; color:rgba(32,59,52,.82); }

.site-v2 .content-table { border:1px solid var(--vim-line); border-collapse:separate; border-spacing:0; background:#fff; box-shadow:var(--vim-shadow-soft); }
.site-v2 .content-table th { background:var(--vim-ink); padding:1rem 1.2rem; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.site-v2 .content-table td { padding:1rem 1.2rem; border-bottom:1px solid var(--vim-line); line-height:1.65; }
.site-v2 .content-table td:first-child { color:var(--vim-clay); width:auto; }
.site-v2 .content-table tr:last-child td { border-bottom:0; }

.site-v2 .format-grid { gap:.8rem; }
.site-v2 .format-item { background:#fff; border:1px solid var(--vim-line); border-left:0; padding:1.35rem; box-shadow:none; }
.site-v2 .format-item strong { color:var(--vim-ink); font-size:.95rem; }
.site-v2 .format-item span { color:rgba(32,59,52,.64); line-height:1.65; }

.site-v2 .course-preview-card { border:1px solid var(--vim-line); background:#fff; border-radius:0; padding:2rem; box-shadow:none; }
.site-v2 .course-preview-card--highlight { background:var(--vim-ink); border-color:var(--vim-ink); }
.site-v2 .course-preview-card--highlight h3,
.site-v2 .course-preview-card--highlight .course-preview-price { color:#fff; }
.site-v2 .course-preview-card--highlight p { color:rgba(255,255,255,.66); }
.site-v2 .course-preview-card--highlight .course-preview-tag { color:var(--vim-sage); background:rgba(255,255,255,.07); }
.site-v2 .course-preview-tag { color:var(--vim-clay); background:rgba(184,93,67,.08); }
.site-v2 .course-preview-card h3 { color:var(--vim-ink); font-weight:500; font-size:1.55rem; }
.site-v2 .course-preview-price { color:var(--vim-ink); }
.site-v2 .faq-item { padding:1.35rem 0; }
.site-v2 .faq-pergunta { color:var(--vim-ink); font-weight:700; }
.site-v2 .faq-resposta { border-left:2px solid var(--vim-sage); color:rgba(32,59,52,.73); }

/* páginas de ebook e quiz preservam o fluxo, mas entram no novo sistema */
.site-v2 .ebook-hero,
.site-v2 .quiz-hero { background:var(--vim-ink); }
.site-v2 .ebook-hero h1,
.site-v2 .quiz-hero h1 { color:#fff; font-weight:500; letter-spacing:-.04em; }
.site-v2 .ebook-capture-grid,
.site-v2 .quiz-card { border-color:var(--vim-line); box-shadow:var(--vim-shadow-soft); }
.site-v2 .ebook-box { background:var(--vim-sage-soft); border-radius:0; }

/* sobre */
.site-v2 .team-grid { gap:1rem; }
.site-v2 .team-card { border:1px solid var(--vim-line); border-radius:0; background:#fff; box-shadow:none; padding:0 0 1.65rem; overflow:hidden; }
.site-v2 .team-photo { width:100%; height:360px; object-fit:cover; margin:0 0 1.5rem; border-radius:0; }
.site-v2 .team-card h3,
.site-v2 .team-card .team-role,
.site-v2 .team-card p:not(.team-role) { margin-left:1.5rem; margin-right:1.5rem; }
.site-v2 .team-card h3 { font-weight:500; font-size:1.55rem; }
.site-v2 .team-card p:not(.team-role) { color:rgba(32,59,52,.72); }

/* CTA antigas das subpáginas */
.site-v2 .cta { background:var(--vim-clay); padding:clamp(4rem,7vw,6.5rem) 0; }
.site-v2 .cta h2 { font-weight:500; letter-spacing:-.04em; font-size:clamp(2.3rem,4.8vw,3.8rem); }
.site-v2 .cta p { font-size:1.05rem; line-height:1.75; }

/* footer */
.site-v2 .site-footer { background:#142e28; color:var(--vim-paper); padding:4.3rem 0 2rem; }
.footer-topline { display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; padding-bottom:2.4rem; border-bottom:1px solid rgba(255,255,255,.12); }
.site-v2 .footer-brand .brand-badge { background:var(--vim-paper); color:var(--vim-ink); }
.site-v2 .footer-brand .brand-name { color:#fff; }
.site-v2 .footer-brand .brand-descriptor { color:rgba(255,255,255,.42); }
.footer-manifesto { margin-top:.8rem; color:rgba(255,255,255,.55); font-family:var(--font-serif); font-style:italic; }
.footer-email { color:var(--vim-sage); font-size:.88rem; }
.footer-email:hover { color:#fff; }
.site-v2 .footer-grid-v2 { margin:2.8rem 0 2.4rem; }
.site-v2 .site-footer h4 { color:#fff; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; }
.site-v2 .site-footer ul { gap:.65rem; }
.site-v2 .site-footer ul a { color:rgba(255,255,255,.56); font-size:.82rem; }
.site-v2 .site-footer ul a:hover { color:#fff; }
.footer-bottom-v2 { display:flex; justify-content:space-between; text-align:left; padding-top:1.5rem; font-size:.7rem; }

/* responsividade */
@media (max-width: 1080px) {
  .site-v2 .main-nav { gap:.9rem; }
  .site-v2 .main-nav a { font-size:.72rem; }
  .site-v2 .header-actions .btn-primary { display:none; }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 7.5rem; }
  .launch-strip-inner { min-height:2.8rem; justify-content:flex-start; overflow:hidden; white-space:nowrap; }
  .launch-strip-link { margin-left:auto; }
  .site-v2 .header-inner { height:4.25rem; }
  .site-v2 .main-nav { display:none; }
  .site-v2 .menu-toggle { display:inline-flex; }
  .site-v2 .main-nav.is-open {
    display:flex;
    top:4.25rem;
    background:var(--vim-paper);
    border-color:var(--vim-line);
    padding:.5rem 1.25rem 1rem;
  }
  .site-v2 .main-nav.is-open a { padding:.8rem 0; border-top:1px solid var(--vim-line); font-size:.9rem; }
  .site-v2 .main-nav .nav-featured::after { display:none; }
  .vim-hero-grid,
  .manifesto-grid,
  .org-grid,
  .study-grid,
  .section-intro-split { grid-template-columns:1fr; }
  .vim-hero-copy h1 { max-width:10ch; }
  .vim-hero-media { min-height:auto; max-width:700px; }
  .vim-hero-media img { height:min(72vw,560px); }
  .hero-quote-card { left:1.2rem; }
  .launch-card { grid-template-columns:1fr; }
  .launch-card-side { min-height:190px; border-left:0; border-top:1px solid rgba(255,255,255,.10); flex-direction:row; }
  .launch-number { writing-mode:horizontal-tb; transform:none; }
  .formation-grid { grid-template-columns:1fr 1fr; }
  .formation-card:last-child { grid-column:1 / -1; min-height:330px; }
  .section-intro h2 { max-width:15ch; }
  .org-media { order:2; }
  .org-copy { order:1; }
  .org-media img { height:min(70vw,560px); min-height:420px; }
  .founders-grid { grid-template-columns:repeat(3,1fr); }
  .founder-card, .founder-card img { min-height:360px; height:360px; }
  .free-grid { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .launch-strip-inner { width:min(100% - 1.4rem,1180px); font-size:.68rem; gap:.45rem; }
  .launch-strip-label { font-size:.55rem; }
  .launch-strip-link { display:none; }
  .brand-descriptor { display:none; }
  .site-v2 .brand-badge { width:2.25rem; height:2.25rem; }
  .site-v2 .brand-name { font-size:1rem; }
  .vim-hero { padding-top:3.2rem; }
  .vim-hero-copy h1 { font-size:clamp(3rem,15vw,4.35rem); }
  .vim-hero .hero-actions { flex-direction:column; align-items:stretch; }
  .vim-hero-media img { height:92vw; border-radius:9rem 9rem .8rem .8rem; object-position:58% center; }
  .hero-quote-card { width:78%; left:.8rem; bottom:1rem; padding:1.1rem; }
  .manifesto-grid { gap:1.7rem; }
  .manifesto-tags { gap:.4rem; }
  .launch-card { border-radius:.9rem; }
  .launch-card-copy { padding:1.7rem; }
  .launch-card h2 { font-size:2.6rem; }
  .inline-proof-list { flex-wrap:wrap; }
  .inline-proof-list li { min-width:26%; margin-right:.8rem; padding-right:.8rem; }
  .launch-card-side { min-height:150px; padding:1.4rem; }
  .launch-number { font-size:4.4rem; }
  .formation-grid { grid-template-columns:1fr; }
  .formation-card,
  .formation-card:last-child { grid-column:auto; min-height:350px; }
  .section-intro-split { gap:1.25rem; }
  .section-intro h2 { font-size:2.45rem; }
  .org-copy h2 { font-size:2.7rem; }
  .org-media img { min-height:360px; height:105vw; border-radius:.8rem 5.5rem .8rem .8rem; }
  .founders-grid { grid-template-columns:1fr; }
  .founder-card, .founder-card img { min-height:480px; height:480px; }
  .founders-cta { text-align:left; }
  .study-dates > div { flex:1; width:auto; }
  .study-actions { align-items:flex-start; flex-direction:column; }
  .study-proof img { min-height:330px; }
  .study-proof blockquote { width:92%; font-size:1.05rem; }
  .free-card { min-height:310px; padding:1.5rem; }
  .closing-actions { flex-direction:column; align-items:stretch; }
  .footer-topline { flex-direction:column; align-items:flex-start; }
  .site-v2 .footer-grid-v2 { grid-template-columns:1fr 1fr; }
  .footer-bottom-v2 { flex-direction:column; gap:.45rem; }
  .site-v2 .course-hero { padding:3.7rem 0 4.2rem; }
  .site-v2 .course-hero h1 { font-size:clamp(2.65rem,13vw,4rem); }
  .site-v2 .content-table { display:block; overflow-x:auto; }
}

/* correções finais de contraste do sistema V2 */
.site-v2 .cta h2 { color: #fff; }
.site-v2 .course-preview-card--highlight h3 { color: #fff; }

@media (max-width: 640px) {
  .site-v2 .content-table {
    display: block;
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  .site-v2 .content-table tbody { display: block; }
  .site-v2 .content-table tr {
    display: block;
    margin-bottom: .7rem;
    padding: 1rem 1.05rem;
    border: 1px solid var(--vim-line);
    background: #fff;
  }
  .site-v2 .content-table tr:first-child { display: none; }
  .site-v2 .content-table td {
    display: block;
    padding: 0;
    border: 0;
    width: 100%;
  }
  .site-v2 .content-table td:first-child {
    margin-bottom: .35rem;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .08em;
  }
}


/* ========================================================================== 
   V3 — Grupo de Estudos, organizações e contatos — 2026-09-03
   ========================================================================== */
.footer-contact-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.75rem 1.15rem; max-width:34rem; }
.footer-contact-links a { color:var(--vim-sage); font-size:.82rem; white-space:nowrap; }
.footer-contact-links a:hover { color:#fff; }

.formation-hotmart-link { display:inline-flex !important; width:auto !important; align-self:flex-start; margin-top:1.15rem; padding:0 !important; background:transparent !important; border:0 !important; color:var(--vim-clay) !important; font-size:.72rem !important; font-weight:700 !important; letter-spacing:.04em; text-transform:uppercase; box-shadow:none !important; }
.formation-hotmart-link:hover { color:var(--vim-ink) !important; }
.formation-card-featured .formation-hotmart-link { color:var(--vim-sage) !important; }
.formation-card-featured .formation-hotmart-link:hover { color:#fff !important; }

/* Organizações: portfólio aberto, sem parecer catálogo fechado */
.org-v3-section { overflow:hidden; }
.org-v3-lead { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:clamp(2rem,7vw,7rem); align-items:end; margin-bottom:3rem; }
.org-v3-lead h2 { max-width:13ch; font-size:clamp(2.5rem,5vw,4.4rem); line-height:1; letter-spacing:-.055em; font-weight:500; }
.org-v3-lead-copy p { color:rgba(32,59,52,.72); line-height:1.78; }
.org-v3-lead-copy p + p { margin-top:1rem; }
.org-catalog { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid rgba(32,59,52,.18); border-left:1px solid rgba(32,59,52,.18); }
.org-catalog article { min-height:260px; padding:1.65rem; border-right:1px solid rgba(32,59,52,.18); border-bottom:1px solid rgba(32,59,52,.18); background:rgba(255,255,255,.18); }
.org-catalog article > span { display:block; margin-bottom:2.6rem; color:var(--vim-clay); font-family:var(--font-serif); font-size:.76rem; }
.org-catalog h3 { max-width:15ch; font-size:1.45rem; line-height:1.15; font-weight:500; }
.org-catalog p { margin-top:.85rem; color:rgba(32,59,52,.66); font-size:.85rem; line-height:1.68; }
.org-catalog-open { background:var(--vim-ink) !important; }
.org-catalog-open h3 { color:#fff; }
.org-catalog-open p { color:rgba(255,255,255,.68); }
.org-catalog-open > span { color:var(--vim-sage) !important; }
.org-v3-footer { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:2rem; }
.org-format-tags { display:flex; flex-wrap:wrap; gap:.55rem; }
.org-format-tags span { padding:.5rem .8rem; border:1px solid rgba(32,59,52,.16); border-radius:999px; color:rgba(32,59,52,.72); font-size:.7rem; }

/* Grupo de Estudos VIM */
.group-v3-section { background:var(--vim-paper); }
.group-v3-intro { margin-bottom:2.6rem; }
.group-v3-intro h2 { max-width:13ch; }
.group-v3-intro > div:last-child p { color:rgba(32,59,52,.7); line-height:1.78; }
.group-v3-status { margin-top:1rem; color:var(--vim-clay) !important; font-size:.82rem; }
.group-v3-feature { display:grid; grid-template-columns:1.05fr .95fr; background:var(--vim-ink); color:#fff; min-height:390px; }
.group-v3-book { display:flex; align-items:center; gap:2rem; padding:2.2rem; border-right:1px solid rgba(255,255,255,.12); }
.group-v3-book img { width:165px; max-width:38%; height:auto; box-shadow:0 20px 50px rgba(0,0,0,.26); }
.group-v3-book h3 { color:#fff; font-size:clamp(2rem,4vw,3.2rem); line-height:1; font-weight:500; margin:.2rem 0 .45rem; }
.group-v3-book p:not(.eyebrow) { color:var(--vim-sage); }
.group-v3-book span { display:block; max-width:23rem; margin-top:1.1rem; color:rgba(255,255,255,.58); font-size:.82rem; line-height:1.65; }
.group-v3-calendar { padding:2.2rem; display:flex; flex-direction:column; justify-content:center; }
.group-v3-dates { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin:1.25rem 0 1.5rem; }
.group-v3-dates > div { min-height:145px; padding:1rem; border:1px solid rgba(255,255,255,.16); display:flex; flex-direction:column; }
.group-v3-dates span { font-family:var(--font-serif); font-size:3.2rem; line-height:1; color:#fff; }
.group-v3-dates strong { margin-top:.3rem; color:var(--vim-sage); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; }
.group-v3-dates small { margin-top:auto; color:rgba(255,255,255,.42); font-size:.65rem; }
.group-v3-calendar .btn { align-self:flex-start; }
.group-v3-price { margin-top:.8rem; color:rgba(255,255,255,.46); font-size:.7rem; }
.group-v3-first-meeting { margin-top:3.2rem; }
.group-v3-first-meeting--editorial { max-width:860px; padding:clamp(1.8rem,4vw,3rem); background:var(--vim-ivory); border-left:3px solid var(--vim-clay); }
.group-v3-first-meeting h3 { max-width:18ch; margin-top:.35rem; font-size:clamp(2rem,4vw,3.1rem); line-height:1.02; font-weight:500; }
.group-v3-first-meeting p:not(.eyebrow) { max-width:720px; margin-top:1rem; color:rgba(32,59,52,.70); line-height:1.78; }
.group-recording-note { padding-top:1rem; border-top:1px solid var(--vim-line); font-size:.78rem; }
.group-v3-testimonials { margin-top:4.3rem; padding-top:3.2rem; border-top:1px solid var(--vim-line); }
.group-v3-testimonials-head { display:grid; grid-template-columns:.65fr 1fr 1fr; gap:2rem; align-items:end; margin-bottom:1.6rem; }
.group-v3-testimonials-head h3 { font-size:clamp(1.8rem,3vw,2.7rem); line-height:1.05; font-weight:500; }
.group-v3-testimonials-head > p:last-child { color:rgba(32,59,52,.58); font-size:.8rem; line-height:1.65; }
.testimonial-grid-v3 { gap:.85rem; }
.testimonial-grid-v3 .testimonial-card--quote { min-height:245px; display:flex; flex-direction:column; padding:1.6rem; border:1px solid var(--vim-line); box-shadow:none; }
.testimonial-grid-v3 .testimonial-quote { font-size:1rem; line-height:1.62; }
.testimonial-grid-v3 .testimonial-author { margin-top:auto; padding-top:1.1rem; font-style:normal; }
.group-v3-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.8rem 1rem; margin-top:2rem; }
.group-community-link { margin-left:auto; }

@media (max-width: 900px) {
  .org-v3-lead, .group-v3-feature { grid-template-columns:1fr; }
  .org-catalog { grid-template-columns:1fr 1fr; }
  .org-v3-footer { align-items:flex-start; flex-direction:column; }
  .group-v3-book { border-right:0; border-bottom:1px solid rgba(255,255,255,.12); }
  .group-v3-testimonials-head { grid-template-columns:1fr; gap:.5rem; }
  .footer-contact-links { justify-content:flex-start; }
  .group-community-link { margin-left:0; }
}
@media (max-width: 640px) {
  .org-catalog { grid-template-columns:1fr; }
  .org-catalog article { min-height:auto; }
  .org-catalog article > span { margin-bottom:1.6rem; }
  .group-v3-book { align-items:flex-start; padding:1.45rem; gap:1.2rem; }
  .group-v3-book img { width:110px; }
  .group-v3-calendar { padding:1.45rem; }
  .group-v3-dates span { font-size:2.7rem; }
  .group-v3-first-meeting { margin-top:2.2rem; }
  .testimonial-grid-v3 .testimonial-card--quote { min-height:auto; }
}
