/* ============================================
   TOKENS
   ============================================ */
:root{
  --white:#FFFFFF;
  --black:#0B0C0F;
  --gray-25:#FAFBFC;
  --gray-50:#F5F6F8;
  --gray-100:#EBEDF1;
  --gray-200:#DEE2E8;
  --gray-400:#9AA3B2;
  --gray-500:#6B7280;
  --gray-600:#4B5563;
  --gray-700:#374151;
  --gray-800:#1F2430;
  --gray-900:#111318;

  --blue:#2563EB;
  --blue-600:#2563EB;
  --blue-700:#1D4ED8;
  --blue-50:#EEF3FF;
  --blue-100:#DCE6FF;

  --success:#16A34A;
  --danger:#DC2626;

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-full:999px;

  --shadow-sm:0 2px 8px rgba(15,18,25,0.06);
  --shadow-md:0 12px 32px -8px rgba(15,18,25,0.12);
  --shadow-lg:0 30px 70px -20px rgba(15,18,25,0.28);

  --maxw:1180px;
  --font-display:'Manrope', sans-serif;
  --font-body:'Inter', sans-serif;
}

/* ============================================
   RESET & BASE
   ============================================ */
*, *::before, *::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--gray-800);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4{
  font-family:var(--font-display);
  margin:0;
  line-height:1.15;
  letter-spacing:-0.02em;
  color:var(--gray-900);
  font-weight:700;
}
p{margin:0;color:var(--gray-600);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
svg{display:block;}
button{font-family:inherit;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

.skip-link{
  position:absolute !important;width:1px !important;height:1px !important;
  padding:0 !important;margin:-1px !important;overflow:hidden !important;
  clip:rect(1px,1px,1px,1px) !important;clip-path:inset(50%) !important;
  white-space:nowrap !important;border:0 !important;
  background:var(--blue);color:var(--white);font-weight:600;z-index:999;
}
.skip-link:focus{
  width:auto !important;height:auto !important;margin:0 !important;
  overflow:visible !important;clip:auto !important;clip-path:none !important;
  white-space:normal !important;
  top:16px;left:16px;padding:12px 20px;border-radius:var(--radius-sm);
}

:focus-visible{outline:2.5px solid var(--blue);outline-offset:3px;}

/* ============================================
   REVEAL ON SCROLL
   ============================================ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);}
.reveal.in-view{opacity:1;transform:translateY(0);}

/* ============================================
   BUTTONS
   ============================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:var(--radius-sm);font-weight:600;font-size:15px;
  border:1.5px solid transparent;cursor:pointer;text-decoration:none;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;
  white-space:nowrap;
}
.btn:active{transform:scale(0.98);}
.btn-primary{background:var(--blue-600);color:var(--white);box-shadow:0 8px 20px -6px rgba(37,99,235,0.5);}
.btn-primary:hover{background:var(--blue-700);box-shadow:0 12px 28px -6px rgba(37,99,235,0.6);transform:translateY(-1px);}
.btn-ghost{background:var(--white);color:var(--gray-800);border-color:var(--gray-200);}
.btn-ghost:hover{border-color:var(--gray-400);background:var(--gray-50);}
.btn-white{background:var(--white);color:var(--blue-700);}
.btn-white:hover{transform:translateY(-1px);box-shadow:0 12px 28px -6px rgba(0,0,0,0.25);}
.btn-lg{padding:16px 32px;font-size:16px;}
.btn-sm{padding:10px 20px;font-size:14px;}
.btn-block{width:100%;}

/* ============================================
   HEADER
   ============================================ */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,0.78);backdrop-filter:blur(14px) saturate(1.6);
  border-bottom:1px solid var(--gray-100);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:24px;}
.logo{display:flex;align-items:center;gap:10px;}
.logo-img{height:32px;width:auto;display:block;}
.main-nav{display:flex;gap:32px;}
.main-nav a{font-size:14.5px;font-weight:500;color:var(--gray-600);transition:color .15s ease;}
.main-nav a:hover{color:var(--gray-900);}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.nav-toggle span{width:22px;height:2px;background:var(--gray-800);border-radius:2px;transition:transform .2s ease, opacity .2s ease;}
.mobile-nav{
  display:flex;flex-direction:column;gap:2px;padding:0 24px;
  max-height:0;overflow:hidden;transition:max-height .3s ease, padding .3s ease;background:var(--white);border-bottom:1px solid var(--gray-100);
}
.mobile-nav.open{max-height:400px;padding:12px 24px 20px;}
.mobile-nav a{padding:12px 0;font-size:15px;font-weight:500;color:var(--gray-700);border-bottom:1px solid var(--gray-50);}
.mobile-nav .btn{margin-top:12px;}
@media (max-width:860px){
  .main-nav{display:none;}
  .header-inner > .btn-primary{display:none;}
  .nav-toggle{display:flex;}
}

