@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap');

:root{
    --padding-container: 100px 0;
    --color-title: var(--color-primario);
    --color-primario: #0599d8;   /* azul fuerte del logo */
    --color-secundario: #31a1db; /* azul intermedio */
    --color-acento: #82d6e9;     /* azul claro */
    --color-fondo: #f3f4f6;      /* gris muy claro */
    --color-texto: #222;         /* texto principal */
    --color-blanco: #fff;
}

body{
    font-family: "Poppins", sans-serif;
    background-color: var(--color-fondo);
    color: var(--color-texto);
}

.container{
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    overflow: hidden;
    padding: var(--padding-container);
}

.main-header {
  position: sticky;
  top: 0;
  z-index: 1500;
  background: rgba(255,255,255,.98);
  transition: all .3s ease;
  border-bottom: 1px solid transparent;
}

.main-header .container{ overflow: visible; padding: 14px 0;
}

.main-header .nav__links{ color: #001A49; }
.main-header .nav__links:hover{ color: #2091f9; }

.main-header.is-scrolled {
    opacity: 0.95;
    background: #8f8e8e; /* más sólido */
    border-bottom: 1px solid rgba(0,0,0,.15);
    box-shadow: 0 4px 12px rgba(0,0,0,.15);
}

.nav__link--menu{
  z-index: 2000; /* subimos para que tape al header cuando esté abierto */
  transition: opacity .7s ease;
}

.hero{
    width: 100%;
    height: 100vh;
    min-height: 86vh;
    max-height: 900px;
    position: relative;
    display: grid;
    grid-template-rows: 100px 1fr;
    color: white;
}

.hero::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(180deg, #000000b3 0%, #000000b3 100%), url(../images/grua.JPG);
    background-size: cover;
    background-position: center;
    clip-path: polygon(0 0, 100% 0, 100% 38%, 100% 80%, 51% 95%, 0 80%);
    z-index: -1;
}

/*  */

.nav{
    --padding-container:0;
    height: 100%;
    display: flex;
    align-items: center;

}

.nav__title{
    font-weight: 300;


}


.nav__link{
    margin-left: auto;
    padding: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    align-items: center;
    gap: 2em;
}

.nav__items{
    list-style: none;
}


.nav__links {
  color: var(--color-title);   /* azul oscuro / negro */
  text-decoration: none;
  font-weight: 500;
}

.nav__links:hover {
  color: var(--color-secundario);
}

.nav__menu{
    margin-left: auto;
    cursor: pointer;
    display: none;
}

.nav__img{
    display: block;
    width: 30px;
  filter: invert(1); /* invierte color, útil si tu icono es negro y fondo oscuro */
  cursor: pointer;
}

.nav__close{
    display: var(--show, none);
}


.hero__container{
    max-width: 800px;
    --padding-container:0;
    display: grid;
    grid-auto-rows: max-content;
    align-content: center;
    gap: 1em;
    padding-bottom: 100px;
    text-align: center;
}

.hero__title{
    font-size: 3rem;
        color: var(--color-primario);
}

.hero__paragraph{
  color: var(--color-ace);
    margin-bottom: 50px;
    margin-top: 50px;
}

/* .cta{
    display: block;
    background-color: #0599d8;
    justify-self: center;
    color: white;
    text-decoration: none;
    padding: 13px 30px;
    border-radius: 32px;
} */


.subtitle{
    color: var(--color-primario);
    font-size: 2rem;
    margin-bottom: 15px;
    text-align: center;
}

.about {
  position: relative;
  text-align: justify;
  padding: 4rem 1rem;
  color: var(--color-blanco);
  isolation: isolate; /* para manejar el overlay */
}

.about::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: -1;
}

.about .subtitle,
.about__paragraph {
  position: relative;
  z-index: 1;
  color: var(--color-blanco);  /* el texto queda arriba del overlay */
}

/* Para que los párrafos no se extiendan de lado a lado */
.about__paragraph {
  max-width: 800px;
  margin: 0 auto 2rem auto;
  line-height: 1.6;
}



/* .about__paragraph{
    line-height: 1.7;
    margin-top: 10px;
    margin-bottom: 10px;
} */

.about__main{
    padding-top: 80px;
    display: grid;
    width: 90%;
    margin: 0 auto;
    gap: 1em;
    overflow: hidden;
    grid-template-columns: repeat(auto-fit, minmax(260px, auto));

}

.about__icons{
    display: grid;
    gap: 1em;
    justify-items: center;
    width: 260px;
    overflow: hidden;
    margin: 0 auto;
}

.about__icon{
    width: 250px;
    height: 250px;
}

.experience{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 300px;
  display: grid;
  place-items: center;
  overflow: hidden;
    background: none;
}

.experience__bg{
  position: absolute;
  width: 100%;
  inset: 0;
  z-index: 0;
  background:
  url('../images/Fondo.svg') center/cover no-repeat;
  /* Si querés el efecto “rombo”, podés usar un PNG/SVG
     o un clip-path rombo sobre esta capa: */
  /* clip-path: polygon(20% 0, 80% 0, 100% 50%, 80% 100%, 20% 100%, 0 50%); */
}

.experience__content{
  padding: 3rem 1rem;
  max-width: 1100px;
}

.experience__title{
  position: relative;
  z-index: 1;
  color: #fff;
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 800;
  text-shadow: 0 3px 10px rgba(0,0,0,.6);
  margin: 0;
  text-align: center;
}

.experience .p{
    color: white;
}

.xp-banner{
  position: relative;
  min-height: 100vh; /* ocupa toda la pantalla */
  display: grid;
  place-items: center;
  text-align: center;
  color: #fff;
  background:
    url("../images/Fondo.svg") center/cover no-repeat;
  background-attachment: fixed;
}

.xp-banner img {
  display: none;
}

/* Título grande, responsive y con tracking */
.xp-banner__title{
    padding: 50px 0 50px;
  margin: 0;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  line-height: 1.02;
  font-size: clamp(28px, 6vw, 68px);
  text-shadow: 0 3px 14px rgba(0,0,0,.45);
}

/* Opcional: chevron */
.xp-banner__chevron{
  display: inline-block;
  margin-top: 16px;
  font-size: clamp(20px, 3vw, 28px);
  color: #fff; text-decoration: none; opacity: .9;
  transition: transform .2s ease, opacity .2s ease;
}
.xp-banner__chevron:hover{ transform: translateY(2px); opacity: 1; }

/* ---- OPCIONAL: “pincel” arriba/abajo (si tenés el SVG/PNG) ---- */
/* Colocá un archivo brush.svg o brush.png con borde irregular */
.xp-banner::before,
.xp-banner::after{
  content:"";
  position:absolute; left:0; right:0; height:30px;

}
.xp-banner::before{ top:-1px; transform: scaleY(-1);
}
.xp-banner::after { bottom:-1px;
}

.servicios{
  padding: 0 auto;
  /* si está sobre un fondo oscuro, podés bajarle un poco el contraste: */
  /* background: rgba(0,0,0,.02); */
}

.servicios .container{ /* tu .container ya existe; esto asegura espacio */
  width: auto;
  margin: 0 auto;
}

.servicios__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  align-items: stretch;
}

