/* ─────────────────────────────────────
   VANGUARDA CONSÓRCIO
   Inspired by SpaceX × Porsche
   ───────────────────────────────────── */

:root{
  /* Vanguarda brand palette ─ dark mode */
  --bg:           #0e0e0e;
  --bg-1:         #1a1a1a;     /* brand dark — #1A1A1A */
  --bg-2:         #232323;
  --bg-mid:       #333333;     /* brand mid gray — #333333 */
  --line:         rgba(255,255,255,.08);
  --line-strong:  rgba(255,255,255,.18);
  --text:         #ffffff;     /* brand white */
  --text-dim:     #a8a8a8;
  --text-faint:   #6a6a6a;
  --accent:       #8CC85A;     /* brand green — #8CC85A */
  --accent-hi:    #a3d977;
  --accent-lo:    #6fa845;
  --accent-glow:  rgba(140,200,90,.32);
  --shineray:     #E30613;     /* Shineray brand red */
  --whatsapp:     #25D366;
  --container:    1280px;
  --gutter:       clamp(20px, 4vw, 56px);
  --radius:       2px;
  --ease:         cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }

html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
}

body{
  background:var(--bg);
  color:var(--text);
  font-family:'Montserrat',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:400;
  line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

img,svg{ display:block; max-width:100%; }

a{ color:inherit; text-decoration:none; }

::selection{ background:var(--accent); color:#fff; }

/* ───── Typography ───── */
h1,h2,h3,h4,h5{
  font-family:'Montserrat', sans-serif;
  font-weight:600;
  letter-spacing:-0.02em;
  line-height:1.05;
}
em{ font-style:normal; color:var(--text-dim); font-weight:300; }

.eyebrow{
  font-size:11px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--text-dim);
}

.section-tag{
  font-family:'Montserrat', sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:24px;
}

.section-title{
  font-size:clamp(34px, 5.4vw, 76px);
  font-weight:600;
}

.lede{
  font-size:clamp(15px, 1.15vw, 17px);
  color:var(--text-dim);
  max-width:54ch;
  line-height:1.7;
}

/* ───── NAV ───── */
.nav{
  position:fixed;
  top:0; left:0; right:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px var(--gutter);
  background:transparent;
  transition:background .35s var(--ease), backdrop-filter .35s var(--ease), border-color .35s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--line);
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:0;
  color:var(--text);
}
.brand img{
  height:30px;
  width:auto;
  display:block;
}
@media (max-width:880px){
  .brand img{ height:26px; }
}

.nav-links{
  display:flex;
  gap:36px;
  align-items:center;
}
.nav-links a{
  font-size:13px;
  font-weight:400;
  letter-spacing:.04em;
  color:var(--text-dim);
  position:relative;
  transition:color .25s;
}
.nav-links a:hover{ color:var(--text); }
.nav-links a::after{
  content:"";
  position:absolute;
  left:0; bottom:-6px;
  width:100%; height:1px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .35s var(--ease);
}
.nav-links a:hover::after{ transform:scaleX(1); transform-origin:left; }

.nav-cta{
  font-family:'Montserrat', sans-serif;
  font-size:12px;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text);
  padding:10px 18px;
  border:1px solid var(--line-strong);
  transition:background .25s, border-color .25s, color .25s;
}
.nav-cta:hover{
  background:var(--accent);
  border-color:var(--accent);
  color:#0e0e0e;
}

