/* =====================================================
   Coreblocks — Landing Page
   Custom theme on top of Bootstrap 5.3 (dark mode)
   ===================================================== */

:root {
  --cb-bg: #0c0e14;
  --cb-bg-2: #11141d;
  --cb-surface: #161a25;
  --cb-surface-2: #1c2130;
  --cb-border: #262b3a;
  --cb-fg: #f5f6fa;
  --cb-muted: #9aa1b4;

  --cb-primary: #7c5cff;        /* violet/electric */
  --cb-primary-glow: #9a82ff;
  --cb-primary-rgb: 124, 92, 255;

  --cb-grid: rgba(255, 255, 255, 0.045);
  --cb-radius: 0.875rem;

  --font-display: "Space Grotesk", system-ui, sans-serif;
  --font-sans: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
}

/* Bootstrap override variables (dark theme) */
[data-bs-theme="dark"] {
  --bs-body-bg: var(--cb-bg);
  --bs-body-color: var(--cb-fg);
  --bs-primary: var(--cb-primary);
  --bs-primary-rgb: var(--cb-primary-rgb);
  --bs-border-color: var(--cb-border);
  --bs-link-color: var(--cb-primary-glow);
  --bs-link-hover-color: #ffffff;
  --bs-emphasis-color: var(--cb-fg);
}

* { -webkit-font-smoothing: antialiased; }

html { scroll-behavior: smooth; scroll-padding-top: 80px; }

body {
  background-color: var(--cb-bg);
  color: var(--cb-fg);
  font-family: var(--font-sans);
  font-feature-settings: "ss01", "cv11";
  line-height: 1.55;
}

h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
  font-family: var(--font-display);
  letter-spacing: -0.02em;
  color: var(--cb-fg);
}

.text-mono { font-family: var(--font-mono); }
.text-balance { text-wrap: balance; }
.text-muted-fg { color: var(--cb-muted) !important; }
.text-primary-glow { color: var(--cb-primary-glow); }
.eyebrow { color: var(--cb-primary-glow); letter-spacing: 0.18em; }

/* ===== Buttons ===== */
.btn-primary {
  --bs-btn-bg: var(--cb-primary);
  --bs-btn-border-color: var(--cb-primary);
  --bs-btn-hover-bg: var(--cb-primary-glow);
  --bs-btn-hover-border-color: var(--cb-primary-glow);
  --bs-btn-active-bg: var(--cb-primary);
  --bs-btn-active-border-color: var(--cb-primary);
  color: #fff;
}
.btn-outline-light {
  --bs-btn-color: var(--cb-fg);
  --bs-btn-border-color: var(--cb-border);
  --bs-btn-hover-bg: var(--cb-surface-2);
  --bs-btn-hover-border-color: var(--cb-border);
  --bs-btn-hover-color: var(--cb-fg);
}
.cta-glow {
  box-shadow: 0 10px 40px -10px rgba(var(--cb-primary-rgb), 0.55);
}
.cta-glow:hover { box-shadow: 0 14px 50px -10px rgba(var(--cb-primary-rgb), 0.7); }

/* ===== Header ===== */
.site-header {
  background: rgba(12, 14, 20, 0.75);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--cb-border);
}
.site-header .navbar { padding-block: 0.75rem; }
.site-header .nav-link { color: var(--cb-muted); }
.site-header .nav-link:hover,
.site-header .nav-link:focus-visible { color: var(--cb-fg); }
.brand-mark {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: var(--cb-primary);
  color: #fff;
  display: inline-grid; place-items: center;
}
.navbar-toggler {
  border-color: var(--cb-border);
  color: var(--cb-fg);
}
.navbar-toggler:focus { box-shadow: 0 0 0 0.2rem rgba(var(--cb-primary-rgb), 0.35); }
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(245,246,250,.8)' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* ===== Sections ===== */
.section { padding-block: clamp(2.75rem, 8vw, 7rem); }
.section-alt {
  background: linear-gradient(180deg, rgba(255,255,255,0.015), rgba(255,255,255,0.025));
  border-block: 1px solid var(--cb-border);
}

/* ===== Hero ===== */
.hero { padding-block: clamp(2.5rem, 9vw, 8rem) 0; }
.hero-bg-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(to right, var(--cb-grid) 1px, transparent 1px),
    linear-gradient(to bottom, var(--cb-grid) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
          mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  opacity: 0.45;
  pointer-events: none;
}
.hero-bg-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at top,
    rgba(var(--cb-primary-rgb), 0.22), transparent 60%);
  pointer-events: none;
}
.hero h1 { font-size: clamp(1.85rem, 5.4vw, 4.5rem); line-height: 1.1; }
.hero .lead { font-size: clamp(0.95rem, 1.6vw, 1.125rem); }