.servicio {
  background: #f9f9f9;
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.servicio:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
}

.servicio__media {
  padding: 0; /* quitamos padding para que la imagen ocupe todo el ancho */
  background: #fff;
  border: none;
  border-radius: 12px 12px 0 0;
  overflow: hidden;
  height: 300px; /* ajusta si querés más alto o bajo */
}

.servicio__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
  
}

.servicio__card {
  padding: 20px;
  background: #fff;
  border-radius: 0 0 12px 12px;
  text-align: center;
}
.servicio__card:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
}

.servicio__title{
  margin: 0 0 10px;
  font-weight: 800;
  font-size: 1.4rem;
  color: var(--color-title);/* contraste alto */
}

.servicio__text{
  margin: 0;
  line-height: 1.65;
  color: #5b6270;
  font-size: 1rem;
}


.knowledge {
  position: relative;
  text-align: justify;
  padding: 4rem 1rem;
  color: var(--color-blanco);
  isolation: isolate; /* para manejar el overlay */
}

.knowledge::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.55); /* overlay oscuro, ajustá la opacidad */
  z-index: -1;
}

.knowledge__container{
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 50px;
  width: min(1200px, 92%);
  margin: 0 auto;
  position: relative; /* para que el contenido esté por encima del ::before */
  z-index: 1;         /* z-index > 0 para estar por encima del */
}  


.knowledge__texts .subtitle {
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 800;
  margin-bottom: 18px;
  color: #fff;
}


.knowledge__paragraph {
  font-size: 1.05rem;
  line-height: 1.7;
  margin-bottom: 20px;
  color: #f1f1f1;
  text-align: justify;
}

.knowledge__picture {
    margin: 0;
  text-align: center;
  width: 100%;
  height: auto;
  display: flex;
  align-items: start;
}

.knowledge__img {
  max-width: 100%;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
}

/* aca abajo va lo nuevo del slider */

.knowledge__picture{
position: relative; z-index: 1;
}

.knowledge__stack {
  position: relative;
  width: 100%;
  max-width: 900px; /* ajusta según el diseño */
  margin: 0 auto;
  overflow: hidden;
  border-radius: 10px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.15);
}

.knowledge__item {
  width: 100%;
  height: 450px; /* ajustá la altura para que todas luzcan iguales */
  object-fit: cover; /* rellena el espacio sin deformarse */
  border-radius: 10px;
  display: block;
}

.knowledge__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.8);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  font-size: 22px;
  cursor: pointer;
  transition: background 0.3s;
  z-index: 5;
}