.nav-toggle{
  display:none;
  width:36px; height:36px;
  background:transparent;
  border:1px solid var(--line-strong);
  position:relative;
  cursor:pointer;
}
.nav-toggle span{
  position:absolute;
  left:8px; right:8px;
  height:1px;
  background:var(--text);
  transition:transform .3s var(--ease), opacity .25s;
}
.nav-toggle span:nth-child(1){ top:13px; }
.nav-toggle span:nth-child(2){ bottom:13px; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(4px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ transform:translateY(-4px) rotate(-45deg); }

@media (max-width:880px){
  .nav-links{
    position:fixed;
    top:0; right:0;
    width:min(78vw, 360px);
    height:100vh;
    background:#050505;
    border-left:1px solid var(--line);
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:28px;
    padding:0 32px;
    transform:translateX(100%);
    transition:transform .45s var(--ease);
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a{ font-size:18px; }
  .nav-cta{ display:none; }
  .nav-toggle{ display:block; }
}

/* ───── HERO ───── */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:140px var(--gutter) 80px;
  overflow:hidden;
  isolation:isolate;
}

.hero-bg{
  position:absolute; inset:0;
  z-index:-1;
  background:
    radial-gradient(ellipse 80% 50% at 50% 100%, rgba(140,200,90,.16), transparent 60%),
    radial-gradient(ellipse 60% 40% at 20% 30%, rgba(80,80,90,.10), transparent 60%),
    linear-gradient(180deg, #0a0a0a 0%, #131313 60%, #1a1a1a 100%);
}
.hero-bg .grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 50%, #000 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%, #000 30%, transparent 80%);
}
.hero-bg .glow{
  position:absolute;
  bottom:-30%; left:50%;
  width:120vw; height:80vh;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at center, var(--accent-glow), transparent 60%);
  filter:blur(60px);
  opacity:.6;
}

.hero-content{
  max-width:var(--container);
  margin:auto auto 0;
  width:100%;
}
.hero-content .eyebrow{ margin-bottom:28px; }

.display{
  font-size:clamp(48px, 9vw, 132px);
  font-weight:700;
  line-height:.95;
  letter-spacing:-0.04em;
  margin-bottom:32px;
}
.display em{
  display:inline-block;
  background:linear-gradient(180deg, var(--accent-hi) 0%, var(--accent-lo) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-weight:600;
}

.hero-content .lede{ margin-bottom:40px; }

.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:16px 26px;
  font-family:'Montserrat', sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:1px solid transparent;
  cursor:pointer;
  transition:all .3s var(--ease);
}
.btn.primary{
  background:var(--accent);
  color:#0e0e0e;
  border-color:var(--accent);
  box-shadow:0 0 0 0 var(--accent-glow);
}
.btn.primary:hover{
  background:var(--accent-hi);
  border-color:var(--accent-hi);
  box-shadow:0 0 24px 0 var(--accent-glow);
  transform:translateY(-1px);
}
.btn.ghost{
  background:transparent;
  color:var(--text);
  border-color:var(--line-strong);
}
.btn.ghost:hover{
  border-color:var(--text);
  background:rgba(255,255,255,.04);
}
.btn.block{ width:100%; justify-content:center; }
.btn svg{ transition:transform .3s var(--ease); }
.btn:hover svg{ transform:translateX(4px); }

.hero-meta{
  max-width:var(--container);
  margin:90px auto 0;
  width:100%;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.hero-meta > div{
  background:var(--bg);
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.meta-num{
  font-family:'Montserrat', sans-serif;
  font-size:clamp(28px, 3.4vw, 44px);
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--accent);
}
.meta-lbl{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--text-faint);
}
@media (max-width:680px){
  .hero-meta{ grid-template-columns:1fr; }
}


/* ───── SECTIONS ───── */
.section{
  padding:140px var(--gutter);
  position:relative;
  border-top:1px solid var(--line);
}
.section-head{
  max-width:var(--container);
  margin:0 auto 80px;
}