.badge-pill {
  background: var(--cb-surface);
  border: 1px solid var(--cb-border);
  border-radius: 999px;
  padding: 0.4rem 0.85rem;
  color: var(--cb-muted);
  font-size: 0.8rem;
}
.dot-pulse {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--cb-primary);
  box-shadow: 0 0 0 0 rgba(var(--cb-primary-rgb), 0.6);
  animation: dot-pulse 2s ease-out infinite;
  display: inline-block;
}
@keyframes dot-pulse {
  0%   { box-shadow: 0 0 0 0   rgba(var(--cb-primary-rgb), 0.7); }
  70%  { box-shadow: 0 0 0 10px rgba(var(--cb-primary-rgb), 0); }
  100% { box-shadow: 0 0 0 0   rgba(var(--cb-primary-rgb), 0); }
}

/* ===== KPI grid ===== */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--cb-border);
  border: 1px solid var(--cb-border);
  border-radius: var(--cb-radius);
  overflow: hidden;
  margin: 0;
}
@media (min-width: 768px) {
  .kpi-grid { grid-template-columns: repeat(4, 1fr); }
}
.kpi-cell { background: var(--cb-bg); padding: clamp(1rem, 2.5vw, 1.5rem); }
.kpi-value {
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  font-weight: 700;
  color: var(--cb-primary-glow);
  margin: 0.35rem 0 0;
}


/* ===== Modules grid ===== */
.modules-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--cb-border);
  border: 1px solid var(--cb-border);
  border-radius: 1rem;
  overflow: hidden;
}
@media (min-width: 576px) { .modules-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px) { .modules-grid { grid-template-columns: repeat(4, 1fr); } }
.module-card {
  background: var(--cb-bg);
  padding: 1.5rem;
  transition: background 0.18s ease;
}
.module-card:hover { background: var(--cb-surface); }
.module-icon { font-size: 1.5rem; color: var(--cb-primary-glow); }

/* ===== Vertical cards ===== */
.vertical-card {
  background: var(--cb-bg);
  border: 1px solid var(--cb-border);
  border-radius: var(--cb-radius);
  padding: 1.5rem;
  transition: border-color 0.18s ease, background 0.18s ease;
}
.vertical-card:hover {
  border-color: rgba(var(--cb-primary-rgb), 0.4);
  background: var(--cb-surface-2);
}
.vertical-icon { font-size: 1.75rem; color: var(--cb-primary-glow); margin-bottom: 1rem; display: block; }

/* ===== Steps ===== */
.steps-grid .step-card {
  background: var(--cb-surface);
  border: 1px solid var(--cb-border);
  border-radius: var(--cb-radius);
  padding: 1.5rem;
}
.step-icon {
  font-size: 1.75rem;
  color: var(--cb-primary-glow);
  display: block;
  margin-top: 1rem;
}

/* ===== Plans ===== */
.plan-card {
  background: var(--cb-bg);
  border: 1px solid var(--cb-border);
  border-radius: 1rem;
  padding: 2rem;
  position: relative;
}
.plan-card--featured {
  border-color: var(--cb-primary);
  box-shadow: 0 0 60px -20px rgba(var(--cb-primary-rgb), 0.45);
}
.plan-badge {
  position: absolute;
  top: -0.85rem;
  left: 1.5rem;
  background: var(--cb-primary);
  color: #fff;
  border-radius: 999px;
  padding: 0.25rem 0.75rem;
}
.plan-price { line-height: 1; }

/* ===== FAQ ===== */
.accordion {
  --bs-accordion-bg: transparent;
  --bs-accordion-color: var(--cb-fg);
  --bs-accordion-border-color: var(--cb-border);
  --bs-accordion-btn-color: var(--cb-fg);
  --bs-accordion-btn-bg: transparent;
  --bs-accordion-active-bg: transparent;
  --bs-accordion-active-color: var(--cb-fg);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 0.2rem rgba(var(--cb-primary-rgb), 0.25);
}
.accordion-button {
  font-family: var(--font-display);
  font-weight: 600;
}
.accordion-button::after { filter: invert(0.9); }
.accordion-button:not(.collapsed) { color: var(--cb-primary-glow); }

/* ===== CTA card ===== */
.cta-card {
  background: var(--cb-surface);
  border: 1px solid var(--cb-border);
  border-radius: 1.5rem;
}
.cta-icon { font-size: 2.25rem; color: var(--cb-primary-glow); }