.knowledge__arrow:hover {
  background: #31a1db;
  color: #fff;
}

.knowledge__arrow.prev {
  left: 15px;
}

.knowledge__arrow.next {
  right: 15px;
}
/* ==== CLIENTES dentro de knowledge ==== */
.knowledge__panel{ grid-column: 1 / -1; margin-top: 16px; }

.clientes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  margin: 2rem auto;
  max-width: 1200px;
}

.clients__logo {
  max-width: 80%;
  max-height: 80%;
  object-fit: contain;
}

.clientes__logo:hover {
  transform: scale(1.1);
  filter: grayscale(0); /* podés poner grayscale(100%) si querés gris y a color en hover */

}

.clients { --logo-h: 100px; --gap: 18px; }

/* Grid de logos */
.clients__grid{
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--gap);
  align-items: stretch;
}

/* Card blanca de cada logo */
.clients__item{
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  height: var(--logo-h);
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;           /* ← evita que el logo se salga y pise al de al lado */
}

/* Imagen del logo dentro */
.clients__item img{
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;        /* ← mantiene proporción */
  display: block;
  position: relative;         /* ← neutraliza absolutas heredadas */
}

.clients__item img:hover {
  filter: grayscale(0%);
  transform: scale(1.05);
}

.gallery-btn {
  text-align: center;
  margin: 60px 0;
}

.gallery-btn a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--color-primario);   /* color de fondo */
  color: #fff;
  padding: 14px 40px;
  border-radius: 6px;
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.3s ease, transform 0.2s ease;
}

.gallery-btn a:hover {
  background: var(--color-secundario);
  transform: translateY(-3px);
}

.gallery-btn i {
  font-size: 1.8rem;
}

.cta{
  display: inline-block;
  padding: 12px 26px;
  background-color: var(--color-primario);
  color: var(--color-blanco);
  text-decoration: none;
  border-radius: 999px;
  font-weight: 600;
  transition: transform .15s ease, box-shadow .15s ease, background-color .2s ease;
}

.cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(5,153,216,.35);
  background-color: var(--color-secundario);
}

.services-hero{
  position: relative;
  padding: 20px 0 20px;
  color: #fff;
  background-color: transparent;

}

/* contenedor */
.services-hero__container{
  width: min(1200px, 92%);
  margin: 0 auto;
}

/* título + barra */
.services-hero__title{
  margin: 0 0 22px;
  font-size: clamp(36px, 6vw, 64px);
  font-weight: 900;
  letter-spacing: .02em;
  text-align: center;
}

.services-hero__bar{
  display: block;
  width: 180px;
  height: 10px;
  background: linear-gradient(90deg, var(--color-primario), var(--color-secundario));       /* color de la barra */
  border-radius: 6px;
  margin: 10px auto 0;
}

/* layout 2 columnas */
.services-hero__grid{
  display: grid;
  grid-template-columns: 1.1fr 1fr; /* imagen / lista */
  gap: 40px;
  align-items: center;
  margin-bottom: 20px;
}

/* imagen izquierda */
.services-hero__media{
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 18px 48px rgba(0,0,0,.35);
  opacity: 0.8;
}

.services-hero__media img{
  display: block;
  width: 100%;
  height: clamp(260px, 42vw, 460px);
  object-fit: cover;
}

/* panel lista derecha (glass) */
.services-hero__panel{
  backdrop-filter: blur(8px) saturate(130%);
  -webkit-backdrop-filter: blur(8px) saturate(130%);
  /* background: rgba(20,25,35,.45);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  padding: clamp(16px, 2.5vw, 26px);
  box-shadow: 0 14px 40px rgba(0,0,0,.28); */
}

/* lista */
.services-hero__list{
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: justify;
}

.services-hero__list li{
  position: relative;
  margin: 0 0 14px;
  padding-left: 28px;
  font-size: clamp(16px, 1.8vw, 20px);
  line-height: 1.5;
  font-weight: 600;
  font-style: italic;
}

.services-hero__list li::before{
  content: "•";                /* podés cambiar por ✅ o un ícono */
  position: absolute;
  left: 0;
  top: 0;
  color: #73d27a;
  font-size: 1.2em;
  line-height: 1;
}

/* fila inferior */
.services-hero__foot{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 34px;
  text-align: center;
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: 600;
}