/* ───── PRODUTOS ───── */
.product-grid{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.product{
  background:var(--bg-1);
  padding:0;
  display:flex;
  flex-direction:column;
  transition:background .4s var(--ease);
  position:relative;
  overflow:hidden;
}
.product::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:1px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .5s var(--ease);
}
.product:hover{ background:#0f0f0f; }
.product:hover::before{ transform:scaleX(1); }

.product-visual{
  aspect-ratio:16/9;
  background:radial-gradient(ellipse at center, #1a1a1a 0%, #050505 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  border-bottom:1px solid var(--line);
  padding:24px;
}
.product-visual svg{
  width:90%;
  transition:transform .6s var(--ease);
}
.product:hover .product-visual svg{ transform:scale(1.04); }

.product-body{
  padding:36px 32px 40px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.product-body h3{
  font-size:28px;
  font-weight:500;
  margin-bottom:12px;
}
.product-body p{
  color:var(--text-dim);
  font-size:14.5px;
  line-height:1.65;
  margin-bottom:24px;
}
.product-body ul{
  list-style:none;
  margin-bottom:32px;
  border-top:1px solid var(--line);
}
.product-body li{
  padding:12px 0;
  font-size:13px;
  color:var(--text-dim);
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
  gap:10px;
}
.product-body li::before{
  content:"";
  width:4px; height:4px;
  background:var(--accent);
  border-radius:50%;
}
.link{
  margin-top:auto;
  font-family:'Montserrat', sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  transition:color .25s, transform .25s var(--ease);
  display:inline-block;
}
.link:hover{ color:var(--accent-hi); transform:translateX(4px); }

@media (max-width:980px){
  .product-grid{ grid-template-columns:1fr; }
}

/* ───── SHINERAY brand color ───── */
.shineray{
  color:var(--shineray);
  font-weight:600;
}

/* ───── SOBRE ───── */
.about-grid{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:80px;
  align-items:start;
}
.about-lede p{
  font-size:clamp(15px, 1.05vw, 17px);
  line-height:1.75;
  color:var(--text-dim);
  margin-bottom:24px;
}
.about-lede p:first-child{
  font-size:clamp(17px, 1.3vw, 20px);
  color:var(--text);
  line-height:1.6;
}
.about-lede p:last-child{ margin-bottom:0; }

.about-pillars{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.about-pillar{
  background:var(--bg-1);
  padding:32px 28px;
}
.about-pillar-num{
  font-family:'Montserrat', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  color:var(--accent);
  display:block;
  margin-bottom:18px;
}
.about-pillar h4{
  font-size:18px;
  font-weight:600;
  margin-bottom:10px;
  color:var(--text);
}
.about-pillar p{
  font-size:13.5px;
  color:var(--text-dim);
  line-height:1.6;
}
@media (max-width:980px){
  .about-grid{ grid-template-columns:1fr; gap:48px; }
}
@media (max-width:560px){
  .about-pillars{ grid-template-columns:1fr; }
}

/* ───── PARCERIA SHINERAY ───── */
.partnership{
  background:
    radial-gradient(ellipse 70% 60% at 80% 50%, rgba(140,200,90,.10), transparent 65%),
    linear-gradient(180deg, var(--bg) 0%, #131313 100%);
}
.partnership-inner{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:80px;
  align-items:center;
}
.partnership-text .lede{
  margin-top:24px;
  margin-bottom:32px;
}
.partnership-text strong{
  color:var(--accent);
  font-weight:600;
}

.partnership-card{
  background:linear-gradient(180deg, var(--bg-1) 0%, #1f1f1f 100%);
  border:1px solid var(--line);
  padding:48px 40px;
  position:relative;
  overflow:hidden;
}
.partnership-card::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:linear-gradient(90deg, var(--accent) 0%, transparent 100%);
}
.partnership-badge{
  display:flex;
  align-items:center;
  gap:24px;
  padding-bottom:32px;
  border-bottom:1px solid var(--line);
  margin-bottom:32px;
}
.badge-num{
  font-family:'Montserrat', sans-serif;
  font-size:84px;
  font-weight:800;
  letter-spacing:-0.05em;
  line-height:1;
  color:var(--accent);
}
.badge-lbl{
  font-size:13px;
  letter-spacing:.06em;
  color:var(--text-dim);
  line-height:1.5;
}

.partnership-stats{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
  margin-bottom:32px;
}
.partnership-stats > div{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.partnership-stats strong{
  font-family:'Montserrat', sans-serif;
  font-size:24px;
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--text);
}
.partnership-stats span{
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--text-faint);
}
.partnership-fine{
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--text-faint);
}

@media (max-width:980px){
  .partnership-inner{ grid-template-columns:1fr; gap:48px; }
}
@media (max-width:560px){
  .partnership-stats{ grid-template-columns:1fr; gap:16px; }
  .badge-num{ font-size:64px; }
}

/* ───── COMO FUNCIONA ───── */
.steps{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  background:var(--bg);
  border-top:1px solid var(--line-strong);
  border-left:1px solid var(--line-strong);
}
.step{
  background:var(--bg);
  padding:48px 32px 56px;
  position:relative;
  transition:background .4s;
  border-right:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
}
.step:hover{ background:var(--bg-1); }
.step-num{
  font-family:'Montserrat', sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.18em;
  color:var(--accent);
  display:block;
  margin-bottom:36px;
}
.step h3{
  font-size:22px;
  font-weight:500;
  margin-bottom:16px;
}
.step p{
  color:var(--text-dim);
  font-size:14px;
  line-height:1.65;
}
@media (max-width:980px){
  .steps{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:580px){
  .steps{ grid-template-columns:1fr; }
}

/* ───── NUMBERS ───── */
.numbers{
  background:linear-gradient(180deg, #0e0e0e 0%, #1a1a1a 100%);
}
.numbers-inner{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:80px;
  align-items:center;
}
.numbers-text .lede{ margin-top:24px; }

.numbers-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.num{
  background:var(--bg);
  padding:40px 32px;
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:200px;
  justify-content:center;
}
.big{
  font-family:'Montserrat', sans-serif;
  font-size:clamp(48px, 6vw, 78px);
  font-weight:700;
  letter-spacing:-0.03em;
  line-height:1;
  color:var(--accent);
}
.num span:last-child{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--text-faint);
  line-height:1.5;
}
@media (max-width:980px){
  .numbers-inner{ grid-template-columns:1fr; gap:60px; }
}

/* ───── PILLARS ───── */
.pillars{ padding-top:80px; padding-bottom:80px; }
.pillar-grid{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  background:var(--bg);
  border-top:1px solid var(--line-strong);
  border-left:1px solid var(--line-strong);
}
.pillar{
  background:var(--bg);
  padding:40px 28px;
  color:var(--text);
  border-right:1px solid var(--line-strong);
  border-bottom:1px solid var(--line-strong);
}
.pillar svg{ color:var(--accent); margin-bottom:18px; }
.pillar h4{
  font-size:16px;
  font-weight:500;
  margin-bottom:10px;
}
.pillar p{
  font-size:13px;
  color:var(--text-dim);
  line-height:1.6;
}
@media (max-width:880px){
  .pillar-grid{ grid-template-columns:repeat(2, 1fr); }
}

/* ───── SIMULADOR ───── */
.simulator{
  background:
    radial-gradient(ellipse 60% 50% at 80% 30%, rgba(140,200,90,.10), transparent 60%),
    var(--bg);
}
.sim-inner{
  max-width:var(--container);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:80px;
  align-items:start;
}
.sim-text .lede{ margin-top:24px; margin-bottom:32px; }
.sim-bullets{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.sim-bullets li{
  font-size:14px;
  color:var(--text-dim);
  display:flex;
  align-items:center;
  gap:14px;
}
.sim-bullets li::before{
  content:"";
  width:24px; height:1px;
  background:var(--accent);
}

.sim-form{
  background:var(--bg-1);
  border:1px solid var(--line);
  padding:40px;
  display:flex;
  flex-direction:column;
  gap:28px;
}
.seg{
  border:1px solid var(--line);
  padding:6px;
  display:flex;
  gap:6px;
}
.seg legend{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text-faint);
  padding:0 8px;
  margin-left:-8px;
  margin-bottom:8px;
}
.seg label{
  flex:1;
  text-align:center;
  cursor:pointer;
  position:relative;
}
.seg input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.seg span{
  display:block;
  padding:14px;
  font-family:'Montserrat', sans-serif;
  font-size:13px;
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--text-dim);
  transition:all .25s var(--ease);
}
.seg input:checked + span{
  background:var(--accent);
  color:#0e0e0e;
}
.seg label:hover span{ color:var(--text); }
.seg input:checked + span:hover{ color:#0e0e0e; }

.field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.field label{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text-faint);
}
.field input[type="text"],
.field input[type="tel"]{
  width:100%;
  min-width:0;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line-strong);
  padding:14px 0;
  font-family:inherit;
  font-size:18px;
  color:var(--text);
  outline:none;
  transition:border-color .25s;
}
.field input[type="text"]:focus,
.field input[type="tel"]:focus{
  border-bottom-color:var(--accent);
}
.field input::placeholder{ color:var(--text-faint); }

input[type="range"]{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  background:transparent;
  margin-top:14px;
}
input[type="range"]::-webkit-slider-runnable-track{
  height:2px;
  background:var(--line-strong);
}
input[type="range"]::-moz-range-track{
  height:2px;
  background:var(--line-strong);
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:18px; height:18px;
  background:var(--accent);
  border-radius:50%;
  margin-top:-8px;
  cursor:pointer;
  box-shadow:0 0 0 4px rgba(200,57,47,.15);
}
input[type="range"]::-moz-range-thumb{
  width:18px; height:18px;
  background:var(--accent);
  border:none;
  border-radius:50%;
  cursor:pointer;
}

.sim-out{
  margin-top:18px;
  padding:18px;
  background:var(--bg);
  border:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.sim-out span{
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text-faint);
}
.sim-out strong{
  font-family:'Montserrat', sans-serif;
  font-size:22px;
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--accent);
}
.sim-range-meta{
  display:flex;
  justify-content:space-between;
  margin-top:10px;
  font-size:11px;
  letter-spacing:.14em;
  color:var(--text-faint);
}
.field input[type="text"]#valor{
  font-size:32px;
  font-weight:700;
  font-family:'Montserrat', sans-serif;
  letter-spacing:-0.01em;
  color:var(--accent);
}

