/*
 * =========================================================
 *  REAVIVA v2 — "PREMIUM HUMANO" (2026)
 *  Identidade navy + amarelo · editorial · foto-jornalismo
 *  Inspirado em Össur / Ottobock / Hanger Clinic
 *  Carregado APÓS modern.css — sobrescreve e expande.
 * =========================================================
 */

/* ============ 1. TOKENS ============ */
:root {
  /* Paleta oficial (da logo) */
  --v2-navy:           #0EA5B7;
  --v2-navy-deep:      #087990;
  --v2-navy-night:     #064A5C;
  --v2-navy-soft:      #D5F2F7;
  --v2-navy-ghost:     #EEFBFD;

  --v2-amber:          #FFC300;
  --v2-amber-deep:     #E0A800;
  --v2-amber-warm:     #FFB300;
  --v2-amber-soft:     #FFF4D1;
  --v2-amber-ghost:    #FFFBEB;

  /* Neutros editorial */
  --v2-ink:            #0B1220;
  --v2-ink-soft:       #2E3B52;
  --v2-ink-muted:      #5A6680;
  --v2-line:           #E5E9F0;
  --v2-line-soft:      #EEF1F6;
  --v2-white:          #FFFFFF;
  --v2-paper:          #FAFBFC;
  --v2-paper-warm:     #FBF9F5;

  /* Sombras — mais dramáticas (editorial) */
  --v2-shadow-xs:      0 1px 2px rgba(4, 62, 77, 0.04);
  --v2-shadow-sm:      0 2px 8px -2px rgba(4, 62, 77, 0.08);
  --v2-shadow:         0 8px 24px -8px rgba(4, 62, 77, 0.14);
  --v2-shadow-md:      0 14px 36px -10px rgba(4, 62, 77, 0.18);
  --v2-shadow-lg:      0 24px 60px -16px rgba(4, 62, 77, 0.24);
  --v2-shadow-xl:      0 40px 80px -20px rgba(4, 62, 77, 0.32);
  --v2-shadow-brand:   0 14px 40px -12px rgba(14, 165, 183, 0.45);
  --v2-shadow-amber:   0 14px 40px -12px rgba(255, 195, 0, 0.45);

  /* Rings (focus) */
  --v2-ring-navy:      0 0 0 4px rgba(14, 165, 183, 0.18);
  --v2-ring-amber:     0 0 0 4px rgba(255, 195, 0, 0.28);

  /* Raios */
  --v2-r-sm:  0.6rem;
  --v2-r:     1rem;
  --v2-r-md:  1.4rem;
  --v2-r-lg:  2rem;
  --v2-r-xl:  3.2rem;
  --v2-r-pill: 999rem;

  /* Gradientes */
  --v2-grad-navy:      linear-gradient(135deg, #0EA5B7 0%, #087990 100%);
  --v2-grad-navy-deep: linear-gradient(180deg, #0EA5B7 0%, #064A5C 100%);
  --v2-grad-amber:     linear-gradient(135deg, #FFC300 0%, #E0A800 100%);
  --v2-mesh-hero: radial-gradient(1400px 800px at 80% 10%, rgba(255, 195, 0, 0.14) 0%, transparent 55%),
                  radial-gradient(900px 600px at 10% 90%, rgba(255, 195, 0, 0.08) 0%, transparent 55%),
                  linear-gradient(180deg, #0EA5B7 0%, #087990 100%);

  /* Tipografia */
  --v2-ff-display:  'Instrument Serif', 'Fraunces', Georgia, 'Times New Roman', serif;
  --v2-ff-sans:     'Nunito Sans', 'Inter', 'Vista Sans OT CE', -apple-system, 'Segoe UI', sans-serif;
  --v2-ff-mono:     'JetBrains Mono', 'SF Mono', Consolas, monospace;

  /* Transitions */
  --v2-ease:        cubic-bezier(0.2, 0.8, 0.2, 1);
  --v2-ease-quick:  cubic-bezier(0.3, 0.9, 0.3, 1);

  /* Container */
  --v2-container:   min(1320px, calc(100vw - 4rem));
  --v2-container-narrow: min(920px, calc(100vw - 4rem));
}

/* Carregar fontes editoriais */
/* Fraunces removido - usamos Nunito Sans da IV oficial */

/* Override da font-family base para usar Inter (modern editorial) */
.v2,
body.v2-page {
  font-family: var(--v2-ff-sans) !important;
  color: var(--v2-ink-soft);
  background: var(--v2-paper);
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Esconde as decorações SVG antigas (circles do Limitless) */
.v2-page .ap-svg1,
.v2-page .ap-svg2,
.v2-page .ap-svg3,
.v2-page .svg-circle-yellow,
.v2-page .svg-circle-green { display: none !important; }

/* ============ 2. TIPOGRAFIA EDITORIAL ============ */
.v2-display {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 400;
  font-variation-settings: "opsz" 144, "SOFT" 0, "WONK" 0;
  letter-spacing: -0.02em;
  line-height: 1.02;
  color: var(--v2-ink);
}
.v2-display--xxl { font-size: clamp(5.2rem, 8vw, 9rem); }
.v2-display--xl  { font-size: clamp(3rem, 4vw, 4.5rem); }
.v2-display--lg  { font-size: clamp(3.2rem, 4.8vw, 5.4rem); }
.v2-display--md  { font-size: clamp(2.6rem, 3.6vw, 4rem); }

.v2-title {
  font-family: var(--v2-ff-sans);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.12;
  color: var(--v2-ink);
}
.v2-title--xl { font-size: clamp(3.2rem, 4.4vw, 4.8rem); }
.v2-title--lg { font-size: clamp(2.6rem, 3.2vw, 3.6rem); }
.v2-title--md { font-size: clamp(2rem, 2.6vw, 2.8rem); }
.v2-title--sm { font-size: 2rem; }

.v2-lede {
  font-size: clamp(1.7rem, 1.9vw, 2rem);
  line-height: 1.55;
  color: var(--v2-ink-soft);
  font-weight: 400;
  max-width: 58ch;
}

.v2-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-family: var(--v2-ff-sans);
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--v2-amber);
}
.v2-eyebrow::before {
  content: "";
  width: 1.6rem;
  height: 0.2rem;
  background: var(--v2-amber);
  border-radius: 99px;
}
.v2-eyebrow.is-ink { color: var(--v2-navy); }
.v2-eyebrow.is-ink::before { background: var(--v2-amber); }

/* ============ 3. WRAP E LAYOUT ============ */
.v2-wrap {
  width: 100%;
  max-width: var(--v2-container);
  margin: 0 auto;
  padding: 0 2rem;
}
.v2-wrap--narrow {
  max-width: var(--v2-container-narrow);
  margin: 0 auto;
  padding: 0 2rem;
}
.v2-section {
  padding: clamp(4rem, 5vw, 5.5rem) 0;
  position: relative;
}
.v2-section--sm { padding: clamp(3rem, 4vw, 4rem) 0; }
.v2-section--navy { background: var(--v2-navy); color: var(--v2-white); }
.v2-section--paper { background: var(--v2-paper-warm); }
.v2-section--ghost { background: var(--v2-navy-ghost); }
.v2-section--amber { background: var(--v2-amber); color: var(--v2-navy); }

/* ============ 4. HEADER v2 — removido (agora usa a regra compartilhada do modern.css) ============ */
/* O header da home agora segue o mesmo layout/tamanho das páginas internas.
   Regras de tamanho, cor e menu ficam centralizadas em modern.css pra consistência. */

/* ============ 5. HERO v2 — FULL NAVY EDITORIAL ============ */
.v2-hero {
  position: relative;
  background: var(--v2-navy) !important; /* turquesa sólido — sem gradientes */
  color: var(--v2-white);
  padding: clamp(3.5rem, 5vw, 5rem) 0 clamp(4rem, 5vw, 5.5rem);
  overflow: hidden;
  isolation: isolate;
}
.v2-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(135deg, transparent 0, transparent 120px, rgba(255,195,0,0.01) 120px, rgba(255,195,0,0.01) 121px);
  pointer-events: none;
  z-index: 0;
}
.v2-hero > .v2-wrap {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 6rem;
  align-items: center;
  position: relative;
  z-index: 1;
}
.v2-hero .v2-eyebrow { color: var(--v2-amber); margin-bottom: 3rem; }
.v2-hero h1 {
  color: #ffffff !important;
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 800;
  font-size: clamp(3.6rem, 5vw, 5.4rem);
  letter-spacing: 0;            /* sem negativo — texto não vaza pra esquerda da margem */
  line-height: 1.08;
  margin-bottom: 2.4rem;
  text-shadow: none !important;
}
.v2-hero h1 em {
  font-style: normal;
  font-weight: 800;
  color: var(--v2-amber);
  background: none;
  padding: 0;
}
.v2-hero .v2-lede {
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(1.7rem, 1.9vw, 2.1rem);
  max-width: 54ch;
  margin-bottom: 3.2rem;
}
.v2-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem;
  align-items: center;
  margin-bottom: 2.4rem;
}
.v2-hero-media {
  position: relative;
  border-radius: var(--v2-r-lg);
  overflow: hidden;
  aspect-ratio: 2 / 3;               /* casa com o ratio da foto (933x1400) */
  box-shadow: var(--v2-shadow-xl);
  border: 1px solid rgba(255, 255, 255, 0.08);
  max-height: 78vh;                  /* trava p/ não ficar gigante em telas altas */
}
.v2-hero-media img,
.v2-hero-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;    /* imagem inteira agora, sem corte */
  display: block;
}
.v2-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 55%, rgba(4, 62, 77, 0.35) 100%);
  pointer-events: none;
}
/* Badge flutuante no hero */
.v2-hero-badge {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
  right: 2rem;
  display: flex;
  align-items: center;
  gap: 1.2rem;
  background: rgba(4, 62, 77, 0.85);
  backdrop-filter: blur(20px);
  color: var(--v2-white);
  padding: 1.4rem 1.8rem;
  border-radius: var(--v2-r);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 1.3rem;
  font-weight: 500;
}
.v2-hero-badge strong { color: var(--v2-amber); font-weight: 700; }
.v2-hero-badge .dot {
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  background: #22C55E;
  box-shadow: 0 0 12px rgba(34, 197, 94, 0.7);
  animation: v2-pulse 2s infinite;
}
@keyframes v2-pulse {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7); }
  50% { opacity: 0.9; box-shadow: 0 0 0 6px rgba(34, 197, 94, 0); }
}

