* { box-sizing: border-box; }
body { margin: 0; font-family: 'Inter', sans-serif; background: #F7F9FC; }
a { color: #1552F0; text-decoration: none; }
a:hover { color: #0E3FC4; }
::selection { background: #1552F0; color: #fff; }

/* ---- scroll reveal ---- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .3s ease, border-color .25s ease, box-shadow .25s ease; }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal.in:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(76,125,255,.15); }

/* ---- hero entrance ---- */
@keyframes fadeUp{ from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);} }
.hero-anim{ opacity:0; animation:fadeUp .8s cubic-bezier(.16,1,.3,1) forwards; }

/* ---- nav ---- */
.nav-link{ position:relative; color:#B7C0D4; font-size:14px; font-weight:500; transition:color .2s ease; }
.nav-link:hover{ color:#fff; }
.nav-link.active{ color:#fff; font-weight:600; }
.nav-link::after{ content:''; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:#4C7DFF; transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.nav-link:hover::after{ transform:scaleX(1); }

/* ---- buttons ---- */
.btn-anim{ transition:transform .2s ease, background .2s ease, box-shadow .2s ease, border-color .2s ease; }
.btn-anim:hover{ transform:translateY(-2px); }
.btn-anim:active{ transform:translateY(0) scale(.97); }

.btn-primary{ background:#1552F0; color:#fff; }
.btn-primary:hover{ background:#0E3FC4; color:#fff; }
.btn-dark{ background:#10151F; color:#fff; }
.btn-dark:hover{ background:#000; color:#fff; }
.btn-white{ background:#fff; color:#1552F0; }
.btn-white:hover{ background:#EAF0FF; color:#1552F0; }
.btn-whatsapp{ background:#1F7A3D; color:#fff; }
.btn-whatsapp:hover{ background:#186631; color:#fff; }
.btn-outline{ background:transparent; border:1px solid #2E3648; color:#fff; }
.btn-outline:hover{ border-color:#4C7DFF; color:#fff; }

/* ---- whatsapp float pulse ---- */
@keyframes wapPulse{ 0%{ box-shadow:0 0 0 0 rgba(31,122,61,.5);} 70%{ box-shadow:0 0 0 14px rgba(31,122,61,0);} 100%{ box-shadow:0 0 0 0 rgba(31,122,61,0);} }
.wap-float{ animation:wapPulse 2.4s infinite; color:#fff; }
.wap-float:hover{ background:#186631; color:#fff; }

/* ---- solution / feature cards ---- */
.solucion-card{ display:block; background:#10151F; border-radius:10px; padding:32px; border:1px solid #1B2233; transition:border-color .25s ease; }
.solucion-card:hover{ border-color:#4C7DFF; }
.solucion-link{ margin-top:22px; color:#4C7DFF; font-size:14px; font-weight:600; }

.footer-link{ color:#8791A6; font-size:14px; transition:color .2s ease; }
.footer-link:hover{ color:#4C7DFF; }

.breadcrumb-link{ color:#8791A6; font-size:14px; transition:color .2s ease; }
.breadcrumb-link:hover{ color:#4C7DFF; }

/* ---- mobile hamburger ---- */
.nav-toggle-label{ display:none; width:38px; height:38px; align-items:center; justify-content:center; cursor:pointer; border-radius:8px; background:none; border:none; padding:0; }
.nav-toggle-label:hover{ background:rgba(255,255,255,.08); }
.nav-toggle-label span{ position:relative; display:block; width:20px; height:2px; background:#fff; transition:.2s; }
.nav-toggle-label span::before, .nav-toggle-label span::after{ content:''; position:absolute; left:0; width:20px; height:2px; background:#fff; transition:.2s; }
.nav-toggle-label span::before{ top:-6px; }
.nav-toggle-label span::after{ top:6px; }
.nav-toggle-label.open span{ background:transparent; }
.nav-toggle-label.open span::before{ transform:rotate(45deg); top:0; }
.nav-toggle-label.open span::after{ transform:rotate(-45deg); top:0; }

@media (max-width:900px){
  .nav-toggle-label{ display:flex; }
  .nav-links{ display:none !important; }
  .header-ctas{ display:none !important; }
  .nav-links.mobile-open{ display:flex !important; flex-direction:column; align-items:flex-start; width:100%; gap:2px; padding:14px 0 6px; }
  .header-ctas.mobile-open{ display:flex !important; flex-direction:column; width:100%; gap:10px; padding-bottom:16px; }
  .nav-link{ padding:8px 0; width:100%; }
  .nav-link::after{ display:none; }
  section{ padding-left:20px !important; padding-right:20px !important; }
  .header-inner{ padding:14px 20px !important; }
}
@media (max-width:480px){
  [style*="grid-template-columns"]{ grid-template-columns:1fr !important; }
  [style*="font-size:56px"]{ font-size:32px !important; }
  [style*="font-size:44px"]{ font-size:28px !important; }
  [style*="font-size:36px"]{ font-size:26px !important; }
}

/* ---- casos carousel ---- */
.casos-track{ display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding:4px 4px 12px; margin:0 -4px; }
.casos-track::-webkit-scrollbar{ display:none; }
.caso-card{ flex:0 0 auto; width:min(360px,85vw); scroll-snap-align:start; background:#161C2B; border-radius:10px; padding:32px; border:1px solid #1B2233; }
.casos-nav-btn{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.15); color:#fff; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .2s, border-color .2s; z-index:5; }
.casos-nav-btn:hover{ background:#1552F0; border-color:#1552F0; }
.casos-nav-prev{ left:-6px; }
.casos-nav-next{ right:-6px; }
@media (max-width:960px){ .casos-nav-btn{ display:none; } }
.casos-dots{ display:flex; gap:8px; justify-content:center; margin-top:28px; }
.casos-dot{ width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.2); cursor:pointer; border:none; padding:0; transition:background .2s, transform .2s; }
.casos-dot.active{ background:#4C7DFF; transform:scale(1.3); }

/* ---- contact form inputs ---- */
.form-input{ background:#161C2B; border:1px solid #232A3A; color:#fff; padding:13px 14px; border-radius:6px; font-size:14px; font-family:inherit; }