.row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
@media (max-width:560px){ .row{ grid-template-columns:1fr; } }

.sim-fine{
  font-size:11px;
  color:var(--text-faint);
  letter-spacing:.04em;
  line-height:1.6;
}

@media (max-width:980px){
  .sim-inner{ grid-template-columns:1fr; gap:48px; }
}

/* ───── FOOTER ───── */
.footer{
  border-top:1px solid var(--line);
  padding:80px var(--gutter) 32px;
  background:#0a0a0a;
}
.footer .brand img{ height:36px; }
.footer-top{
  max-width:var(--container);
  margin:0 auto 64px;
  display:grid;
  grid-template-columns:1.4fr repeat(3, 1fr);
  gap:48px;
}
.footer-brand p{
  margin-top:20px;
  font-size:13px;
  color:var(--text-dim);
  max-width:32ch;
  line-height:1.6;
}
.footer-col h5{
  font-family:'Montserrat', sans-serif;
  font-size:11px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:20px;
}
.footer-col a{
  display:block;
  font-size:14px;
  color:var(--text-dim);
  padding:6px 0;
  transition:color .25s;
}
.footer-col a:hover{ color:var(--accent); }
.footer-col .addr{
  margin-top:14px;
  font-size:13px;
  color:var(--text-faint);
  line-height:1.6;
}
.footer-bottom{
  max-width:var(--container);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
  padding-top:32px;
  border-top:1px solid var(--line);
  font-size:12px;
  color:var(--text-faint);
  letter-spacing:.04em;
}
@media (max-width:880px){
  .footer-top{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .footer-top{ grid-template-columns:1fr; gap:36px; }
}

/* ───── REVEAL ANIMATION ───── */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.in{
  opacity:1;
  transform:translateY(0);
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001s !important;
    transition-duration:.001s !important;
  }
  .reveal{ opacity:1; transform:none; }
}