/* .price{
    text-align: center;
}

.price__table{
    padding-top: 60px;
    display: flex;
    flex-wrap: wrap;
    gap: 2.5em;
    justify-content: space-evenly;
    align-items: center;
}

.price__element{
    background-color: #e5e5f7;
    text-align: center;
    border-radius: 10px;
    width: 330px;
    padding: 40px;
    --color-plan: #696871;
    --color-price: #1d29ef;
    --bg-cta: #fff;
    --color-cta: #5454D4;
    --color-items: #696871;
}

.price__element--best{
    width: 370px;
    padding: 60px 40px;
    background-color: #ff7143;
    --color-plan: rgb(255 255 255 / 75%);
    --color-price: #ffffff;
    --bg-cta: #9f3919;
    --color-cta: #fff;
    --color-items: #ffffff;
}

.price__name{
    color: var(--color-plan);
    margin-bottom: 15px;
    font-weight: 300;
}

.price__price{
    font-size: 2.5rem;
    color: var(--color-price)
}

.price__items{
    margin-top: 35px;
    display: grid;
    gap: 1em;
    font-weight: 300;
    font-size: 1.2rem;
    margin-bottom: 50px;
    color: var(--color-items);
}

.price__cta{
    display: block;
    padding: 20px 0;
    border-radius: 10px;
    text-decoration: none;
    background-color: var(--bg-cta);
    font-weight: 600;
    color: var(--color-cta);
    box-shadow: 0 0 1px rgba(0,0,0,0.5);
}

.price .subtitle{
    font-size: 3rem;
    margin-bottom: 10px;
    color: var(--color-items);
    font-weight: 500px;
}
 */


.testimony{
    background-color: #e5e5f7;
}

.testimony__container{
    display: grid;
    grid-template-columns: 50px 1fr 50px;
    gap: 1.5rem;
    align-items: center;
}

.testimony__body{
    display: grid;
    grid-template-columns: minmax(320px, 1fr) 280px;
    justify-content: space-evenly;
    align-items: center;
    gap: 2em;
    grid-column: 2/3;
    grid-row: 1/2;
    opacity: 0;
    pointer-events: none;
}

.testimony__body--show{
    opacity: 1;
    pointer-events: unset;
    transition: opacity 1.5s ease-in-out;
}

.testimony__img{
    width: 250px;
    height: 250px;
    border-radius: 50%;
    object-fit: cover;
    object-position: 50% 30%;
}

.testimony__texts{
    max-width: 100px;
}

.testimony__course{
    background-color: royalblue;
    color: white;
    display: inline-block;
    padding: 5px;
}

.testimony__arrow{
    width: 90%;
    cursor: pointer;
}



.questions{
    text-align: center;
}

.questions__container{
    display: grid;
    gap: 2em;
    padding-top: 50px;
    padding-bottom: 100px;
    }


.questions__padding{
    padding: 0;
    transition: padding .3s;
    border: 1px solid #5454D4;
    border-radius: 6px;
}

.questions__padding--add{
    padding-bottom: 30px;
}

.questions__answer{
    padding: 0 30px 0;
    overflow: hidden;
}

.questions__title{
    display: flex;
    font-size: 20px;
    padding: 30px 0 30px;
    cursor: pointer;
    color: var(--color-title);
    justify-content: space-between;
}

.questions__arrow{
    border-radius: 50%;
    background-color: var(--color-title);
    width: 25px;
    height: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: flex-end;
    margin-left: 10px;
    transition: transform .3s;
}

.questions__arrow--rotate{
    transform: rotate(180deg);
}

.questions__show{
    text-align: left;
    height: 0;
    transition: height .3s;
}

.questions___img{
    display: block;
}

.questions__copy{
    width: 60%;
    margin: 0 auto;
    margin-bottom: 30px;

}

.questions__offer{
    display: grid;
    gap: 2em;
    padding-top: 50px;
    padding-bottom: 100px;
}