/* ============ 5b. HERO v2 — FULL-BLEED (largura total) ============
   Seção ocupa 100% da viewport horizontal e altura proporcional ao vídeo (16:9).
   Assim o vídeo cabe inteiro (topo + bottom visíveis) sem distorção. */
.v2-hero--video {
  background: #2B3342;
  padding: 0;
  display: block;
  width: 100%;
  /* Hero ocupa o que sobra da viewport — header (~50px) + stats (~165px) = 275px reservados.
     Em 1920×1080, hero fica com 805px de altura — 100vh sem scroll. */
  height: calc(100vh - 275px);
  min-height: 360px;
  aspect-ratio: auto;
  position: relative;
  overflow: hidden;
}
/* Esconde controles nativos / botão PiP do vídeo do hero em todos os browsers */
.v2-hero-bg-video::-webkit-media-controls,
.v2-hero-bg-video::-webkit-media-controls-enclosure,
.v2-hero-bg-video::-webkit-media-controls-panel,
.v2-hero-bg-video::-internal-media-controls-overlay-cast-button { display: none !important; }

/* Mobile (<= 768px): IGUAL desktop — vídeo full-bleed como fundo, texto SOBREPOSTO no centro.
   Stage = container absoluto, vídeo de fundo (cover), overlay escuro e texto centralizado. */
@media (max-width: 768px) {
  .v2-hero--video {
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: relative !important;
  }
  .v2-hero-stage {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
  }
  .v2-hero-bg-video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    z-index: 0 !important;
  }
  .v2-hero-bg-overlay {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, rgba(15,40,55,0.30) 0%, rgba(15,40,55,0.20) 40%, rgba(15,40,55,0.70) 100%) !important;
    z-index: 1 !important;
  }
  .v2-hero-text--center {
    position: relative !important;
    z-index: 2 !important;
    padding: 1.2rem 1rem !important;
    max-width: 92% !important;
    margin: 0 auto !important;
    text-align: center !important;
    color: #fff !important;
  }
  .v2-hero-text--center .v2-eyebrow,
  .v2-hero-text--center .v2-eyebrow--brand {
    color: var(--v2-amber, #F5BE1A) !important;
    text-shadow: 0 1px 8px rgba(0,0,0,0.55);
  }
  .v2-hero-text--center h1 {
    color: #fff !important;
    text-shadow: 0 2px 14px rgba(0,0,0,0.55) !important;
  }
  .v2-hero-text--center h1 em { color: var(--v2-amber, #F5BE1A) !important; font-style: normal; }
  .v2-hero-text--center .v2-lede {
    color: rgba(255,255,255,0.95) !important;
    text-shadow: 0 1px 10px rgba(0,0,0,0.55) !important;
  }
}
/* Sem faixas/gradients top/bottom — corte direto entre header → vídeo → stats */
.v2-hero--video::before,
.v2-hero--video::after { content: none !important; display: none !important; }
.v2-hero--video > .v2-wrap { display: none; }   /* desativa o wrap genérico do hero padrão */

/* Stage preenche toda a seção full-bleed */
.v2-hero-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.v2-hero-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;             /* preenche toda a área */
  object-position: center center;
  /* Esconde botões PiP / fullscreen / download que browsers injetam por padrão */
  pointer-events: none;
  display: block;
  filter: saturate(1.05);
  z-index: 0;
}
.v2-hero-bg-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(15, 40, 55, 0.20) 0%, rgba(15, 40, 55, 0.05) 40%, rgba(15, 40, 55, 0.65) 100%);
  z-index: 1;
}
.v2-hero-text--center {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: clamp(2rem, 4vw, 4rem);
  max-width: 90%;
}
.v2-hero-text--center .v2-lede { margin-left: auto; margin-right: auto; }
.v2-hero-text--center .v2-hero-actions { justify-content: center; }
.v2-hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
}
.v2-hero--video h1 { text-shadow: 0 2px 24px rgba(0, 0, 0, 0.55) !important; }
.v2-hero--video .v2-lede { text-shadow: 0 1px 12px rgba(0, 0, 0, 0.65); }

/* Mobile: vídeo 1:1 (720x720) + texto/CTA empilhados.
   As regras com !important do bloco anterior (linha ~320) já controlam stage/vídeo. */
@media (max-width: 768px) {
  .v2-hero--video {
    padding: 0 0 1.5rem 0;
    min-height: 0;
  }
  .v2-hero-stage {
    width: 100% !important;
    max-width: none !important;
    margin: 0 auto !important;
  }
}

/* ============ 6. STATS STRIP (após hero) ============ */
.v2-stats {
  background: var(--v2-navy-deep) !important;  /* turquesa-deep sólido, continuidade com o hero */
  color: var(--v2-white);
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  border-bottom: 4px solid var(--v2-amber);
}
.v2-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.v2-stat {
  padding: 2rem 3rem;
  text-align: center;
  border-right: 1px solid rgba(255, 255, 255, 0.06);
  transition: all 0.3s var(--v2-ease);
  position: relative;
}
.v2-stat:last-child { border-right: none; }
.v2-stat:hover { background: rgba(255, 195, 0, 0.05); }
.v2-stat-num {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 300;
  font-size: clamp(3rem, 3.5vw, 4.4rem);
  color: var(--v2-amber);
  line-height: 1;
  margin-bottom: 0.6rem;
  letter-spacing: -0.03em;
}
.v2-stat-num span { font-size: 0.5em; font-weight: 400; vertical-align: super; opacity: 0.8; }
/* Número principal NÃO é sobrescrito (era text node antes do inline edit) */
.v2-stat-num .rv-stat-num-main { font-size: 1em; font-weight: inherit; vertical-align: baseline; opacity: 1; }
/* Sufixo (+, %) continua sobrescrito pequeno — comportamento original */
.v2-stat-num .rv-stat-num-sfx  { font-size: 0.5em; font-weight: 400; vertical-align: super; opacity: 0.8; }
.v2-stat-label {
  font-size: 1.3rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* ============ 7. MANIFESTO / QUOTE EDITORIAL ============ */
.v2-manifesto {
  background: #ffffff !important;  /* branco puro pra dar ar ao quote */
  /* Respiro extra no topo, bottom MÍNIMO (cola na próxima seção) */
  padding: clamp(5rem, 7vw, 7rem) 0 1.2rem;
  text-align: center;
  position: relative;
}
.v2-manifesto blockquote {
  margin-top: 0.5rem;
}
/* Cite mais discreta — sem grande margem inferior */
.v2-manifesto cite {
  margin-top: 1.6rem !important;
}
/* Seções logo após o manifesto começam sem padding-top duplo */
.v2-manifesto + .v2-catalog,
.v2-manifesto + section {
  padding-top: clamp(1.5rem, 2.5vw, 2.5rem);
}
.v2-manifesto::before {
  content: none;
}
.v2-manifesto blockquote {
  max-width: 18ch;
  margin: 0 auto;
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 300;
  font-variation-settings: "opsz" 144;
  font-size: clamp(3.2rem, 5vw, 5.4rem);
  color: var(--v2-ink);
  letter-spacing: -0.02em;
  line-height: 1.08;
  position: relative;
  z-index: 1;
  text-wrap: balance;
}
.v2-manifesto blockquote em { font-style: italic; color: var(--v2-navy); }
.v2-manifesto cite {
  display: block;
  margin-top: 3rem;
  font-family: var(--v2-ff-sans);
  font-style: normal;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v2-ink-muted);
}

/* ============ 8. CATÁLOGO (6 categorias em 3x2) ============ */
.v2-catalog {
  /* Padding-bottom mínimo — espaço acima de Onde Estamos vem do padding-top do .v2-map */
  padding: clamp(3rem, 4vw, 4rem) 0 0;
  background: var(--v2-white);
}
.v2-catalog-header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 3rem;
  margin-bottom: 2.4rem;
  flex-wrap: wrap;
}
.v2-catalog-header .v2-title--xl {
  font-size: clamp(2.4rem, 3vw, 3.4rem) !important;
  margin-top: 1rem !important;
  white-space: nowrap;            /* mantém "Soluções para cada história." em 1 linha no web */
}
.v2-catalog-header-text { max-width: none; flex: 1 1 auto; }
/* Mobile (<768) libera quebra natural — frase grande não cabe em 1 linha */
@media (max-width: 768px) {
  .v2-catalog-header .v2-title--xl { white-space: normal; }
}
/* Lede do catálogo MENOR (era 1.7-2rem padrão) */
.v2-catalog-header .v2-lede,
.v2-catalog > .v2-wrap > .v2-catalog-header > .v2-lede {
  font-size: clamp(1.3rem, 1.2vw, 1.5rem) !important;
  line-height: 1.5 !important;
}
/* Grid 3 colunas — 6 cards distribuídos em 2 linhas de 3 */
.v2-catalog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
.v2-cat-card {
  background: #ffffff;
  color: var(--rv-ink);
  border-radius: var(--v2-r-lg);
  padding: 0;
  aspect-ratio: 4 / 3;   /* um pouco mais baixo que quadrado */
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  text-decoration: none;
  transition: transform 0.4s var(--v2-ease), box-shadow 0.4s var(--v2-ease);
  border: 1px solid #E5E9EC;
}
.v2-cat-card::before { display: none; }  /* remove o gradiente navy antigo */
.v2-cat-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -16px rgba(14, 165, 183, 0.25);
  border-color: var(--rv-primary-soft);
}

