/* ==========================================================================
   EDU AULAS — Landing Page
   Direção visual: automotiva, profissional, confiante.
   Tipografia: Oswald (títulos, condensada e forte) + Manrope (corpo)
               + Caveat (apenas na assinatura pessoal do Eduardo).
   ========================================================================== */

:root{
  /* Paleta oficial da marca */
  --navy:        #102A43;
  --navy-soft:   #1B3A5C;
  --blue:        #1F6FEB;
  --blue-dark:   #164FB0;
  --yellow:      #F5B700;
  --graphite:    #252A31;
  --gray-light:  #E9EEF3;
  --white:       #FFFFFF;
  --black:       #0B0D10;
  --whatsapp:    #25D366;
  --whatsapp-dark:#1DA851;

  --text-body:   #3C4450;
  --text-muted:  #6B7684;

  --font-display: 'Oswald', 'Arial Narrow', sans-serif;
  --font-body:    'Manrope', sans-serif;
  --font-sign:    'Caveat', cursive;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;

  --shadow-soft: 0 12px 30px -12px rgba(16,42,67,.25);
  --shadow-hard: 0 20px 45px -18px rgba(0,0,0,.45);

  --ease: cubic-bezier(.22,.7,.28,1);
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{
  scroll-behavior: smooth;
  overflow-x: hidden;
  width: 100%;
}
body{
  margin:0;
  width: 100%;
  font-family: var(--font-body);
  color: var(--text-body);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font:inherit; cursor:pointer; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  color: var(--graphite);
  line-height:1.12;
  margin:0;
  letter-spacing:.2px;
}
p{ margin:0; }
svg{ display:block; }

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

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--yellow); color:var(--navy); font-weight:700;
  padding:.8rem 1.2rem; border-radius:0 0 8px 0; z-index:999;
}
.skip-link:focus{ left:0; top:0; }

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

/* ---------- Layout utilities ---------- */
.wrap{
  width:100%;
  max-width:1180px;
  margin-inline:auto;
  padding-inline:1.25rem;
}
.wrap-narrow{ max-width:820px; }

