:root{
  --emerald:#10b981;
  --ink:#111827;
}
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
body,.font-inter{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,'Helvetica Neue',Arial,'Noto Sans','Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji',sans-serif;
}
.container{ max-width:1100px; margin:0 auto; padding-inline:clamp(1rem,4vw,1.25rem); }

/* Hero */
.hero-gradient{
  background: radial-gradient(1200px 520px at 50% -10%, rgba(16,185,129,.35), transparent 60%),
              linear-gradient(135deg, #0f5132 0%, #15803d 100%);
  position:relative;
}
.hero-grid{ position:absolute; inset:0; opacity:.12; pointer-events:none;
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 24px 24px;
}
.hero-title{ font-weight:900; letter-spacing:-.02em; font-size: clamp(1.8rem, 3.8vw + 1rem, 3.5rem); line-height:1.12; }
.hero-sub{ font-size: clamp(1rem, 1.2vw + .7rem, 1.25rem); color: rgba(255,255,255,.92); }

/* Botões */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-weight:700; border-radius:.85rem; padding:.85rem 1.15rem;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease; will-change:transform; }
.btn:active{ transform:translateY(1px); }
.btn-primary{ background:linear-gradient(90deg, var(--emerald) 0%, var(--emerald) 100%); color:#fff;
  box-shadow:0 10px 15px -3px rgba(16,185,129,.35), 0 4px 6px -2px rgba(16,185,129,.2); }
