/* Space Grotesk (regular 400) — woff2 em assets/fonts, latin + latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/space-grotesk-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/space-grotesk-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('fonts/hanken-grotesk-var.woff2') format('woff2');
}

/* ══════════════════════════════════════════════════
   MeDS tokens (Style Dictionary — semantic + base)
   ══════════════════════════════════════════════════ */
:root {
  --meds-surface-page: #FFFFFF;
  --meds-surface-default: #FFFFFF;
  --meds-surface-subtle: #F2F2F2;
  --meds-text-primary: #212122;
  --meds-text-secondary: #848381;
  --meds-text-tertiary: #C2C2C2;
  --meds-text-on-brand: #212122;
  --meds-text-inverse: #FFFFFF; /* texto sobre superfícies escuras (vídeo) */
  --meds-border-subtle: #F2F2F2;
  --meds-border-default: #E0E0E0;
  --meds-interactive-primary-default: #00D47C;
  --meds-interactive-primary-hover: #00B468;
  /* Brand & accent (MeDS semantic) */
  --meds-surface-brand-default: #00D47C;
  --meds-surface-brand-subtle: #E6FFF4;
  --meds-surface-accent-default: #023836;
  --meds-surface-accent-subtle: #E1EDED;
  --meds-text-brand: #038F52;
  --meds-text-accent: #023836;
  --meds-font-family-sans: 'Hanken Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --meds-transition-fast: 150ms ease-in-out;
  --meds-transition-normal: 250ms ease-in-out;

  /* Type scale (MeDS base) */
  --meds-font-size-2xs: 8.33px;
  --meds-font-size-xs: 10px;
  --meds-font-size-sm: 12px;
  --meds-font-size-md: 14.4px;
  --meds-font-size-lg: 17.28px;
  --meds-font-size-xl: 20.74px;
  --meds-font-size-2xl: 24.88px;
  --meds-font-size-3xl: 29.86px;
  --meds-font-size-4xl: 35.83px;
  --meds-font-size-5xl: 43px;
  --meds-font-size-6xl: 51.6px;
  --meds-line-height-none: 1;
  --meds-line-height-tight: 1.1;      /* 110% — displays grandes */
  --meds-line-height-snug: 1.2;       /* 120% — títulos */
  --meds-line-height-heading: 1.3;    /* 130% — subtítulos */
  --meds-line-height-normal: 1.4;     /* 140% — texto de apoio */
  --meds-line-height-body: 1.5;       /* 150% — corpo */
  --meds-line-height-relaxed: 1.6;    /* 160% — texto longo */

  --meds-font-weight-regular: 400;
  --meds-font-weight-medium: 500;
  --meds-font-weight-semibold: 600;
  --meds-font-weight-bold: 700;

  /* Spacing & radius (MeDS base) */
  --meds-spacing-space-1: 2px;
  --meds-spacing-space-2: 4px;
  --meds-spacing-space-3: 6px;
  --meds-spacing-space-4: 8px;
  --meds-spacing-space-5: 10px;
  --meds-spacing-space-6: 12px;
  --meds-spacing-space-8: 16px;
  --meds-spacing-space-10: 20px;
  --meds-spacing-space-12: 24px;
  --meds-spacing-space-16: 32px;
  --meds-spacing-space-20: 40px;
  --meds-spacing-space-24: 48px;
  --meds-spacing-space-32: 64px;
  --meds-spacing-space-40: 80px;
  --meds-spacing-space-48: 96px;
  --meds-spacing-space-64: 128px;
  --meds-spacing-radius-badge-tag: 8px;

  /* Headline navy — TODO: confirmar token oficial da marca */
  --medza-ink: #22364A;

  /* Info (usado no degradê do CTA) — TODO: confirmar valor oficial do MeDS */
  --meds-color-info-300: #1E7CA6;
  --agent-color: #9B72CF;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }   /* garante que hidden vence display do CSS */
html {
  color-scheme: light;
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}
body {
  position: relative;
  font-family: var(--meds-font-family-sans);
  background: var(--meds-surface-page);
  color: var(--meds-text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* Glow do header — SVG exportado do Figma (gradiente exato do design) */
body::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 60.25vw;               /* proporção do frame do Figma (1056/1753) */
  z-index: -1;
  pointer-events: none;
  background-image: url('img/header-bg.svg');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  /* morre suave na base (o bloco termina atrás do vídeo) */
  -webkit-mask-image: linear-gradient(180deg, #000 84%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 84%, transparent 100%);
}
@media (max-width: 768px) {
  body::before { height: 950px; }
}

/* ═══ Animações de entrada (no load) ═══ */
@keyframes heroRise {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes heroDrop {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes heroZoom {
  from { opacity: 0; transform: translateY(34px) scale(0.985); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.nav                { animation: heroDrop 0.7s cubic-bezier(.2,.65,.3,1) both; }
.hero-headline .line{ display: block; animation: heroRise 0.8s cubic-bezier(.2,.65,.3,1) both; }
.hero-headline .line:nth-child(1) { animation-delay: 0.15s; }
.hero-headline .line:nth-child(2) { animation-delay: 0.28s; }
.hero-sentence      { animation: heroRise 0.8s cubic-bezier(.2,.65,.3,1) both; animation-delay: 0.46s; }
.hero-cta-desc      { animation: heroRise 0.75s cubic-bezier(.2,.65,.3,1) both; animation-delay: 0.54s; }
.hero-cta           { animation: heroRise 0.75s cubic-bezier(.2,.65,.3,1) both; animation-delay: 0.62s; }
.manifesto-box      { animation: heroZoom 1s cubic-bezier(.2,.65,.3,1) both; animation-delay: 0.72s; }

/* ═══ Reveal on scroll (sections) — mesma curva da intro ═══ */
@keyframes rvRise {
  from { opacity: 0; transform: translateY(26px); }
  to   { opacity: 1; transform: translateY(0); }
}
.rv    { opacity: 0; }
.rv-in { animation: rvRise 0.75s cubic-bezier(.2,.65,.3,1) both; }

@media (prefers-reduced-motion: reduce) {
  .nav, .hero-headline .line, .hero-sentence, .hero-cta-desc, .hero-cta, .manifesto-box {
    animation: none !important;
  }
}

/* ─── Nav ─── */
.nav {
  max-width: 1720px; margin: 0 auto;
  /* grid de 3 colunas em vez de flex + links absolutos: com as colunas no
     fluxo, o menu não tem como passar por cima do botão em largura apertada
     (colidia entre 1101px e ~1250px). */
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 36px 56px;
}
.nav-logo { display: flex; align-items: center; text-decoration: none; }
.nav-logo svg, .nav-logo img { height: 26px; width: auto; display: block; }

.nav-links {
  display: flex; gap: 44px; list-style: none;
  justify-self: center;
}
.nav { position: relative; }
.nav-links a {
  font-size: 15.5px; font-weight: 500; color: var(--meds-text-primary);
  text-decoration: none; transition: color var(--meds-transition-fast);
}
.nav-links a:hover { color: var(--meds-text-secondary); }

.nav-actions { display: flex; align-items: center; gap: 28px; justify-self: end; }
.nav-btn {
  font-size: 14.5px; font-weight: 500; color: var(--meds-text-primary);
  text-decoration: none;
  padding: 11px 22px;
  border: 1.5px solid var(--meds-interactive-primary-default);
  border-radius: 9999px;
  background: transparent;
  transition: all var(--meds-transition-fast);
}
.nav-btn:hover { background: var(--meds-interactive-primary-default); }
.nav-btn--text { border: none; padding: 0; white-space: nowrap; }
.nav-btn--text:hover { background: transparent; color: var(--meds-text-secondary); }

/* ─── Hero ─── */
.hero {
  max-width: 1720px; margin: 0 auto;
  padding: 88px 120px 88px;
  position: relative;
  display: flex;
  align-items: stretch;      /* colunas com a mesma altura */
  gap: 48px;
}
/* Colunas: esquerda = headline (topo) + agente (base);
   direita = texto + CTA agrupados na base (gap 24px) */
.hero-col {
  display: flex;
  flex-direction: column;
}
.hero-col--lead { flex: 1 1 auto; min-width: 0; justify-content: flex-start; }
.hero-col--aside {
  flex: 0 0 auto;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 16px;
}

.hero-headline {
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-6xl); /* 51.6px */
  font-weight: var(--meds-font-weight-regular); /* 400 */
  line-height: 1.14;
  letter-spacing: -0.04em; /* -4% */
  color: var(--meds-text-primary);
  max-width: 900px;
}

/* ─── Frase do agente ("Deixe a [avatar] Clara ...") + phill ─── */
.hero-sentence {
  margin-top: 24px;
  display: flex; align-items: center; gap: 24px; flex-wrap: wrap;
}

.agent-slot {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: var(--meds-font-size-lg); /* 17.28px */
  color: var(--meds-text-primary);
  cursor: default;
  opacity: 1;
  transition: opacity 0.18s ease;
}
/* Largura fixa (= texto mais longo) — a badge cola perto sem "dançar" ao trocar */
.agent-text { display: inline-block; width: 340px; white-space: nowrap; }
.agent-article--in { display: none; } /* usado só no mobile (avatar → texto) */

.agent-avatar {
  width: 46px; height: 46px; border-radius: 50%;
  overflow: hidden; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.2s ease;
}
.agent-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.agent-avatar svg { width: 100%; height: 100%; display: block; }
.agent-slot:hover .agent-avatar { transform: scale(1.06); }

/* Fade rápido do grupo ao trocar (a mágica fica por conta das letras) */
.agent-slot.is-swapping { opacity: 0; }

/* Nome do agente: sólido, bold, cor primary */
.agent-name { font-weight: var(--meds-font-weight-bold); color: var(--meds-text-primary); }

/* ─── Efeito "mágico": cada letra materializa da esquerda p/ direita ─── */
.agent-text .word { display: inline-block; white-space: nowrap; }
.agent-text .char {
  display: inline-block;
  opacity: 0;
  filter: blur(7px);
  transform: translateY(0.12em);
  animation: charIn 0.55s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes charIn {
  to { opacity: 1; filter: blur(0); transform: translateY(0); }
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: var(--meds-font-size-sm); /* 12px */
  font-weight: 500;
  color: var(--meds-text-primary);
  padding: 8px 16px;
  border: 1px solid var(--meds-border-default);
  border-radius: 9999px;
  white-space: nowrap;
  cursor: default;
}

/* Bolinha "ao vivo" — verde da marca, com halo pulsando */
.badge-dot {
  position: relative;
  width: 10px; height: 10px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--meds-interactive-primary-default);
}
.badge-dot::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--meds-interactive-primary-default);
  animation: badgeDotPulse 1.8s ease-out infinite;
}
@keyframes badgeDotPulse {
  0%   { transform: scale(1); opacity: 0.7; }
  75%  { opacity: 0; }
  100% { transform: scale(7); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .badge-dot::before { animation: none; }
}

/* Grupo à direita: texto de apoio acima do CTA */
.hero-cta-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 22px;
}
.hero-cta-desc {
  max-width: 463px;
  font-size: 17.28px;
  line-height: 1.5;
  color: var(--meds-text-primary);
}

.hero-cta {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--meds-font-family-sans);
  font-size: 15.5px; font-weight: 600;
  padding: 18px 34px;
  border-radius: 9999px; border: none;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-text-on-brand);
  cursor: pointer; text-decoration: none;
  transition: background var(--meds-transition-fast);
  white-space: nowrap; flex-shrink: 0;
}
.hero-cta:hover { background: var(--meds-interactive-primary-hover); }
.hero-cta svg {
  width: 17px; height: 17px; stroke: currentColor;
  fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
}

/* ─── Task cards — ocultos por enquanto (código mantido p/ uso futuro) ─── */
.task-cards {
  display: none;
  position: absolute;
  left: 46%;
  bottom: -8px;
  flex-direction: column-reverse;
  gap: 12px;
  pointer-events: none;
  z-index: 50;
}

.task-card {
  width: 360px;
  padding: 16px 18px;
  background: var(--meds-surface-default);
  border: 1px solid var(--meds-border-default);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06);
  opacity: 0;
  transform: translateY(34px) scale(0.97);
  transition: opacity 0.45s ease, transform 0.55s cubic-bezier(.2,.7,.2,1);
}
/* Surgem um por vez, de baixo (nth-1) para cima (nth-3) */
.task-cards.visible .task-card { opacity: 1; transform: translateY(0) scale(1); }
.task-card:nth-child(1) { transition-delay: 0.05s; }
.task-card:nth-child(2) { transition-delay: 0.30s; margin-left: 34px; }
.task-card:nth-child(3) { transition-delay: 0.55s; margin-left: 68px; }

.task-card-title { font-size: 14px; font-weight: 600; color: var(--meds-text-primary); margin-bottom: 4px; }
.task-card-sub { font-size: 12.5px; color: var(--meds-text-secondary); margin-bottom: 10px; }
.task-card-footer { display: flex; align-items: center; justify-content: space-between; }
.task-card-progress {
  display: flex; align-items: center; gap: 6px;
  font-size: 11.5px; color: var(--meds-text-secondary); font-weight: 500;
}
.task-card-dot { width: 8px; height: 8px; border-radius: 50%; }
.task-card-avatar { width: 26px; height: 26px; border-radius: 50%; overflow: hidden; }
.task-card-avatar svg, .task-card-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; }

