/* V22 DESIGN PERFECTION — sistema de espaçamento e composição editorial */
:root {
  --v22-space-1: 0.375rem;
  --v22-space-2: 0.625rem;
  --v22-space-3: 0.875rem;
  --v22-space-4: 1.125rem;
  --v22-space-5: 1.5rem;
  --v22-space-6: 2rem;
  --v22-space-7: 3rem;
  --v22-space-8: 4.5rem;
  --v22-space-9: 6.5rem;
  --v22-content: 1200px;
  --v22-reading: 760px;
  --v22-radius-sm: 0.5rem;
  --v22-radius-md: 0.875rem;
  --v22-radius-lg: 1.25rem;
  --v22-shadow-soft: 0 16px 42px rgba(6, 78, 59, 0.10);
  --v22-shadow-hover: 0 22px 48px rgba(6, 78, 59, 0.16);
  --v22-focus: 0 0 0 4px rgba(180, 151, 90, 0.32);
}

html { scroll-padding-top: 88px; }
body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.68;
}

/* Header: área clicável confortável e alinhamento estável */
header { height: 80px; }
.header-container { min-height: 80px; gap: var(--v22-space-6); }
.logo { display: inline-flex; align-items: center; min-height: 48px; }
.logo-img { display: block; max-width: 132px; object-fit: contain; }
.nav-links { align-items: center; gap: clamp(1rem, 2.5vw, 2rem); }
.nav-links > .nav-item > a { min-height: 48px; display: inline-flex; align-items: center; }
.dropdown-menu { border-radius: var(--v22-radius-sm); padding: var(--v22-space-2) 0; overflow: hidden; }
.dropdown-menu a { min-height: 44px; display: flex; align-items: center; }
.menu-toggle { min-width: 48px; min-height: 48px; align-items: center; justify-content: center; }

/* Ritmo vertical: hero, simulator e seções respiram sem lacunas desiguais */
main > section,
main > .section,
main > article,
main > .deep-content { scroll-margin-top: 96px; }
.hero {
  margin-top: 80px;
  padding: clamp(4.5rem, 8vw, 7.5rem) clamp(1.25rem, 4vw, 3rem) clamp(4.75rem, 8vw, 7.75rem);
}
.hero-container { width: min(100%, var(--v22-content)); gap: clamp(2.5rem, 6vw, 5.5rem); }
.hero-content h1 { max-width: 14ch; margin-bottom: var(--v22-space-5); letter-spacing: -0.035em; }
.hero-content p { max-width: 58ch; margin-bottom: var(--v22-space-7); }
.cta-buttons { align-items: center; flex-wrap: wrap; gap: var(--v22-space-4); margin-bottom: var(--v22-space-8); }
.hero + .simulator { padding-top: clamp(3rem, 6vw, 5rem); }
.simulator { padding: clamp(3.5rem, 7vw, 6rem) clamp(1.25rem, 4vw, 3rem); }
.simulator-container { width: min(100%, 1100px); border-radius: var(--v22-radius-lg); box-shadow: var(--v22-shadow-soft); }
.simulator-form-side, .simulator-result-side { padding: clamp(2rem, 4vw, 3.5rem); }
.simulator-subtitle { max-width: 56ch; margin-bottom: var(--v22-space-7); }
.form-group { margin-bottom: var(--v22-space-6); }
.form-row { gap: var(--v22-space-5); }

/* Escala editorial e espaços consistentes entre blocos */
section:not(.hero):not(.simulator) { scroll-margin-top: 96px; }
.section-container,
.benefits > div,
.how-it-works > div,
.testimonials > div,
.faq > div,
.vehicles > div { width: min(100%, var(--v22-content)); margin-inline: auto; }
.section-title { max-width: 18ch; margin-inline: auto; margin-bottom: var(--v22-space-7); line-height: 1.12; letter-spacing: -0.025em; }
.section-subtitle { max-width: 62ch; margin: calc(var(--v22-space-5) * -1) auto var(--v22-space-7); text-align: center; }
.vehicles, .benefits, .how-it-works, .testimonials, .faq { padding: clamp(4.25rem, 8vw, 7rem) clamp(1.25rem, 4vw, 3rem); }
.vehicles-grid, .benefits-grid, .how-it-works-grid, .testimonials-grid { gap: clamp(1.25rem, 2.6vw, 2rem); margin-top: var(--v22-space-7); }

/* Cards: alinhamento, altura previsível e botões sem encavalamento */
.vehicle-card, .benefit-card, .testimonial-card, .faq-item, .step {
  border-radius: var(--v22-radius-md);
  min-width: 0;
}
.vehicle-card { min-height: 100%; }
.vehicle-card img { display: block; aspect-ratio: 16 / 10; }
.vehicle-info { gap: var(--v22-space-3); padding: clamp(1.25rem, 3vw, 1.75rem); }
.vehicle-info h3 { line-height: 1.2; margin: 0; }
.vehicle-info p { line-height: 1.6; margin: 0 0 var(--v22-space-3); }.btn-card { width: 100%; margin-top: auto; padding: 0.875rem 1rem; border-radius: var(--v22-radius-sm); }
.btn, .btn-submit { border-radius: var(--v22-radius-sm); }
.btn:focus-visible, .btn-card:focus-visible, .btn-submit:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: none; box-shadow: var(--v22-focus); }