/* ===== Forms ===== */
.form-control, .form-select {
  background-color: var(--cb-bg);
  border-color: var(--cb-border);
  color: var(--cb-fg);
}
.form-control:focus, .form-select:focus {
  background-color: var(--cb-bg);
  color: var(--cb-fg);
  border-color: var(--cb-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--cb-primary-rgb), 0.25);
}
.form-control::placeholder { color: var(--cb-muted); }

/* ===== Footer ===== */
.site-footer {
  background: var(--cb-bg-2);
  border-top: 1px solid var(--cb-border);
}
.footer-link { color: var(--cb-muted); text-decoration: none; }
.footer-link:hover, .footer-link:focus-visible { color: var(--cb-fg); }
.site-footer a[aria-label] { color: var(--cb-muted); font-size: 1.25rem; }
.site-footer a[aria-label]:hover { color: var(--cb-fg); }

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* ===== Print ===== */
@media print {
  .site-header, .site-footer, #contato form { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
}

/* ===== Modal de captação de lead (antes do WhatsApp) ===== */
.lead-modal {
  background: var(--cb-surface);
  border: 1px solid var(--cb-border);
  border-radius: var(--cb-radius);
  border-top: 4px solid var(--cb-primary);
}
.lead-modal .modal-title { font-family: var(--font-display); color: var(--cb-fg); }
.lead-modal .modal-body { padding: 1rem 1.5rem 1.75rem; }
.lead-modal .form-label { color: var(--cb-fg); font-size: 0.9rem; }
.lead-modal .form-control {
  background-color: var(--cb-bg);
  border-color: var(--cb-border);
  color: var(--cb-fg);
}
.lead-modal .form-control:focus {
  border-color: var(--cb-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--cb-primary-rgb), 0.25);
}

/* ===== Engenharia (seção 04) ===== */
.engineering-card {
  background: var(--cb-bg);
  border: 1px solid var(--cb-border);
  border-radius: var(--cb-radius);
  padding: 2rem;
  transition: border-color .2s ease, transform .2s ease;
}
.engineering-card:hover { border-color: rgba(var(--cb-primary-rgb), 0.4); }
.engineering-icon {
  color: var(--cb-primary);
  font-size: 2rem;
}
.chip-pill {
  display: inline-flex; align-items: center;
  background: var(--cb-bg);
  border: 1px solid var(--cb-border);
  border-radius: 100px;
  padding: .55rem 1rem;
  font-size: .875rem;
  color: var(--cb-muted);
}

/* ===== Contratação (cards de plano) ===== */
.plan-icon {
  color: var(--cb-primary);
  font-size: 2.25rem;
}
.diagnostic-card {
  background: var(--cb-surface);
  border: 1px solid rgba(var(--cb-primary-rgb), 0.3);
  border-radius: calc(var(--cb-radius) + 4px);
  padding: 2.5rem;
}

/* ===== Sobre a M2 ===== */
.person-card {
  background: var(--cb-bg);
  border: 1px solid var(--cb-border);
  border-radius: var(--cb-radius);
  padding: 1.5rem;
}
.person-photo {
  width: 96px; height: 96px;
  border-radius: 16px;
  object-fit: cover;
  flex-shrink: 0;
}
.link-muted { color: var(--cb-muted); text-decoration: none; transition: color .15s ease; }
.link-muted:hover, .link-muted:focus-visible { color: var(--cb-primary); }
@media (max-width: 576px) {
  .person-card { flex-direction: column; }
  .person-photo { width: 72px; height: 72px; }
}

/* ===== CTA form (substitui o modal antigo) ===== */
.cta-form {
  background: var(--cb-bg);
  border: 1px solid var(--cb-border);
  border-radius: var(--cb-radius);
  padding: 1.5rem;
}
@media (min-width: 992px) {
  .cta-form { padding: 2rem; }
}
.cta-form .form-control {
  background-color: var(--cb-surface);
  border-color: var(--cb-border);
  color: var(--cb-fg);
}
.cta-form .form-control:focus {
  border-color: var(--cb-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--cb-primary-rgb), 0.25);
}
.lead-success {
  text-align: center;
  padding: 1.5rem .5rem;
}

/* ===== Modal de módulo (detalhe) ===== */
.module-reg {
  background: var(--cb-bg-2, var(--cb-bg));
  border: 1px solid var(--cb-border);
}

/* ===== Botão de "Saiba mais" do módulo ===== */
.module-more {
  text-decoration: none;
  background: transparent;
  border: 0;
  font-size: .875rem;
}
.module-more:hover { text-decoration: underline; }