/* ─── Manifesto — vídeo que expande p/ tela cheia conforme o scroll ─── */
.manifesto {
  position: relative;
  max-width: 1720px;
  margin: 24px auto 0;
  padding: 0 120px;
}
.manifesto-pin {
  display: flex;
  justify-content: center;       /* box centralizado na coluna de conteúdo */
}
.manifesto-box {
  position: relative;
  width: 100%;
  max-width: 1480px;
  height: 660px;
  border-radius: 20px;
  overflow: hidden;
  background: #0b0b0f;
  box-shadow: 0 30px 60px -24px rgba(0,0,0,0.35);
}
.manifesto-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.hero-photo-gradient {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.0) 42%, rgba(0,0,0,0.48) 100%);
  z-index: 1;
}
/* Vidro fosco permanente sobre o vídeo (texto fica nítido por cima) */
.manifesto-glass {
  position: absolute; inset: 0;
  z-index: 1;
  pointer-events: none;
  background-color: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px) saturate(1.15);
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
}
/* Vignette no hover — escurece os cantos p/ dentro, destacando o centro */
.manifesto-box::after {
  content: '';
  position: absolute; inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(ellipse at center,
    rgba(0,0,0,0) 8%,
    rgba(0,0,0,0.55) 42%,
    rgba(0,0,0,0.95) 100%);
  opacity: 0;
  transition: opacity 0.55s ease;
}
.manifesto-box:hover::after { opacity: 1; }
.manifesto-content {
  position: absolute; inset: 0; z-index: 2;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;   /* centralizado H e V */
  gap: 30px;
  padding: 24px;
  text-align: center;
}
.manifesto-text {
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-3xl); /* 29.86px */
  font-weight: var(--meds-font-weight-regular); /* 400 */
  color: var(--meds-text-inverse);
  letter-spacing: -0.01em;
  line-height: 1.25;
  max-width: 920px;
  text-shadow: 0 1px 16px rgba(0,0,0,0.35);
}
.manifesto-bottom { display: flex; align-items: center; gap: 20px; }
.hero-photo-logo { height: 24px; width: auto; display: block; }
.hero-photo-btn {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--meds-font-family-sans);
  font-size: 13.5px; font-weight: 600;
  padding: 10px 20px; border-radius: 9999px;
  background: rgba(0,0,0,0.25);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  border: 1.5px solid rgba(255,255,255,0.9);
  color: #fff; cursor: pointer; text-decoration: none;
  transition: background var(--meds-transition-fast);
}
.hero-photo-btn:hover { background: rgba(0,0,0,0.45); }
.hero-photo-btn .play {
  width: 20px; height: 20px; border-radius: 50%;
  background: rgba(255,255,255,0.22);       /* play translúcido */
  display: inline-flex; align-items: center; justify-content: center;
}
.hero-photo-btn .play svg { width: 8px; height: 8px; fill: #FFFFFF; margin-left: 1px; }

/* ─── Planos e preços ─── */
.plans {
  max-width: 1720px;
  margin: 96px auto 0;
  padding: 0 120px var(--meds-spacing-space-64);
}
.plans-head {
  text-align: center;
  margin-bottom: var(--meds-spacing-space-24);
}
.plans-title {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-4xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.plans-grid {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--meds-spacing-space-12);
  align-items: stretch;
}
.plan-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: var(--meds-spacing-space-16);
  background: var(--meds-surface-default);
  border: 1px solid var(--meds-border-default);
  border-radius: var(--meds-spacing-radius-card-lg, 24px);
  transition: transform 0.25s cubic-bezier(.2,.65,.3,1), box-shadow 0.25s cubic-bezier(.2,.65,.3,1);
}
.plan-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -20px rgba(2, 56, 54, 0.18);
}
.plan-card--featured:hover {
  box-shadow: 0 28px 56px -20px rgba(2, 56, 54, 0.38);
}
.plan-card h3 {
  margin: 0 0 var(--meds-spacing-space-4);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-regular);
  color: var(--meds-text-primary);
}
.plan-audience {
  margin: 0;
  font-size: var(--meds-font-size-md);
  line-height: 1.5;
  color: var(--meds-text-secondary);
  min-height: 44px;
}
.plan-price {
  margin: var(--meds-spacing-space-10) 0 var(--meds-spacing-space-10);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  color: var(--meds-text-primary);
}
.plan-price strong {
  font-size: var(--meds-font-size-3xl);
  font-weight: var(--meds-font-weight-regular);
  letter-spacing: -0.02em;
}
.plan-price span {
  font-size: var(--meds-font-size-md);
  color: var(--meds-text-secondary);
}
.plan-list-intro {
  margin: 0 0 var(--meds-spacing-space-6);
  font-size: var(--meds-font-size-md);
  font-style: italic;
  color: var(--meds-text-secondary);
}
.plan-list {
  margin: 0 0 var(--meds-spacing-space-16);
  padding: 0;
  list-style: none;
  flex: 1;
}
.plan-list li {
  position: relative;
  padding-left: 26px;
  margin-bottom: var(--meds-spacing-space-6);
  font-size: var(--meds-font-size-md);
  line-height: 1.4;
  color: var(--meds-text-secondary);
}
.plan-list li::before {
  content: '';
  position: absolute;
  left: 0; top: 3px;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--meds-surface-brand-subtle, #E6FFF4);
}
.plan-list li::after {
  content: '';
  position: absolute;
  left: 3.5px; top: 7px;
  width: 7px; height: 4px;
  border-left: 1.5px solid var(--meds-text-brand, #038F52);
  border-bottom: 1.5px solid var(--meds-text-brand, #038F52);
  transform: rotate(-45deg);
}
.plan-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  border-radius: 9999px;
  font-family: var(--meds-font-family-sans);
  font-size: 14.5px;
  font-weight: 600;
  text-decoration: none;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-text-on-brand);
  transition: background var(--meds-transition-fast);
}
.plan-cta:hover { background: var(--meds-interactive-primary-hover); }
.plan-cta--ghost {
  background: transparent;
  border: 1.5px solid var(--meds-border-default);
  color: var(--meds-text-primary);
}
.plan-cta--ghost:hover { background: var(--meds-surface-page); border-color: var(--meds-text-secondary); }
.plan-demo-link {
  display: block;
  margin-top: var(--meds-spacing-space-12, 12px);
  text-align: center;
  font-family: var(--meds-font-family-sans);
  font-size: 13px;
  color: var(--meds-text-secondary);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.plan-demo-link:hover { color: var(--meds-text-primary); }

/* Módulos adicionais — acordeão dentro do card; mexe no preço do próprio plano */
.plan-mods {
  margin-bottom: var(--meds-spacing-space-8);
  border-top: 1px solid var(--meds-border-subtle);
}
.plan-mods-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--meds-spacing-space-8);
  padding: var(--meds-spacing-space-8) 0;
  border: none;
  background: transparent;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
  color: var(--meds-text-primary);
  cursor: pointer;
  text-align: left;
}
.plan-mods-chev {
  width: 8px; height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--meds-transition-fast);
  flex-shrink: 0;
}
.plan-mods.open .plan-mods-chev { transform: rotate(225deg); }
.plan-mods-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s cubic-bezier(.2,.65,.3,1);
}
.plan-mods.open .plan-mods-body { grid-template-rows: 1fr; }
.plan-mods-inner { overflow: hidden; }
/* variante escura (card Mais) */
.plan-card--featured .plan-mods { border-color: rgba(255,255,255,0.15); }
.plan-card--featured .plan-mods-toggle { color: #FFFFFF; }
.plan-card--featured .plan-addon { border-color: rgba(255,255,255,0.12); }
.plan-card--featured .plan-addon-info strong { color: #FFFFFF; }
.plan-card--featured .plan-addon-info span { color: rgba(255,255,255,0.7); }
.plan-card--featured .addon-step {
  background: transparent;
  border-color: rgba(255,255,255,0.35);
  color: #FFFFFF;
}
.plan-card--featured .addon-qty { color: #FFFFFF; }
.plan-card--featured .addon-toggle { background: rgba(255,255,255,0.25); }
.plan-card--featured .addon-toggle[aria-pressed="true"] { background: var(--meds-interactive-primary-default); }
.plan-addon {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--meds-spacing-space-12);
  padding: var(--meds-spacing-space-8) 0;
  border-top: 1px solid var(--meds-border-subtle);
}
.plan-addon-info { display: flex; flex-direction: column; gap: 2px; }
.plan-addon-info strong {
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-primary);
}
.plan-addon-info span {
  font-size: var(--meds-font-size-sm);
  color: var(--meds-text-secondary);
}
/* stepper */
.plan-addon-stepper {
  display: inline-flex;
  align-items: center;
  gap: var(--meds-spacing-space-6);
}
.addon-step {
  width: 32px; height: 32px;
  border: 1px solid var(--meds-border-default);
  border-radius: 50%;
  background: var(--meds-surface-page);
  color: var(--meds-text-primary);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: border-color var(--meds-transition-fast), background var(--meds-transition-fast);
}
.addon-step:hover { border-color: var(--meds-text-secondary); }
.addon-qty {
  min-width: 24px;
  text-align: center;
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
  font-variant-numeric: tabular-nums;
  color: var(--meds-text-primary);
}
/* toggle */
.addon-toggle {
  flex-shrink: 0;
  width: 44px; height: 26px;
  padding: 0;
  border: none;
  border-radius: 9999px;
  background: var(--meds-border-default);
  position: relative;
  cursor: pointer;
  transition: background var(--meds-transition-fast);
}
.addon-toggle::after {
  content: '';
  position: absolute;
  top: 3px; left: 3px;
  width: 20px; height: 20px;
  border-radius: 50%;
  background: #FFFFFF;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transition: transform var(--meds-transition-fast);
}
.addon-toggle[aria-pressed="true"] { background: var(--meds-interactive-primary-default); }
.addon-toggle[aria-pressed="true"]::after { transform: translateX(18px); }

/* agente individual: 1 agente por R$ 400/mês */
.plan-solo {
  max-width: 1080px;
  margin: var(--meds-spacing-space-16) auto 0;
  padding: var(--meds-spacing-space-16) var(--meds-spacing-space-24);
  background: var(--meds-surface-page);
  border: 1px solid var(--meds-border-default);
  border-radius: var(--meds-spacing-radius-card-lg, 24px);
}
.plan-solo-head {
  text-align: center;
  cursor: pointer;
}
.plan-solo-head h3 {
  margin: 0 0 var(--meds-spacing-space-3);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-regular);
  color: var(--meds-text-primary);
}
.plan-solo-head p {
  margin: 0;
  font-size: var(--meds-font-size-md);
  color: var(--meds-text-secondary);
}
.plan-solo-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s ease;
}
.plan-solo-body.open { grid-template-rows: 1fr; }
.plan-solo-inner {
  overflow: hidden;
}
.plan-solo-picker {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--meds-spacing-space-5);
  padding-top: var(--meds-spacing-space-12);
}
.solo-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--meds-spacing-space-4);
  padding: var(--meds-spacing-space-8) var(--meds-spacing-space-5);
  border-radius: 16px;
  border: 1.5px solid var(--meds-border-default);
  background: var(--meds-surface-default);
  cursor: pointer;
  transition: border-color var(--meds-transition-fast), background var(--meds-transition-fast), box-shadow var(--meds-transition-fast);
}
.solo-card img {
  width: 48px; height: 48px;
  border-radius: 50%;
  display: block;
}
.solo-card-name {
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-md);
  font-weight: 600;
  color: var(--meds-text-primary);
  line-height: 1.2;
}
.solo-card-role {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--meds-text-primary);
  line-height: 1.2;
}
.solo-card-desc {
  font-size: var(--meds-font-size-sm);
  color: var(--meds-text-secondary);
  line-height: 1.35;
}
.solo-card:hover { border-color: var(--meds-text-tertiary); }
.solo-card.active {
  border-color: var(--meds-interactive-primary-default);
  background: var(--meds-surface-brand-subtle, #E6FFF4);
  box-shadow: 0 0 0 1px var(--meds-interactive-primary-default);
}
.plan-solo-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--meds-spacing-space-12);
  margin-top: var(--meds-spacing-space-12);
}
.plan-solo-foot .plan-price { margin: 0; }