.footer{
    background: linear-gradient(180deg, var(--color-primario) 0%, #0b2f40 100%); /* ojo con esto, es lo ultimo se ve bien pero las letras maso*/
}

.footer__title{
    font-weight: 300;
    font-size: 2rem;
    margin-bottom: 30px;
}

.footer__title .footer__newsletter{
    color: #fff;
}

.footer__container{
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #fff;
    padding-bottom: 60px;
}

.nav--footer .nav__links{ color:#e9f6ff; }
.nav--footer .nav__links:hover{ color:#fff; }

.nav--footer{
    padding-bottom: 20px;
    display: grid;
    gap: 1em;
    grid-auto-flow: row;
    height: 100%;
}

.nav__link--footer{
    display: flex;
    margin: 0;
    margin-right: 20px;
    flex-wrap: wrap;
}

.footer__inputs{
    margin-top: 10px;
    display: flex;
    overflow: hidden;
}

.footer__input{
    background-color: #fff;
    height: 50px;
    display: block;
    padding-left: 10px;
    border-radius: 6px;
    font-size: 1rem;
    outline: none;
    border: none;
    margin-right: 16px;
}

.footer__submit{
    margin-left: auto;
    display: inline-block;
    height: 50px;
    padding: 0 20px;
    background-color: #2091f9;
    border: none;
    font-size: 1rem;
    color: #fff;
    border-radius: 6px;
}

.footer__copy{
    --padding-container: 30px 0;
    text-align: center;
    color: #fff;
}

.footer__copyright{
    font-weight: 300;
    color: #fff;
}

.footer__icons{
        margin-bottom: 10px;
}

.footer__img{
    width: 30px;
}

    .footer__title {
      color: #fff;
      margin-bottom: 20px;
    }

    .footer__inputs {
        flex-direction: column;
        width: 100%;
    }

    .footer__input {
        margin-bottom: 10px;
    }

    .footer__submit {
        width: 100%;
    }

    .whatsapp-float {
    position: fixed;
    width: 60px;   /* tamaño del círculo */
    height: 60px;
    bottom: 20px;
    right: 20px;
    background-color: #25d366;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    z-index: 1000;
    transition: transform 0.2s ease;
}

    .whatsapp-float:hover {
    transform: scale(1.1);
}

    .whatsapp-icon {
    width: 52px;   /* más grande */
    height: 52px;
}

    .whatsapp-float:hover {
    transform: scale(1.1);
}

    .whatsapp-icon {
    width: 35px;
    height: 35px;
}

/* nosotros.html */
.gein-assistant{
  position: fixed;
  bottom: 110px;         /* que no choque con el botón de WhatsApp */
  right: 22px;
  display: flex;
  align-items: flex-end;
  gap: 10px;
  z-index: 1100;         /* por encima del resto */
  cursor: pointer;
  user-select: none;
}

.gein-assistant__img{
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
}

.gein-assistant__bubble{
  background: #ffffff;
  border: 2px solid #25d366;
  color: #1a1a1a;
  padding: 10px 36px 10px 12px;   /* espacio para la X */
  border-radius: 14px;
  max-width: 240px;
  font-size: 14px;
  line-height: 1.35;
  position: relative;
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
}

.gein-assistant__bubble::after {
  content: "";
  position: absolute;
  bottom: -10px;
  right: 15px;   /* 👉 ahora a la derecha */
  border-width: 10px;
  border-style: solid;
  border-color: #25d366 transparent transparent transparent;
}

.gein-assistant__close{
  position: absolute;
  top: 4px;
  right: 8px;
  width: 18px;
  height: 18px;
  line-height: 18px;
  text-align: center;
  border-radius: 50%;
  font-weight: 700;
  color: #25d366;
}

.gein-assistant__close:hover{
  background: #25d366;
  color: #fff;
}

/* Animación de entrada sutil */
@keyframes gein-pop {
  from { transform: translateY(8px); opacity: 0; }
  to   { transform: translateY(0);  opacity: 1; }
}


.about, .history, .mission, .team {
  padding: 2rem 0;
}

.subtitle {
  color: var(--color-primario);
  margin-bottom: .6rem;
}

/* --------- Mission / Vision / Valores --------- */
.mission {
  display: grid;
  gap: 2rem;

}
.mission__texts {
  background: #f7f9ff;
  border: 1px solid #e6ecff;
  border-radius: 14px;
  padding: 1rem 1.25rem;
}

.mission__texts h2 {
  margin-bottom: .35rem;
  font-weight: 600;
  color: var(--color-title, #004cff);
}

/* --------- Equipo --------- */
.team h2 {
  margin-bottom: 1rem;
}
.team__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}
.team__member {
  background: #ffffff;
  border: 1px solid #ececec;
  border-radius: 16px;
  padding: 1rem;
  text-align: center;
  transition: transform .2s ease, box-shadow .2s ease;
}
.team__member:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}
.team__member img {
  width: 100%;
  aspect-ratio: 1 / 1;       /* cuadrada y responsiva */
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: .75rem;
}
.team__member h3 {
  font-weight: 600;
  margin-bottom: .15rem;
}
.team__member p {
  color: #5b5b5b;
  font-size: .95rem;
}

/* --------- Activo en navegación (reutiliza tu nav) --------- */
.nav__links.active,
.nav__link a.active {
  color: var(--color-primario);
  border-bottom: 2px solid var(--color-primario);
  font-weight: 600;
  position: relative;
}
.nav__links.active::after,
.nav__link a.active::after {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 100%; height: 2px;
  background: var(--color-title, #004cff);
  border-radius: 2px;
}


/* .heros{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(180deg, #0000008c 0%, #0000008c 100%), url(../images/Ejecucion1.jpeg);
    background-size: cover;
    z-index: -1;

} */

.heros {
  position: relative;
  min-height: 70vh;          /* alto del hero */
  display: grid;
  place-items: center;
  background-image: url('../images/fotogein.jpg');
  background-size: cover;     /* que ocupe todo el ancho */
  background-position: center 35%; /* mové el foco */
  background-repeat: no-repeat;
}

/* Capa semitransparente encima de la imagen */
.heros::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.55); /* transparencia del fondo */
  z-index: 0;
}

/* Asegura que el texto y contenido vayan por encima del velo */
.heros * {
  position: relative;
  z-index: 1;
}

/* Asegurá que el contenido del header quede sobre el overlay */
.heros .nav,
.heros .nav * {
  position: relative;
  z-index: 1;
}

/* Colores del menú SOLO en esta página */
.heros .nav__links,
.heros .nav__title {
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.heros .nav__links.active {
  font-weight: 700;
  border-bottom: 2px solid rgba(255,255,255,.9);
}

/* Opcional: una sombrita abajo del header para separar del contenido */
.heros {
  box-shadow: 0 8px 18px rgba(0,0,0,.08);
}

.hero__titles{
    font-size: 3rem;
    text-align: center;
    margin-top: 0px;

}


.nosotros {
  background: #f7f9ff;
  padding: 2rem;
  border-radius: 12px;
  margin-bottom: 3rem;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,.05);
}

.nosotros__subtitle {
  color: #0599d8;
  margin-bottom: 1rem;
}

.nosotros__paragraph {
  max-width: 65ch;
  margin: 0 auto;
  line-height: 1.6;
  color: #24292f;
}

/* Título */
.subtitle,
.nosotros__subtitle {
  color: #0599d8; /* azul corporativo */
  font-weight: 700;
}



/* Lista */
.nosotros__list {
  list-style: none;          /* saca las viñetas por defecto */
  padding: 0;
  margin-bottom: 2rem;
}

.nosotros__list li {
  margin: 0.75rem 0;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

/* Viñetas personalizadas */
.nosotros__list li::before {
  content: "✔";              /* check */
  color: #0599d8;            /* mismo azul */
  font-weight: bold;
}

/* Botón */
.nosotros__cta .cta {
  background: #0599d8;
  color: #fff;
  padding: 0.75rem 1.5rem;
  border-radius: 30px;
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  transition: background 0.3s ease;
}

.nosotros__cta .cta:hover {
  background: #31a1db;       /* tono más claro al pasar el mouse */
}

.heros__container{
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* reparte título arriba y textos abajo */
  align-items: center;
  min-height: 75vh;               /* alto del hero */
  padding: 2rem 0;                /* respiro arriba y abajo */
  text-align: center;
  color: #000000;
  border-radius: 10px;
}

.heros__titles{
  font-size: 3rem;
  font-weight: 700;
  margin: 0;
  color: #0599d8;
  text-shadow:  2px 2px 6px rgba(0,0,0,.6);                      /* sin margen extra */
}

.heros__paragraph{
  font-size: 1.2rem;
  max-width: 800px;               /* limita ancho para que no se haga eterno */
  margin: .3rem 0;
  color: white;
  text-shadow:  2px 2px 6px rgba(0,0,0,.6);
}

html {
  scroll-behavior: smooth;
}
/* arriba la parte nosotros  abajo obras*/

.slider {
  position: relative;
  max-width: 1000px;
  margin: 2rem auto;
  aspect-ratio: 5 / 4;         /* más alto que 16:9, ideal para fotos mixtas */
  overflow: hidden;
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(0,0,0,.25);
  background: #111;
}

.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.6s ease;
}

.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;           /* llena todo el cuadro */
  object-position: center 55%; /* centra bien el contenido */
  display: block;
  border-radius: 14px;
}