/* =========================================================
   Mobile fine-tuning (≤ 576px): reduz fonte proporcional ao
   objetivo de cada elemento e aperta o espaco entre secoes
   ========================================================= */
@media (max-width: 575.98px) {
  /* Sections respiram menos no mobile */
  .section { padding-block: 2.5rem; }
  .hero    { padding-block: 2.25rem 0; }

  /* Titulos das secoes (h2 com .display-5) */
  .display-5 { font-size: 1.55rem !important; line-height: 1.2; }
  /* Sobre a M2 (h2 com .display-6) */
  .display-6 { font-size: 1.35rem !important; line-height: 1.25; }
  /* Titulos de cards (.h4 h2 ou h3) */
  h3.h4, .h4 { font-size: 1.1rem !important; }
  /* Lead/paragrafos de bloco */
  .lead { font-size: 1rem !important; }
  /* Eyebrows menores */
  .eyebrow { font-size: 0.65rem !important; letter-spacing: 0.1em; }

  /* Cards Como funciona: padding interno menor + ajusta espaco interno */
  .steps-grid .step-card { padding: 1.1rem 1.1rem 1.25rem; }
  .step-icon { font-size: 1.5rem; margin-top: 0.65rem; }
  .steps-grid .step-card h3 { margin-top: 0.65rem !important; }

  /* Modulos: padding interno menor */
  .module-card { padding: 1rem; }
  .module-icon { font-size: 1.25rem; }

  /* Verticais: card menor */
  .vertical-card { padding: 1rem !important; }
  .vertical-icon { font-size: 1.25rem !important; }

  /* Engenharia / Contratacao / Sobre M2 */
  .engineering-card { padding: 1.25rem; }
  .engineering-icon { font-size: 1.5rem; }
  .plan-card { padding: 1.25rem; }
  .plan-icon { font-size: 1.75rem; }
  .diagnostic-card { padding: 1.5rem 1.25rem; }
  .person-card { padding: 1.1rem; }

  /* CTA contato: padding mais apertado */
  .cta-card { padding: 0 !important; }
  .cta-form { padding: 1rem; }
  .cta-card .p-md-5 { padding: 1.25rem !important; }
  /* Botao de submit cabe em 1 linha no mobile */
  .cta-form .btn-lg {
    font-size: 0.95rem;
    padding: 0.7rem 1rem;
    letter-spacing: -0.01em;
  }
  .cta-form .form-control-lg,
  .cta-form .form-select-lg {
    font-size: 0.95rem;
    padding: 0.6rem 0.85rem;
  }
  .cta-form textarea.form-control-lg { padding: 0.6rem 0.85rem; min-height: 80px; }
  .cta-form .form-label { font-size: 0.85rem; margin-bottom: 0.35rem; }
  .cta-form .form-group-title {
    font-size: 0.7rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.4rem;
  }

  /* KPI grid */
  .kpi-grid { margin-top: 2rem !important; }

  /* Footer */
  .site-footer .container { padding-top: 2rem !important; padding-bottom: 2rem !important; }
}

/* =========================================================
   Tablet (576-768px): suaviza tambem
   ========================================================= */
@media (min-width: 576px) and (max-width: 767.98px) {
  .section { padding-block: 3.5rem; }
  .hero    { padding-block: 3rem 0; }
  .display-5 { font-size: 1.85rem !important; }
  .display-6 { font-size: 1.5rem !important; }
}

/* ===== Form: agrupamentos visuais "Sobre você" / "Sobre sua empresa" ===== */
.form-group-title {
  color: var(--cb-primary-glow);
  letter-spacing: 0.14em;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--cb-border);
  display: flex;
  align-items: center;
  font-weight: 600;
}
.form-group-title .bi {
  color: var(--cb-primary);
  font-size: 1rem;
}

/* Select no tema dark */
.cta-form .form-select {
  background-color: var(--cb-surface);
  border-color: var(--cb-border);
  color: var(--cb-fg);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%239aa1b4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}
.cta-form .form-select:focus {
  border-color: var(--cb-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--cb-primary-rgb), 0.25);
  color: var(--cb-fg);
}
.cta-form .form-select option { background-color: var(--cb-surface); color: var(--cb-fg); }

/* Textarea respeita o tema */
.cta-form textarea.form-control {
  resize: vertical;
  min-height: 90px;
  line-height: 1.45;
}

/* Helper text com cor adequada */
.cta-form .form-text { color: var(--cb-muted) !important; margin-top: 0.4rem; }