/* destaque: card escuro, como os cards do time */
.plan-card--featured {
  background: var(--meds-surface-accent-default);
  border-color: var(--meds-surface-accent-default);
}
.plan-card--featured h3,
.plan-card--featured .plan-price { color: var(--meds-text-inverse); }
.plan-card--featured .plan-audience,
.plan-card--featured .plan-price span,
.plan-card--featured .plan-list-intro,
.plan-card--featured .plan-list li { color: rgba(255, 255, 255, 0.78); }
.plan-card--featured .plan-list li::before { background: rgba(0, 212, 124, 0.18); }
.plan-card--featured .plan-list li::after {
  border-color: var(--meds-interactive-primary-default);
}
.plan-flag {
  position: absolute;
  top: calc(-1 * var(--meds-spacing-space-6));
  left: 50%;
  transform: translateX(-50%);
  padding: 5px 14px;
  border-radius: 9999px;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-text-on-brand);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* ─── Responsive ─── */
/* Os links somem antes de apertar: a 1100px o botão ainda encostava em
   "Fale conosco" e "Já sou cliente" quebrava em duas linhas. */
@media (max-width: 1250px) {
  .nav-links { display: none; }
}
@media (max-width: 768px) {
  /* Nav compacta */
  .nav { padding: 16px 20px; }
  .nav-logo svg, .nav-logo img { height: 22px; }
  .nav-actions { gap: 12px; }
  .nav-btn { font-size: 13px; padding: 8px 14px; white-space: nowrap; }
  .nav-btn--text { display: none; } /* "Já sou cliente" volta com o menu mobile */

  /* Hero empilhado */
  .hero { padding: 40px 20px 32px; flex-direction: column; gap: 32px; }
  .hero-headline { font-size: 34px; }
  .hero-col { justify-content: flex-start; gap: 24px; }
  .hero-col--aside { align-items: stretch; }
  .hero-sentence { margin-top: 0; gap: 16px; }
  /* Mobile: avatar à esquerda, frase inteira (com "Deixe a") fluindo à direita */
  .agent-slot { display: flex; align-items: center; }
  .agent-article--pre { display: none; }
  .agent-article--in { display: inline; }
  .agent-text {
    flex: 0 1 auto; min-width: 0; width: auto;
    max-width: 220px;          /* força quebra mais equilibrada em 2 linhas */
    white-space: normal;
    text-wrap: balance;
  }
  .hero-cta { width: 100%; justify-content: center; }
  .hero-cta-desc { max-width: none; }

  /* Teste: tudo centralizado horizontalmente */
  .hero { align-items: center; }
  .hero-col { align-items: center; }
  .hero-headline { text-align: center; }
  .hero-sentence { justify-content: center; }
  .agent-text { text-align: center; }
  .hero-cta-desc { text-align: center; }

  /* Manifesto */
  .manifesto { margin-top: 32px; padding: 0 20px; }
  .manifesto-box { height: 460px; }
  .manifesto-text { font-size: 22px; }
  .manifesto-content { gap: 22px; padding: 20px; }
}

/* Telas muito estreitas (~320px): "Agende uma demonstração" tem white-space:nowrap
   e sozinho ocupa 190px, empurrando o header para fora da viewport. */
@media (max-width: 360px) {
  .nav-actions { gap: 8px; }
  .nav-btn { font-size: 12px; padding: 7px 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001s !important;
    transition-duration: 0.001s !important;
  }
}

/* ═══ Seção pinada: fundo de fios fixo + frases que trocam no scroll ═══ */
.story {
  position: relative;
  width: 100%;
  margin-top: 48px;
  background: transparent;
}
.story-pin {
  position: relative;
  overflow: visible;
}

/* Bolinhas do carrossel — horizontais, abaixo do CTA */
.story-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: var(--meds-spacing-space-24);   /* 48px — mesmo respiro da linha→CTA */
}
.story-dot-btn {
  width: 14px; height: 6px;
  padding: 0;
  border: none;
  border-radius: 9999px;
  background: var(--meds-border-default);   /* inativa */
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: width 0.35s cubic-bezier(.2,.65,.3,1), background var(--meds-transition-fast);
}
.story-dot-btn:hover { background: var(--meds-text-tertiary); }
.story-dot-btn.active { width: 48px; }
/* preenchimento no ritmo do timer (duração vem do JS via --dot-ms) */
.story-dot-btn.active::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--meds-interactive-primary-default);
  transform-origin: left;
  transform: scaleX(0);
  animation: storyFill var(--dot-ms, 4000ms) linear forwards;
}
.story-dots.paused .story-dot-btn.active::after { animation-play-state: paused; }
@keyframes storyFill { to { transform: scaleX(1); } }
.story-flow {
  position: absolute;
  left: 0;
  top: -140px;                 /* vaza acima e abaixo da seção p/ o leque não cortar */
  width: 100%;
  height: calc(100% + 280px);
  display: block;
  z-index: 0;
  pointer-events: none;
  /* fade nas bordas: as linhas se dissolvem em vez de cortar seco */
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
}

.story-text {
  position: relative;
  z-index: 2;
  margin: 0 auto;
  max-width: 680px;
  text-align: center;
  padding: 200px 0 56px;
}
.story-above {
  padding-bottom: var(--meds-spacing-space-16);
  transition: opacity 0.22s ease, transform 0.22s ease;
}
.story-title {
  margin: 0 auto;
  max-width: 640px;                           /* força títulos em 2 linhas */
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-4xl);      /* 35.83px */
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  color: var(--meds-text-primary);
  text-wrap: balance;
}
.story-sub {
  margin: var(--meds-spacing-space-8) auto 0; /* 16px abaixo do título */
  max-width: 400px;                           /* força subs em 2 linhas */
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-lg);        /* 17.28px */
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  color: var(--meds-text-secondary);
  text-wrap: balance;
}
.story-below {
  margin-top: var(--meds-spacing-space-24);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.story-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: var(--meds-font-family-sans);
  font-size: 15px;
  font-weight: var(--meds-font-weight-semibold);
  padding: 16px 30px;
  border-radius: 9999px;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-text-on-brand);
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--meds-transition-fast);
}
.story-cta:hover { background: var(--meds-interactive-primary-hover); }
.story-cta svg {
  width: 17px; height: 17px; stroke: currentColor;
  fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round;
}

/* Animação de troca das frases (o CTA fica; só o texto troca) */
.story-text.is-out .story-above { opacity: 0; transform: translateY(-12px); }
.story-text.is-in .story-above { opacity: 0; transform: translateY(12px); }

@media (max-width: 768px) {
  .story { margin-top: 48px; }
  .story-title { font-size: 28px; }
  .story-text { max-width: 320px; padding: 120px 16px 40px; }
}

/* ═══ Como funciona na prática — jornada do paciente ═══ */
.journey {
  max-width: 1720px;
  margin: 0 auto;
  padding: var(--meds-spacing-space-32) 120px var(--meds-spacing-space-64);
  background: var(--meds-surface-page);
}
.journey-head {
  text-align: center;
  margin-bottom: var(--meds-spacing-space-32);   /* 64px */
}
.journey-title {
  margin: var(--meds-spacing-space-12) auto 0;   /* 24px abaixo do label */
  max-width: 720px;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);          /* 43px */
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
  text-wrap: balance;
}

.journey-track {
  position: relative;
  max-width: 560px;
  margin: 0 auto;
}
.journey-rail {
  position: absolute;
  left: 23px;                     /* centro dos nós de 48px */
  top: 10px;
  bottom: 10px;
  width: 2px;
  background: var(--meds-border-default);
}
.journey-rail-fill {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 0%;
  background: var(--meds-interactive-primary-default);
  transition: height 0.6s cubic-bezier(.4,.05,.2,1);
}
.journey-runner {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--meds-interactive-primary-default);
  box-shadow: 0 0 0 6px rgba(0, 212, 124, 0.18);
  opacity: 0;
  transition: top 0.6s cubic-bezier(.4,.05,.2,1), opacity 0.4s ease;
}
.journey-runner.on { opacity: 1; }

.journey-steps {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-20);   /* 40px */
}
.journey-step {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-12);   /* 24px */
  opacity: 0.3;
  transition: opacity 0.5s ease;
}
.journey-step.active { opacity: 1; }

.journey-node {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  width: 48px; height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--meds-surface-default);
  border: 1px solid var(--meds-border-default);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-lg);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-secondary);
  transition: background var(--meds-transition-normal), border-color var(--meds-transition-normal), color var(--meds-transition-normal);
}
.journey-step.active .journey-node {
  background: var(--meds-interactive-primary-default);
  border-color: var(--meds-interactive-primary-default);
  color: var(--meds-text-on-brand);
}
/* pulso único quando o nó acende */
.journey-step.active .journey-node::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--meds-interactive-primary-default);
  animation: journeyPulse 0.8s ease-out 1;
  opacity: 0;
}
@keyframes journeyPulse {
  0%   { transform: scale(1); opacity: 0.45; }
  100% { transform: scale(2); opacity: 0; }
}

.journey-step p {
  margin: 0;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-lg);          /* 17.28px */
  line-height: 1.4;
  color: var(--meds-text-primary);
}

@media (max-width: 768px) {
  .journey { padding: var(--meds-spacing-space-24) 20px var(--meds-spacing-space-40); }
  .journey-title { font-size: var(--meds-font-size-3xl); }
  .journey-node { width: 40px; height: 40px; }
  .journey-rail { left: 19px; }
  .journey-steps { gap: var(--meds-spacing-space-16); }
}

/* ═══ Prova social — moldura fixa + cards viajando no scroll ═══ */
.proof {
  position: relative;
  height: 320vh;                  /* pista: 100vh de moldura + viagem dos 5 cards */
  background: var(--meds-surface-page);
}
.proof-pin {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}
.proof-map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 0;
}
.proof-head {
  position: absolute;
  top: var(--meds-spacing-space-24);       /* 48px */
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  width: 100%;
  text-align: center;
}
.proof-title {
  margin: var(--meds-spacing-space-8) 0 0; /* 16px abaixo do label */
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);    /* 43px */
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}

/* Cards que atravessam a moldura (movidos por JS, 1:1 com o scroll) */
.proof-cards {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  z-index: 2;
  width: min(880px, 92vw);
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-24);       /* 48px entre cards */
  will-change: transform;
}
.proof-card {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: var(--meds-spacing-space-16);       /* 32px */
  padding: var(--meds-spacing-space-12);   /* 24px */
  background: var(--meds-surface-default);
  border-radius: var(--meds-spacing-radius-card-lg, 24px);
  box-shadow: 0 24px 60px -20px rgba(0,0,0,0.16), 0 4px 16px rgba(0,0,0,0.05);
}
.proof-card-photo {
  aspect-ratio: 1 / 1.15;
  border-radius: var(--meds-spacing-radius-card-sm, 12px);
  background: var(--meds-surface-sunken, #E0E0E0);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.proof-card-photo span {
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-secondary);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.proof-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.proof-card-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--meds-spacing-space-10);       /* 20px */
  padding: var(--meds-spacing-space-8) var(--meds-spacing-space-8) var(--meds-spacing-space-8) 0;
}
.proof-card-tag {
  align-self: flex-start;
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-brand);
  background: var(--meds-surface-brand-subtle);
  padding: var(--meds-spacing-space-2) var(--meds-spacing-space-5);
  border-radius: var(--meds-spacing-radius-badge-tag);
}
.proof-card-agent {
  margin: 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-2xl);      /* 24.88px */
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  color: var(--meds-text-primary);
}
.proof-card-body blockquote {
  margin: 0;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-lg);     /* 17.28px */
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.45;
  color: var(--meds-text-secondary);
}
.proof-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--meds-spacing-space-8);
  margin-top: var(--meds-spacing-space-12);
}
.proof-card-name {
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
  color: var(--meds-text-primary);
}
.proof-card-clinic {
  font-size: var(--meds-font-size-sm);
  color: var(--meds-text-secondary);
  background: var(--meds-surface-subtle);
  padding: var(--meds-spacing-space-2) var(--meds-spacing-space-5);
  border-radius: var(--meds-spacing-radius-badge-tag);
}