/* ==== CAROUSEL de imagens — slide lateral (entra pela direita, sai pela esquerda) ==== */
.v2-cat-card-carousel {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}
.v2-cat-card-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  opacity: 0;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite !important;
  animation-fill-mode: both;
  animation-delay: calc(var(--i) * 3s);
}
/* Duração e keyframe variam conforme número de fotos do carousel
   (cada foto ocupa 3s; nunca há sobreposição entre slides) */
.v2-cat-card-carousel[data-n="2"]  .v2-cat-card-slide { animation-name: rvFadeN2;  animation-duration: 6s  !important; }
.v2-cat-card-carousel[data-n="3"]  .v2-cat-card-slide { animation-name: rvFadeN3;  animation-duration: 9s  !important; }
.v2-cat-card-carousel[data-n="4"]  .v2-cat-card-slide { animation-name: rvFadeN4;  animation-duration: 12s !important; }
.v2-cat-card-carousel[data-n="5"]  .v2-cat-card-slide { animation-name: rvFadeN5;  animation-duration: 15s !important; }
.v2-cat-card-carousel[data-n="6"]  .v2-cat-card-slide { animation-name: rvFadeN6;  animation-duration: 18s !important; }
.v2-cat-card-carousel[data-n="7"]  .v2-cat-card-slide { animation-name: rvFadeN7;  animation-duration: 21s !important; }
.v2-cat-card-carousel[data-n="8"]  .v2-cat-card-slide { animation-name: rvFadeN8;  animation-duration: 24s !important; }
.v2-cat-card-carousel[data-n="9"]  .v2-cat-card-slide { animation-name: rvFadeN9;  animation-duration: 27s !important; }
.v2-cat-card-carousel[data-n="10"] .v2-cat-card-slide { animation-name: rvFadeN10; animation-duration: 30s !important; }
.v2-cat-card-slide > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;          /* default: foto inteira aparece */
  object-position: center;
  padding: 1.2rem;              /* respiro pra contain não colar nas bordas */
  box-sizing: border-box;
  display: block;
}
/* Variantes por foto — admin pode escolher */
.v2-cat-card-slide[data-fit="cover-center"] > img { object-fit: cover; object-position: center;     padding: 0; }
.v2-cat-card-slide[data-fit="cover-top"]    > img { object-fit: cover; object-position: center top; padding: 0; }
.v2-cat-card-slide[data-fit="cover-bottom"] > img { object-fit: cover; object-position: center bottom; padding: 0; }
.v2-cat-card-slide[data-fit="contain"]      > img { object-fit: contain; }
/* Label da foto — pill amarela no canto superior esquerdo do card */
.v2-cat-card-slide-label {
  position: absolute;
  top: 1.6rem;
  left: 1.6rem;
  z-index: 3;
  max-width: calc(100% - 3.2rem);
  background: var(--rv-accent, #F5BE1A);
  color: var(--rv-ink, #2B3342);
  padding: 0.5rem 1.4rem;
  border-radius: 999px;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 4px 10px -2px rgba(0,0,0,0.18);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
/* Cada keyframe rvFadeN<N> dura 1 ciclo com N*3s; cada slide é visível
   em ~80% do seu "slot" (slot = 100/N do ciclo total). */
@keyframes rvFadeN2  { 0%,50%,100%{opacity:0} 6%,44%{opacity:1} }
@keyframes rvFadeN3  { 0%,33.33%,100%{opacity:0} 4%,29%{opacity:1} }
@keyframes rvFadeN4  { 0%,25%,100%{opacity:0} 3%,22%{opacity:1} }
@keyframes rvFadeN5  { 0%,20%,100%{opacity:0} 2.5%,17.5%{opacity:1} }
@keyframes rvFadeN6  { 0%,16.66%,100%{opacity:0} 2%,14.6%{opacity:1} }
@keyframes rvFadeN7  { 0%,14.28%,100%{opacity:0} 1.8%,12.5%{opacity:1} }
@keyframes rvFadeN8  { 0%,12.5%,100%{opacity:0} 1.6%,11%{opacity:1} }
@keyframes rvFadeN9  { 0%,11.11%,100%{opacity:0} 1.4%,9.7%{opacity:1} }
@keyframes rvFadeN10 { 0%,10%,100%{opacity:0} 1.3%,8.7%{opacity:1} }
/* Compat */
@keyframes rvSlideFade    { 0%,33.33%,100%{opacity:0} 4%,29%{opacity:1} }
@keyframes rvSlideLateral { 0%,33.33%,100%{opacity:0} 4%,29%{opacity:1} }
/* Primeiro slide começa visível e centralizado, depois entra no ciclo */
/* (regra :first-child removida — interferia com o fade do carousel
   fazendo a primeira foto ficar sempre visível por baixo das outras) */
.v2-cat-card:hover .v2-cat-card-slide { animation-play-state: paused; }

/* Overlay gradiente branco-claro na parte inferior para legibilidade do título */
.v2-cat-card::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 28%;                  /* reduzido — foto aparece mais inteira */
  background: linear-gradient(180deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.75) 50%,
    rgba(255, 255, 255, 1) 100%);
  z-index: 2;
  pointer-events: none;
}

/* Bloco de título/meta — texto escuro sobre base branca, encostado no rodapé */
.v2-cat-card-info {
  position: relative;
  z-index: 3;
  margin-top: auto;
  padding: 0 2.4rem 1.6rem 2.4rem;     /* só padding lateral + um pouco no fundo */
}
.v2-cat-card-info .v2-cat-card-title {
  font-size: clamp(1.7rem, 1.5vw, 2.1rem);   /* menor */
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--rv-ink) !important;            /* navy escuro */
  margin: 0;
  text-align: left;                           /* canto esquerdo */
}
.v2-cat-card-info .v2-cat-card-meta {
  margin-top: 1.2rem;
  padding-top: 1.2rem;
  font-size: 1.25rem;
  letter-spacing: 0.08em;
  border-top: 1px solid #E5E9EC;
  color: var(--rv-primary);              /* turquesa pro destaque sub */
  font-weight: 600;
  text-transform: uppercase;
}
/* Variante simples: só a seta, sem texto estático (labels aparecem nos slides) */
.v2-cat-card-info .v2-cat-card-meta--simple {
  justify-content: flex-end;
  border-top: 0;
  padding-top: 0;
  margin-top: 0.6rem;
}
.v2-cat-card-info .v2-cat-card-arrow {
  color: var(--rv-ink);
  background: var(--rv-accent);
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.v2-cat-card-title {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 400;
  font-size: clamp(2.4rem, 2.6vw, 3.2rem);
  color: var(--v2-white);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0;
}
.v2-cat-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1.8rem;
  padding-top: 1.8rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 500;
}
.v2-cat-card-arrow {
  width: 3.2rem;
  height: 3.2rem;
  background: var(--v2-amber);
  color: var(--v2-navy);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: 700;
  transition: transform 0.3s var(--v2-ease);
}
.v2-cat-card:hover .v2-cat-card-arrow { transform: translate(4px, -4px); }

/* ============ 9. PROCESSO (TIMELINE horizontal) ============ */
.v2-process {
  /* Limites superior e inferior (metade do anterior) */
  padding: 40px 0 45px !important;
  background: #ffffff !important;
}
body #page-home .v2-process,
.v2-page .v2-process {
  padding-top: 40px !important;
  padding-bottom: 45px !important;
}
.v2-process-header { text-align: center; margin-bottom: 2.4rem; max-width: 640px; margin-left: auto; margin-right: auto; }
/* === PADRONIZAÇÃO GLOBAL DE TAMANHO DE H2 (= "Soluções para cada história") === */
/* Todos os títulos de seção do site usam a mesma escala: clamp(2.4rem, 3vw, 3.4rem) */
.v2-process-header h2,
.v2-process-header .v2-title--xl,
.v2-form-side h2,
.v2-magnet-body h2,
.v2-guides-header h2,
.v2-guides-header .v2-title,
.v2-about-story-body h2,
.v2-parceiros-header h2,
.v2-pilares-header h2,
.v2-valores-header h2,
.rv-offerings-title,
.services .section-header-center .title,
.services .section-header-center h2 {
  font-size: clamp(2.4rem, 3vw, 3.4rem) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.005em !important;
}
.v2-process-timeline {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  position: relative;
}
.v2-process-timeline::before {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  top: 3.2rem;
  height: 2px;
  background-image: linear-gradient(90deg, var(--v2-amber) 60%, transparent 60%);
  background-size: 14px 2px;       /* 8px de traço + 6px de gap */
  background-repeat: repeat-x;
  background-position: left center;
  z-index: 0;
  opacity: 0.85;
}
.v2-step {
  text-align: center;
  padding: 0 1.2rem;
  position: relative;
  z-index: 1;
}
.v2-step-num {
  width: 6.4rem;
  height: 6.4rem;
  margin: 0 auto 2rem;
  background: var(--v2-white);
  border: 2px solid var(--v2-amber);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 400;
  font-size: 2.4rem;
  color: var(--v2-navy);
  transition: all 0.3s var(--v2-ease);
  box-shadow: 0 8px 20px -8px rgba(255, 195, 0, 0.4),
              0 0 0 10px var(--v2-white);   /* "quebra" a linha ao redor do círculo */
  position: relative;
  z-index: 2;
}
.v2-step:hover .v2-step-num {
  background: var(--v2-amber);
  color: var(--v2-navy);
  transform: scale(1.05);
}
.v2-step h3 {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 500;
  font-size: 1.8rem;
  color: var(--v2-ink);
  margin-bottom: 0.6rem;
  letter-spacing: -0.01em;
}
.v2-step p {
  font-size: 1.3rem;
  color: var(--v2-ink-muted);
  line-height: 1.5;
  margin: 0;
}