/* Texto longo: leitura premium sem paredões ou espaços colapsados */
.deep-content { width: min(100% - 2.5rem, var(--v22-content)); margin: 0 auto; padding: clamp(3.5rem, 7vw, 6.5rem) 0; }
.deep-content-header { max-width: var(--v22-reading); margin: 0 auto var(--v22-space-8); }
.deep-content-header h1 { margin: var(--v22-space-3) 0 var(--v22-space-5); line-height: 1.08; letter-spacing: -0.035em; }
.deep-content-header p { max-width: 62ch; margin: 0; }
.deep-section, .deep-content > section { max-width: var(--v22-reading); margin: 0 auto; }
.deep-section + .deep-section, .deep-content > section + section { margin-top: var(--v22-space-8); }
.deep-content h2 { margin: 0 0 var(--v22-space-5); line-height: 1.18; letter-spacing: -0.02em; }
.deep-content h3 { margin: var(--v22-space-7) 0 var(--v22-space-3); line-height: 1.25; }
.deep-content h4 { margin: var(--v22-space-6) 0 var(--v22-space-2); line-height: 1.3; }
.deep-content p { max-width: 72ch; margin: 0 0 var(--v22-space-4); }
.deep-content p + p { margin-top: var(--v22-space-3); }
.deep-content ul, .deep-content ol { margin: var(--v22-space-4) 0 var(--v22-space-6); padding-left: 1.4rem; }
.deep-content li + li { margin-top: var(--v22-space-2); }
.deep-content blockquote { margin: var(--v22-space-6) 0; padding: var(--v22-space-5) var(--v22-space-6); border-left: 4px solid var(--accent); background: var(--primary-light); border-radius: 0 var(--v22-radius-sm) var(--v22-radius-sm) 0; }

/* Gráficos de links, compartilhamento e rodapé: separação visual limpa */
.v14-link-graph { margin-top: var(--v22-space-8); padding: var(--v22-space-8) clamp(1.25rem, 4vw, 3rem); }
.v14-graph-container { width: min(100%, var(--v22-content)); }.v10-footer { margin-top: 0; }
.v10-footer-main { gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(3.5rem, 7vw, 6rem); }
.v10-footer-brand p { max-width: 42ch; }
.v10-footer-column ul { display: grid; gap: var(--v22-space-2); }
.v10-footer-column a { display: inline-flex; align-items: center; min-height: 36px; }
.v10-footer-regulatory { padding-block: var(--v22-space-5); }
.v10-footer-bottom { gap: var(--v22-space-4); padding-block: var(--v22-space-5); }

/* Evita sobreposição de CTA flutuante em telas pequenas */
.v6-floating-actions { gap: var(--v22-space-3); }
.v6-floating-actions a, .v6-floating-actions button { min-width: 48px; min-height: 48px; }

@media (max-width: 992px) {
  .hero-container { gap: var(--v22-space-7); }
  .hero-content h1 { max-width: 18ch; }
}

@media (max-width: 768px) {
  .header-container { padding-inline: 1rem; }
  .nav-links { top: 80px; max-height: 0; overflow-y: auto; }
  .nav-links.active { max-height: calc(100dvh - 80px); }
  .hero { padding-top: 3.75rem; padding-bottom: 4rem; }
  .hero-content h1 { max-width: none; font-size: clamp(2rem, 9vw, 3rem); }
  .hero-content p { font-size: 1rem; margin-bottom: var(--v22-space-6); }
  .cta-buttons { width: 100%; margin-bottom: var(--v22-space-7); }
  .cta-buttons .btn { width: 100%; }
  .stat { padding: var(--v22-space-5); }
  .simulator-form-side, .simulator-result-side { padding: 1.5rem; }
  .deep-content { width: min(100% - 2rem, var(--v22-reading)); padding-block: 3.5rem; }
  .deep-content-header { margin-bottom: var(--v22-space-7); }
  .deep-content h2 { font-size: clamp(1.5rem, 6vw, 2rem); }
  .deep-content h3 { font-size: 1.25rem; }
  .deep-content blockquote { padding: var(--v22-space-4); }
  .v10-footer-main { padding-block: 3.5rem; }
  .v10-footer-bottom { align-items: flex-start; flex-direction: column; }}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

/* Consentimento: composição independente, sem sobrepor CTAs ou conteúdo */
.consent-popup {
  z-index: 2000;
  padding: 1.25rem clamp(1rem, 4vw, 2rem);
  box-shadow: 0 -12px 36px rgba(6, 78, 59, 0.14);
}
.consent-container {
  width: min(100%, var(--v22-content));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 3vw, 2.5rem);
}
.consent-content { min-width: 0; }
.consent-content h3 { margin: 0 0 var(--v22-space-2); line-height: 1.25; }
.consent-content p { max-width: 70ch; margin: 0; line-height: 1.5; }
.consent-links { display: flex; flex-wrap: wrap; gap: var(--v22-space-2) var(--v22-space-4); margin-top: var(--v22-space-3); }
.consent-links a { margin: 0; min-height: 32px; display: inline-flex; align-items: center; }
.consent-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--v22-space-3); }
.consent-btn { min-width: 7.5rem; min-height: 44px; padding: 0.75rem 1rem; white-space: nowrap; }
.consent-close { min-width: 40px; min-height: 40px; display: grid; place-items: center; }
@media (max-width: 900px) {
  .consent-container { grid-template-columns: 1fr; align-items: stretch; }
  .consent-actions { justify-content: flex-start; }
}
@media (max-width: 600px) {
  .consent-popup { padding: 2.75rem 1rem 1rem; }
  .consent-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .consent-btn { width: 100%; }
  .consent-links { gap: var(--v22-space-1) var(--v22-space-3); }
}

/* V47 — Eliminar o espaço branco entre o header fixo e a Hero em todo o portal */
body {
  padding-top: 80px;
}
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 80px;
  z-index: 1000;
}
.hero, .blog-hero, .contact-hero, .about-hero {
  margin-top: 0 !important;
}
main > *:first-child {
  margin-top: 0 !important;
}