/* Pill de vídeo fixa no rodapé da moldura */
.proof-video {
  position: absolute;
  bottom: var(--meds-spacing-space-20);    /* 40px */
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: var(--meds-spacing-space-6);
  padding: var(--meds-spacing-space-4) var(--meds-spacing-space-10) var(--meds-spacing-space-4) var(--meds-spacing-space-4);
  border-radius: 9999px;
  background: var(--meds-surface-overlay, #212122);
  color: var(--meds-text-inverse);
  font-size: 13.5px;
  font-weight: var(--meds-font-weight-semibold);
  text-decoration: none;
  box-shadow: 0 12px 32px -8px rgba(0,0,0,0.35);
  transition: transform var(--meds-transition-fast);
}
.proof-video:hover { transform: translateX(-50%) scale(1.04); }
.proof-video-thumb {
  position: relative;
  width: 56px; height: 34px;
  border-radius: 9999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.proof-video-thumb video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.proof-video-thumb svg {
  position: relative;
  z-index: 1;
  width: 9px; height: 11px;
  fill: #fff;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.5));
}

@media (max-width: 768px) {
  .proof { height: 420vh; }
  .proof-title { font-size: var(--meds-font-size-3xl); }
  .proof-card { grid-template-columns: 1fr; }
  .proof-card-photo { aspect-ratio: 16 / 10; }
  .proof-card-body { padding: 0 var(--meds-spacing-space-4) var(--meds-spacing-space-4); }
  .proof-card-body blockquote { font-size: var(--meds-font-size-xl); }
}

/* ═══ Copilotos de gestão — grid compacto ═══ */
.included {
  max-width: 1720px;
  margin: 0 auto;
  padding: 96px 120px 96px;
}
.included-head {
  text-align: center;
  margin-bottom: var(--meds-spacing-space-24);   /* 48px */
}
.included-title {
  margin: var(--meds-spacing-space-8) 0 0;       /* 16px abaixo do label */
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-4xl);          /* 35.83px */
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.included-grid {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--meds-spacing-space-12);             /* 24px */
}
.included-card {
  padding: var(--meds-spacing-space-16);         /* 32px */
  background: var(--meds-surface-default);
  border: 1px solid var(--meds-border-default);
  border-radius: var(--meds-spacing-radius-card-md, 16px);
}
.included-card h3 {
  margin: 0 0 var(--meds-spacing-space-4);       /* 8px */
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);           /* 20.74px */
  font-weight: var(--meds-font-weight-regular);
  color: var(--meds-text-primary);
}
.included-card p {
  margin: 0;
  font-size: var(--meds-font-size-md);           /* 14.4px */
  line-height: 1.5;
  color: var(--meds-text-secondary);
}

@media (max-width: 900px) {
  .included-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .included { padding: 64px 20px 0; }
  .included-title { font-size: var(--meds-font-size-3xl); }
}

/* ═══ Bloco final da viagem: copilotos de gestão estacionam sob o título ═══ */
.proof-cards { width: min(1080px, 92vw); }
.proof-card { width: min(880px, 100%); margin: 0 auto; }
.proof-included {
  position: absolute;               /* fixo na moldura — não viaja com os cards */
  left: 50%;
  z-index: 2;
  width: min(1080px, 92vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--meds-spacing-space-12);
  text-align: center;
  opacity: 0;
  transform: translate(-50%, 56px); /* sobe suavemente ao entrar */
  transition: opacity 0.6s ease, transform 0.75s cubic-bezier(.2,.65,.3,1);
  pointer-events: none;
}
.proof-included.in {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}
.proof-included .included-grid { width: 100%; }

/* ═══ Seu time digital — cards + espiral wireframe ═══ */
/* zona time + copilotos: fundo degradê contínuo (export do Figma) */
.team-zone {
  /* degradê desativado p/ teste — reative removendo os comentários
  background-image: url('img/team-bg.svg');
  background-size: 100% 100%;
  background-repeat: no-repeat; */
}
.team {
  max-width: 1720px;
  margin: 0 auto;
  padding: var(--meds-spacing-space-48) 120px 0;
}
.team-head {
  text-align: left;
  margin-bottom: var(--meds-spacing-space-32);
}
.team-head-row {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-12);
}
.team-title {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.team-cols {
  display: grid;
  grid-template-columns: minmax(0, 560px) 1fr;
  gap: var(--meds-spacing-space-32);
  align-items: start;
}
.team-cards {
  display: flex;
  flex-direction: column;
  gap: 64px;
}
.team-card {
  --card-peek: 76px;
  min-height: 620px;
  padding: var(--meds-spacing-space-16);
  background: var(--meds-surface-accent-default);
  color: var(--meds-text-inverse);
  border-radius: var(--meds-spacing-radius-card-lg, 24px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: sticky;
  box-shadow: 0 -4px 24px rgba(0,0,0,0.18);
  cursor: pointer;
}
/* Deck: todos os cards grudam na mesma altura; cada novo cobre o anterior
   por inteiro — escala p/ qualquer quantidade de cards sem esconder conteúdo */
.team-card { top: var(--card-deck-top, 88px); }
.team-card:nth-child(1)  { z-index: 1; }
.team-card:nth-child(2)  { z-index: 2; }
.team-card:nth-child(3)  { z-index: 3; }
.team-card:nth-child(4)  { z-index: 4; }
.team-card:nth-child(5)  { z-index: 5; }
.team-card:nth-child(6)  { z-index: 6; }
.team-card:nth-child(7)  { z-index: 7; }
.team-card:nth-child(8)  { z-index: 8; }
.team-card:nth-child(9)  { z-index: 9; }
.team-card:nth-child(10) { z-index: 10; }
.team-card:nth-child(11) { z-index: 11; }

/* Card final — CTA em destaque (degradê da marca, separado dos agentes) */
.team-card--cta {
  justify-content: center;
  background: radial-gradient(150% 160% at 0% 100%,
    var(--meds-color-info-300) 0%,
    #0A6B54 28%,
    var(--meds-surface-accent-default) 62%,
    #020D0C 100%);
}
.team-cta-inner {
  max-width: 680px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--meds-spacing-space-12);
}
.team-cta-avatars {
  display: flex;
  justify-content: center;
}
.team-cta-avatars .team-avatar {
  width: 52px; height: 52px;
  border: 2px solid rgba(2, 56, 54, 0.85);   /* recorte sutil na cor do fundo */
  background: #17453f;
  position: relative;
  overflow: visible;                          /* deixa o tooltip sair do círculo */
}
.team-cta-avatars .team-avatar img { border-radius: 50%; }
.team-cta-avatars .team-avatar + .team-avatar { margin-left: -14px; }
.team-cta-avatars .team-avatar:hover { z-index: 3; }
/* tooltip "Nome, Agente de ..." */
.team-cta-avatars .team-avatar::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  padding: 6px 12px;
  border-radius: 8px;
  background: rgba(2, 13, 12, 0.95);
  color: #FFFFFF;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-medium);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--meds-transition-fast), transform var(--meds-transition-fast);
  z-index: 4;
}
.team-cta-avatars .team-avatar:hover::after {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.team-cta-title {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-2xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: #FFFFFF;
}
.team-cta-text {
  max-width: 520px;
  margin: 0;
  font-size: var(--meds-font-size-lg);
  line-height: 1.5;
  color: rgba(255,255,255,0.78);
}
.team-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--meds-spacing-space-8);
  padding: 16px 32px;
  border-radius: 9999px;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-surface-accent-default);
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
  text-decoration: none;
  transition: opacity var(--meds-transition-fast);
}
.team-cta-btn:hover { opacity: 0.88; }
.team-cta-btn svg {
  width: 18px; height: 18px;
  stroke: currentColor; stroke-width: 2;
  fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.team-card-top {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-8);
  font-size: var(--meds-font-size-lg);
}
.team-card-top p { margin: 0; color: rgba(255,255,255,0.95); }
.team-avatar {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 50%;
  overflow: hidden;
  background: rgba(255,255,255,0.14);
}
.team-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.team-card-body {
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-8);
  max-width: 420px;
  flex: 1;                          /* ocupa o resto do card */
}
.team-card-body:has(.team-card-agents) { max-width: 520px; }   /* cards de grupo respiram mais */
.team-card-body h3 {
  margin: 0;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-regular);
  color: #FFFFFF;
}
.team-card-body h3 strong { font-weight: var(--meds-font-weight-bold); }
.team-quote {
  margin: 0;
  font-size: var(--meds-font-size-lg);
  line-height: 1.45;
  color: rgba(255,255,255,0.78);
}
.team-link {
  margin-top: var(--meds-spacing-space-6);
  display: inline-flex;
  align-items: center;
  gap: var(--meds-spacing-space-5);
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
  color: #FFFFFF;
  text-decoration: none;
}
.team-link:hover { text-decoration: underline; }
/* 3 blocos: frase no topo, conteúdo no meio, link na base */
.team-card-body h3 { margin-top: auto; }
.team-card-body .team-quote { margin-bottom: auto; }
.team-card-body .team-card-agents { margin-bottom: auto; }

/* Pilha de avatares no topo do card de grupo */
.team-group-avatars {
  display: flex;
  flex-shrink: 0;
}
.team-group-avatars .team-avatar {
  width: 44px; height: 44px;
  border: 2px solid rgba(2, 56, 54, 0.85);
}
.team-group-avatars .team-avatar + .team-avatar { margin-left: -12px; }

/* Lista de agentes dentro do card de grupo */
.team-card-agents {
  list-style: none;
  margin: var(--meds-spacing-space-8) 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-10);
  max-width: 480px;
}
.team-card-agents li strong {
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
  color: #FFFFFF;
}
.team-card-agents li em {
  font-style: normal;
  font-size: var(--meds-font-size-sm);
  color: rgba(255,255,255,0.55);
}
.team-card-agents li p {
  margin: 2px 0 0;
  font-size: var(--meds-font-size-md);
  line-height: 1.45;
  color: rgba(255,255,255,0.75);
}

.team-visual {
  position: sticky;
  top: 0;
  height: 100vh;
}
.team-visual canvas { display: block; width: 100%; height: 100%; }

/* pill flutuante "Veja como funciona" — vídeo pequeno rodando dentro */
.team-watch {
  position: absolute;
  left: 50%; bottom: 6vh;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: var(--meds-spacing-space-6);
  padding: var(--meds-spacing-space-4) var(--meds-spacing-space-10) var(--meds-spacing-space-4) var(--meds-spacing-space-4);
  border-radius: 9999px;
  background: var(--meds-surface-overlay, #212122);
  color: var(--meds-text-inverse);
  font-family: var(--meds-font-family-sans);
  font-size: 13.5px;
  font-weight: var(--meds-font-weight-semibold);
  text-decoration: none;
  box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.35);
  animation: watch-float 5s ease-in-out infinite;
}
.team-watch-thumb {
  position: relative;
  width: 56px; height: 34px;
  border-radius: 9999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.team-watch-thumb video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.team-watch-thumb svg {
  position: relative;
  width: 10px; height: 12px;
  fill: #fff;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.5));
}
@keyframes watch-float {
  0%, 100% { transform: translate(-50%, 0); }
  50%      { transform: translate(-50%, -10px); }
}
@media (prefers-reduced-motion: reduce) {
  .team-watch { animation: none; transform: translateX(-50%); }
}

/* ═══ Fale conosco ═══ */
.contact-box {
  max-width: 1080px;
  margin: var(--meds-spacing-space-16) auto 0;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--meds-spacing-space-32);
  align-items: center;
  /* degradê radial do deck: info300 → verdes → teal profundo → quase preto */
  background: radial-gradient(150% 160% at 0% 100%,
    var(--meds-color-info-300) 0%,
    #0A6B54 28%,
    var(--meds-surface-accent-default) 62%,
    #020D0C 100%);
  border-radius: var(--meds-spacing-radius-card-lg, 24px);
  padding: var(--meds-spacing-space-32) var(--meds-spacing-space-40);
  overflow: hidden;
}
.contact-title {
  margin: 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.1;
  color: var(--meds-text-inverse);
}
.contact-desc {
  margin: var(--meds-spacing-space-12) 0 0;
  color: rgba(255,255,255,0.75);
  font-size: var(--meds-font-size-md);
  line-height: 1.5;
  max-width: 540px;
}
.contact-actions {
  display: flex;
  gap: var(--meds-spacing-space-8);
  margin-top: var(--meds-spacing-space-24);
}
.contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 9999px;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-semibold);
  text-decoration: none;
  transition: opacity var(--meds-transition-fast);
}
.contact-btn:hover { opacity: 0.85; }
.contact-btn svg {
  width: 18px; height: 18px;
  stroke: currentColor; stroke-width: 2;
  fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.contact-btn--filled {
  background: var(--meds-interactive-primary-default);
  color: var(--meds-surface-accent-default);
}
.contact-btn--outline {
  background: transparent;
  border: 1.5px solid var(--meds-interactive-primary-default);
  color: var(--meds-interactive-primary-default);
}
.contact-people {
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-24);
}
.contact-person {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-12);
}
.contact-avatar {
  width: 80px; height: 80px;
  border-radius: 50%;
  background: var(--meds-surface-secondary);
  flex-shrink: 0;
  overflow: hidden;
}
.contact-avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.contact-person-info {
  display: flex;
  flex-direction: column;
}
.contact-person-name {
  color: var(--meds-interactive-primary-default);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-semibold);
}
.contact-person-role {
  color: rgba(255,255,255,0.75);
  font-size: var(--meds-font-size-md);
}
.contact-person-link {
  color: rgba(255,255,255,0.9);
  font-size: var(--meds-font-size-md);
  text-decoration: none;
  margin-top: 2px;
  transition: color var(--meds-transition-fast);
}
.contact-person-link:hover { color: var(--meds-interactive-primary-default); }