/* ============================================
   HERO
   ============================================ */
.hero{position:relative;overflow:hidden;padding:96px 0 110px;}
.hero-mesh{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(ellipse 700px 500px at 15% 10%, var(--blue-50), transparent 60%),
    radial-gradient(ellipse 600px 500px at 90% 30%, #EAF6FF, transparent 55%),
    var(--white);
}
.hero-grid-pattern{
  position:absolute;inset:0;z-index:0;opacity:0.55;
  background-image:radial-gradient(var(--gray-200) 1px, transparent 1px);
  background-size:26px 26px;
  mask-image:radial-gradient(ellipse 900px 500px at 20% 0%, black 10%, transparent 70%);
}
.hero-inner{
  position:relative;z-index:1;display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;
  letter-spacing:0.02em;color:var(--blue-700);background:var(--blue-50);
  border:1px solid var(--blue-100);padding:7px 14px;border-radius:var(--radius-full);margin-bottom:22px;
}
.eyebrow-dark{color:var(--blue-700);background:var(--blue-50);border-color:var(--blue-100);}
.hero h1{font-size:clamp(34px,4.6vw,54px);margin-bottom:20px;}
.hero-sub{font-size:18px;color:var(--gray-600);max-width:52ch;margin-bottom:34px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px;}
.hero-trust{list-style:none;padding:0;margin:0;display:flex;gap:22px;flex-wrap:wrap;}
.hero-trust li{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--gray-600);font-weight:500;}
.icon-check{width:16px;height:16px;color:var(--success);flex-shrink:0;}

.hero-visual{position:relative;width:fit-content;margin:0 auto;}
.hero-photo-card{
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);
  aspect-ratio:9/16;height:min(87vh,720px);width:auto;border:1px solid var(--gray-100);
  position:relative;
}
.hero-photo-card img,
.hero-photo-card video{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;}
.unmute-btn{
  position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:5;
  display:flex;align-items:center;gap:8px;white-space:nowrap;
  background:rgba(11,12,15,0.65);backdrop-filter:blur(8px);color:var(--white);
  border:1px solid rgba(255,255,255,0.28);border-radius:var(--radius-full);
  padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer;
  transition:background .15s ease, transform .15s ease;
}
.unmute-btn:hover{background:rgba(11,12,15,0.8);transform:translateX(-50%) translateY(-1px);}
.unmute-btn svg{width:16px;height:16px;flex-shrink:0;}
.unmute-btn.is-unmuted .icon-muted{display:none;}
.unmute-btn:not(.is-unmuted) .icon-unmuted{display:none;}
@media (max-width:900px){
  .hero-photo-card{height:min(90vh,630px);}
}
@media (max-width:900px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-visual{margin:0 auto;}
}

/* ============================================
   SECTION SHELL
   ============================================ */
.section{padding:96px 0;}
.section-alt{background:var(--gray-25);}
.section-head{max-width:640px;margin:0 auto 52px;text-align:center;}
.section-head h2{font-size:clamp(28px,3.4vw,38px);margin-top:14px;}
.section-sub{font-size:16.5px;margin-top:14px;}

/* ============================================
   BENEFÍCIOS
   ============================================ */
.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.benefit-card{
  background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-md);
  padding:30px 26px;box-shadow:var(--shadow-sm);transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.benefit-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--gray-200);}
.benefit-icon{
  width:48px;height:48px;border-radius:12px;background:var(--blue-50);color:var(--blue-600);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
}
.benefit-icon svg{width:24px;height:24px;}
.benefit-card h3{font-size:17px;margin-bottom:10px;}
.benefit-card p{font-size:14.5px;}
@media (max-width:960px){.benefit-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.benefit-grid{grid-template-columns:1fr;}}