/* ============ 10. CASOS REAIS (editorial with before/after) ============ */
.v2-cases {
  padding: clamp(4.5rem, 6vw, 6rem) 0;
  background: var(--v2-white);
}
.v2-cases-header { text-align: center; margin-bottom: 3.5rem; max-width: 640px; margin-left: auto; margin-right: auto; }
.v2-case {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 5rem;
  align-items: center;
  margin-bottom: 8rem;
}
.v2-case:last-child { margin-bottom: 0; }
.v2-case:nth-child(even) .v2-case-media { order: -1; }
.v2-case-media {
  position: relative;
  border-radius: var(--v2-r-lg);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  box-shadow: var(--v2-shadow-lg);
}
.v2-case-media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 0.6s var(--v2-ease);
}
.v2-case-media:hover img { transform: scale(1.03); }
.v2-case-body .v2-eyebrow { margin-bottom: 2rem; color: var(--v2-navy); }
.v2-case-body .v2-eyebrow::before { background: var(--v2-amber); }
.v2-case-quote {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 300;
  font-variation-settings: "opsz" 144;
  font-size: clamp(2.2rem, 2.6vw, 3rem);
  letter-spacing: -0.015em;
  line-height: 1.2;
  color: var(--v2-ink);
  margin-bottom: 2.4rem;
  text-wrap: balance;
}
.v2-case-author {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--v2-line);
}
.v2-case-author-name {
  font-weight: 700;
  color: var(--v2-ink);
  font-size: 1.5rem;
}
.v2-case-author-detail {
  font-size: 1.3rem;
  color: var(--v2-ink-muted);
  margin-top: 0.2rem;
}

/* ============ 11. EQUIPE ============ */
.v2-team {
  padding: clamp(4.5rem, 6vw, 6rem) 0;
  background: var(--v2-paper-warm);
}
.v2-team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  margin-top: 4rem;
}
.v2-team-card {
  background: var(--v2-white);
  border-radius: var(--v2-r);
  overflow: hidden;
  box-shadow: var(--v2-shadow-sm);
  transition: all 0.4s var(--v2-ease);
  position: relative;
}
.v2-team-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--v2-shadow-lg);
}
.v2-team-photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--v2-navy-soft);
}
.v2-team-photo img {
  width: 100%; height: 100%; object-fit: cover;
  filter: saturate(0.95);
  transition: all 0.5s var(--v2-ease);
}
.v2-team-card:hover .v2-team-photo img { filter: saturate(1.1); transform: scale(1.04); }
.v2-team-info { padding: 2rem 1.8rem 2.2rem; }
.v2-team-role {
  display: inline-block;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--v2-navy);
  background: var(--v2-amber-soft);
  padding: 0.4rem 1rem;
  border-radius: var(--v2-r-pill);
  margin-bottom: 1rem;
}
.v2-team-name {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 400;
  font-variation-settings: "opsz" 144;
  font-size: 2rem;
  color: var(--v2-ink);
  margin-bottom: 0.6rem;
  letter-spacing: -0.01em;
  line-height: 1.1;
}
.v2-team-bio {
  font-size: 1.3rem;
  color: var(--v2-ink-muted);
  line-height: 1.5;
  margin-bottom: 1.2rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.v2-team-social {
  display: flex;
  gap: 0.8rem;
}
.v2-team-social a {
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  background: var(--v2-navy-soft);
  color: var(--v2-navy);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  transition: all 0.2s;
}
.v2-team-social a:hover { background: var(--v2-navy); color: var(--v2-amber); transform: translateY(-2px); }

/* ============ 12. DEPOIMENTOS — EDITORIAL CARDS ============ */
.v2-testimonials {
  padding: clamp(4.5rem, 6vw, 6rem) 0;
  background: var(--v2-navy);
  color: var(--v2-white);
  position: relative;
  overflow: hidden;
}
.v2-testimonials::before {
  content: "";
  position: absolute;
  top: -20%;
  right: -10%;
  width: 60%;
  height: 80%;
  background: radial-gradient(circle, rgba(255, 195, 0, 0.08) 0%, transparent 60%);
  pointer-events: none;
}
.v2-testimonials-header { text-align: center; margin-bottom: 5rem; max-width: 640px; margin-left: auto; margin-right: auto; position: relative; z-index: 1; }
.v2-testimonials-header h2 { color: var(--v2-white); }
.v2-testimonials-header p { color: rgba(255, 255, 255, 0.7); }
.v2-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  position: relative; z-index: 1;
}
.v2-testi-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--v2-r);
  padding: 3rem 2.4rem;
  transition: all 0.3s var(--v2-ease);
  backdrop-filter: blur(10px);
}
.v2-testi-card:hover {
  background: rgba(255, 255, 255, 0.06);
  transform: translateY(-4px);
  border-color: rgba(255, 195, 0, 0.4);
}
.v2-testi-quote {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 300;
  font-size: 1.8rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.92);
  margin-bottom: 2.4rem;
  letter-spacing: -0.01em;
}
.v2-testi-quote::before {
  content: '"';
  font-size: 4rem;
  color: var(--v2-amber);
  display: block;
  line-height: 0.5;
  margin-bottom: 1.4rem;
  opacity: 0.8;
}
.v2-testi-author {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
.v2-testi-avatar {
  width: 4.2rem;
  height: 4.2rem;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--v2-amber);
}
.v2-testi-name { font-weight: 700; color: var(--v2-white); font-size: 1.4rem; }
.v2-testi-detail { font-size: 1.2rem; color: var(--v2-amber); letter-spacing: 0.04em; }

/* ============ 13. LEAD MAGNET / GUIDES v2 ============ */
.v2-magnet {
  padding: clamp(4.5rem, 6vw, 6rem) 0;
  background: #F7FBFA !important;  /* cinza-claro muito suave pra quebrar sem poluir */
}
.v2-magnet-hero {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 6rem;
  align-items: center;
  margin-bottom: 3.5rem;
  background: var(--v2-amber);
  border-radius: var(--v2-r-xl);
  padding: clamp(3rem, 4vw, 4.5rem);
  position: relative;
  overflow: hidden;
}
.v2-magnet-hero::before {
  content: "";
  position: absolute;
  right: -5%;
  bottom: -30%;
  width: 50%;
  height: 100%;
  background: radial-gradient(circle, rgba(14, 165, 183, 0.12) 0%, transparent 60%);
  pointer-events: none;
}
.v2-magnet-cover {
  position: relative;
  transform: rotate(-3deg);
  transition: transform 0.4s var(--v2-ease);
}
.v2-magnet-hero:hover .v2-magnet-cover { transform: rotate(0) scale(1.02); }
.v2-magnet-cover img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: var(--v2-r);
  box-shadow: var(--v2-shadow-xl);
}
.v2-magnet-body { position: relative; z-index: 1; }
.v2-magnet-body .v2-eyebrow { color: var(--v2-navy); margin-bottom: 2rem; }
.v2-magnet-body .v2-eyebrow::before { background: var(--v2-navy); }
.v2-magnet-body h2 {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 400;
  font-variation-settings: "opsz" 144;
  font-size: clamp(3.2rem, 4.4vw, 5rem);
  color: var(--v2-navy);
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 2rem;
}
.v2-magnet-body p {
  color: var(--v2-ink);
  font-size: 1.7rem;
  line-height: 1.55;
  max-width: 48ch;
  margin-bottom: 3rem;
}

/* Cabeçalho da biblioteca — centralizado */
.v2-guides-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto clamp(2.4rem, 4vw, 3.6rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.v2-guides-header .v2-eyebrow { margin: 0 auto; }
.v2-guides-header .v2-title {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 700;
  font-size: clamp(2.4rem, 2.8vw, 3rem) !important;
  color: var(--rv-ink) !important;
  margin: 0 auto !important;
  letter-spacing: -0.015em;
}
.v2-guides-header .v2-lede {
  font-size: 1.55rem;
  color: var(--rv-ink-soft);
  max-width: 58ch;
  margin: 0 auto;
}

/* Flex de guias — centraliza horizontalmente, permite 1, 2 ou 3 cards */
.v2-guides-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  margin-bottom: 0;
}
.v2-guide-card {
  flex: 0 1 340px;
  max-width: 100%;
}