/* ─────────────────────────────────────
   MOBILE REFINEMENTS
   ───────────────────────────────────── */

/* Lock body scroll while the off-canvas nav is open */
body.no-scroll{ overflow:hidden; }

/* Prevent intrinsic-width children (e.g. <input>) from blowing out grid tracks */
.sim-inner > *,
.partnership-inner > *,
.numbers-inner > *,
.about-grid > *,
.row > *,
.sim-form,
.field{
  min-width:0;
}

/* Disable hover-only affordances on touch devices */
@media (hover:none){
  .nav-links a::after{ display:none; }
  .btn.primary:hover{ transform:none; box-shadow:0 0 0 0 var(--accent-glow); }
  .product:hover .product-visual svg{ transform:none; }
}

/* Tablet & small-laptop tightening */
@media (max-width:880px){
  .nav{ padding:14px var(--gutter); }
  .nav-toggle{ width:44px; height:44px; }
  .nav-toggle span{ left:12px; right:12px; }
  .nav-toggle span:nth-child(1){ top:17px; }
  .nav-toggle span:nth-child(2){ bottom:17px; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ transform:translateY(-5px) rotate(-45deg); }

  .section{ padding:88px var(--gutter); }
  .section-head{ margin-bottom:48px; }
  .pillars{ padding-top:64px; padding-bottom:64px; }

  .hero{
    padding-top:120px;
    padding-bottom:64px;
    min-height:auto;
  }
  .hero-content .eyebrow{ margin-bottom:20px; }
  .display{ margin-bottom:24px; }
  .hero-content .lede{ margin-bottom:32px; }
  .hero-actions{ width:100%; gap:12px; }
  .hero-actions .btn{ flex:1 1 auto; justify-content:center; }
  .hero-meta{ margin-top:56px; }
  .hero-meta > div{ padding:24px 22px; }

  .partnership-card{ padding:36px 28px; }
  .partnership-badge{ gap:18px; padding-bottom:24px; margin-bottom:24px; }
  .partnership-stats{ gap:18px; margin-bottom:24px; }
  .partnership-stats strong{ font-size:22px; }

  .step{ padding:36px 26px 40px; }
  .step-num{ margin-bottom:24px; }
  .step h3{ font-size:20px; }

  .num{ padding:32px 24px; min-height:auto; }

  .about-pillar{ padding:28px 24px; }

  .pillar{ padding:32px 24px; }

  .sim-form{ padding:28px 22px; gap:24px; }
  .field input[type="text"]#valor{ font-size:26px; }

  .footer{ padding:64px var(--gutter) 28px; }
  .footer-top{ margin-bottom:48px; gap:36px; }
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
}