.slide.active{
  opacity: 1;
}



.slider__btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,.45);
  border: none;
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  width: 42px;
  height: 42px;
  cursor: pointer;
  border-radius: 50%;
  transition: background .3s ease;
  display: grid; place-items: center;
  z-index: 2;
}

.slider__btn:hover{
  background: rgba(0,0,0,.75);
}

.slider__btn.prev{
  left: 12px;
}

.slider__btn.next{
  right: 12px;
}

.slider__dots{
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
}

.slider__dot{
  width: 12px;
  height: 12px;
  background: rgba(255,255,255,.45);
  border-radius: 50%;
  cursor: pointer;
  transition: background .3s ease;
}

.slider__dot.is-active{
  background: rgba(255,255,255,.75);
}

.slider:hover .slider__btn{
  filter: none;
}

.slider__btn:focus-visible{
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.obra-section{
  position: relative;
  padding: 5rem 0 6rem;
  isolation: isolate;
}

.obra-section::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--bg, none) center/cover no-repeat;
  filter: brightness(.35);
  z-index: -2;
}

.obra-section::after{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.15), rgba (0,0,0,.35));
  z-index: -1;
}

.obra-section__title{
  color: #0599d8;
  text-align: center;
  font-size: 2rem;
  margin: 0 0 1.5rem;
  text-shadow: 1px 2px 6px rgba(0,0,0,.6);
}

.obra-section__desc{
  color: #fff;
  text-align: center;
  margin: 1.2rem auto 0;
  max-width: 900px;
  padding: 0.6rem 1rem;
  background: rgba(0,0,0,.35);
  border-radius: 10px;
  backdrop-filter: blur(2px);
}