/* Card do guia */
.v2-guide-card {
  background: #ffffff;
  border-radius: 1.4rem;
  overflow: hidden;
  box-shadow: 0 10px 30px -12px rgba(14, 165, 183, 0.18),
              0 2px 6px rgba(0, 0, 0, 0.04);
  border: 1px solid #EEF2F4;
  display: flex;
  flex-direction: column;
  transition: transform 0.35s var(--v2-ease), box-shadow 0.35s var(--v2-ease), border-color 0.35s var(--v2-ease);
  position: relative;
  text-align: left;
}
.v2-guide-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 44px -12px rgba(14, 165, 183, 0.3);
  border-color: var(--rv-primary-soft);
}
.v2-guide-cover {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: linear-gradient(135deg, var(--rv-primary-soft) 0%, #ffffff 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.v2-guide-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--v2-ease);
}
.v2-guide-card:hover .v2-guide-cover img { transform: scale(1.04); }

.v2-guide-body {
  padding: 2rem 2.2rem 2.4rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.v2-guide-body h3 {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 700;
  font-size: 1.8rem;
  color: var(--rv-ink);
  letter-spacing: -0.015em;
  line-height: 1.25;
  margin: 0;
}
.v2-guide-body p {
  font-size: 1.4rem;
  color: var(--rv-ink-soft);
  line-height: 1.55;
  margin: 0;
  flex: 1;
}
.v2-guide-body .v2-btn {
  align-self: stretch;
  justify-content: center;
  padding: 1.2rem 1.8rem;
  font-size: 1.4rem;
  background: var(--rv-primary-soft) !important;
  color: var(--rv-primary-deep) !important;
  border: 0 !important;
  font-weight: 700;
  transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.v2-guide-body .v2-btn:hover {
  background: var(--rv-primary) !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}

/* ============ 14. CTA FORM EDITORIAL ============ */
.v2-form {
  padding: clamp(3rem, 4vw, 4rem) 0;
  /* Creme editorial IV — combina com amarelo da marca, destaca o card branco,
     cria um "breather" quente entre as seções brancas/turquesa */
  background: linear-gradient(180deg, #FBF9F5 0%, #F7F2E6 100%) !important;
  border-top: 1px solid rgba(255, 195, 0, 0.15);
  border-bottom: 1px solid rgba(255, 195, 0, 0.15);
  position: relative;
  /* offset pra âncora #avaliation não ficar grudada no topo (header sticky ~ 80px)
     + folga editorial pra seção respirar quando o usuário "cai" nela */
  scroll-margin-top: 100px;
}
/* Forma de offset no html (Safari iOS antigo) — fallback */
html { scroll-padding-top: 100px; }
/* Toque turquesa sutil em diagonal (background mesh discreto) */
.v2-form::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(600px 360px at 88% 12%, rgba(14, 165, 183, 0.06) 0%, transparent 60%),
    radial-gradient(500px 300px at 8% 88%, rgba(255, 195, 0, 0.05) 0%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.v2-form > .v2-wrap { position: relative; z-index: 1; }
.v2-form-wrapper {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 4rem;
  align-items: start;
}
.v2-form-side h2 {
  font-family: var(--font-principal, 'Nunito Sans', sans-serif);
  font-weight: 800;
  font-size: clamp(2rem, 2.4vw, 2.6rem);
  color: var(--rv-ink);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 1.2rem 0 1rem;
}
.v2-form-side p {
  font-size: 1.4rem;
  color: var(--rv-ink-soft);
  max-width: 38ch;
  margin-bottom: 1.8rem;
  line-height: 1.55;
}
/* Stepper vertical integrado no form-side */
.v2-pf-steps {
  list-style: none;
  padding: 0;
  margin: 1.6rem 0 2rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: relative;
}
.v2-pf-steps::before {
  content: "";
  position: absolute;
  left: 1.5rem;
  top: 1.6rem;
  bottom: 1.6rem;
  width: 2px;
  background: linear-gradient(to bottom, rgba(14,165,183,0.35), rgba(14,165,183,0.1));
  z-index: 0;
}
.v2-pf-steps li {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  position: relative;
  z-index: 1;
}
.v2-pf-steps .num {
  width: 3.2rem;
  height: 3.2rem;
  min-width: 3.2rem;
  border-radius: 50%;
  background: var(--rv-primary);
  color: #ffffff;
  font-weight: 800;
  font-size: 1.3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px -2px rgba(14,165,183,0.35);
  flex-shrink: 0;
}
.v2-pf-steps li > div {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding-top: 0.3rem;
}
.v2-pf-steps strong {
  font-family: var(--font-principal);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--rv-ink);
  letter-spacing: -0.01em;
}
.v2-pf-steps em {
  font-style: normal;
  font-size: 1.2rem;
  color: var(--rv-ink-soft);
  line-height: 1.45;
}

.v2-form-contacts {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.v2-form-contacts li { margin: 0; padding: 0; list-style: none; }
.v2-form-contact {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  padding: 0.9rem 0;
  color: var(--rv-ink);
  text-decoration: none;
  transition: color 0.2s var(--rv-ease);
  border: 0;
  background: transparent;
}
.v2-form-contact:hover {
  color: var(--rv-primary);
}
.v2-form-contact:hover .ico {
  background: var(--rv-primary);
  color: #ffffff;
}
.v2-form-contact .ico {
  width: 3.4rem;
  height: 3.4rem;
  min-width: 3.4rem;
  border-radius: 50%;
  background: rgba(14, 165, 183, 0.12);
  color: var(--rv-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.4rem;
  transition: background 0.2s var(--rv-ease), color 0.2s var(--rv-ease);
}
.v2-form-contact .ico i { font-size: 1.4rem; }
.v2-form-contact .txt {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  line-height: 1.3;
}
.v2-form-contact .lbl {
  font-size: 1.05rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--rv-ink-soft);
}
.v2-form-contact strong {
  font-size: 1.35rem;
  font-weight: 600;
  color: inherit;
}

/* ==== FORM CARD — limpo, moderno, sem borda amarela ==== */
.v2-form-card {
  background: #ffffff;
  padding: clamp(1.8rem, 2.2vw, 2.4rem);
  border-radius: 1.2rem;
  box-shadow: 0 10px 30px -14px rgba(14, 165, 183, 0.16),
              0 2px 6px rgba(0, 0, 0, 0.04);
  border: 1px solid #EEF2F4;
}

/* ==== INPUTS MODERNOS — grid de 2 colunas, box-* fill ==== */
.v2-form-card form { margin: 0; padding: 0; }
.v2-form-card fieldset,
.v2-form-card fieldset.grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 0.9rem !important;
  padding: 0 !important;
  border: 0 !important;
  margin: 0 !important;
}
/* Por padrão: TODO campo ocupa linha inteira */
.v2-form-card fieldset > * {
  grid-column: 1 / -1 !important;
  position: relative;
}
/* Campos marcados como g-col-6 ocupam metade */
.v2-form-card fieldset > .g-col-6 {
  grid-column: span 1 !important;
}

.v2-form-card input[type="text"],
.v2-form-card input[type="email"],
.v2-form-card input[type="tel"],
.v2-form-card textarea,
.v2-form-card select {
  width: 100%;
  padding: 1rem 1.2rem;
  font-family: var(--font-secundaria, 'Open Sans', sans-serif);
  font-size: 1.3rem;
  color: var(--rv-ink);
  background: #ffffff;
  border: 1.5px solid #E5E9EC;
  border-radius: 0.7rem;
  transition: border-color 0.2s, box-shadow 0.2s;
  outline: none;
}
.v2-form-card textarea { min-height: 50px; resize: vertical; font-family: inherit; }
.v2-form-card input::placeholder,
.v2-form-card textarea::placeholder { color: #94A3B8; font-weight: 400; }
.v2-form-card input:focus,
.v2-form-card textarea:focus,
.v2-form-card select:focus {
  border-color: var(--rv-primary);
  box-shadow: 0 0 0 3px rgba(14, 165, 183, 0.15);
}

/* Select customizado (chevron) */
.v2-form-card select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%233F4A5C' stroke-width='2.5' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: calc(100% - 1.4rem) center;
  background-size: 1.2rem;
  padding-right: 3.6rem;
  cursor: pointer;
}
.v2-form-card select:not(:focus):invalid { color: #94A3B8; }

/* Labels estilo moderno (flutuante simples ou acima) */
.v2-form-card label {
  display: block;
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--rv-ink-soft);
  margin-bottom: 0.5rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* Esconde labels duplicadas (o site usa placeholder + label sobreposto) */
.v2-form-card .box-input > label,
.v2-form-card .box-select > label,
.v2-form-card .box-textarea > label {
  display: none;
}

/* Radio buttons estilizados (helper-radio) */
.v2-form-card .radio-group .helper-radio {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.8rem 1.1rem;
  background: #F7FBFA;
  border: 1.5px solid #E5E9EC;
  border-radius: 0.7rem;
  height: 100%;
}
.v2-form-card .radio-group .helper-radio p {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--rv-ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0;
}
.v2-form-card .radio-group .box-radio {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-right: 1.6rem;
}
.v2-form-card .radio-group .box-radio label {
  display: inline;
  margin: 0;
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--rv-ink);
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
}
.v2-form-card input[type="radio"] {
  width: 1.8rem;
  height: 1.8rem;
  accent-color: var(--rv-primary);
  cursor: pointer;
  vertical-align: middle;
  margin: 0;
}

/* Títulos de seção dentro do form */
.v2-form-card .form-title,
.v2-form-card h3 {
  font-family: var(--font-principal);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--rv-ink);
  margin: 0.5rem 0 0.8rem;
}

/* Botão submit — sempre turquesa, nunca amarelo */
.v2-form-card button[type="submit"],
.v2-form-card .btn-submit {
  width: 100%;
  padding: 1.2rem 2rem;
  background: var(--rv-primary) !important;
  color: #ffffff !important;
  font-family: var(--font-principal) !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  border-radius: 99px !important;
  border: none !important;
  cursor: pointer;
  box-shadow: 0 10px 28px -8px rgba(14, 165, 183, 0.5);
  transition: transform 0.25s var(--rv-ease), box-shadow 0.25s var(--rv-ease), background 0.25s ease;
  margin-top: 0.4rem;
}
.v2-form-card button[type="submit"]:hover,
.v2-form-card .btn-submit:hover {
  background: var(--rv-primary-deep) !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 32px -8px rgba(14, 165, 183, 0.65);
}

/* ============ 15. BOTÕES v2 ============ */
.v2-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  font-family: var(--v2-ff-sans);
  font-weight: 600;
  font-size: 1.5rem;
  padding: 1.6rem 3.2rem;
  border-radius: var(--v2-r-pill);
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.25s var(--v2-ease);
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.v2-btn--lg { padding: 1.8rem 3.6rem; font-size: 1.6rem; }
.v2-btn:hover { transform: translateY(-2px); box-shadow: var(--v2-shadow-md); }
.v2-btn-primary {
  background: var(--v2-amber);
  color: var(--v2-navy);
  box-shadow: var(--v2-shadow-amber);
  font-weight: 700;
}
.v2-btn-primary:hover { background: var(--v2-amber-deep); color: var(--v2-navy-deep); box-shadow: 0 20px 48px -12px rgba(224, 168, 0, 0.5); }
.v2-btn-ghost {
  background: transparent;
  color: var(--v2-white);
  border: 2px solid rgba(255, 255, 255, 0.3);
}
.v2-btn-ghost:hover { background: rgba(255, 255, 255, 0.1); border-color: var(--v2-white); }
.v2-btn-dark {
  background: var(--v2-navy);
  color: var(--v2-white);
  box-shadow: var(--v2-shadow-brand);
}
.v2-btn-dark:hover { background: var(--v2-navy-deep); }
.v2-btn-outline {
  background: transparent;
  color: var(--v2-navy);
  border: 2px solid var(--v2-navy);
}
.v2-btn-outline:hover { background: var(--v2-navy); color: var(--v2-white); }

/* ============ 16. CHIP / PILL ============ */
.v2-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 1.2rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--v2-white);
  font-size: 1.2rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  border-radius: var(--v2-r-pill);
}
.v2-chip strong { color: var(--v2-amber); font-weight: 700; }

/* ============ 17. FOOTER v2 — styles movidos para modern.css ============ */
/* (o footer foi redesenhado em modern.css; mantido vazio aqui para não sobrescrever) */

/* ============ 18. REVEAL ANIMATIONS v2 ============ */
.v2-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.9s var(--v2-ease), transform 0.9s var(--v2-ease);
}
.v2-reveal.rv-visible { opacity: 1; transform: none; }
.v2-reveal--left { transform: translateX(-30px); }
.v2-reveal--left.rv-visible { transform: none; }