.grid{ display:grid; gap:1.25rem; }
.grid-2{ grid-template-columns:1fr; }
.grid-3{ grid-template-columns:1fr; }
.grid-4{ grid-template-columns:1fr; }
@media (min-width:640px){
  .grid-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid-3{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grid-4{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:960px){
  .grid-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .grid-4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
}

.section{ padding:5rem 0; position:relative; }
.section-tint{ background:var(--gray-light); }
.section-dark{
  background:linear-gradient(160deg,var(--navy) 0%,#0c1f34 100%);
  position:relative; overflow:hidden;
}
.section-black{ background:var(--black); position:relative; overflow:hidden; }

.eyebrow{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:.8rem;
  font-weight:600;
  color:var(--blue);
  margin:0 0 .6rem;
}
.eyebrow-light{ color:var(--yellow); }

.section-title{
  font-size:clamp(1.7rem,4.5vw,2.5rem);
  max-width:24ch;
  margin-bottom:1rem;
}
.text-on-dark{ color:var(--white); }
.section-lead{
  font-size:1.05rem;
  color:var(--text-muted);
  max-width:60ch;
  margin-bottom:2.5rem;
}
.text-on-dark-muted{ color:rgba(255,255,255,.72); }
.text-accent{
  color:var(--navy);
  background-image:linear-gradient(to bottom, transparent 64%, rgba(245,183,0,.55) 64%);
  box-decoration-break:clone; -webkit-box-decoration-break:clone;
  padding:0 .1em;
}

.center-cta{ text-align:center; margin-top:2.5rem; }

/* Reveal-on-scroll */
.reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.reveal.is-visible{ opacity:1; transform:none; }

/* ---------- Glow ambiente (substitui o antigo padrão de setas) ---------- */
.glow{
  position:absolute; inset:0;
  pointer-events:none;
  overflow:hidden;
}
.glow::before, .glow::after{
  content:''; position:absolute; border-radius:50%;
  filter:blur(10px);
}
.glow::before{
  width:56vw; height:56vw; max-width:640px; max-height:640px;
  top:-22%; right:-14%;
  background:radial-gradient(circle, rgba(31,111,235,.32) 0%, rgba(31,111,235,0) 70%);
}
.glow::after{
  width:44vw; height:44vw; max-width:520px; max-height:520px;
  bottom:-20%; left:-10%;
  background:radial-gradient(circle, rgba(245,183,0,.16) 0%, rgba(245,183,0,0) 70%);
}
.glow-soft::before{ background:radial-gradient(circle, rgba(31,111,235,.2) 0%, rgba(31,111,235,0) 70%); }

/* Divisor "linha de pista" */
.road-divider{
  height:4px; width:100%;
  background-image:repeating-linear-gradient(to right, var(--yellow) 0 22px, transparent 22px 40px);
  border-radius:2px;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.5px;
  font-size:.92rem;
  font-weight:600;
  padding:.85rem 1.5rem;
  border-radius:100px;
  border:2px solid transparent;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease);
  white-space:nowrap;
}
.btn .ico{ width:20px; height:20px; flex:none; }
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn-whatsapp{
  background:var(--whatsapp); color:#fff;
  box-shadow:0 10px 24px -8px rgba(37,211,102,.55);
}
.btn-whatsapp:hover{ background:var(--whatsapp-dark); }

.btn-ghost{
  background:transparent; color:#fff; border-color:rgba(255,255,255,.55);
}
.btn-ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; }

.btn-outline{
  background:transparent; color:var(--navy); border-color:var(--navy);
}
.btn-outline:hover{ background:var(--navy); color:#fff; }

.btn-lg{ padding:1.05rem 2rem; font-size:1rem; }
.btn-sm{ padding:.55rem 1.1rem; font-size:.78rem; }
.btn-block{ width:100%; }

@media (max-width:360px){
  .btn{ padding:.75rem 1.1rem; font-size:.8rem; gap:.4rem; }
  .btn .ico{ width:18px; height:18px; }
  .btn-lg{ padding:.85rem 1.25rem; font-size:.85rem; }
}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(16,42,67,.96);
  backdrop-filter:blur(8px);
  transition:box-shadow .3s var(--ease);
}
.site-header.is-scrolled{
  box-shadow:0 8px 24px -12px rgba(0,0,0,.4);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:.5rem;
}
.brand{ display:flex; align-items:center; gap:.65rem; }
.brand-logo{ height:88px; width:auto; border-radius:8px; display:block; }
.brand-text{ display:flex; flex-direction:column; line-height:1.05; }
.brand-name{
  font-family:var(--font-display); color:#fff; font-size:1.15rem;
  text-transform:uppercase; letter-spacing:1px;
}
.brand-name b{ color:var(--yellow); font-weight:700; }
.brand-tag{ font-size:.62rem; color:rgba(255,255,255,.65); letter-spacing:1px; text-transform:uppercase; max-width:22ch; }

.main-nav{ display:none; gap:1.6rem; }
.main-nav a{
  font-family:var(--font-display); font-size:.85rem; text-transform:uppercase;
  letter-spacing:.5px; color:rgba(255,255,255,.85);
  position:relative; padding-block:.3rem;
}
.main-nav a::after{
  content:''; position:absolute; left:0; right:100%; bottom:-2px; height:2px;
  background:var(--yellow); transition:right .25s var(--ease);
}
.main-nav a:hover{ color:#fff; }
.main-nav a:hover::after{ right:0; }

.header-actions{ display:flex; align-items:center; gap:.75rem; }
.nav-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  background:none; border:none; color:#fff; padding:.4rem;
  width:34px; height:34px; cursor:pointer;
}
.nav-toggle-bars{
  position:relative; display:inline-block; width:24px; height:18px;
}
.nav-toggle-bars .bar{
  position:absolute; left:0; width:100%; height:2px; border-radius:2px;
  background:currentColor;
  transition:transform .3s ease, opacity .3s ease, top .3s ease;
}
.nav-toggle-bars .bar-1{ top:0; }
.nav-toggle-bars .bar-2{ top:8px; }
.nav-toggle-bars .bar-3{ top:16px; }

.nav-toggle[aria-expanded="true"] .bar-1{
  top:8px; transform:rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .bar-2{
  opacity:0; transform:scaleX(0);
}
.nav-toggle[aria-expanded="true"] .bar-3{
  top:8px; transform:rotate(-45deg);
}

@media (min-width:900px){
  .main-nav{ display:flex; }
  .nav-toggle{ display:none; }
}
@media (max-width:899px){
  .brand-logo{ height:52px; }
  .main-nav{
    display:flex;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0;
    background:rgba(16,42,67,.98);
    padding:0 1.25rem;
    max-height:0; overflow:hidden;
    transition:max-height .25s var(--ease), padding .25s var(--ease);
  }
  .main-nav.is-open{ max-height:400px; padding:1rem 1.25rem 1.25rem; }
  .main-nav a{ padding-block:.7rem; border-bottom:1px solid rgba(255,255,255,.08); }
  .header-actions .btn-sm span{ display:none; }
  .header-actions .btn-sm{ padding:.6rem; border-radius:50%; }
  .header-actions .btn-sm .ico{ width:20px; height:20px; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:linear-gradient(165deg,var(--navy) 0%,#0c1f34 100%);
  padding-top:3rem;
  overflow:hidden;
}
.hero-inner{
  display:flex; flex-wrap:wrap; gap:2.5rem; align-items:center;
  padding-bottom:3rem;
}
.hero-text{ flex:1 1 440px; min-width:0; }
.hero-title{
  color:#fff;
  font-size:clamp(2.2rem,6vw,3.4rem);
  text-transform:uppercase;
  margin-bottom:1.25rem;
}
.hero-sub{
  color:rgba(255,255,255,.86);
  font-size:1.05rem; line-height:1.55;
  max-width:44ch; margin-bottom:2rem;
}
.hero-sub strong{ color:#fff; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:2.25rem; }

.hero-trust{ display:flex; flex-wrap:wrap; gap:.9rem 1.4rem; }
.hero-trust li{
  display:flex; align-items:center; gap:.55rem;
  color:rgba(255,255,255,.85); font-size:.88rem; font-weight:500;
}
.hero-trust svg{ width:18px; height:18px; color:var(--yellow); flex:none; }

.hero-media{
  flex:1 1 320px; min-width:0; max-width:420px; margin-inline:auto;
  position:relative;
}
.hero-media img{
  width:100%; height:460px; object-fit:cover; object-position:top center;
  display:block; border-radius:var(--radius-lg);
  border:3px solid rgba(245,183,0,.35);
  box-shadow:var(--shadow-hard);
}
.hero-badge{
  position:absolute; top:-14px; right:14px; z-index:2;
  background:var(--yellow); color:var(--navy);
  width:64px; height:64px; border-radius:12px;
  transform:rotate(-8deg);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; box-shadow:var(--shadow-hard);
  font-family:var(--font-display); line-height:1.05;
}
.hero-badge-line1{ font-size:.4rem; letter-spacing:.3px; font-weight:600; }
.hero-badge-line2{ font-size:.7rem; font-weight:700; }

.hero-strip{ height:8px; background:#0d2338; border-top:1px solid rgba(255,255,255,.1); }

@media (min-width:640px){
  .hero-media img{ height:520px; }
}
@media (min-width:960px){
  .hero{ padding-top:4.5rem; }
  .hero-media img{ height:560px; }
  .hero-badge{ top:-16px; right:20px; width:78px; height:78px; border-radius:14px; }
  .hero-badge-line1{ font-size:.5rem; letter-spacing:.5px; }
  .hero-badge-line2{ font-size:.88rem; }
}

/* ---------- Compare (dores) ---------- */
.compare{
  display:grid; gap:1.25rem;
  grid-template-columns:1fr;
  margin-top:1rem;
}
@media (min-width:760px){ .compare{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }

.compare-col{
  border-radius:var(--radius-lg);
  padding:2rem 1.75rem;
}
.compare-col h3{
  font-size:1.1rem; text-transform:uppercase; letter-spacing:.5px;
  margin-bottom:1.2rem;
}
.compare-col li{
  display:flex; align-items:flex-start; gap:.7rem;
  padding-block:.55rem;
  font-size:.98rem;
  border-top:1px solid rgba(0,0,0,.06);
}
.compare-col li:first-child{ border-top:none; }

.compare-before{ background:var(--graphite); color:rgba(255,255,255,.85); }
.compare-before h3{ color:#fff; }
.compare-before li{ border-top-color:rgba(255,255,255,.08); }
.ico-x{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; flex:none;
  background:rgba(255,255,255,.12); color:#ff8b8b; font-size:.8rem;
}

.compare-after{ background:var(--white); border:2px solid var(--gray-light); color:var(--text-body); box-shadow:var(--shadow-soft); }
.compare-after h3{ color:var(--navy); }
.ico-check{
  display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; flex:none;
  background:rgba(31,111,235,.12); color:var(--blue); font-size:.8rem; font-weight:700;
}

/* ---------- Feature cards ---------- */
.card-feature{
  background:#fff; border-radius:var(--radius-lg);
  padding:2rem 1.6rem;
  box-shadow:var(--shadow-soft);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.card-feature:hover{ transform:translateY(-4px); box-shadow:0 20px 36px -16px rgba(16,42,67,.3); }
.feature-ico{
  display:inline-flex; align-items:center; justify-content:center;
  width:52px; height:52px; border-radius:14px;
  background:linear-gradient(150deg,var(--navy),var(--blue));
  color:#fff; margin-bottom:1.1rem;
}
.feature-ico svg{ width:26px; height:26px; }
.card-feature h3{ font-size:1.15rem; margin-bottom:.5rem; }
.card-feature p{ font-size:.94rem; color:var(--text-muted); line-height:1.5; }

/* ---------- Steps ---------- */
.steps{ margin-top:4rem; }
.steps-title{
  text-align:center; font-size:1rem; text-transform:uppercase;
  letter-spacing:2px; color:var(--navy); margin-bottom:2rem;
}
.steps-row{
  display:grid; gap:1.5rem; grid-template-columns:1fr; counter-reset:step;
}
@media (min-width:760px){ .steps-row{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.steps-row li{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:.7rem; position:relative; }
.step-n{
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; border-radius:50%;
  background:var(--navy); color:var(--yellow);
  font-family:var(--font-display); font-size:1.2rem; font-weight:700;
  border:3px solid var(--yellow);
}
.step-t{ font-size:.92rem; font-weight:600; color:var(--graphite); max-width:18ch; }
@media (min-width:760px){
  .steps-row li:not(:last-child)::after{
    content:''; position:absolute; top:23px; left:calc(50% + 40px); width:calc(100% - 56px); height:3px;
    background-image:repeating-linear-gradient(to right, var(--yellow) 0 10px, transparent 10px 18px);
  }
}

/* ---------- Sobre o Eduardo ---------- */
.about-grid{
  position:relative; z-index:1;
  display:grid; gap:2.5rem; align-items:center;
  grid-template-columns:1fr;
}
@media (min-width:860px){ .about-grid{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); } }
.about-media{ max-width:420px; margin-inline:auto; }
@media (min-width:860px){ .about-media{ max-width:100%; margin-inline:0; } }
.about-media img{
  width:100%;
  height:auto;
  display:block;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-hard);
  border:3px solid rgba(245,183,0,.35);
}
.about-text{ color:rgba(255,255,255,.8); font-size:1.05rem; line-height:1.6; margin-bottom:2rem; max-width:56ch; }
.about-stats{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-bottom:2.25rem;
  border-top:1px solid rgba(255,255,255,.15); border-bottom:1px solid rgba(255,255,255,.15);
  padding-block:1.5rem;
}
.about-stats strong{ display:block; font-family:var(--font-display); font-size:1.3rem; color:var(--yellow); }
.about-stats span{ display:block; font-size:.78rem; color:rgba(255,255,255,.65); margin-top:.2rem; }
.signature{
  font-family:var(--font-sign);
  font-size:1.9rem; color:#fff; font-weight:600;
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.6rem;
}
.signature span{ font-family:var(--font-body); font-size:.85rem; color:rgba(255,255,255,.6); font-weight:600; }

/* ---------- Pacotes (accordion por categoria) ---------- */
.pacotes-accordion{ display:flex; flex-direction:column; gap:.9rem; }
.pacote-group{
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  padding:.4rem 1.5rem;
}
.pacote-group summary{
  cursor:pointer; list-style:none;
  padding-block:1.1rem;
  font-family:var(--font-display); font-size:1.05rem; text-transform:uppercase; letter-spacing:.5px;
  color:#fff;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.pacote-group summary::-webkit-details-marker{ display:none; }
.pacote-group summary::after{
  content:'+';
  font-size:1.4rem; color:var(--yellow); flex:none; transition:transform .25s var(--ease);
}
.pacote-group[open] summary::after{ content:'−'; }
.pacote-group > .grid{ padding-bottom:1.6rem; animation:fadeIn .4s var(--ease); }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none; } }

.card-price{
  position:relative;
  background:#171c22;
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius-lg);
  padding:2.1rem 1.75rem;
  display:flex; flex-direction:column;
  color:#fff;
}
.card-price h3{ color:#fff; font-size:1.25rem; margin-bottom:1.1rem; }
.card-price h3 small{ display:block; font-family:var(--font-body); font-size:.7rem; text-transform:uppercase; letter-spacing:1px; color:rgba(255,255,255,.55); font-weight:600; margin-top:.2rem; }
.price-list{ margin-bottom:1.4rem; flex:1; }
.price-list li{
  font-size:.92rem; color:rgba(255,255,255,.78);
  padding-block:.4rem; position:relative; padding-left:1.4rem;
}
.price-list li::before{ content:'✓'; position:absolute; left:0; color:var(--yellow); font-weight:700; }
.price-value{ font-family:var(--font-display); font-size:2.1rem; color:var(--yellow); margin-bottom:.15rem; }
.price-value span{ font-size:1.2rem; }
.price-note{ font-size:.8rem; color:rgba(255,255,255,.55); margin-bottom:1.4rem; }

.card-price.is-popular{
  background:linear-gradient(165deg,#1c2430,#101418);
  border:2px solid var(--yellow);
  box-shadow:0 25px 50px -18px rgba(245,183,0,.25);
  transform:translateY(-6px);
}
.price-badge{
  position:absolute; top:-14px; left:1.75rem;
  background:var(--yellow); color:var(--navy);
  font-family:var(--font-display); font-size:.72rem; text-transform:uppercase; letter-spacing:.5px;
  padding:.35rem .9rem; border-radius:100px; font-weight:700;
}

/* ---------- Avaliações ---------- */
.reviews-grid{
  display:grid; gap:1.25rem; grid-template-columns:1fr;
  margin-bottom:2.5rem;
}
@media (min-width:760px){ .reviews-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.review-item{
  background:var(--gray-light); border-radius:var(--radius-lg);
  padding:1.75rem 1.6rem;
}
.review-item .review-stars{ display:flex; gap:.25rem; margin-bottom:1rem; color:var(--yellow); }
.review-item .review-stars svg{ width:18px; height:18px; }
.review-item p{ font-size:.95rem; color:var(--text-body); margin-bottom:1rem; line-height:1.55; }
.review-name{ font-family:var(--font-display); font-size:.88rem; color:var(--navy); }

/* ---------- Área de atuação ---------- */
.area-grid{ display:grid; gap:2.5rem; grid-template-columns:1fr; align-items:center; }
@media (min-width:900px){ .area-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
.area-list{ margin:1.5rem 0 2rem; display:flex; flex-direction:column; gap:.6rem; }
.area-list li{
  font-weight:600; color:var(--navy); font-size:.98rem;
  padding-left:1.6rem; position:relative;
}
.area-list li::before{
  content:''; position:absolute; left:0; top:.45rem; width:8px; height:8px; border-radius:50%; background:var(--blue);
}
.area-map{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); aspect-ratio:4/3; }
.area-map iframe{ width:100%; height:100%; }

/* ---------- FAQ ---------- */
.faq-list{ display:flex; flex-direction:column; gap:.9rem; }
.faq-item{
  background:#fff; border:1px solid var(--gray-light); border-radius:var(--radius-md);
  padding:.3rem 1.5rem;
}
.faq-item summary{
  cursor:pointer; list-style:none;
  padding-block:1.1rem;
  font-family:var(--font-display); font-size:1.02rem; color:var(--navy);
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:'+';
  font-size:1.4rem; color:var(--blue); flex:none; transition:transform .25s var(--ease);
}
.faq-item[open] summary::after{ content:'−'; }
.faq-item p{ padding-bottom:1.3rem; color:var(--text-muted); font-size:.95rem; line-height:1.6; max-width:65ch; }

/* ---------- CTA final ---------- */
.cta-final{
  position:relative; overflow:hidden;
  background:linear-gradient(160deg,var(--navy),#081522);
  padding:5rem 0; text-align:center;
}
.cta-final-content{ position:relative; z-index:1; }
.cta-final h2{
  color:#fff; font-size:clamp(1.8rem,5vw,2.6rem); text-transform:uppercase;
  margin-bottom:1rem;
}
.cta-final p{
  color:rgba(255,255,255,.78); max-width:52ch; margin:0 auto 2.2rem;
  font-size:1.05rem;
}

/* ---------- Footer ---------- */
.site-footer{ background:var(--graphite); color:rgba(255,255,255,.75); padding-top:4rem; }
.footer-grid{
  display:grid; gap:2.5rem; grid-template-columns:1fr;
  padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.08);
}
@media (min-width:760px){ .footer-grid{ grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr)); } }
.footer-brand .brand-name{ color:#fff; }
.footer-signature{ margin-top:1rem; font-family:var(--font-sign); font-size:1.3rem; color:var(--yellow); }
.footer-signature span{ font-family:var(--font-body); font-size:.75rem; color:rgba(255,255,255,.55); }
.footer-col h4{
  font-family:var(--font-display); text-transform:uppercase; letter-spacing:1px;
  font-size:.85rem; color:#fff; margin-bottom:1.1rem;
}
.footer-col{ display:flex; flex-direction:column; gap:.65rem; font-size:.92rem; }
.footer-col a:hover{ color:var(--yellow); }
.footer-area{ font-size:.9rem; line-height:1.5; }
.footer-social{ display:flex; gap:.7rem; margin-top:.4rem; }
.footer-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; transition:all .2s var(--ease);
}
.footer-social a:hover{ background:var(--yellow); border-color:var(--yellow); color:var(--graphite); }
.footer-social svg{ width:18px; height:18px; }
.footer-bottom{ padding-block:1.5rem; text-align:center; font-size:.82rem; color:rgba(255,255,255,.45); }

/* ---------- WhatsApp flutuante ---------- */
.wa-float{
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:200;
  width:60px; height:60px; border-radius:50%;
  background:var(--whatsapp); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -10px rgba(37,211,102,.6);
  transition:transform .2s var(--ease);
}
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:30px; height:30px; position:relative; z-index:1; }
.wa-float-ring{
  position:absolute; inset:0; border-radius:50%;
  border:2px solid var(--whatsapp);
  animation:pulse-ring 2.2s ease-out infinite;
}
@keyframes pulse-ring{
  0%{ transform:scale(1); opacity:.7; }
  100%{ transform:scale(1.6); opacity:0; }
}