/* ============================================
   COMO FUNCIONA
   ============================================ */
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.step-card{
  background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-lg);
  padding:36px 30px;text-align:left;box-shadow:var(--shadow-sm);
}
.step-number{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--blue-600);margin-bottom:20px;}
.step-illustration{width:56px;height:56px;color:var(--gray-800);margin-bottom:22px;}
.step-card h3{font-size:18px;margin-bottom:10px;}
.step-card p{font-size:14.5px;}
@media (max-width:860px){.steps-grid{grid-template-columns:1fr;}}

/* ============================================
   MÓDULOS
   ============================================ */
.module-list{display:flex;flex-direction:column;gap:12px;}
.module-card{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);}
.module-head{
  width:100%;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:18px;
  padding:22px 24px;background:none;border:none;cursor:pointer;text-align:left;
}
.module-index{
  font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--blue-700);
  background:var(--blue-50);border-radius:10px;padding:10px 0;text-align:center;
}
.module-title-group{display:flex;flex-direction:column;gap:4px;}
.module-title-group h3{font-size:16.5px;font-family:var(--font-display);color:var(--gray-900);}
.module-count{font-size:12.5px;color:var(--gray-500);font-weight:500;}
.module-icon{width:18px;height:18px;color:var(--gray-500);flex-shrink:0;transition:transform .25s ease;}
.module-card.open .module-icon{transform:rotate(180deg);}
.module-body{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.module-lessons{
  list-style:none;margin:0;padding:0 24px 22px 94px;
  display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;
  border-top:1px solid var(--gray-100);padding-top:16px;
}
.module-lessons li{position:relative;padding-left:16px;font-size:14px;color:var(--gray-600);}
.module-lessons li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:50%;background:var(--blue-600);}
@media (max-width:640px){
  .module-head{grid-template-columns:40px 1fr auto;gap:12px;}
  .module-lessons{grid-template-columns:1fr;padding-left:24px;}
}

/* ============================================
   DIFERENCIAIS
   ============================================ */