/* ============ 19. RESPONSIVO ============ */
@media (max-width: 1100px) {
  .v2-catalog-grid { grid-template-columns: repeat(2, 1fr); }
  .v2-team-grid { grid-template-columns: repeat(3, 1fr); }
  .v2-process-timeline { grid-template-columns: 1fr; gap: 2.4rem; }
  .v2-process-timeline::before { display: none; }
  .v2-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .v2-stat { border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
}
@media (max-width: 640px) {
  .v2-catalog-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .v2-hero > .v2-wrap { grid-template-columns: 1fr; gap: 4rem; }
  .v2-hero-media { aspect-ratio: 2 / 3; }
  .v2-case { grid-template-columns: 1fr; gap: 3rem; }
  .v2-case:nth-child(even) .v2-case-media { order: 0; }
  .v2-team-grid { grid-template-columns: repeat(2, 1fr); }
  .v2-testimonials-grid { grid-template-columns: 1fr; }
  .v2-magnet-hero { grid-template-columns: 1fr; gap: 3rem; padding: 3rem; }
  .v2-magnet-cover { max-width: 60%; margin: 0 auto; }
  .v2-guides-grid { grid-template-columns: 1fr; }
  .v2-form-wrapper { grid-template-columns: 1fr; gap: 3rem; }
  .v2-catalog-header { flex-direction: column; align-items: flex-start; }
}

/* ============ 14. MAPA — endereço REAVIVA ============ */
.v2-map {
  background: #ffffff !important;
  /* 50px exatos acima de "Onde Estamos" */
  padding: 50px 0 0 !important;
}
/* Especificidade extra pra vencer qualquer override */
body #page-home .v2-map,
.v2-page .v2-map {
  padding-top: 50px !important;
}
.v2-map-header {
  text-align: center;
  max-width: 58rem;
  margin: 0 auto clamp(2rem, 3vw, 3.5rem);
}
.v2-map-header .v2-eyebrow { color: var(--v2-navy); }
/* Padroniza tamanho do h2 ("Venha nos visitar.") com .v2-catalog-header */
.v2-map-header h2,
.v2-map-header .v2-title--xl {
  font-size: clamp(2.4rem, 3vw, 3.4rem) !important;
}
/* Endereço com mesma fonte da lede da biblioteca (1.55rem) */
.v2-map-header p,
.v2-map-header .v2-lede {
  font-size: 1.55rem !important;
}
.v2-map-frame {
  position: relative;
  width: 100%;
  height: clamp(380px, 42vw, 520px);
  overflow: hidden;
  border: 0;
  box-shadow: 0 12px 40px -12px rgba(4, 62, 77, 0.22);
}
.v2-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.v2-map-cta {
  position: absolute;
  bottom: 1.6rem;
  right: 1.6rem;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 2rem;
  background: var(--v2-navy);
  color: #fff !important;
  font-family: var(--v2-ff-sans);
  font-weight: 600;
  font-size: 1.35rem;
  letter-spacing: 0.02em;
  border-radius: 99px;
  box-shadow: 0 8px 22px -6px rgba(14, 165, 183, 0.55);
  text-decoration: none;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  z-index: 2;
}
.v2-map-cta:hover {
  background: var(--v2-navy-deep);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -6px rgba(14, 165, 183, 0.65);
  color: #fff !important;
}
.v2-map-cta i { font-size: 1.5rem; }
@media (max-width: 640px) {
  .v2-map-cta { bottom: 1.2rem; right: 1.2rem; padding: 1rem 1.6rem; font-size: 1.25rem; }
}
.v2-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.v2-map-cta {
  position: absolute;
  bottom: 1.6rem;
  right: 1.6rem;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: 1.2rem 2rem;
  background: var(--v2-navy);
  color: #fff !important;
  font-family: var(--v2-ff-sans, 'Nunito Sans', sans-serif);
  font-weight: 600;
  font-size: 1.35rem;
  letter-spacing: 0.02em;
  border-radius: 99px;
  box-shadow: 0 8px 22px -6px rgba(14, 165, 183, 0.55);
  text-decoration: none;
  transition: background 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
  z-index: 2;
}
.v2-map-cta:hover {
  background: var(--v2-navy-deep);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -6px rgba(14, 165, 183, 0.65);
  color: #fff !important;
}
.v2-map-cta i {
  font-size: 1.5rem;
}
@media (max-width: 640px) {
  .v2-map-frame { aspect-ratio: 4 / 5; }
  .v2-map-cta {
    bottom: 1.2rem;
    right: 1.2rem;
    padding: 1rem 1.6rem;
    font-size: 1.25rem;
  }
}

/* ============ 15. WHATSAPP MENU — regras removidas ============ */
/* O botão WhatsApp do menu foi removido — animação de pulso ficou só no floating botão
   (.whatsapp_fix) definido em modern.css. */

/* ============================================================
   SMOOTH-CENTER — efeitos: glow durante deslize + pulse na chegada
   ============================================================ */
@keyframes rvFlashPulse {
  0%   {
    box-shadow: 0 0 0 0 rgba(14, 165, 183, 0.55),
                0 0 0 0 rgba(14, 165, 183, 0.30),
                0 0 0 0 rgba(255, 195, 0, 0.18);
    transform: translateZ(0) scale(1);
  }
  30%  {
    box-shadow: 0 0 0 16px rgba(14, 165, 183, 0.22),
                0 0 0 36px rgba(14, 165, 183, 0.12),
                0 0 48px 8px rgba(14, 165, 183, 0.28);
    transform: translateZ(0) scale(1.008);
  }
  60%  {
    box-shadow: 0 0 0 10px rgba(14, 165, 183, 0.10),
                0 0 0 24px rgba(14, 165, 183, 0.05),
                0 0 28px 4px rgba(14, 165, 183, 0.14);
    transform: translateZ(0) scale(1.002);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(14, 165, 183, 0),
                0 0 0 0 rgba(14, 165, 183, 0),
                0 0 0 0 rgba(14, 165, 183, 0);
    transform: translateZ(0) scale(1);
  }
}
section.rv-flash {
  animation: rvFlashPulse 2.3s cubic-bezier(0.2, 0.8, 0.2, 1) 1;
  border-radius: 12px;
  position: relative;
  z-index: 2;
}

/* glow suave durante o deslize (antes de chegar) */
section.rv-flash-coming {
  transition: box-shadow 0.6s ease;
  box-shadow: 0 0 0 0 rgba(14, 165, 183, 0.25),
              0 0 40px 6px rgba(14, 165, 183, 0.12);
  border-radius: 12px;
  position: relative;
  z-index: 2;
}

/* ============================================================
   SOBRE (About) — layout editorial uniforme
   ============================================================ */

/* Hero da página Sobre — navy mais curto (sem foto lateral) */
.v2-hero--about {
  padding: clamp(4.5rem, 6vw, 6rem) 0 clamp(5rem, 7vw, 7rem);
}
.v2-hero--about > .v2-wrap {
  grid-template-columns: 1fr !important;
  /* Mesma largura/padding do header pra alinhamento perfeito do texto com o logo */
  max-width: 1320px;
  padding: 0 2rem;
  text-align: left;
}
.v2-hero--about h1 { max-width: 20ch; }

/* ========== Nossa história ========== */
.v2-about-story {
  /* Padding-bottom reduzido — cola na Parcerias abaixo */
  padding: clamp(5rem, 7vw, 7rem) 0 clamp(2rem, 3vw, 3rem);
  background: var(--v2-white);
}
.v2-about-story-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(3rem, 5vw, 6rem);
  align-items: center;
}
.v2-about-story-media {
  border-radius: var(--v2-r-md);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--v2-paper-warm);
  box-shadow: var(--v2-shadow-md);
}
.v2-about-story-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.v2-about-story-media .v2-about-story-fallback {
  object-fit: contain;
  padding: 6rem;
  background: var(--v2-paper-warm);
}
.v2-about-story-body h2 {
  margin: 1.4rem 0 2rem;
  color: var(--v2-ink);
}
.v2-about-story-body p {
  font-size: 1.55rem;
  line-height: 1.65;
  color: var(--v2-ink-soft);
  margin-bottom: 1.6rem;
  max-width: 54ch;
}
.v2-about-story-body strong {
  color: var(--v2-ink);
  font-weight: 700;
}
.v2-about-marks {
  display: flex;
  gap: 2.6rem;
  margin-top: 2.8rem;
  padding-top: 2.4rem;
  border-top: 1px solid var(--v2-line);
  flex-wrap: wrap;
}
.v2-about-mark strong {
  display: block;
  font-family: var(--font-principal);
  font-size: clamp(2.6rem, 3vw, 3.4rem);
  font-weight: 800;
  color: var(--rv-primary, #0EA5B7);
  letter-spacing: -0.02em;
  line-height: 1;
  margin-bottom: 0.6rem;
}
.v2-about-mark span {
  font-size: 1.2rem;
  color: var(--v2-ink-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

/* ========== Pilares (Missão · Visão · Propósito) ========== */
.v2-pilares {
  /* Mesmo padding top e bottom — gaps simétricos com Valores */
  padding: clamp(4rem, 5vw, 5rem) 0;
  background: var(--v2-paper-warm);
  position: relative;
}
.v2-pilares-header {
  text-align: left;
  max-width: 720px;
  /* Padrão Nossa história: header colado nos cards */
  margin: 0 0 2rem;
}
.v2-pilares-header h2 {
  margin: 1.4rem 0 0.4rem;          /* padrão Nossa história */
  color: var(--v2-ink);
  text-align: left;
}
.v2-pilares-header p {
  text-align: left;
  max-width: 56ch;
  margin: 0.2rem 0 0;               /* lede colada no h2 */
}
.v2-pilares-header .v2-eyebrow { text-align: left; }
.v2-pilares-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
}
.v2-pilar {
  background: #ffffff;
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-r-md);
  padding: 3rem 2.6rem;
  text-align: center;
  transition: transform 0.25s var(--v2-ease), box-shadow 0.25s var(--v2-ease), border-color 0.25s ease;
}
.v2-pilar:hover {
  transform: translateY(-4px);
  box-shadow: var(--v2-shadow-md);
  border-color: rgba(14, 165, 183, 0.3);
}
.v2-pilar-icon {
  width: 7.6rem;
  height: 7.6rem;
  margin: 0 auto 2rem;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(14,165,183,0.18) 0%, rgba(255,195,0,0.12) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--rv-primary, #0EA5B7);
  font-size: 2.6rem;
  transition: transform 0.3s var(--v2-ease), background 0.3s ease;
}
.v2-pilar-icon i { font-size: 2.6rem; }
.v2-pilar-icon svg {
  width: 3.4rem;
  height: 3.4rem;
  display: block;
}
.v2-pilar:hover .v2-pilar-icon {
  transform: scale(1.06);
  background: linear-gradient(135deg, rgba(14,165,183,0.28) 0%, rgba(255,195,0,0.18) 100%);
}
.v2-pilar h3 {
  font-family: var(--font-principal);
  font-size: 2rem;
  font-weight: 700;
  color: var(--v2-ink);
  margin-bottom: 1rem;
  letter-spacing: -0.01em;
}
.v2-pilar p {
  font-size: 1.4rem;
  line-height: 1.55;
  color: var(--v2-ink-soft);
  margin: 0;
}

/* ========== Valores — grid editorial numerado ========== */
.v2-valores {
  /* Padding superior e inferior bem maiores — mais respiro acima e abaixo */
  padding: clamp(7rem, 9vw, 9rem) 0 clamp(7rem, 9vw, 9rem) !important;
  background: var(--v2-white);
}
/* Especificidade extra pra vencer qualquer override */
body #page-about .v2-valores,
.v2-page .v2-valores {
  padding-top: clamp(7rem, 9vw, 9rem) !important;
  padding-bottom: clamp(7rem, 9vw, 9rem) !important;
}
.v2-valores-header {
  text-align: left;
  max-width: 720px;
  margin: 0 0 2rem;
}
.v2-valores-header h2 {
  margin: 1.4rem 0 0.4rem;          /* padrão Nossa história — colado no lede */
  color: var(--v2-ink);
  text-align: left;
}
.v2-valores-header p {
  text-align: left;
  max-width: 56ch;
  margin: 0.2rem 0 0;               /* lede colada no h2 (TIRAR ESPAÇO) */
  font-size: 1.55rem !important;    /* mesma fonte da lede de Parceiros / Nossa história */
  line-height: 1.55 !important;
  color: var(--v2-ink-soft) !important;
}
/* Mesmo tratamento pro Pilares lede (consistência) */
.v2-pilares-header p {
  font-size: 1.55rem !important;
  line-height: 1.55 !important;
  color: var(--v2-ink-soft) !important;
}
.v2-valores-header .v2-eyebrow { text-align: left; }
.v2-valores-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem;
}
.v2-valores-grid > li:nth-child(1),
.v2-valores-grid > li:nth-child(2),
.v2-valores-grid > li:nth-child(3),
.v2-valores-grid > li:nth-child(4) { grid-row: 1; }
.v2-valor {
  padding: 2.2rem 1.8rem;
  border-radius: var(--v2-r-md);
  background: linear-gradient(180deg, #FBF9F5 0%, #F7F2E6 100%);
  border: 1px solid rgba(255, 195, 0, 0.18);
  transition: transform 0.25s var(--v2-ease), box-shadow 0.25s var(--v2-ease);
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.v2-valor:hover {
  transform: translateY(-3px);
  box-shadow: var(--v2-shadow-sm);
}
.v2-valor-num {
  font-family: var(--font-principal);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--rv-primary, #0EA5B7);
  letter-spacing: 0.14em;
}
.v2-valor h3 {
  font-family: var(--font-principal);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--v2-ink);
  margin: 0;
  letter-spacing: -0.01em;
}
.v2-valor p {
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--v2-ink-soft);
  margin: 0;
}