.btn-primary:hover{ box-shadow:0 16px 30px -12px rgba(16,185,129,.55), 0 10px 20px -10px rgba(16,185,129,.35); transform:translateY(-1px); }
.btn-on-hero{ background:#fff; color:#065f46; border-radius:1rem; padding:1rem 1.25rem; }
.btn-on-hero:hover{ transform:translateY(-1px); box-shadow:0 12px 24px -12px rgba(255,255,255,.6); }
.btn-ghost-on-dark{ color:#a7f3d0; border:1px solid rgba(255,255,255,.25); padding:.6rem .95rem; border-radius:.7rem; }
.btn-ghost-on-dark:hover{ background:rgba(255,255,255,.08); }

/* Nav */
.nav-wrapper{ transition: transform .2s ease, background .2s ease; will-change: transform; }
.nav-wrapper.nav-hidden{ transform: translateY(-100%); }
.nav-link{ color:#374151; font-weight:600; font-size:.95rem; }
.nav-link:hover{ color:#065f46; }
.nav-link-mobile{ display:block; padding:.75rem 1rem; border:1px solid #e5e7eb; border-radius:.65rem; background:#fff; font-weight:600; color:#374151; }
.nav-link-mobile:active{ transform: translateY(1px); }

/* Tipografia utilitária */
.h2{ font-weight:800; letter-spacing:-.01em; font-size: clamp(1.5rem, 1.6vw + 1rem, 2.1rem); }
.lead{ font-size: clamp(1rem, .8vw + .75rem, 1.125rem); color:#4b5563; }
.eyebrow{ text-transform:uppercase; letter-spacing:.08em; font-weight:700; color:#065f46; font-size:.8rem; }

/* Chips/Trust */
.trust-chip{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  background:#f8fafc; border:1px solid #e5e7eb; padding:.65rem 1rem; border-radius:.75rem; font-weight:600;
  font-size: clamp(.85rem, .5vw + .6rem, .95rem); }
.trust-icon{ display:inline-flex; width:1.15rem; height:1.15rem; align-items:center; justify-content:center; border-radius:.4rem; background:var(--emerald); color:#fff; font-size:.85rem; }

/* Glass / Alerts */
.glass{ background:rgba(255,255,255,.78); border:1px solid rgba(15,81,50,.15); border-radius:1rem; box-shadow:0 10px 30px -18px rgba(15,81,50,.45); }
.alert{ border-radius:.75rem; padding:.85rem 1rem; border:1px solid; }
.alert-neutral{ background:#f8fafc; border-color:#e5e7eb; }
.alert-warn{ background:#fff7ed; border-color:#fed7aa; }
.alert-strong{ background:#065f46; color:#ecfdf5; border-color:#064e3b; }

/* Checklist */
.checklist{ display:grid; gap:.6rem; }
.checklist li{ position:relative; padding-left:1.7rem; }
.checklist li::before{ content:""; position:absolute; left:0; top:.18rem; width:1.05rem; height:1.05rem; border-radius:.35rem; background:var(--emerald); box-shadow: inset 0 0 0 2px #ecfdf5; }

/* Steps */
.card-step{ background:#fff; border:1px solid #e5e7eb; border-radius:1rem; padding:1.1rem; box-shadow:0 10px 20px -16px rgba(0,0,0,.25); }
.step-number{ width:2rem; height:2rem; border-radius:.6rem; background:var(--emerald); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; margin-bottom:.6rem; }
.step-title{ font-weight:800; margin-bottom:.25rem; }

/* Benefícios */
.benefit{ background:#fff; border:1px solid #e5e7eb; border-radius:1rem; padding:1.1rem; }
.benefit h3{ font-weight:800; font-size:1.05rem; margin-bottom:.3rem; }

/* FAQ */
.faq{ background:#fff; border:1px solid #e5e7eb; border-radius:.9rem; padding:1rem; }
.faq > summary{ cursor:pointer; font-weight:700; }
.faq > p{ margin-top:.45rem; color:#4b5563; }

/* Selo */
.seal{
  display:inline-flex; align-items:center; justify-content:center; width:160px; height:160px;
  border-radius:999px; background:conic-gradient(from 0deg, var(--emerald), #0ea5e9, var(--emerald));
  color:#052e2b; font-weight:900; text-transform:uppercase; border:8px solid #fff; box-shadow:0 12px 30px -16px rgba(2,44,34,.65);
  font-size:1.1rem;
}

/* CTA móvel fixo */
.sticky-cta{
  position:sticky; bottom:0; left:0; right:0; padding: .65rem .9rem; background:rgba(255,255,255,.85); backdrop-filter: blur(8px);
  border-top:1px solid #e5e7eb; z-index:50;
}

/* Micro animação CTA */
@keyframes press{ 0%{transform:translateY(0);} 50%{transform:translateY(-1px);} 100%{transform:translateY(0);} }
.animate-press{ animation: press 2.2s ease-in-out infinite; }

/* Barra de progresso */
#scroll-progress{ transition:width .15s linear; }

/* Acessibilidade */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;
}
/* Botão Principal */
.btn-hero-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  
  /* Tamanho e Fonte */
  padding: 1.2rem 1.5rem; /* Padding ajustado para mobile */
  font-weight: 800;
  font-size: clamp(1rem, 4vw, 1.25rem); /* Fonte responsiva */
  color: #065f46; /* Cor do texto */
  
  /* Forma */
  border-radius: 1rem;
  background: transparent; /* O fundo branco será feito pelo ::after */
  
  /* O SEGREDO: Overflow hidden corta o gradiente gigante, deixando só o formato do botão */
  overflow: hidden; 
  z-index: 1; /* Garante que o botão tenha prioridade */
  text-decoration: none;
  transition: transform 0.2s ease;
}

.btn-hero-cta:hover {
  transform: scale(1.02); /* Leve aumento ao passar o mouse */
}

/* CAMADA 1 (Fundo): O Gradiente que Gira */
.btn-hero-cta::before {
  content: '';
  position: absolute;
  /* Centraliza o elemento giratório */
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); 
  
  /* Tamanho exagerado para cobrir tudo enquanto gira */
  width: 250%; 
  height: 250%;
  
  /* O Gradiente */
  background: conic-gradient(
    from 0deg, 
    transparent 0%, 
    #10b981 20%, 
    #0ea5e9 50%, 
    #10b981 80%, 
    transparent 100%
  );
  
  /* Animação */
  animation: border-spin 3s linear infinite;
  z-index: -2; /* Fica bem atrás */
}

/* CAMADA 2 (Meio): O Fundo Branco (A "Máscara") */
.btn-hero-cta::after {
  content: '';
  position: absolute;
  /* INSET define a espessura da borda. 3px de borda colorida. */
  inset: 3px; 
  background: #ffffff;
  border-radius: 0.85rem; /* Ligeiramente menor que o botão pai */
  z-index: -1; /* Fica atrás do texto, mas na frente do gradiente */
}

/* Animação de Rotação */
@keyframes border-spin {
  0% { transform: translate(-50%, -50%) rotate(0deg); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}