/* ═══ FAQ ═══ */
.faq {
  max-width: 1720px;
  margin: 0 auto;
  padding: 0 120px var(--meds-spacing-space-64);
}
.faq-head {
  text-align: center;
  margin-bottom: var(--meds-spacing-space-32);
}
.faq-title {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-4xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  color: var(--meds-text-primary);
}
.faq-list {
  max-width: 960px;
  margin: 0 auto;
}
.faq-item {
  border-top: 1px solid var(--meds-border-default);
}
.faq-item:last-child {
  border-bottom: 1px solid var(--meds-border-default);
}
.faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-lg);
  font-weight: var(--meds-font-weight-semibold);
  color: var(--meds-text-primary);
  cursor: pointer;
  list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '';
  width: 20px; height: 20px;
  flex-shrink: 0;
  margin-left: var(--meds-spacing-space-16);
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;
  color: var(--meds-text-secondary);
  transition: transform 0.25s ease;
}
.faq-item[open] summary::after {
  transform: rotate(180deg);
}
.faq-item p {
  margin: 0;
  padding: 0 0 24px;
  font-size: var(--meds-font-size-md);
  line-height: 1.7;
  color: var(--meds-text-secondary);
  max-width: 720px;
}

@media (max-width: 900px) {
  .plans { padding: 0 20px var(--meds-spacing-space-40); margin-top: 48px; }
  .plans-grid { grid-template-columns: 1fr; }
  .plan-card--featured { order: -1; }
  .plan-audience { min-height: 0; }
  .plan-solo { padding: var(--meds-spacing-space-12) var(--meds-spacing-space-12); }
  .plan-solo-picker { grid-template-columns: repeat(2, 1fr); }
  .plan-solo-foot { flex-direction: column; gap: var(--meds-spacing-space-8); }
  .team { padding: var(--meds-spacing-space-24) 20px var(--meds-spacing-space-40); }
  .team-title { font-size: var(--meds-font-size-3xl); }
  .team-cols { grid-template-columns: 1fr; }
  .team-visual { display: none; }
  .team-card { min-height: 480px; --card-deck-top: 64px; }
  .faq { padding: 0 20px; margin-top: 0; }
  .faq-title { font-size: var(--meds-font-size-3xl); }
  /* CTA / Fale conosco */
  .contact-box {
    grid-template-columns: 1fr;
    gap: var(--meds-spacing-space-24);
    padding: var(--meds-spacing-space-24) 20px;
  }
  .contact-title { font-size: var(--meds-font-size-3xl); }
  .contact-actions { flex-direction: column; align-items: stretch; }
  .contact-btn { width: 100%; justify-content: center; }
  .contact-people { flex-direction: column; gap: var(--meds-spacing-space-16); }
  .contact-person { gap: var(--meds-spacing-space-8); }
  .contact-avatar { width: 64px; height: 64px; }
  .contact-person-name { font-size: var(--meds-font-size-lg); }
  .contact-person-role, .contact-person-link { font-size: var(--meds-font-size-sm); }

  .plans-title { font-size: var(--meds-font-size-3xl); }

  /* Deck de agentes no mobile — o grid `1fr` é minmax(auto,1fr), então o track
     não encolhe abaixo do min-content do card: a fila de avatares (não encolhe)
     somada ao texto ao lado esticava .team-cards para 458px dentro de 350px e
     jogava metade do conteúdo para fora da tela. min-width:0 solta o track; o
     resto evita que o conteúdo volte a empurrar a largura. */
  .team-cards { min-width: 0; }
  .team-card { padding: var(--meds-spacing-space-12); }
  .team-card-top { flex-wrap: wrap; gap: var(--meds-spacing-space-6); }
  .team-card-top p { flex: 1 1 100%; min-width: 0; }   /* frase desce p/ baixo dos avatares */
  /* com o conteúdo mais alto no mobile o `margin-top:auto` do h3 colapsa e o
     título cola no parágrafo de cima — separa explicitamente */
  .team-card-body h3 { margin-top: var(--meds-spacing-space-10); }
  .team-card-body,
  .team-card-body:has(.team-card-agents),
  .team-card-agents { max-width: none; }
  /* 10 avatares de 52px com -14px de sobreposição = 394px fixos */
  .team-cta-avatars { flex-wrap: wrap; justify-content: center; row-gap: 8px; }
  .team-cta-avatars .team-avatar { width: 40px; height: 40px; }
  .team-cta-avatars .team-avatar + .team-avatar { margin-left: -14px; }
  /* tooltip é position:absolute + nowrap: invisível sem hover, mas ainda
     contava no scrollWidth e sozinho deixava 7px de rolagem horizontal */
  .team-cta-avatars .team-avatar::after { display: none; }
  /* O deck (position:sticky, todos os cards grudando na mesma altura) é um
     efeito de scroll pensado para desktop. No mobile a sobra de cada card
     mostrava só a fileira de avatares do card de baixo — lia como avatares
     soltos flutuando, não como uma pilha. Aqui os cards viram lista normal. */
  .team-card { position: static; min-height: 0; }
  .team-cards { gap: var(--meds-spacing-space-12); }
}

/* ═══ Footer ═══ */
.site-footer {
  margin-top: 0;
  border-top: 1px solid var(--meds-border-default);
}
.footer-headline-logo {
  margin-bottom: var(--meds-spacing-space-16);
}
.footer-inner {
  max-width: 1720px;
  margin: 0 auto;
  padding: var(--meds-spacing-space-64) 120px var(--meds-spacing-space-32);
}
.footer-top {
  display: flex;
  justify-content: space-between;
  gap: var(--meds-spacing-space-64);
}
.footer-headline {
  max-width: 480px;
}
.footer-title {
  margin: 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.1;
  color: var(--meds-text-primary);
}
.footer-title em {
  font-style: italic;
}
.footer-cta {
  display: inline-flex;
  align-items: center;
  margin-top: var(--meds-spacing-space-24);
  padding: 14px 28px;
  border-radius: 9999px;
  background: var(--meds-text-primary);
  color: var(--meds-surface-page);
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-semibold);
  text-decoration: none;
  transition: opacity var(--meds-transition-fast);
}
.footer-cta:hover { opacity: 0.85; }
.footer-nav {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: var(--meds-spacing-space-48);
  padding-top: 8px;
}
.footer-col {
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-8);
}
.footer-col-title {
  margin: 0 0 var(--meds-spacing-space-8);
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
  color: var(--meds-text-primary);
}
.footer-col a {
  color: var(--meds-text-secondary);
  font-size: var(--meds-font-size-md);
  text-decoration: none;
  transition: color var(--meds-transition-fast);
}
.footer-col a:hover { color: var(--meds-text-primary); }
.footer-bottom {
  margin-top: var(--meds-spacing-space-32);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--meds-spacing-space-24);
}
.footer-copy {
  margin: 0;
  font-size: var(--meds-font-size-xs);
  color: var(--meds-text-tertiary);
}

/* ═══ Builder — crie agentes específicos ═══ */
.builder {
  max-width: 1720px;
  margin: 0 auto;
  padding: var(--meds-spacing-space-48) 120px 0;
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(0, 1.4fr);
  gap: var(--meds-spacing-space-32);
  align-items: center;
}
.builder-title {
  margin: 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-4xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.builder-sub {
  margin: var(--meds-spacing-space-8) 0 0;
  max-width: 440px;
  font-size: var(--meds-font-size-lg);
  line-height: 1.5;
  color: var(--meds-text-secondary);
}
.builder-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: var(--meds-surface-default);
  border: 1px solid var(--meds-border-default);
  border-radius: var(--meds-spacing-radius-card-md, 16px);
  overflow: hidden;
}
.builder-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--meds-spacing-space-4);
  padding: var(--meds-spacing-space-24) var(--meds-spacing-space-12);
  text-align: center;
}
.builder-stat + .builder-stat { border-left: 1px solid var(--meds-border-default); }
.builder-stat strong {
  font-family: var(--meds-font-family-sans);
  font-size: 56px;
  font-weight: var(--meds-font-weight-semibold);
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--meds-text-primary);
  font-variant-numeric: tabular-nums;
}
.builder-stat span {
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-primary);
}
@media (max-width: 900px) {
  .builder { grid-template-columns: 1fr; padding: var(--meds-spacing-space-32) 20px 0; gap: var(--meds-spacing-space-16); }
  .builder-title { font-size: var(--meds-font-size-3xl); }
  .builder-stat strong { font-size: var(--meds-font-size-4xl); }
  .builder-stat { padding: var(--meds-spacing-space-16) var(--meds-spacing-space-8); }
}

/* ═══ Modal do vídeo do manifesto ═══ */
.video-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.video-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 13, 12, 0.88);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.video-modal-box {
  position: relative;
  width: min(1100px, 100%);
  aspect-ratio: 16 / 9;
  border-radius: 40px;
  overflow: hidden;
  background: #000;
  box-shadow: 0 40px 80px -24px rgba(0, 0, 0, 0.6);
}
.video-modal-frame,
.video-modal-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-modal-close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 2;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  color: #FFFFFF;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--meds-transition-fast);
}
.video-modal-close:hover { background: rgba(0, 0, 0, 0.85); }
.video-modal-close svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  fill: none;
}
/* play central — some enquanto o vídeo roda (pausar = clicar no próprio vídeo) */
.video-modal-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 84px;
  height: 84px;
  border: none;
  border-radius: 50%;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-surface-accent-default);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity var(--meds-transition-fast), transform var(--meds-transition-fast);
}
.video-modal-play:hover { transform: translate(-50%, -50%) scale(1.06); }
.video-modal-play svg {
  width: 26px;
  height: 26px;
  margin-left: 4px;
  fill: currentColor;
}
.video-modal.is-playing .video-modal-play {
  opacity: 0;
  pointer-events: none;
}

/* ═══ Segurança, governança e privacidade ═══ */
.security {
  /* vive dentro de .plans (acima do CTA de contato) — laterais vêm da section pai */
  padding: var(--meds-spacing-space-48) 0 var(--meds-spacing-space-8);
}
.security-head {
  text-align: center;
  margin-bottom: var(--meds-spacing-space-24);
}
.security-title {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-4xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.security-sub {
  margin: var(--meds-spacing-space-8) auto 0;
  max-width: 720px;
  font-size: var(--meds-font-size-md);
  line-height: 1.6;
  color: var(--meds-text-secondary);
  text-wrap: pretty;   /* evita viúvas/órfãs */
}
.security-grid {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--meds-spacing-space-12);
}
.security-card {
  padding: var(--meds-spacing-space-16);
  background: var(--meds-surface-default);
  border: 1px solid var(--meds-border-default);
  border-radius: var(--meds-spacing-radius-card-md, 16px);
}
.security-card h3 {
  margin: 0 0 var(--meds-spacing-space-4);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-regular);
  color: var(--meds-text-primary);
}
.security-card p {
  margin: 0;
  font-size: var(--meds-font-size-md);
  line-height: 1.5;
  color: var(--meds-text-secondary);
}
.security-cta-row {
  display: flex;
  justify-content: center;
  margin-top: var(--meds-spacing-space-16);
}
@media (max-width: 900px) {
  .security { padding: var(--meds-spacing-space-32) 0 0; }
  .security-title { font-size: var(--meds-font-size-3xl); }
  .security-grid { grid-template-columns: 1fr; }
}

/* Definição da Medza no rodapé (GEO: answer-first, discreta) */
.footer-about {
  margin: 0;
  max-width: 720px;
  font-size: var(--meds-font-size-sm);
  line-height: 1.6;
  color: var(--meds-text-tertiary);
}
.footer-about strong { color: var(--meds-text-secondary); }

.included-sub {
  margin: var(--meds-spacing-space-8) auto 0;
  max-width: 640px;
  font-size: var(--meds-font-size-md);
  line-height: 1.5;
  color: var(--meds-text-secondary);
}
@media (max-width: 900px) {
  .about { padding: 0 20px var(--meds-spacing-space-32); }
  .about-text { font-size: var(--meds-font-size-lg); }
}

/* Footer mobile — precisa vir DEPOIS das regras base p/ vencer o cascade */
@media (max-width: 900px) {
  .footer-inner { padding: var(--meds-spacing-space-32) 20px var(--meds-spacing-space-24); }
  .footer-top { flex-direction: column; gap: var(--meds-spacing-space-32); }
  .footer-headline { max-width: none; }
  .footer-title { font-size: var(--meds-font-size-3xl); }
  .footer-cta { width: 100%; justify-content: center; }
  .footer-nav {
    grid-template-columns: 1fr 1fr;
    gap: var(--meds-spacing-space-24) var(--meds-spacing-space-16);
    padding-top: 0;
  }
  .footer-bottom { margin-top: var(--meds-spacing-space-32); flex-direction: column; gap: var(--meds-spacing-space-8); }
  .footer-copy { text-align: left; }
}