/* ========== Equipe — Bionicenter-style: limpo, claro, compacto ========== */
.v2-about-team {
  padding: clamp(3.5rem, 5vw, 5rem) 0;
  background: var(--v2-white);
}
.v2-about-team-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 3rem;
}
.v2-about-team-header h2 { margin-top: 1.2rem; color: var(--v2-ink); font-size: clamp(2.4rem, 3vw, 3.2rem); }
.v2-about-team-header p { margin-top: 0.8rem; margin-left: auto; margin-right: auto; font-size: 1.4rem; }

/* Grid 3x2 — 3 colunas, 2 linhas, tudo na página sem scroll exagerado */
.v2-about-team-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 340px));
  justify-content: center;
  gap: 1.6rem;
  max-width: 1080px;
  margin: 0 auto;
}

/* Card: foto + nome + cargo, SEM borda/sombra estrutural — limpo */
.v2-team-card {
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  overflow: visible;
  display: flex;
  flex-direction: column;
  transition: transform 0.3s var(--v2-ease);
}
.v2-team-card:hover { transform: translateY(-3px); }
.v2-team-card:hover .v2-team-name { color: var(--rv-primary-deep, #087990); }

/* Foto: 5:6 portrait, img simples com object-fit cover. Cabeça no topo. */
.v2-team-photo {
  aspect-ratio: 5 / 6;
  overflow: hidden;
  border-radius: 0.4rem;
  background: #EAEDEF;
  position: relative;
}
.v2-team-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
}

/* Botão editar (aparece só em admin edit mode) */
.v2-team-edit-btn {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  z-index: 10;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  background: rgba(14, 165, 183, 0.95);
  color: #ffffff;
  border: 2px solid #ffffff;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25);
  transition: transform 0.2s ease, background 0.2s ease;
  padding: 0;
}
.v2-team-edit-btn:hover {
  transform: scale(1.1);
  background: var(--rv-primary-deep, #087990);
}
body.rv-edit-mode .v2-team-edit-btn {
  display: inline-flex;
}

/* Hint de drag (aparece só quando em modo edição ativa) */
.v2-team-edit-hint {
  position: absolute;
  bottom: 0.6rem;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(14, 165, 183, 0.95);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  padding: 0.4rem 0.9rem;
  border-radius: 99px;
  letter-spacing: 0.04em;
  pointer-events: none;
  z-index: 10;
  white-space: nowrap;
  display: none;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

/* Estado ATIVO de edição (após clicar no botão ✎) */
.v2-team-photo.v2-team-editing {
  outline: 3px solid var(--rv-primary, #0EA5B7);
  outline-offset: -3px;
}
.v2-team-photo.v2-team-editing img {
  cursor: grab;
}
.v2-team-photo.v2-team-editing img:active {
  cursor: grabbing;
}
.v2-team-photo.v2-team-editing .v2-team-edit-hint {
  display: block;
}
.v2-team-photo.v2-team-editing .v2-team-edit-btn {
  background: #22C55E;
  border-color: #ffffff;
}
.v2-team-photo.v2-team-editing .v2-team-edit-btn span::before {
  content: "✓";
}
.v2-team-photo.v2-team-editing .v2-team-edit-btn span {
  font-size: 0;
}
.v2-team-card:hover .v2-team-photo img { transform: scale(1.02); }

/* Legenda: compacta, centralizada, próxima da foto */
.v2-team-body {
  padding: 1rem 0 0;
  text-align: center;
}
.v2-team-name {
  font-family: var(--font-principal);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--rv-primary, #0EA5B7);
  margin: 0 0 0.25rem;
  letter-spacing: 0.01em;
  transition: color 0.25s ease;
  text-transform: uppercase;
  line-height: 1.2;
}
.v2-team-role {
  display: block !important;
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--v2-ink-muted) !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  line-height: 1.35;
}

/* Responsivo */
@media (max-width: 820px) {
  .v2-about-team-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
}
@media (max-width: 480px) {
  .v2-about-team-grid { grid-template-columns: 1fr; max-width: 300px; }
}

/* ========== CTA final sobre ========== */
.v2-about-cta {
  padding: clamp(5rem, 7vw, 7rem) 0;
  background: var(--v2-navy);
  color: #ffffff;
  text-align: center;
}
.v2-about-cta-inner {
  max-width: 640px;
  margin: 0 auto;
}
.v2-about-cta h2 {
  font-family: var(--font-principal);
  font-size: clamp(2.8rem, 3.4vw, 3.6rem);
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.02em;
  margin-bottom: 1.4rem;
}
.v2-about-cta p {
  font-size: 1.6rem;
  color: rgba(255, 255, 255, 0.86);
  margin-bottom: 2.6rem;
}
.v2-about-cta-actions {
  display: flex;
  gap: 1.2rem;
  justify-content: center;
  flex-wrap: wrap;
}
.v2-about-cta .v2-btn-ghost {
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.4);
}
.v2-about-cta .v2-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: #ffffff;
}

/* ========== Responsivo ========== */
@media (max-width: 960px) {
  .v2-about-story-grid { grid-template-columns: 1fr; gap: 3rem; }
  .v2-pilares-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .v2-valores-grid { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
  .v2-about-marks { gap: 2rem; }
}
@media (max-width: 560px) {
  .v2-valores-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   VALORES (3 pilares-mãe) — versão big, editorial
   ============================================================ */
.v2-valores-grid--three {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 100%;            /* sem limite — usa toda a largura do wrap (= Pilares) */
}
.v2-valor--big {
  background: #ffffff;
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-r-md);
  padding: 3.2rem 2.6rem;
  text-align: center;             /* centralizado igual Pilares */
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  transition: transform 0.3s var(--v2-ease), box-shadow 0.3s ease, border-color 0.3s ease;
  position: relative;
  overflow: hidden;
}
.v2-valor--big::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--rv-primary, #0EA5B7) 0%, var(--v2-amber, #FFC300) 100%);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s var(--v2-ease);
}
.v2-valor--big:hover {
  transform: translateY(-6px);
  box-shadow: var(--v2-shadow-md);
  border-color: rgba(14, 165, 183, 0.3);
}
.v2-valor--big:hover::before {
  transform: scaleX(1);
}
.v2-valor-icon {
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(14,165,183,0.15) 0%, rgba(255,195,0,0.10) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--rv-primary, #0EA5B7);
  margin: 0 auto 1.4rem;          /* centralizado igual Pilares */
}
.v2-valor-icon svg {
  width: 2.8rem;
  height: 2.8rem;
}
.v2-valor--big h3 {
  font-family: var(--font-principal);
  font-size: 2.2rem;
  font-weight: 800;
  color: var(--v2-ink);
  margin: 0;
  letter-spacing: -0.015em;
  line-height: 1.2;
}
.v2-valor-desc {
  font-size: 1.4rem;
  line-height: 1.55;
  color: var(--v2-ink-soft);
  margin: 0;
  flex: 1;
}
.v2-valor-tags {
  list-style: none;
  padding: 1.2rem 0 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;        /* tags centralizadas */
  border-top: 1px dashed var(--v2-line);
  width: 100%;
}
.v2-valor-tags li {
  background: rgba(14, 165, 183, 0.08);
  color: var(--rv-primary, #0EA5B7);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 0.4rem 0.9rem;
  border-radius: 99px;
}

/* Em tablets (≤900px) já vira 1 coluna (regra do modern.css). Desktop fica 3 cols. */

/* ============================================================
   MARCOS BIG — faixa navy com números animados
   ============================================================ */
.v2-marcos {
  padding: clamp(4rem, 6vw, 6rem) 0;
  background: linear-gradient(135deg, var(--v2-navy, #0EA5B7) 0%, var(--v2-navy-deep, #087990) 100%);
  color: #ffffff;
  position: relative;
  overflow: hidden;
}
.v2-marcos::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(800px 400px at 20% 0%, rgba(255,195,0,0.12) 0%, transparent 60%),
    radial-gradient(600px 400px at 80% 100%, rgba(255,255,255,0.08) 0%, transparent 60%);
  pointer-events: none;
}
.v2-marcos > .v2-wrap { position: relative; z-index: 1; }
.v2-marcos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  align-items: center;
  text-align: center;
}
.v2-marco {
  padding: 1rem 0.5rem;
  position: relative;
}
.v2-marco + .v2-marco::before {
  content: "";
  position: absolute;
  left: -1rem;
  top: 20%;
  bottom: 20%;
  width: 1px;
  background: rgba(255, 255, 255, 0.18);
}
.v2-marco-num {
  font-family: var(--font-principal);
  font-size: clamp(4.4rem, 6vw, 6.6rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.04em;
  margin-bottom: 0.8rem;
}
.v2-marco-num sup {
  font-size: 0.5em;
  color: var(--v2-amber, #FFC300);
  font-weight: 700;
  margin-left: 0.1rem;
  vertical-align: super;
}
.v2-marco-label {
  font-size: 1.25rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

@media (max-width: 820px) {
  .v2-marcos-grid { grid-template-columns: repeat(2, 1fr); gap: 2.4rem; }
  .v2-marco + .v2-marco::before { display: none; }
  .v2-marco:nth-child(odd) + .v2-marco::before { display: block; left: -1rem; }
  .v2-marco:nth-child(3)::before, .v2-marco:nth-child(4)::before { display: none !important; }
}

/* ============================================================
   PARCEIROS — faixa de marcas + credenciais
   ============================================================ */
.v2-parceiros {
  /* Padding-top reduzido — cola na seção "Nossa história" acima */
  padding: 1.6rem 0 clamp(3rem, 5vw, 5rem);
  background: var(--v2-white, #ffffff);
}
.v2-parceiros-header {
  text-align: left;
  max-width: 100%;
  /* Mais espaço entre o header e os logos abaixo */
  margin: 0 0 3.2rem;
}
.v2-parceiros-header h2 {
  margin: 0.4rem 0 0.3rem;             /* sem espaço grande pro lede */
  color: var(--v2-ink);
  text-align: left;
}
.v2-parceiros-header p {
  margin: 0.2rem 0 0 !important;       /* lede colada no h2 */
  max-width: 56ch;
  text-align: left;
  font-size: 1.55rem !important;       /* mesma fonte da Nossa história */
  line-height: 1.55 !important;
  color: var(--v2-ink-soft) !important;
}
.v2-parceiros-header .v2-eyebrow { text-align: left; }
/* Grid de logos: começa pela esquerda, 6 colunas (cabe 11 logos em 2 linhas: 6+5) */
.v2-parceiros-grid {
  margin: 0 !important;
  max-width: 100% !important;
  grid-template-columns: repeat(6, 1fr) !important;
}
/* Em telas médias (até ~1100), volta pra 4 cols pra logos não ficarem minúsculas */
@media (max-width: 1100px) {
  .v2-parceiros-grid { grid-template-columns: repeat(4, 1fr) !important; }
}

.v2-parceiros-grid {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 1100px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.4rem;
}
.v2-parceiro {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.2rem;
  min-height: 50px;
  background: transparent;
  border: 0;
  border-radius: var(--v2-r, 1rem);
  transition: all 0.25s var(--v2-ease);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.v2-parceiro span {
  font-family: var(--font-principal);
  font-size: 1.55rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--v2-ink-muted, #5A6680);
  text-transform: uppercase;
  transition: color 0.25s ease;
}
.v2-parceiro--logo img {
  max-width: 100%;
  max-height: 80px;       /* logos maiores */
  width: auto;
  height: auto;
  filter: grayscale(1) brightness(0.55);
  opacity: 0.78;
  transition: filter 0.3s ease, opacity 0.3s ease, transform 0.25s ease;
}
.v2-parceiro:hover {
  background: rgba(14,165,183,0.04);
  transform: translateY(-3px);
}
.v2-parceiro:hover span {
  color: var(--rv-primary, #0EA5B7);
}
.v2-parceiro--logo:hover img {
  filter: grayscale(0) brightness(1);
  opacity: 1;
}

/* Faixa de credenciais */
.v2-credenciais {
  margin-top: 3.5rem;
  padding: 1.6rem 2rem;
  background: var(--v2-paper-warm, #FBF9F5);
  border-radius: 99px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.6rem;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--v2-line, #E5E9F0);
}
.v2-credenciais-label {
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rv-primary, #0EA5B7);
  padding-right: 1.4rem;
  border-right: 1px solid var(--v2-line);
}
.v2-credenciais-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}
.v2-credencial {
  font-size: 1.2rem;
  color: var(--v2-ink-muted, #5A6680);
  font-weight: 500;
}
.v2-credencial strong {
  color: var(--v2-ink, #0B1220);
  font-weight: 700;
  margin-left: 0.3rem;
}

@media (max-width: 820px) {
  .v2-parceiros-grid { grid-template-columns: repeat(2, 1fr); }
  .v2-credenciais { flex-direction: column; padding: 1.4rem; border-radius: 1.4rem; }
  .v2-credenciais-label { padding-right: 0; padding-bottom: 0.8rem; border-right: 0; border-bottom: 1px solid var(--v2-line); }
}

/* ============================================================
   HERO Sobre — versão com foto de fundo + overlay
   ============================================================ */
.v2-hero--about {
  position: relative;
  isolation: isolate;
  padding: clamp(6rem, 9vw, 9rem) 0 clamp(7rem, 10vw, 10rem) !important;
  overflow: hidden;
}
.v2-hero--about .v2-hero-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  z-index: -2;
  filter: saturate(0.9) contrast(1.05);
}
.v2-hero--about .v2-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(135deg,
      rgba(14, 165, 183, 0.92) 0%,
      rgba(8, 121, 144, 0.85) 50%,
      rgba(4, 62, 77, 0.92) 100%
    ),
    radial-gradient(800px 500px at 80% 20%, rgba(255, 195, 0, 0.18) 0%, transparent 60%);
}
.v2-hero--about > .v2-wrap {
  position: relative;
  z-index: 1;
}
.v2-hero--about h1 {
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
}
.v2-hero--about .v2-lede {
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);
}
/* Variante brand do eyebrow — nome da empresa com destaque editorial */
.v2-eyebrow--brand {
  font-family: 'Nunito Sans', sans-serif !important;
  font-size: clamp(1.6rem, 1.8vw, 2.1rem) !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  color: var(--v2-amber, #F5BE1A) !important;
  text-transform: uppercase !important;
  margin-bottom: 2.6rem !important;
  text-shadow: 0 2px 14px rgba(0,0,0,0.35);
  position: relative;
  padding-bottom: 1rem;
  display: inline-block !important;
}
.v2-eyebrow--brand::after {
  content: "";
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 4rem; height: 2px;
  background: var(--v2-amber, #F5BE1A);
  border-radius: 2px;
  box-shadow: 0 0 12px rgba(245, 190, 26, 0.5);
}

/* Variante compacta — usada nas páginas Sobre e Serviços (mesma altura/visual) */
.v2-hero--compact {
  padding: clamp(4rem, 6vw, 6rem) 0 clamp(4rem, 6vw, 6rem) !important;
}
.v2-hero--compact h1 {
  font-size: clamp(3rem, 4.2vw, 4.8rem) !important;
  margin-bottom: 1.6rem !important;
  letter-spacing: 0 !important;     /* sem negativo pra h1 alinhar com eyebrow/lede */
}
.v2-hero--compact .v2-lede {
  font-size: clamp(1.5rem, 1.7vw, 1.9rem) !important;
  max-width: 60ch;
}
