:root{
  --abe-blue:#1c335d;
  --abe-blue-2:#142747;
  --abe-accent:#f8c843;
  --abe-gray:#5f6b7a;
  --abe-bg:#ffffff;
  --abe-soft:#f4f6f8;
  --abe-success:#25D366;

  --radius:18px;
  --shadow: 0 12px 30px rgba(16, 24, 40, .12);
  --shadow-soft: 0 10px 20px rgba(16, 24, 40, .10);
}

html{ scroll-behavior:smooth; scroll-padding-top: 78px; }
body{
  font-family: "Montserrat", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: var(--abe-bg);
  color: #0b1220;
}

/* Helpers */
.text-white-75{ color: rgba(255,255,255,.78) !important; }
.bg-primary-abe{ background: var(--abe-blue) !important; }
.btn-primary-abe{
  background: var(--abe-blue);
  border-color: var(--abe-blue);
  color:#fff;
  border-radius: 12px;
  padding:.75rem 1rem;
}
.btn-primary-abe:hover{ background: var(--abe-blue-2); border-color: var(--abe-blue-2); color:#fff; }

.btn-outline-primary-abe{
  border-color: rgba(28,51,93,.35);
  color: var(--abe-blue);
  border-radius: 12px;
  padding:.7rem 1rem;
}
.btn-outline-primary-abe:hover{ background: var(--abe-blue); border-color: var(--abe-blue); color:#fff; }

.btn-success-abe{
  background: var(--abe-success);
  border-color: var(--abe-success);
  color:#062612;
  font-weight: 700;
  border-radius: 12px;
}
.btn-success-abe:hover{ filter: brightness(.95); }

.btn-cta{
  background: var(--abe-accent);
  border-color: var(--abe-accent);
  color: #1a1406;
  font-weight: 800;
  border-radius: 12px;
  padding:.85rem 1.1rem;
}
.btn-cta:hover{ filter: brightness(.98); transform: translateY(-1px); }

/* Navbar */
.navbar .nav-link{ opacity:.92; }
.navbar .nav-link:hover{ opacity:1; }
.brand-badge{
  width:34px;height:34px;border-radius:10px;
  background: rgba(255,255,255,.14);
  display:grid;place-items:center;
}

/* Sections */
.section{ padding: 88px 0; }
.section-alt{ background: var(--abe-soft); }
.section-dark{
  background: radial-gradient(1200px 600px at 10% 0%, rgba(248,200,67,.10), transparent 60%),
              linear-gradient(135deg, var(--abe-blue), var(--abe-blue-2));
}
.section-head{ margin-bottom: 18px; }
.section-head p{ max-width: 720px; }

/* Hero */
.hero{
  padding: 110px 0 70px;
  background:
    radial-gradient(1200px 500px at 15% 0%, rgba(248,200,67,.14), transparent 60%),
    linear-gradient(135deg, var(--abe-blue), var(--abe-blue-2));
  position: relative;
  overflow:hidden;
}
.hero .kicker{
  display:inline-flex; align-items:center;
  padding:.4rem .75rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.85);
  font-weight: 600;
  margin-bottom: 10px;
}
.hero-media{
  position: relative;
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
  border: 1px solid rgba(255,255,255,.18);
}
.hero-media img{ width:100%; height:auto; display:block; }
.hero-badge{
  position:absolute; right:16px; bottom:16px;
  background: rgba(11,18,32,.62);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.18);
  color:#fff;
  border-radius: 16px;
  padding: 12px 14px;
  text-align:center;
}
.hero-badge .badge-title{ font-weight: 900; letter-spacing:.4px; }
.hero-badge .badge-sub{ font-size:.85rem; opacity:.9; }

.hero-mini{
  display:flex; flex-wrap:wrap; gap:10px;
}
.mini-card{
  flex: 1 1 170px;
  display:flex; gap:10px; align-items:flex-start;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 14px;
  padding: 12px 14px;
  color:#fff;
}
.mini-card i{ opacity:.95; margin-top:2px; }
.mini-card small{ display:block; opacity:.85; }

.hero-wave{
  position:absolute; left:0; right:0; bottom:-1px;
  height: 70px;
  background: #fff;
  clip-path: polygon(0 60%, 10% 75%, 20% 60%, 30% 75%, 40% 60%, 50% 75%, 60% 60%, 70% 75%, 80% 60%, 90% 75%, 100% 60%, 100% 100%, 0 100%);
}

/* Cards */
.card-glass{
  border-radius: var(--radius);
  border: 1px solid rgba(17, 24, 39, .08);
  background: rgba(255,255,255,.85);
  box-shadow: var(--shadow-soft);
}
.img-frame{
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(17, 24, 39, .08);
  background:#fff;
}
.img-frame-dark{
  border-color: rgba(255,255,255,.18);
}
.img-frame img{ width:100%; height:auto; display:block; }

.badge-soft{
  display:inline-flex; align-items:center;
  padding: .45rem .7rem;
  border-radius: 999px;
  background: rgba(28,51,93,.08);
  color: var(--abe-blue);
  font-weight: 600;
}