/* ═══ /links — link na bio (Instagram) ═══ */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.bio {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  justify-content: center;
  padding: 56px 20px 32px;
  background: radial-gradient(150% 160% at 0% 100%,
    var(--meds-color-info-300) 0%,
    #0A6B54 28%,
    var(--meds-surface-accent-default) 62%,
    #020D0C 100%);
}
.bio-inner {
  width: min(480px, 100%);
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-12);
}
.bio-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--meds-spacing-space-6);
  text-align: center;
  margin-bottom: var(--meds-spacing-space-6);
}
.bio-logo { height: 26px; width: auto; }
.bio-sub {
  margin: 0;
  font-size: var(--meds-font-size-md);
  color: rgba(255,255,255,0.75);
}
.bio-links {
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-6);
}
.bio-link {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-8);
  padding: 14px 16px;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 16px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #FFFFFF;
  text-decoration: none;
  transition: background var(--meds-transition-fast), transform var(--meds-transition-fast);
}
.bio-link:hover { background: rgba(255,255,255,0.13); transform: translateY(-2px); }
.bio-link-icon {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 12px;
  background: rgba(255,255,255,0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
.bio-link-icon svg { width: 20px; height: 20px; }
.bio-link-icon--img {
  background: transparent;
  overflow: hidden;
}
.bio-link-icon--img img {
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}
.bio-link-icon--video {
  position: relative;
  overflow: hidden;
  background: #000;
}
.bio-link-icon--video video {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.bio-link-icon--video svg {
  position: relative;
  z-index: 1;
  width: 12px; height: 14px;
  fill: #FFFFFF;
  margin-left: 2px;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,0.5));
}
.bio-link-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.bio-link-text strong {
  font-size: var(--meds-font-size-md);
  font-weight: var(--meds-font-weight-semibold);
}
.bio-link-text em {
  font-style: normal;
  font-size: var(--meds-font-size-sm);
  color: rgba(255,255,255,0.65);
}
.bio-link-arrow { color: rgba(255,255,255,0.5); flex-shrink: 0; }
.bio-offer {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: var(--meds-spacing-space-6);
  padding: var(--meds-spacing-space-12);
  border-radius: 16px;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-surface-accent-default);
  text-align: center;
  text-decoration: none;
  transition: transform var(--meds-transition-fast), opacity var(--meds-transition-fast);
}
.bio-offer:hover { transform: translateY(-2px); opacity: 0.94; }
.bio-offer-label {
  font-size: var(--meds-font-size-xs);
  font-weight: var(--meds-font-weight-bold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.7;
}
.bio-offer-title {
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.25;
}
.bio-offer-cta {
  margin-top: 4px;
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-semibold);
}
.bio-foot {
  margin-top: var(--meds-spacing-space-8);
  text-align: center;
}
.bio-foot p {
  margin: 0;
  font-size: var(--meds-font-size-xs);
  color: rgba(255,255,255,0.45);
}

/* ═══ Para clínicas ═══ */
/* Nav sobre o hero escuro */
.nav--dark {
  position: absolute;
  top: 0; left: 0; right: 0;
  z-index: 20;
}
.nav--dark .nav-links a { color: rgba(255,255,255,0.88); }
.nav--dark .nav-links a:hover { color: #FFFFFF; }
.nav--dark .nav-btn { color: #FFFFFF; }
.nav--dark .nav-btn--text { color: rgba(255,255,255,0.88); }
.nav--dark .nav-btn--text:hover { color: #FFFFFF; }

/* Hero full-screen com vídeo + véu */
.pc-hero {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--meds-spacing-space-24);
  padding: 140px 120px 88px;
  overflow: hidden;
  background: #0b0b0f;
}
.pc-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pc-hero-veil {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);   /* véu preto, sem blur */
}
.pc-hero-lead {
  position: relative;
  z-index: 1;
  max-width: 1040px;
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-12);
}
.pc-hero-label {
  font-size: var(--meds-font-size-md);
  color: rgba(255,255,255,0.75);
}
.pc-hero-title {
  margin: 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-6xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.14;
  letter-spacing: -0.04em;
  color: #FFFFFF;
}
/* frase do agente sobre fundo escuro */
.pc-hero .hero-sentence { margin-top: var(--meds-spacing-space-6); }
.pc-hero .agent-article { color: rgba(255,255,255,0.85); }
.pc-hero .agent-name { color: #FFFFFF; }
.pc-hero .agent-task { color: rgba(255,255,255,0.85); }
.pc-hero-aside {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--meds-spacing-space-16);
}
.pc-hero-checks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-8);
}
.pc-hero-checks li {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-6);
  font-size: var(--meds-font-size-lg);
  color: rgba(255,255,255,0.92);
}
.pc-hero-checks svg {
  width: 22px; height: 22px;
  stroke: #FFFFFF;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}
.pc-hero-cta { align-self: stretch; justify-content: center; }

@media (max-width: 900px) {
  .pc-hero {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
    padding: 120px 20px 40px;
    gap: var(--meds-spacing-space-16);
  }
  .pc-hero-title { font-size: 34px; }
  .pc-hero-checks li { font-size: var(--meds-font-size-md); }
}

/* ═══ Para clínicas — dor (quanto custa crescer) ═══ */
.pc-pain {
  max-width: 1720px;
  margin: 152px auto 0;
  padding: 0 120px;
}
.pc-pain-head {
  text-align: center;
  margin-bottom: var(--meds-spacing-space-32);
}
.pc-pain-title {
  margin: 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.pc-pain-sub {
  margin: var(--meds-spacing-space-12) auto 0;
  max-width: 680px;
  font-size: var(--meds-font-size-lg);
  line-height: 1.55;
  color: var(--meds-text-secondary);
  text-wrap: pretty;
}
.pc-pain-board {
  background: url('img/people-bg.webp') center / cover no-repeat;
  border-radius: 40px;
  padding: var(--meds-spacing-space-40) var(--meds-spacing-space-24);
  overflow: hidden;
}
.pc-pain-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 104px;
  max-width: 1192px;                /* 3 × 328px de card + 2 × 104px de gap */
  margin: 0 auto;
}
.pc-pain-card {
  position: relative;
  z-index: 0;                       /* stacking context próprio: a ponte (::before,
                                       z-index -1) fica acima do fundo do board sempre */
  min-height: 380px;
  padding: var(--meds-spacing-space-20) var(--meds-spacing-space-16);
  background: var(--meds-surface-default);
  border-radius: 24px;
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-8);
  transition: transform 0.25s cubic-bezier(.2,.65,.3,1), box-shadow 0.25s cubic-bezier(.2,.65,.3,1);
}
.pc-pain-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 56px -24px rgba(0, 0, 0, 0.35);
}
/* pontes ligando os blocos, com filetes côncavos nas 4 junções (como no Figma):
   faixa central branca + 4 quartos-de-círculo invertidos via radial-gradient */
.pc-pain-card + .pc-pain-card::before {
  content: '';
  position: absolute;
  left: -104px;
  width: 104px;
  height: 112px;                     /* 24 (filete) + 64 (ponte) + 24 (filete) */
  z-index: -1;
  --pc-bridge: var(--meds-surface-default);
  background:
    radial-gradient(circle at 100% 0,    transparent 23.5px, var(--pc-bridge) 24px) left top    / 24px 24px no-repeat,
    radial-gradient(circle at 0 0,       transparent 23.5px, var(--pc-bridge) 24px) right top   / 24px 24px no-repeat,
    radial-gradient(circle at 100% 100%, transparent 23.5px, var(--pc-bridge) 24px) left bottom / 24px 24px no-repeat,
    radial-gradient(circle at 0 100%,    transparent 23.5px, var(--pc-bridge) 24px) right bottom/ 24px 24px no-repeat,
    linear-gradient(var(--pc-bridge), var(--pc-bridge)) 0 24px / 100% 64px no-repeat;
}
.pc-pain-card:nth-child(2)::before { bottom: 64px; }
.pc-pain-card:nth-child(3)::before { top: 32px; }
.pc-pain-icon svg {
  width: 26px; height: 26px;
  stroke: #E5484D;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pc-pain-card h3 {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-semibold);
  line-height: 1.35;
  color: var(--meds-text-primary);
}
.pc-pain-card p {
  margin: 0;
  font-size: var(--meds-font-size-md);
  line-height: 1.55;
  color: var(--meds-text-secondary);
}
@media (max-width: 1200px) {
  .pc-pain-cards { gap: 64px; }
  .pc-pain-card + .pc-pain-card::before { left: -64px; width: 64px; }
}
@media (max-width: 900px) {
  .pc-pain { margin-top: 96px; padding: 0 20px; }
  .pc-pain-title { font-size: var(--meds-font-size-3xl); }
  .pc-pain-board { padding: var(--meds-spacing-space-12); border-radius: 24px; }
  .pc-pain-cards { grid-template-columns: 1fr; gap: var(--meds-spacing-space-8); }
  .pc-pain-card { min-height: 0; }
  .pc-pain-card + .pc-pain-card::before { display: none; }
}

/* ═══ Para clínicas — frase reveal no scroll ═══ */
.pc-reveal {
  max-width: 1720px;
  margin: 152px auto 0;
  padding: 0 120px;
}
.pc-reveal-text {
  margin: 0 auto;
  max-width: 1040px;
  text-align: center;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);      /* 43px */
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-tight);
  letter-spacing: -0.01em;
  color: var(--meds-text-secondary);
}
.pc-reveal-text strong {
  font-weight: var(--meds-font-weight-semibold);
  color: var(--meds-text-primary);
}
.pc-reveal-word { opacity: 0.12; will-change: opacity; }
@media (max-width: 900px) {
  .pc-reveal { margin-top: 96px; padding: 0 20px; }
  .pc-reveal-text { font-size: var(--meds-font-size-2xl); }
  .pc-reveal-text br { display: none; }   /* no mobile a quebra é natural */
}

/* ═══ Para clínicas — agentes (carrossel + categorias) ═══ */
.pc-agents {
  max-width: 1720px;
  margin: 152px auto 0;
  padding: 0 120px;
  display: grid;
  grid-template-columns: minmax(0, 560px) minmax(0, 544px);   /* card verde + conteúdo (encolhem juntos) */
  justify-content: center;              /* conjunto centralizado na página */
  gap: 40px;                            /* textos a 40px do card verde */
  align-items: center;                  /* conteúdo da direita centralizado pelo card */
}
/* painel escuro (esquerda) */
.pc-agents-panel {
  position: relative;
  min-height: 640px;
  padding: 88px 104px 56px 104px;  /* 88 top, laterais iguais */
  background: var(--meds-surface-accent-default);
  border-radius: 40px;
  display: flex;
  flex-direction: column;
}
.pc-agents-badge {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 9999px;
  background: var(--meds-surface-default);
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-primary);
}
.pc-agents-current {
  flex: 1;
  display: flex;
  flex-direction: column;
  transition: opacity 0.18s ease;
}
.pc-agents-current.is-out { opacity: 0; }
.pc-agent-top {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-8);
  margin-top: var(--meds-spacing-space-24);
}
.pc-agent-avatar { width: 56px; height: 56px; flex-shrink: 0; }
.pc-agent-phrase {
  margin: 0;
  font-size: var(--meds-font-size-lg);
  line-height: var(--meds-line-height-normal);
  color: rgba(255,255,255,0.95);
  max-width: 360px;
  text-wrap: balance;   /* quebra equilibrada, sem viúvas */
}
.pc-agent-phrase strong { font-weight: var(--meds-font-weight-bold); color: #FFFFFF; }
.pc-agent-body {
  margin-top: 56px;        /* distância fixa entre a frase e o bloco do agente */
  margin-bottom: auto;     /* empurra o timer pra base */
  padding: 0;
  max-width: 480px;
}
.pc-agent-role {
  margin: 0;
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-regular);
  color: #FFFFFF;
}
.pc-agent-role strong { font-weight: var(--meds-font-weight-bold); }
.pc-agent-desc {
  margin: var(--meds-spacing-space-8) 0 0;
  font-size: var(--meds-font-size-lg);
  line-height: 1.5;
  color: rgba(255,255,255,0.78);
}
.pc-agents-dots { margin-top: 0; justify-content: center; }

