:root{
  --color-base:#08244c;
  --color-secundario:#06397b;
  --color-terciario:#5ce1e6;
  --color-cuaternario:#2e36bd;
  --color-quinquenario:#30415b;
  --color-senario:#3d4e68;
  --color-blanco:#ffffff;
}

html,body{font-family:'Poppins',system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue','Noto Sans',Ubuntu,'Cantarell',Arial,sans-serif; color:#0e1a2b; scroll-behavior:smooth;}
.bg-base{background:var(--color-base)!important;}
.text-cuaternario{color:var(--color-cuaternario)!important;}

/* Navbar */
.navbar .nav-link{color:rgba(255,255,255,.85); transition:color .2s ease;}
.navbar .nav-link.active, .navbar .nav-link:hover{color:var(--color-terciario);}
.navbar-brand{color:#fff;}
.navbar-dark .navbar-toggler{border-color:rgba(255,255,255,.25)}

/* Buttons */
.btn-secundario{background:var(--color-secundario); color:#fff; border:0; transition:all .2s ease;}
.btn-secundario:hover{background:var(--color-terciario); color:#00283a;}
.btn-outline-terciario{border:2px solid var(--color-terciario); color:#fff; transition:all .2s ease;}
.btn-outline-terciario:hover{background:var(--color-terciario); color:#003247;}

/* Sections */
.bg-light-alt{background:linear-gradient(0deg,#f8fafc, #f3f6fb);}
.card-kpi{border:1px solid #e6ecf5; border-radius:14px; background:#fff;}
.card-service{border:1px solid #e6ecf5; border-radius:14px;}
.card-service .card-body a{color:var(--color-secundario); text-decoration:none; font-weight:500;}
.card-service .card-body a:hover{color:var(--color-cuaternario);}

/* Hero sections */
.hero{min-height:72vh; padding-top:88px; background-position:center; background-size:cover; position:relative;}
.hero--home{background-image:linear-gradient(rgba(8,36,76,.55),rgba(8,36,76,.55)), url('../images/logo.png');}
.hero--nosotros{background-image:linear-gradient(rgba(8,36,76,.55),rgba(8,36,76,.55)), url('../images/imagen-nosotros.jpg');}
.hero--servicios{background-image:linear-gradient(rgba(8,36,76,.55),rgba(8,36,76,.55)), url('../images/imagen-servicios.jpg');}
.hero--contacto{background-image:linear-gradient(rgba(8,36,76,.55),rgba(8,36,76,.55)), url('../images/imagen-contacto.png');}

/* Images */
.object-cover{object-fit:cover; max-height:420px;}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in-view{opacity:1; transform:none;}

/* Footer */
footer img{filter:grayscale(0) brightness(100%); opacity:.9;}



.hero--home {
  background: #08244c;
  min-height: 100vh;
  padding-top: 120px;
  position: relative;
  overflow: hidden;
}

.hero--home .logo-bg {
  width: 380px;
  opacity: 0.15;
  position: relative;
}

.logo-overlay {
  position: relative;
  display: inline-block;
}

.text-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -40%);
  text-align: center;
}

.text-overlay h1 {
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 1px;
}

.text-overlay .vilsa {
  color: #ffffff;
  background: linear-gradient(90deg, #2e36bd 0%, #3d4e68 100%);
  padding: 0 8px;
  border-radius: 4px;
}

.text-overlay .lap {
  color: #5ce1e6;
  margin-left: 6px;
}

.subtitle {
  color: #5ce1e6;
  font-size: 1rem;
  letter-spacing: 1px;
  font-weight: 500;
}

.hero-nosotros {
  min-height: 100vh;
  background: #fff;
}

.col-left {
  background-color: #08244c;
  flex: 0 0 35%;
  position: relative;
}

.logo-nosotros {
  width: 180px;
  opacity: 1;
}

.quote-box {
  background-color: #06397b;
  color: #fff;
  font-weight: 500;
  font-size: 1rem;
  padding: 1.2rem 2rem;
  border-radius: 4px;
  margin-top: 1rem;
}

.col-right {
  display: flex;
  flex-direction: column;
  background-color: #fff;
  position: relative;
}

.image-bg {
  flex: 0 0 50%;
  overflow: hidden;
}

.image-bg img {
  object-fit: cover;
  height: 100%;
}

.text-content {
  background: #fff;
  color: #000;
}

.text-content .highlight {
  background-color: #5ce1e6;
  padding: 0 6px;
  color: #000;
  font-weight: 700;
}

@media (max-width: 992px) {
  .hero-nosotros {
    flex-direction: column;
  }

  .col-left {
    flex: none;
    width: 100%;
  }

  .col-right {
    flex: none;
  }

  .quote-box {
    margin-bottom: 1.5rem;
  }
}

.hero-servicios {
  min-height: 100vh;
  display: flex;
  background: #ffffff;
}

.col-left {
  flex: 0 0 35%;
  background: #fff;
  position: relative;
}

.logo-servicios {
  width: 120px;
  margin-bottom: 1rem;
}

.col-left h1 {
  font-size: 2.3rem;
  font-weight: 700;
  color: #000;
  position: relative;
}

.col-left .barra {
  display: inline-block;
  width: 6px;
  height: 100%;
  background: linear-gradient(180deg, #5ce1e6 0%, #08244c 100%);
  position: absolute;
  left: -20px;
  top: 0;
}

.btn-servicio {
  background-color: #5ce1e6;
  border: none;
  color: #000;
  font-weight: 600;
  padding: 0.6rem 1.2rem;
  border-radius: 25px;
  text-decoration: none;
  display: inline-block;
  width: fit-content;
  transition: all 0.2s ease-in-out;
}

.btn-servicio:hover {
  background-color: #2e36bd;
  color: #fff;
}

.col-center {
  flex: 0 0 35%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}

.col-center img {
  max-width: 100%;
  border-radius: 6px;
  height: auto;
}

.col-right {
  flex: 0 0 30%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #fff;
}

.bloque-azul {
  background-color: #5ce1e6;
  color: #000;
  border-radius: 4px;
}

@media (max-width: 992px) {
  .hero-servicios {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .col-left, .col-center, .col-right {
    flex: none;
    width: 100%;
  }

  .col-left .barra {
    display: none;
  }

  .bloque-azul {
    width: 80%;
    margin: 1rem auto;
  }

  .btn-servicio {
    margin: 0 auto;
  }
}


.hero-contacto {
  min-height: 100vh;
  display: flex;
  background: #ffffff;
}

.col-left {
  flex: 0 0 50%;
  background: #fff;
  padding-left: 6%;
}

.logo-contacto {
  width: 120px;
  margin-bottom: 2rem;
}

.contact-item img {
  flex-shrink: 0;
}

.contact-item p {
  color: #000;
}

.email-box {
  margin-top: 3rem;
  align-items: center;
  color: #000;
}

.email-box img {
  width: 28px;
  height: auto;
}

.col-right {
  flex: 0 0 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.contacto-img {
  width: 80%;
  max-width: 500px;
  height: auto;
  border-radius: 4px;
}

@media (max-width: 992px) {
  .hero-contacto {
    flex-direction: column;
    text-align: center;
	margin-top:60px;
  }

  .col-left, .col-right {
    flex: none;
    width: 100%;
  }

  .email-box {
    justify-content: center;
  }

  .contacto-img {
    margin-top: 2rem;
  }
}