.icon-card{
  border-radius: var(--radius);
  border: 1px solid rgba(17, 24, 39, .08);
  background:#fff;
  padding: 18px 16px;
  box-shadow: var(--shadow-soft);
  height: 100%;
}
.icon-card .icon{
  width:44px;height:44px;border-radius: 14px;
  display:grid; place-items:center;
  background: rgba(28,51,93,.08);
  color: var(--abe-blue);
  margin-bottom: 10px;
}

/* Dark pills */
.pill{
  display:inline-flex; align-items:center;
  padding: .55rem .85rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  color:#fff;
  font-weight: 600;
}

/* Quality */
.quality-card{
  border-radius: var(--radius);
  border: 1px solid rgba(17, 24, 39, .08);
  background:#fff;
  padding: 18px 16px;
  box-shadow: var(--shadow-soft);
  height:100%;
}
.q-icon{
  width:42px;height:42px;border-radius: 14px;
  background: rgba(28,51,93,.08);
  display:grid; place-items:center;
  color: var(--abe-blue);
  margin-bottom: 10px;
}

/* Lists */
.list-check{ list-style:none; padding:0; margin:0; }
.list-check li{
  display:flex; gap:10px; align-items:flex-start;
  padding: 6px 0;
}
.list-check i{ color: var(--abe-blue); margin-top: 3px; }

/* Lines */
.line-block{
  border-radius: var(--radius);
  border: 1px solid rgba(17, 24, 39, .08);
  background:#fff;
  box-shadow: var(--shadow-soft);
  padding: 22px;
  margin-top: 18px;
}
.line-meta .line-icon{
  width:46px;height:46px;border-radius: 16px;
  background: rgba(28,51,93,.08);
  display:grid; place-items:center;
  color: var(--abe-blue);
  margin-bottom: 8px;
  font-size: 1.1rem;
}

/* Process */
.process{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
.p-step{
  background:#fff;
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: var(--radius);
  padding: 16px 14px;
  box-shadow: var(--shadow-soft);
  height: 100%;
}
.p-num{
  width:38px;height:38px;border-radius: 14px;
  display:grid; place-items:center;
  background: rgba(28,51,93,.08);
  color: var(--abe-blue);
  font-weight: 800;
  margin-bottom: 8px;
}
.p-title{ font-weight: 800; }
.p-text{ color: var(--abe-gray); font-size: .95rem; }

/* Contact */
.form-card{
  background:#fff;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  border: 1px solid rgba(255,255,255,.18);
  overflow:hidden;
}
.form-head{
  padding: 18px 18px 12px;
  border-bottom: 1px solid rgba(17, 24, 39, .08);
}
.fh-title{ font-weight: 900; font-size: 1.15rem; }
.fh-sub{ color: var(--abe-gray); font-size: .95rem; }

.form-card form{ padding: 18px; }
.form-label{ font-weight: 600; color: #22304f; font-size: .92rem; }
.form-control, .form-select{
  border-radius: 12px;
  border-color: rgba(17,24,39,.16);
  padding: .75rem .9rem;
}
.form-control:focus, .form-select:focus{
  border-color: rgba(28,51,93,.55);
  box-shadow: 0 0 0 .2rem rgba(28,51,93,.12);
}

.contact-box{
  margin-top: 16px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--radius);
  padding: 16px;
}
.contact-box a{ color:#fff; text-decoration: none; }
.cb-title{ font-weight: 800; margin-bottom: 10px; }
.cb-item{ margin: 6px 0; color: rgba(255,255,255,.9); }

/* Footer */
.footer{
  background: #0d1b33;
  color: rgba(255,255,255,.85);
  padding: 18px 0;
}

/* WhatsApp fancy */
.whatsapp-fancy{
  position: fixed;
  left: 18px;
  bottom: 18px;
  z-index: 9999;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 999px;
  background: var(--abe-success);
  color: #062612;
  font-weight: 900;
  box-shadow: var(--shadow);
  text-decoration: none;
  transform: translateZ(0);
}
.whatsapp-fancy i{
  font-size: 1.2rem;
}
.whatsapp-fancy:hover{
  filter: brightness(.96);
  transform: scale(1.02);
}

/* Reveal animations */
.reveal, .reveal-left, .reveal-right{
  opacity: 0;
  transform: translateY(14px);
  transition: all .75s ease;
}
.reveal-left{ transform: translateX(-20px); }
.reveal-right{ transform: translateX(20px); }
.reveal.is-visible, .reveal-left.is-visible, .reveal-right.is-visible{
  opacity: 1;
  transform: none;
}

/* Snackbars */
.snackbars{
  position: fixed;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  z-index: 99999;
  display: grid;
  gap: 10px;
  width: min(520px, calc(100% - 24px));
}
.snackbar{
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(17,24,39,.12);
  box-shadow: var(--shadow);
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.snackbar .s-ico{ margin-top:2px; }
.snackbar.success{ border-left: 6px solid #22c55e; }
.snackbar.error{ border-left: 6px solid #ef4444; }
.snackbar .s-title{ font-weight: 900; }
.snackbar .s-text{ color: var(--abe-gray); font-size:.95rem; }

@media (max-width: 991px){
  .hero{ padding-top: 100px; }
  .process{ grid-template-columns: 1fr; }
}

.section-subtitle {
  text-align: center !important;
  margin-left: auto;
  margin-right: auto;
  max-width: 700px; /* opcional para que no quede demasiado ancho */
}