/* lado direito */
.pc-agents-title {
  margin: 0 0 var(--meds-spacing-space-16);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-3xl);      /* 29.86px */
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-snug); /* 120% */
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
  max-width: 480px;   /* quebra em 3 linhas como no Figma */
}
.pc-agents-cats { display: flex; flex-direction: column; max-width: 544px; }
.pc-cat {
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  background: transparent;
  padding: var(--meds-spacing-space-12) var(--meds-spacing-space-16) var(--meds-spacing-space-12) 0;   /* texto alinhado com o título */
  cursor: pointer;
  border-bottom: 1px solid var(--meds-border-subtle);
  transition: background var(--meds-transition-fast);
}
.pc-cat:last-child { border-bottom: none; }
.pc-cat.is-active {
  background: var(--meds-surface-default);
  border-radius: 0 24px 24px 0;   /* lado esquerdo reto, encostado no card verde */
  border-bottom-color: transparent;
  /* o fundo branco avança pelo gap e encosta no card verde;
     width compensa o deslocamento e o padding mantém o texto alinhado */
  margin-left: -40px;
  width: calc(100% + 40px);
  padding-left: 40px;
}
@media (max-width: 1100px) {
  .pc-cat { padding-left: var(--meds-spacing-space-16); }
  .pc-cat.is-active { margin-left: 0; width: 100%; padding-left: var(--meds-spacing-space-16); }
}
.pc-cat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--meds-spacing-space-8);
}
.pc-cat-title {
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-secondary);
  transition: color var(--meds-transition-fast);
}
.pc-cat.is-active .pc-cat-title,
.pc-cat:hover .pc-cat-title { color: var(--meds-text-primary); }
.pc-cat-avatars { display: flex; flex-shrink: 0; }
.pc-cat-avatars .team-avatar {
  width: 30px; height: 30px;
  border: 2px solid var(--meds-surface-page);
}
.pc-cat-avatars .team-avatar + .team-avatar { margin-left: -8px; }
/* descrição expande só na categoria ativa */
.pc-cat-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.3s cubic-bezier(.2,.65,.3,1);
}
.pc-cat.is-active .pc-cat-body { grid-template-rows: 1fr; }
.pc-cat-desc {
  overflow: hidden;
  display: block;
  font-size: var(--meds-font-size-lg);          /* 17.28px */
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-normal);  /* 140% */
  color: var(--meds-text-secondary);
}
.pc-cat.is-active .pc-cat-desc { padding-top: var(--meds-spacing-space-8); }

@media (max-width: 1100px) {
  .pc-agents { grid-template-columns: 1fr; }
  /* empilhado: título + categorias primeiro, card do agente depois */
  .pc-agents-side { order: 1; }
  .pc-agents-panel { order: 2; min-height: 480px; padding: var(--meds-spacing-space-24); }
}
@media (max-width: 900px) {
  .pc-agents { margin-top: 96px; padding: 0 20px; }
  .pc-agents-title { font-size: var(--meds-font-size-3xl); }
  .pc-agents-panel { border-radius: 24px; }
}

/* ═══ Para clínicas — zona com degradê + para quem é ═══ */
.pc-zone {
  position: relative;
  z-index: 0;            /* contém o ::before em z-index -1 */
  padding-bottom: 1px;   /* segura o colapso de margem do último filho */
}
.pc-zone::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url('img/team-bg.svg');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  /* o degradê nasce do branco — sem borda de entrada visível */
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 420px);
  mask-image: linear-gradient(180deg, transparent 0, #000 420px);
}
.pc-fit { margin-top: 152px; }
.pc-fit-title {
  margin: 0 auto var(--meds-spacing-space-32);
  text-align: center;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.pc-fit-row {
  display: grid;
  grid-template-columns: minmax(0, 58%) minmax(0, 42%);
  align-items: start;
}
.pc-fit-media {
  margin: 0;
  position: relative;
  grid-column: 1;
}
.pc-fit-media img {
  width: 100%;
  height: 640px;
  object-fit: cover;
  display: block;
  border-radius: 0 40px 0 0;      /* sangra na esquerda; bottom-right reto (emenda com a linha de baixo) */
}
.pc-fit-tag {
  position: absolute;
  top: 74px;                 /* ícone acima; o texto alinha com o h3 da coluna ao lado */
  left: 62%;
  color: #FFFFFF;
  display: flex;
  flex-direction: column;
  gap: var(--meds-spacing-space-6);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-3xl);      /* 29.86px */
  line-height: var(--meds-line-height-snug);
  text-shadow: 0 1px 12px rgba(0,0,0,0.35);
  max-width: 260px;        /* quebra em 2 linhas sem <br> forçado */
  text-wrap: balance;
}
.pc-fit-tag strong { font-weight: var(--meds-font-weight-bold); }
.pc-fit-tag svg {
  width: 26px; height: 26px;
  stroke: #FFFFFF;
  stroke-width: 1.8;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.pc-fit-text {
  grid-column: 2;
  padding: 112px 120px 0 96px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.pc-fit-text h3 {
  margin: 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-3xl);            /* 29.86px */
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-snug);
  color: var(--meds-text-primary);
  max-width: 400px;
  text-wrap: balance;      /* linhas equilibradas em qualquer largura */
}
.pc-fit-lead {
  margin: var(--meds-spacing-space-12) 0 0;
  font-size: var(--meds-font-size-xl);             /* 20.74px */
  line-height: var(--meds-line-height-normal);
  color: var(--meds-text-secondary);
  max-width: 440px;
  text-wrap: balance;   /* evita última linha órfã ("e prontuário.") */
}
.pc-fit-sub {
  margin: var(--meds-spacing-space-12) 0 0;
  font-size: var(--meds-font-size-lg);             /* 17.28px */
  line-height: var(--meds-line-height-normal);
  color: var(--meds-text-secondary);
  max-width: 440px;
  text-wrap: balance;   /* evita última linha órfã ("e prontuário.") */
}
.pc-fit-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--meds-spacing-space-16);
  padding: 12px 24px;
  border-radius: 9999px;
  border: 1.5px solid var(--meds-interactive-primary-default);
  background: transparent;
  color: var(--meds-text-primary);
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-semibold);
  text-decoration: none;
  transition: background var(--meds-transition-fast);
}
.pc-fit-cta:hover { background: var(--meds-surface-brand-subtle, #E6FFF4); }
.pc-fit-cta svg {
  width: 16px; height: 16px;
  stroke: var(--meds-text-brand, #038F52);
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* linha invertida: texto à esquerda (alinhado à direita), imagem sangrando à direita */
.pc-fit-row--flip .pc-fit-media { grid-column: 2; }
.pc-fit-row--flip .pc-fit-media img { border-radius: 0 0 0 40px; }   /* top-left reto (emenda com a linha de cima) */
.pc-fit-row--flip .pc-fit-tag { left: 56px; }
.pc-fit-row--flip .pc-fit-text {
  grid-column: 1;
  grid-row: 1;
  align-items: flex-end;
  text-align: right;
  padding: 112px 96px 0 120px;
}
.pc-fit-row--flip { grid-template-columns: minmax(0, 42%) minmax(0, 58%); }
/* planos entram na sequência com o mesmo gap de 152px */
.pc .plans { margin-top: 152px; }

@media (max-width: 1100px) {
  .pc-fit-media img { height: 480px; }
  .pc-fit-tag { left: 56%; }
}
@media (max-width: 900px) {
  .pc-fit { margin-top: 96px; }
  .pc-fit-title { font-size: var(--meds-font-size-3xl); padding: 0 20px; }
  .pc-fit-row,
  .pc-fit-row--flip { grid-template-columns: 1fr; }
  .pc-fit-media, .pc-fit-row--flip .pc-fit-media { grid-column: 1; }
  .pc-fit-media img, .pc-fit-row--flip .pc-fit-media img { height: 320px; border-radius: 0; }
  .pc-fit-tag, .pc-fit-row--flip .pc-fit-tag { left: 20px; top: 40px; font-size: var(--meds-font-size-xl); }
  .pc-fit-text, .pc-fit-row--flip .pc-fit-text {
    grid-column: 1;
    grid-row: auto;
    align-items: flex-start;
    text-align: left;
    padding: var(--meds-spacing-space-16) 20px 0;
  }
  .pc .plans { margin-top: 96px; }
}

/* ═══ Para clínicas — correções de mobile ═══ */
/* botão de categoria não herda fonte do body (form controls) */
.pc-cat { font-family: var(--meds-font-family-sans); }
@media (max-width: 768px) {
  /* o bloco mobile da home centraliza .hero-sentence/.agent-text globalmente;
     no hero da /para-clinicas o título é alinhado à esquerda — mantém coerência */
  .pc-hero .hero-sentence { justify-content: flex-start; }
  .pc-hero .agent-text { text-align: left; }
  .pc-hero .hero-cta { width: 100%; justify-content: center; }
}

/* nota discreta com fonte (card do WhatsApp) */
.pc-pain-card .pc-pain-note {
  margin-top: auto;
  padding-top: var(--meds-spacing-space-8);
  font-size: var(--meds-font-size-sm);
  line-height: 1.5;
  color: var(--meds-text-secondary);
}
.pc-pain-card .pc-pain-note span {
  display: block;
  margin-top: 4px;
  font-size: var(--meds-font-size-xs);
}

/* setas do carrossel de agentes */
.pc-agents-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;   /* bolinhas à esquerda, setas à direita */
  min-height: 40px;
}
.pc-agents-arrows {
  display: flex;
  gap: var(--meds-spacing-space-4);
}
.pc-agents-arrow {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 50%;
  background: transparent;
  color: #FFFFFF;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--meds-transition-fast), border-color var(--meds-transition-fast);
}
.pc-agents-arrow:hover {
  background: rgba(255,255,255,0.12);
  border-color: rgba(255,255,255,0.4);
}
.pc-agents-arrow svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ═══ Para clínicas — demo (vídeo inline) ═══ */
.pc-demo {
  max-width: 1720px;
  margin: 152px auto 0;
  padding: 0 120px;
}
.pc-demo-head {
  text-align: center;
  margin-bottom: var(--meds-spacing-space-32);
}
.pc-demo-title {
  margin: var(--meds-spacing-space-8) auto 0;
  max-width: 640px;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-4xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-snug);
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
  text-wrap: balance;
}
.pc-demo-stage {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  aspect-ratio: 16 / 10;
  border-radius: 40px;
  overflow: hidden;
  background: #0b0b0f;
}
.pc-demo-stage iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.pc-demo-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  display: block;
}
.pc-demo-poster video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.pc-demo-play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: var(--meds-interactive-primary-default);
  color: var(--meds-surface-accent-default);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 32px -12px rgba(0,0,0,0.45);
  transition: transform var(--meds-transition-fast);
}
.pc-demo-poster:hover .pc-demo-play { transform: translate(-50%, -50%) scale(1.06); }
.pc-demo-play svg {
  width: 26px;
  height: 26px;
  margin-left: 4px;
  fill: currentColor;
}
@media (max-width: 900px) {
  .pc-demo { margin-top: 96px; padding: 0 20px; }
  .pc-demo-title { font-size: var(--meds-font-size-3xl); }
  .pc-demo-stage { border-radius: 24px; aspect-ratio: 16 / 11; }
  .pc-demo-play { width: 64px; height: 64px; }
}

/* ═══ Para clínicas — faixa intermediária (tablet / laptop pequeno) ═══ */
@media (min-width: 901px) and (max-width: 1200px) {
  /* laterais das sections */
  .pc-hero { padding: 120px 56px 64px; }
  .pc-pain, .pc-reveal, .pc-agents, .pc-demo { padding-left: 56px; padding-right: 56px; }

  .pc-hero-title { font-size: var(--meds-font-size-4xl); }
  .pc-hero-checks li { font-size: var(--meds-font-size-md); }

  /* a frase do reveal tem <br> fixos: solta as quebras antes de estourar a linha */
  .pc-reveal-text { font-size: var(--meds-font-size-4xl); }
  .pc-reveal-text br { display: none; }

  /* colunas de "Para quem é": padding proporcional ao espaço restante */
  .pc-fit-text { padding: 72px 56px 0 56px; }
  .pc-fit-row--flip .pc-fit-text { padding: 72px 56px 0 56px; }
  .pc-fit-media img { height: 560px; }
  .pc-fit-tag { top: 48px; font-size: var(--meds-font-size-2xl); max-width: 220px; }
  .pc-fit-text h3 { font-size: var(--meds-font-size-2xl); }
  .pc-fit-lead { font-size: var(--meds-font-size-lg); }
  .pc-fit-sub { font-size: var(--meds-font-size-md); }

  /* card verde: padding interno menor pra não espremer o texto */
  .pc-agents-panel { padding: 56px 40px 40px; }
}

/* Títulos com <br> fixo: no mobile a quebra vira natural e equilibrada
   (evita linhas de uma palavra só) */
@media (max-width: 900px) {
  .pc-pain-title br,
  .pc-fit-title br { display: none; }
  .pc-pain-title,
  .pc-fit-title,
  .pc-pain-sub { text-wrap: balance; }
}

/* Para quem é — mobile: imagem menor, texto centralizado e colado no bloco seguinte */
@media (max-width: 900px) {
  .pc-fit-media img,
  .pc-fit-row--flip .pc-fit-media img { height: 240px; }
  .pc-fit-tag,
  .pc-fit-row--flip .pc-fit-tag { top: 28px; font-size: var(--meds-font-size-2xl); }
  .pc-fit-text,
  .pc-fit-row--flip .pc-fit-text {
    align-items: center;
    text-align: center;
    padding: var(--meds-spacing-space-16) 20px var(--meds-spacing-space-40);
  }
  .pc-fit-lead, .pc-fit-sub { max-width: none; }
}