.obras-index{
  position: sticky;
  top: 57px;
  z-index: 50;
  display: flex;
  gap: .5rem;
  padding: .6rem;
  background: rgba(102, 102, 102, 0.75);
  backdrop-filter: blur(6px);
  border-radius: 999px;
  overflow-x: auto;
}

.chip{
  white-space: nowrap;
  padding: .45rem .9rem;
  border-radius: 999px;
  background: #eef2ff;
  color: #0599d8;
  font-weight: 600;
  text-decoration: none;
}

.chip:hover{
  background: #dbe4ff;
}

.obra-section{
scroll-margin-top: 100px;
}

.obra-section:nth-of-type(even){background: #f7f8fb;
}

.obra-meta{
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  justify-content: center;
  margin: .5rem 0 1rem;
  padding: 0;
}

.obra-meta{
  list-style: none;
  font: .92rem;
  background: #f0f4ff;
  border: 1px solid #e0e7ff;
  padding: .3rem .6rem;
  border-radius: 999px;
}

/* .slider + .obra-section__desc{
  margin-top: -28px;
  position: relative;
  z-index: 3;
  width: min(900px, 92%);
  margin-left: auto;
  margin-right: auto;
  background: rgba(0,0,0,.55);
  color: white;
  padding: 6rem 1rem;
  border-radius: 10px;
  backdrop-filter: blur (2px);
  box-shadow: 0 6px 18px rgba (0,0,0,.2);
} */

.cta-obras{ text-align:center; padding:3rem 0 4rem; }
.cta-obras .btn{
  display:inline-block; padding:.8rem 1.2rem; border-radius:10px;
  background:#0f1f4d; color:#fff; text-decoration:none; font-weight:700;
  box-shadow:0 8px 20px rgba(15,31,77,.25);
}
.cta-obras .btn:hover{ transform: translateY(-1px); }