.diff-wrap{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:center;}
.diff-photo{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:5/6;border:1px solid var(--gray-100);}
.diff-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%;}
.diff-copy h2{margin-top:14px;margin-bottom:28px;}
.diff-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:22px;}
.diff-list li{display:flex;gap:14px;align-items:flex-start;}
.diff-list .icon-check{width:20px;height:20px;margin-top:2px;background:#DCFCE7;color:var(--success);border-radius:50%;padding:2px;}
.diff-list strong{display:block;font-size:15.5px;color:var(--gray-900);margin-bottom:4px;font-family:var(--font-display);}
.diff-list p{font-size:14.5px;}
@media (max-width:900px){.diff-wrap{grid-template-columns:1fr;} .diff-photo{max-width:420px;margin:0 auto;}}

/* ============================================
   ESTATÍSTICAS
   ============================================ */
.stats-section{position:relative;background:var(--gray-900);color:var(--white);padding:80px 0;overflow:hidden;}
.stats-pattern{
  position:absolute;inset:0;opacity:0.06;
  background-image:radial-gradient(#FFFFFF 1px, transparent 1px);background-size:22px 22px;
}
.stats-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.stat-number{
  display:block;font-family:var(--font-display);font-size:clamp(34px,4.6vw,52px);font-weight:800;
  color:var(--white);letter-spacing:-0.02em;
}
.stat-label{display:block;font-size:13.5px;color:rgba(255,255,255,0.6);margin-top:8px;}
@media (max-width:760px){.stats-grid{grid-template-columns:1fr 1fr;row-gap:36px;}}

/* ============================================
   DEPOIMENTOS
   ============================================ */
.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.testimonial-card{
  background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-md);
  padding:28px;box-shadow:var(--shadow-sm);
}
.stars{color:#F5A524;font-size:15px;letter-spacing:2px;margin-bottom:16px;}
.testimonial-card p{font-size:14.5px;color:var(--gray-700);margin-bottom:22px;}
.testimonial-author{display:flex;align-items:center;gap:12px;}
.avatar{
  width:38px;height:38px;border-radius:50%;background:var(--blue-50);color:var(--blue-700);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;font-family:var(--font-display);
}
.testimonial-author strong{display:block;font-size:14px;color:var(--gray-900);}
.testimonial-author span{font-size:12.5px;color:var(--gray-500);}
@media (max-width:860px){.testimonial-grid{grid-template-columns:1fr;}}

/* ============================================
   FAQ
   ============================================ */
.faq-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.faq-item{background:var(--white);border:1px solid var(--gray-100);border-radius:var(--radius-sm);overflow:hidden;}
.faq-question{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:20px 22px;background:none;border:none;cursor:pointer;text-align:left;
  font-size:15.5px;font-weight:600;color:var(--gray-900);
}
.faq-icon{width:18px;height:18px;color:var(--gray-500);flex-shrink:0;transition:transform .25s ease;}
.faq-item.open .faq-icon{transform:rotate(180deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease;}
.faq-answer p{padding:0 22px 20px;font-size:14.5px;color:var(--gray-600);}

/* ============================================
   INVESTIMENTO / PRICING
   ============================================ */
.pricing-section{position:relative;overflow:hidden;background:var(--gray-25);}
.pricing-mesh{
  position:absolute;inset:0;z-index:0;
  background:radial-gradient(ellipse 700px 450px at 50% 0%, var(--blue-50), transparent 60%);
}
.pricing-section .container{position:relative;z-index:1;}
.pricing-card{
  max-width:520px;margin:0 auto;background:var(--white);border:1px solid var(--gray-100);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:44px 40px;text-align:center;
}
.coupon-badge{
  display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;
  color:var(--blue-700);background:var(--blue-50);border:1px solid var(--blue-100);
  padding:8px 16px;border-radius:var(--radius-full);margin-bottom:26px;
}
.price-block{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:20px;}
.price-was{font-size:16px;color:var(--gray-400);text-decoration:line-through;font-weight:500;}
.price-main{font-family:var(--font-display);font-size:clamp(36px,5vw,46px);font-weight:800;color:var(--gray-900);letter-spacing:-0.02em;}
.price-caption{font-size:13px;color:var(--success);font-weight:600;margin-bottom:8px;}
.price-or{font-size:13px;color:var(--gray-400);font-weight:600;text-transform:uppercase;letter-spacing:0.05em;margin:2px 0;}
.price-installment{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--gray-700);}
.price-note{font-size:14px;color:var(--gray-600);margin-bottom:28px;line-height:1.6;}
.price-note strong{color:var(--gray-900);}
.price-note em{color:var(--gray-500);font-style:italic;}
.pricing-trust{justify-content:center;margin-top:24px;}
@media (max-width:560px){.pricing-card{padding:34px 24px;}}

/* ============================================
   FINAL CTA
   ============================================ */
.final-cta{
  background:linear-gradient(120deg, var(--blue-700), var(--blue-600));
  color:var(--white);text-align:center;padding:90px 0;
}
.final-cta h2{color:var(--white);font-size:clamp(28px,4vw,42px);margin-bottom:14px;}
.final-cta p{color:rgba(255,255,255,0.85);font-size:16.5px;margin-bottom:32px;}

/* ============================================
   FOOTER
   ============================================ */
.site-footer{background:var(--gray-900);color:rgba(255,255,255,0.7);padding:64px 0 0;}
.footer-inner{display:grid;grid-template-columns:1.2fr 1.4fr 0.6fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,0.08);}
.footer-brand .logo-footer{color:var(--white);margin-bottom:14px;}
.footer-brand p{font-size:13.5px;color:rgba(255,255,255,0.55);max-width:32ch;}
.footer-links{display:flex;gap:56px;}
.footer-links h4{color:var(--white);font-size:13px;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:16px;}
.footer-links a{display:block;font-size:14px;color:rgba(255,255,255,0.6);margin-bottom:12px;}
.footer-links a:hover{color:var(--white);}
.footer-social{display:flex;gap:12px;align-items:flex-start;justify-content:flex-start;}
.footer-social a{
  width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,0.15);
  display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.7);transition:border-color .15s ease, color .15s ease;
}
.footer-social a:hover{border-color:var(--white);color:var(--white);}
.footer-social svg{width:17px;height:17px;}
.footer-bottom{padding:22px 0;text-align:center;font-size:12.5px;color:rgba(255,255,255,0.4);}
@media (max-width:760px){
  .footer-inner{grid-template-columns:1fr;}
  .footer-links{gap:32px;}
}