/* Para quem é — mobile: cada linha vira um card (imagem + texto), tag na base da foto */
@media (max-width: 900px) {
  .pc-fit-row,
  .pc-fit-row--flip {
    margin: 0 20px;
    background: var(--meds-surface-default);
    border-radius: 24px;
    overflow: hidden;
  }
  .pc-fit-row + .pc-fit-row { margin-top: var(--meds-spacing-space-16); }
  .pc-fit-media img,
  .pc-fit-row--flip .pc-fit-media img { height: 340px; border-radius: 0; }
  .pc-fit-tag,
  .pc-fit-row--flip .pc-fit-tag {
    top: auto;
    bottom: var(--meds-spacing-space-12);
    left: var(--meds-spacing-space-12);
    font-size: var(--meds-font-size-2xl);
  }
  .pc-fit-text,
  .pc-fit-row--flip .pc-fit-text {
    align-items: flex-start;
    text-align: left;
    padding: var(--meds-spacing-space-12);
  }
  .pc-fit-text h3 { font-size: var(--meds-font-size-2xl); }
  .pc-fit-lead { font-size: var(--meds-font-size-lg); margin-top: var(--meds-spacing-space-8); }
  .pc-fit-sub { font-size: var(--meds-font-size-md); }
  .pc-fit-cta { margin-top: var(--meds-spacing-space-12); }
}

/* Agentes — mobile: sem o título (a frase do reveal já introduz) e tipografia na escala do card */
@media (max-width: 900px) {
  .pc-agents-title { display: none; }
  .pc-agents-cats { max-width: none; }
  .pc-cat { padding: var(--meds-spacing-space-10) var(--meds-spacing-space-12); }
  /* empilhado: o card não encosta mais no verde — todos os cantos arredondados */
  .pc-agents .pc-cat.is-active {
    padding: var(--meds-spacing-space-12);
    border-radius: 16px;
    margin-left: 0;
    width: 100%;
  }
  .pc-cat-title { font-size: var(--meds-font-size-lg); }
  .pc-cat-desc { font-size: var(--meds-font-size-md); }
  .pc-cat-avatars .team-avatar { width: 26px; height: 26px; }
  /* card do agente */
  .pc-agent-phrase { font-size: var(--meds-font-size-md); }
  .pc-agent-role { font-size: var(--meds-font-size-lg); }
  .pc-agent-desc { font-size: var(--meds-font-size-md); }
  .pc-agent-avatar { width: 48px; height: 48px; }
  .pc-agent-body { margin-top: var(--meds-spacing-space-16); }
}

/* ═══ Blog — índice ═══ */
.blog-index {
  max-width: 1720px;
  margin: 0 auto;
  padding: var(--meds-spacing-space-48) 120px var(--meds-spacing-space-64);
}
.blog-head {
  max-width: 760px;
  margin-bottom: var(--meds-spacing-space-32);
}
.blog-title {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-snug);
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
}
.blog-sub {
  margin: var(--meds-spacing-space-12) 0 0;
  font-size: var(--meds-font-size-lg);
  line-height: var(--meds-line-height-body);
  color: var(--meds-text-secondary);
  text-wrap: pretty;
}
/* filtros de categoria */
.blog-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: var(--meds-spacing-space-6);
  margin-bottom: var(--meds-spacing-space-24);
}
.blog-filtro {
  padding: 8px 18px;
  border-radius: 9999px;
  border: 1px solid var(--meds-border-default);
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-medium);
  color: var(--meds-text-secondary);
  text-decoration: none;
  transition: background var(--meds-transition-fast), color var(--meds-transition-fast), border-color var(--meds-transition-fast);
}
.blog-filtro:hover { border-color: var(--meds-text-secondary); color: var(--meds-text-primary); }
.blog-filtro.is-active {
  background: var(--meds-surface-accent-default);
  border-color: var(--meds-surface-accent-default);
  color: #FFFFFF;
}
/* grade de artigos */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--meds-spacing-space-16);
}
.blog-card {
  border: 1px solid var(--meds-border-default);
  border-radius: var(--meds-spacing-radius-card-lg, 24px);
  background: var(--meds-surface-default);
  overflow: hidden;
  transition: transform 0.25s cubic-bezier(.2,.65,.3,1), box-shadow 0.25s cubic-bezier(.2,.65,.3,1);
}
.blog-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -20px rgba(2, 56, 54, 0.18);
}
.blog-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--meds-spacing-space-16);
  text-decoration: none;
}
.blog-card-thumb {
  display: block;
  margin: calc(var(--meds-spacing-space-16) * -1) calc(var(--meds-spacing-space-16) * -1) var(--meds-spacing-space-12);
}
.blog-card-thumb img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}
.blog-card-meta {
  display: flex;
  align-items: center;
  gap: var(--meds-spacing-space-6);
  font-size: var(--meds-font-size-sm);
  color: var(--meds-text-secondary);
}
.blog-card-cat {
  font-weight: var(--meds-font-weight-semibold);
  color: var(--meds-text-brand, #038F52);
}
.blog-card-title {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-2xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-snug);
  color: var(--meds-text-primary);
  text-wrap: balance;
}
.blog-card-desc {
  margin: var(--meds-spacing-space-8) 0 0;
  font-size: var(--meds-font-size-md);
  line-height: var(--meds-line-height-body);
  color: var(--meds-text-secondary);
}
.blog-card-cta {
  margin-top: auto;
  padding-top: var(--meds-spacing-space-12);
  font-size: var(--meds-font-size-sm);
  font-weight: var(--meds-font-weight-semibold);
  color: var(--meds-text-primary);
}
.blog-card:hover .blog-card-cta { text-decoration: underline; }
.blog-paginacao {
  display: flex;
  justify-content: center;
  gap: var(--meds-spacing-space-4);
  margin-top: var(--meds-spacing-space-32);
}
.blog-pagina {
  min-width: 40px;
  padding: 8px 12px;
  text-align: center;
  border: 1px solid var(--meds-border-default);
  border-radius: 12px;
  font-size: var(--meds-font-size-sm);
  color: var(--meds-text-secondary);
  text-decoration: none;
}
.blog-pagina.is-active {
  background: var(--meds-surface-accent-default);
  border-color: var(--meds-surface-accent-default);
  color: #FFFFFF;
}
.blog-vazio { color: var(--meds-text-secondary); }

/* ═══ Blog — post ═══ */
.post-page {
  max-width: 1720px;
  margin: 0 auto;
  padding: var(--meds-spacing-space-32) 120px var(--meds-spacing-space-64);
}
.post-trilha {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: var(--meds-font-size-sm);
  color: var(--meds-text-tertiary);
  margin-bottom: var(--meds-spacing-space-24);
}
.post-trilha a { color: var(--meds-text-secondary); text-decoration: none; }
.post-trilha a:hover { color: var(--meds-text-primary); text-decoration: underline; }
.post-head, .post-corpo, .post-meta { max-width: 720px; margin-left: auto; margin-right: auto; }
.post-titulo {
  margin: var(--meds-spacing-space-8) 0 0;
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-5xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-tight);
  letter-spacing: -0.02em;
  color: var(--meds-text-primary);
  text-wrap: balance;
}
.post-meta {
  margin-top: var(--meds-spacing-space-12);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: var(--meds-font-size-sm);
  color: var(--meds-text-secondary);
}
.post-capa {
  max-width: 1080px;
  margin: var(--meds-spacing-space-24) auto 0;
}
.post-capa img {
  width: 100%;
  border-radius: var(--meds-spacing-radius-card-lg, 24px);
  display: block;
}
/* corpo do artigo: medida de leitura ~65 caracteres */
.post-corpo {
  margin-top: var(--meds-spacing-space-24);
  font-size: var(--meds-font-size-lg);
  line-height: var(--meds-line-height-relaxed);
  color: var(--meds-text-primary);
}
.post-corpo > * + * { margin-top: var(--meds-spacing-space-12); }
.post-corpo h2 {
  margin-top: var(--meds-spacing-space-32);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-3xl);
  font-weight: var(--meds-font-weight-regular);
  line-height: var(--meds-line-height-snug);
  letter-spacing: -0.01em;
}
.post-corpo h3 {
  margin-top: var(--meds-spacing-space-24);
  font-family: var(--meds-font-family-sans);
  font-size: var(--meds-font-size-xl);
  font-weight: var(--meds-font-weight-semibold);
}
.post-corpo p { color: var(--meds-text-secondary); }
.post-corpo a { color: var(--meds-text-brand, #038F52); }
.post-corpo ul, .post-corpo ol { padding-left: 1.2em; color: var(--meds-text-secondary); }
.post-corpo li + li { margin-top: var(--meds-spacing-space-4); }
.post-corpo img { max-width: 100%; height: auto; border-radius: 16px; }
.post-corpo blockquote {
  padding-left: var(--meds-spacing-space-12);
  border-left: 3px solid var(--meds-interactive-primary-default);
  color: var(--meds-text-secondary);
}
.post-relacionados { margin-top: var(--meds-spacing-space-48); }
.post-relacionados-titulo {
  margin: 0 0 var(--meds-spacing-space-16);
  font-family: 'Space Grotesk', var(--meds-font-family-sans);
  font-size: var(--meds-font-size-3xl);
  font-weight: var(--meds-font-weight-regular);
  color: var(--meds-text-primary);
}
.post-cta { margin-top: var(--meds-spacing-space-48); }

@media (max-width: 1100px) {
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .blog-index { padding: var(--meds-spacing-space-32) 20px var(--meds-spacing-space-40); }
  .blog-title, .post-titulo { font-size: var(--meds-font-size-3xl); }
  .blog-grid { grid-template-columns: 1fr; }
  .post-page { padding: var(--meds-spacing-space-16) 20px var(--meds-spacing-space-40); }
  .post-corpo { font-size: var(--meds-font-size-md); }
  .post-corpo h2 { font-size: var(--meds-font-size-2xl); }
}

/* ═══ Casca do conteúdo ═══
   Caixa branca arredondada que separa a nav (que fica sobre o chão da página)
   do corpo do conteúdo. Sem overflow:hidden de propósito: isso viraria um
   scrollport e quebraria o position:sticky do deck de agentes. */
body { background: var(--meds-surface-ground); }
:root { --meds-surface-ground: #EFF1F0; }   /* neutro com leve viés verde da marca */

.page-shell {
  position: relative;
  z-index: 1;                                /* passa por cima do rodapé fixo */
  background: var(--meds-surface-page);
  border-radius: var(--shell-radius, 40px);
  --shell-inset: clamp(16px, 3vw, 56px);
  margin: 20px var(--shell-inset) var(--shell-inset);
}
/* A casca come largura dos dois lados; devolvemos isso no padding das seções
   para o conteúdo continuar na mesma medida (e alinhado entre si). */
@media (min-width: 901px) {
  .page-shell .hero,
  .page-shell .team,
  .page-shell .journey,
  .page-shell .included,
  .page-shell .builder,
  .page-shell .plans,
  .page-shell .faq,
  .page-shell .manifesto,
  .page-shell .pc-hero,
  .page-shell .pc-pain,
  .page-shell .pc-reveal,
  .page-shell .pc-agents,
  .page-shell .pc-demo {
    padding-inline: calc(120px - var(--shell-inset));
  }
}
/* O hero do /para-clinicas é o primeiro filho da casca: arredonda junto com
   ela em cima (já tem overflow:hidden, então o vídeo é recortado) e encolhe a
   altura no que a casca ocupa no topo. */
.page-shell .pc-hero {
  border-radius: var(--shell-radius, 40px) var(--shell-radius, 40px) 0 0;
  /* antes o hero tinha 100vh porque a nav ficava por cima dele; agora ela
     ocupa espaço acima da casca, então desconta o topo (JS mede em --shell-top). */
  min-height: calc(100vh - var(--shell-top, 136px));
  min-height: calc(100dvh - var(--shell-top, 136px));
}

/* O glow do topo passa a viver dentro da casca, recortado pelo raio dela
   (na body ele ficaria escondido atrás do branco). */
.page-shell::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 60.25vw;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background-image: url('img/header-bg.svg');
  background-size: 100% 100%;
  background-repeat: no-repeat;
  -webkit-mask-image: linear-gradient(180deg, #000 84%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 84%, transparent 100%);
}
/* Só some nas páginas com casca — as outras (/para-clinicas, /blog) seguem
   usando o glow na body. */
body:has(.page-shell)::before { display: none; }
.site-footer { border-top: 0; }             /* o chão já separa footer do conteúdo */

/* Rodapé ancorado no fim da viewport: a casca sobe por cima dele e o revela
   no fim do scroll. Sticky (e não fixed) porque ele volta ao fluxo sozinho na
   posição final — sem precisar reservar altura no fim do documento.
   Só nas páginas com casca (nas outras não há bloco opaco pra escondê-lo) e
   só quando o rodapé cabe na viewport — a classe vem do JS. Se ele for mais
   alto que a tela, o topo dele ficaria acima do scroll máximo, fora de
   alcance; nesse caso o rodapé volta ao fluxo normal. */
body.footer-reveal .site-footer {
  position: sticky;
  bottom: 0;
  z-index: 0;
}

@media (max-width: 900px) {
  .page-shell { --shell-radius: 24px; margin: 12px 10px 10px; }
  .page-shell::before { height: 950px; }
}