/* Phone */
@media (max-width:560px){
  .section{ padding:64px var(--gutter); }
  .section-head{ margin-bottom:36px; }

  .hero{
    padding-top:108px;
    padding-bottom:48px;
  }

  /* Keep large display from overflowing on narrow viewports */
  .display{
    font-size:clamp(38px, 11.5vw, 64px);
    letter-spacing:-0.03em;
    line-height:1;
  }
  .section-title{
    font-size:clamp(28px, 8vw, 48px);
    letter-spacing:-0.015em;
  }

  .hero-meta{ margin-top:40px; }
  .hero-meta > div{ padding:22px 20px; }
  .meta-num{ font-size:30px; }

  .hero-actions{ flex-direction:column; }
  .hero-actions .btn{ width:100%; }

  .partnership-card{ padding:28px 22px; }
  .partnership-badge{
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
  }
  .badge-num{ font-size:56px; }

  .step{ padding:32px 22px 36px; }
  .num{ padding:28px 22px; }
  .pillar{ padding:28px 22px; }
  .about-pillar{ padding:24px 22px; }

  .sim-form{ padding:24px 20px; gap:22px; }
  .field input[type="text"]#valor{ font-size:24px; }

  .footer{ padding:56px var(--gutter) 24px; }
}

/* Very small phones — last-mile guard against horizontal overflow */
@media (max-width:380px){
  .display{ font-size:36px; }
  .section-title{ font-size:26px; }
  .badge-num{ font-size:48px; }
}