.contact{
  background: linear-gradient(180deg, #f7f9ff 0%, #ffffff 60%);
  padding-top: 2rem;
}

.contact__header{
  text-align: center;
  margin-bottom: 1.25rem;
}

.contact__header .subtitle{
  color: var(--color-title, #0a53ff);
  opacity: 1;           /* evita que quede lavada */
}

.contact__divider{
  width: 72px;
  height: 4px;
  margin: .5rem auto 0;
  border-radius: 999px;
  background: var(--color-title, #0a53ff);
  opacity: .85;
}

.contact__grid{
  display: grid;
  gap: 2rem;
  align-items: start;
  grid-template-columns: 1.4fr 1fr;
}

.contact__container{
  display: grid;
  gap: 1.5rem;
  text-align: center;
  max-width: 1080px;
}

.contact__aside ul{
  list-style: none;
  padding-left: 0;
}
.contact__aside li{
  position: relative;
  padding-left: 1.4rem;
  margin:.35rem 0;
}
.contact__aside li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  line-height: 1.1;
  font-weight: 700;
  color: var(--color-title, #0a53ff);
}

.contact__container > .subtitle{
  color: var(--color-title);
}

.contact__container > p{
  margin: 0 auto;
  max-width: 60ch;
  line-height: 1.6;
  color: #24292f;
  opacity: .85;
}

.contact__list{
  list-style: none;
  margin: 0 auto;
  padding: 0;
  display: grid;
  gap: 1rem;
  max-width: none;
}

.contact__item{
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 1rem;
  background: var(--contact-card-bg);
  border: 1px solid var(--contact-border);
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: var(--contact-shadow);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.contact__item small{
  display: block;
  margin-top: 2px;
  color: #4b5563;
  font-weight: 400;
  line-height: 1.35;
}
.contact__item:hover{
  transform: translateY(-2px);
  box-shadow: var(--contact-shadow-hover);
  border-color: rgba(0,0,0,.08);
}

/* Icono redondo a la izquierda */
.contact__icon{
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 22px;    /* Si usás emoji como icono */
  color: #fff;
}

/* Texto/enlace a la derecha */
.contact__item a{
  display: inline-block;
  text-decoration: none;
  font-weight: 600;
  color: #0f172a; /* slate-900 */
  word-break: break-word;
}

.contact__item small{
  display: block;
  margin-top: 2px;
  color: #4b5563; /* slate-600 */
  font-weight: 400;
}

/* Canales (borde/colores por tipo) */
.contact__item--phone .contact__icon{ background: var(--brand-phone); }
.contact__item--whatsapp .contact__icon{ background: var(--brand-whatsapp); }
.contact__item--mail .contact__icon{ background: var(--brand-mail); }
.contact__item--location .contact__icon{ background: var(--brand-location); }

/* Accesibilidad: focus visible */
.contact__item a:focus-visible{
  outline: 3px solid rgba(0, 76, 255, .35);
  outline-offset: 3px;
  border-radius: 8px;
}

/* Estados de enlace */
.contact__item a:hover{
  text-decoration: underline;
  text-underline-offset: 2px;
}

.contact__cta{
  margin-top:2rem;
  background:#0f152a;
  color:#e8eefc;
  border-radius:16px;
  padding:18px 20px;
  display:flex; gap:12px; align-items:center; justify-content:space-between;
}



.contact__cta .btn{
  background:#fff; color:#0f152a;
  padding:10px 16px; border-radius:12px;
  font-weight:700; text-decoration:none;
  transition: transform .15s ease;
  width: 30%;
}

.contact__cta .btn:active{ transform: scale(.98); }

h1.subtitle,
h2.subtitle,
h3.subtitle {
  color: var(--color-primario) !important;
}


/* MEDIA QUERY */

@media (max-width: 800px) {
    .nav__menu{
        display: block;
    }

    .nav__link--menu{
        position: fixed;
        background-color: black;
        top: 0;
        left: 0;
        height: 100%;
        width: 100%;
        display: flex;
        flex-direction: column;
        justify-content: space-evenly;
        align-items: center;
        z-index: 100;
        opacity: 0;
        pointer-events: none;
        transition: .7s opacity;
        color: white;
    }

    .nav__link--show{
        --show: block;
        opacity: 1;
        pointer-events: unset;
    }

    .nav__close{
        position: absolute;
        top: 30px;
        right: 30px;
        width: 30px;
        cursor: pointer;
    }


.nav__link--menu .nav__links,
.nav__link--menu .nav__links:visited{ color:#fff; }
.nav__link--menu .nav__links:hover{ color:#cfe4ff; }

    .hero__title{
        font-size: 2rem;
    }

    .about__main{
        gap: 2em;
        }

    .about__icons:last-of-type{
        grid-column: 1/-1;
    }


    .knowledge__container{
        grid-template-columns: 1fr;
        grid-template-rows: max-content 1fr;
        gap: 3em;
        text-align: center;
    }

    .knowledge__picture{
        grid-row: 1/2;
        justify-self: center;
    }

    .testimony__picture{
        grid-row: 1/2;
        justify-self: center;
    }


    .testimony__container{
        grid-template-columns: 30px 1fr 30px;

    }

    .testimony__body{
        grid-template-columns: 1fr;
        grid-template-rows: max-content max-content;
        gap: 3em;
        justify-self: center;
    }

    .testimony__img{
        width: 200px;
        height: 200px;
    }

    .questions__copy{
        width: 100%;
    }

    .footer__container{
        flex-wrap: wrap;
    }

    .clients__grid{ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
}
    .nav--footer{
        width: 100%;
        justify-items: center;
            }

    .nav__link--footer{
        width: 100%;
        justify-content: space-evenly;
        margin: 0;
    }

    .footer__form{
        width: 100%;
        justify-content: space-evenly;
    }

    .footer__input{
        flex: 1;
    }


    .hero{ min-height: 78vh; }
    .hero::before{ background-position: center 30%; }

    .contact__item{
    grid-template-columns: 40px 1fr;
    padding: 14px;
    border-radius: 14px;
  }

  .contact__icon{
    width: 40px;
    height: 40px;
    font-size: 20px;
  }


.contact__cta{
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: .75rem;
  }
  .contact__cta .btn{
    width: 100%;
    text-align: center;
  }
.obras-index {
    flex-wrap: wrap;
    justify-content: center;
  }

  .chip {
    flex: 1 1 auto;       /* que se estiren */
    text-align: center;
  }

  



@media (max-width: 600px) {
    .hero__title{
        font-size: 2rem;
    }

    .hero__paragraph{
        font-size: 1rem;
        }

    .subtitle{
            font-size: 1.8rem;
        }
    }

    .price__element{
        width: 90%;
    }

    .price__element--best{
        width: 90%;
        padding: 40px;
    }

    .testimony{
        --padding-container: 60px 0;
    }

    .testimony__container{
        grid-template-columns: 28px 1fr 28px;
        gap: .9em;
    }

    .testimony__review{
        text-align: center;
    }

    .testimony__body{
        justify-self: center;
    }


    .questions__copy{
        width: 80%;
        margin: 0 auto;
    }

    .price__price{
        font-size: 2rem;
    }

    .testimony__arrow{
        width: 100%;
        }

    .testimony__course{
            margin-top: 15px;
        }

        .questions__title{
            font-size: 1rem;
        }

        .footer__title{
            justify-self: start;
            margin-bottom: 15px;
        }

        .nav--footer{
            padding-bottom: 60px;

        }

        .nav__link--footer{
            justify-content: space-between;
        }

        .footer__inputs{
            display: flex;

        }

        .footer__input{
            flex-basis: 100%;
            margin: 0;
            margin-bottom: 16px;
        }

            .footer__submit{
                display: inline-flex;
                align-items: center;
                margin-right: auto;
                margin-left: 0;
                height: 44px;
                padding: 0 15px;
                width: auto;
                border-radius: 5px;
                justify-content: left;
                cursor: pointer;
            }

