:root{
  --navy:#071b33;
  --blue:#0f5f9f;
  --ice:#f3f8fc;
  --muted:#5d6c7d;
  --green:#18d66d;
  --border:#dbe5ee;
  --shadow:0 18px 45px rgba(7,27,51,.11);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--navy);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:white;
  line-height:1.5;
}
.topbar{
  background:var(--navy);
  color:white;
  text-align:center;
  padding:12px 18px;
  font-weight:800;
}
.header{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:18px clamp(20px,7vw,110px);
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(12px);
}
.brand{
  text-decoration:none;
  color:var(--navy);
  display:flex;
  align-items:center;
  gap:13px;
  font-size:22px;
  font-weight:950;
  letter-spacing:.16em;
}
.logo-img{
  height:46px;
  width:auto;
  display:block;
}
.mark{
  color:var(--blue);
  letter-spacing:-9px;
  font-size:28px;
}
.btn{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  text-decoration:none;
  border-radius:999px;
  padding:15px 24px;
  font-weight:950;
  text-align:center;
  border:2px solid transparent;
}
.btn-primary{
  background:var(--green);
  color:#062316;
  box-shadow:0 12px 30px rgba(24,214,109,.28);
}
.btn-secondary{
  background:var(--navy);
  color:white;
}
.btn-light{
  background:white;
  color:var(--navy);
}
.btn-outline{
  background:white;
  border-color:var(--navy);
  color:var(--navy);
}
.hero{
  display:grid;
  grid-template-columns:1fr .95fr;
  gap:42px;
  align-items:center;
  padding:54px clamp(20px,7vw,110px);
  background:
    linear-gradient(90deg,rgba(7,27,51,.05),rgba(15,95,159,.08)),
    white;
}
.badge,.eyebrow{
  margin:0 0 12px;
  color:var(--blue);
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.hero h1{
  font-size:clamp(42px,6vw,72px);
  line-height:.98;
  letter-spacing:-.055em;
  margin:0 0 18px;
}
.lead{
  font-size:clamp(20px,2.2vw,28px);
  color:#33465a;
  margin:0 0 22px;
}
.trust-line{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 26px;
}
.trust-line span{
  background:var(--ice);
  border:1px solid var(--border);
  padding:9px 13px;
  border-radius:999px;
  font-weight:850;
}
.hero-video{
  min-height:380px;
  border-radius:30px;
  background:
    linear-gradient(rgba(7,27,51,.36),rgba(7,27,51,.36)),
    url("assets/video-cover.jpg");
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.video-placeholder{
  width:82%;
  min-height:190px;
  border:2px dashed rgba(255,255,255,.82);
  border-radius:24px;
  background:rgba(7,27,51,.45);
  color:white;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
}
.video-placeholder strong{font-size:28px}
.video-placeholder span{opacity:.92}

.mini-proof{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  padding:24px clamp(20px,7vw,110px);
  background:var(--navy);
  color:white;
}
.mini-proof article{
  border-left:4px solid var(--green);
  padding-left:18px;
  display:flex;
  flex-direction:column;
}
.mini-proof span{color:#d9e7f2}

.section{
  padding:72px clamp(20px,7vw,110px);
}
.section h2{
  font-size:clamp(34px,4.5vw,56px);
  line-height:1.05;
  letter-spacing:-.045em;
  margin:0 0 30px;
}
.text{
  color:var(--muted);
  font-size:19px;
  max-width:760px;
}
.reviews-top{
  text-align:center;
  background:white;
}
.reviews-top .text{
  margin:0 auto 24px;
}
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.service-card{
  border:1px solid var(--border);
  border-radius:28px;
  padding:30px;
  background:white;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
}
.service-card.featured{
  border-top:7px solid var(--green);
}
.service-card h3{
  font-size:28px;
  line-height:1.08;
  margin:0 0 12px;
}
.service-card p{color:var(--muted);font-size:18px}
.service-card ul{
  list-style:none;
  padding:0;
  margin:8px 0 28px;
  flex:1;
}
.service-card li{
  margin:10px 0;
  color:#34475b;
}
.service-card li::before{
  content:"✓ ";
  color:var(--green);
  font-weight:950;
}
.bg-light{background:var(--ice)}
.split{
  display:grid;
  grid-template-columns:1fr .8fr;
  gap:36px;
  align-items:center;
}
.checks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:22px;
}
.checks span{
  background:white;
  border:1px solid var(--border);
  padding:14px 16px;
  border-radius:16px;
  font-weight:850;
}
.card{
  border-radius:28px;
  padding:34px;
  background:white;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.card h3{font-size:28px;margin:0 0 10px}
.card p{color:var(--muted);font-size:18px}
.banner{
  text-align:center;
  color:white;
  padding:82px 20px;
  background:
    linear-gradient(rgba(7,27,51,.7),rgba(7,27,51,.7)),
    url("assets/banner.jpg");
  background-size:cover;
  background-position:center;
}
.banner h2{
  font-size:clamp(36px,5vw,64px);
  line-height:1.05;
  letter-spacing:-.045em;
  margin:0 0 12px;
}
.banner p{font-size:22px;margin:0;color:#e8f4ff}
.gallery{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}
.photo{
  min-height:260px;
  border-radius:24px;
  background:linear-gradient(135deg,#e6eef5,#fbfdff);
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#657487;
  font-weight:900;
  box-shadow:var(--shadow);
}
.reviews{
  background:var(--navy);
  color:white;
}
.reviews .eyebrow{color:#8fcaff}
.review-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.review-grid article{
  background:white;
  color:var(--navy);
  border-radius:24px;
  padding:26px;
}
.review-grid strong{color:#f5b800;font-size:22px}
.review-grid p{color:#35475b;font-size:18px}
.center{text-align:center}
.mt{margin-top:26px}
.faq{background:var(--ice)}
details{
  max-width:920px;
  margin:14px 0;
  border:1px solid var(--border);
  border-radius:18px;
  background:white;
  padding:22px 26px;
}
summary{
  cursor:pointer;
  font-size:21px;
  font-weight:950;
}
details p{color:var(--muted);font-size:18px}
.map-section{
  background:white;
}
.map-wrapper{
  overflow:hidden;
  border-radius:28px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  margin-top:26px;
}
.cta-final{
  padding:82px 20px;
  text-align:center;
  color:white;
  background:linear-gradient(135deg,var(--blue),var(--navy));
}
.cta-final h2{
  font-size:clamp(36px,5vw,64px);
  line-height:1.05;
  letter-spacing:-.045em;
  margin:0 0 14px;
}
.cta-final p{
  font-size:22px;
  color:#e7f4ff;
  margin:0 0 26px;
}
.float-wa{
  position:fixed;
  right:22px;
  bottom:22px;
  width:66px;
  height:66px;
  z-index:80;
  border-radius:50%;
  background:var(--green);
  display:flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  color:white;
  font-size:30px;
  box-shadow:0 16px 38px rgba(0,0,0,.28);
}
footer{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:20px;
  padding:32px clamp(20px,7vw,110px);
  background:#111;
  color:white;
}
footer div{
  display:flex;
  flex-direction:column;
  gap:4px;
}
footer span, footer a{
  color:#dbe1e8;
  text-decoration:none;
}
.footer-links a:hover{
  color:white;
}

@media(max-width:920px){
  .topbar{font-size:14px}
  .header{padding:15px 18px}
  .brand{font-size:19px}
  .btn-outline{padding:10px 14px}
  .hero{
    grid-template-columns:1fr;
    padding:42px 20px 48px;
    gap:28px;
  }
  .hero h1{font-size:43px}
  .hero-video{min-height:300px}
  .mini-proof,
  .service-grid,
  .split,
  .gallery,
  .review-grid,
  .checks,
  footer{
    grid-template-columns:1fr;
  }
  .mini-proof{padding:24px 20px}
  .section{padding:56px 20px}
  .photo{min-height:230px}
  footer{
    padding-bottom:105px;
  }
}

.reviews-top{
  text-align:center;
  background:white;
}
.reviews-top .review-grid{
  margin-top:28px;
}
.review-grid-light article{
  background:white;
  color:var(--navy);
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.review-grid-light p{
  color:#35475b;
}


/* Carrusel de reseñas */
.reviews-carousel{
  display:flex;
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:10px 4px 24px;
  margin-top:28px;
  scrollbar-width:thin;
}
.review-card{
  flex:0 0 390px;
  scroll-snap-align:start;
  background:white;
  color:var(--navy);
  border:1px solid var(--border);
  border-radius:26px;
  padding:26px;
  box-shadow:var(--shadow);
  text-align:left;
}
.review-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:14px;
}
.avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--blue);
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:950;
  flex:0 0 48px;
}
.review-head strong{
  display:block;
  font-size:18px;
}
.review-head span{
  color:var(--muted);
  font-size:14px;
}
.stars{
  color:#f5b800;
  font-size:22px;
  letter-spacing:1px;
  margin-bottom:12px;
}
.review-card p{
  color:#35475b;
  font-size:18px;
  margin:0;
}
.carousel-hint{
  color:var(--muted);
  font-weight:800;
  text-align:center;
  margin:0;
}

@media(max-width:920px){
  .review-card{
    flex-basis:82vw;
  }
}

/* Ajustes V3.5 */
.logo-img{
  height:44px;
  width:auto;
  display:block;
}
.photo-card{
  overflow:hidden;
  border-radius:24px;
  border:1px solid var(--border);
  background:white;
  box-shadow:var(--shadow);
}
.photo-card img{
  width:100%;
  height:260px;
  object-fit:cover;
  display:block;
}
.photo-card h3{
  margin:0;
  padding:18px 20px 22px;
  font-size:20px;
  line-height:1.2;
}
.float-wa img{
  width:35px;
  height:35px;
  display:block;
}
@media(max-width:920px){
  .logo-img{height:36px;}
  .photo-card img{height:260px;}
}

/* Ajustes V3.6 */
.banner{
  background:#566575 !important;
  color:white !important;
}
.logo-img{
  height:56px !important;
}
.brand{
  gap:18px !important;
}
.photo-card{
  text-decoration:none;
  color:var(--navy);
  transition:transform .15s ease, box-shadow .15s ease;
}
.photo-card:hover{
  transform:translateY(-3px);
  box-shadow:0 22px 55px rgba(7,27,51,.16);
}
.float-wa img{
  width:40px !important;
  height:40px !important;
}
@media(max-width:920px){
  .logo-img{
    height:44px !important;
  }
}

/* Ajustes V3.8: galería tipo lightbox/carrusel */
.photo-card{
  border:1px solid var(--border);
  background:white;
  padding:0;
  cursor:pointer;
  font-family:inherit;
  text-align:left;
}
.lightbox{
  position:fixed;
  inset:0;
  z-index:200;
  background:rgba(2,10,20,.86);
  display:none;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.lightbox.is-open{
  display:flex;
}
.no-scroll{
  overflow:hidden;
}
.lightbox-content{
  max-width:min(980px,88vw);
  max-height:88vh;
  text-align:center;
}
.lightbox-content img{
  max-width:100%;
  max-height:76vh;
  object-fit:contain;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(0,0,0,.4);
}
.lightbox-content p{
  color:white;
  font-size:20px;
  font-weight:850;
  margin:14px 0 0;
}
.lightbox-close{
  position:absolute;
  top:20px;
  right:24px;
  border:0;
  background:white;
  color:var(--navy);
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:32px;
  line-height:1;
  cursor:pointer;
}
.lightbox-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:0;
  background:white;
  color:var(--navy);
  width:54px;
  height:54px;
  border-radius:50%;
  font-size:46px;
  line-height:.8;
  cursor:pointer;
}
.lightbox-prev{
  left:24px;
}
.lightbox-next{
  right:24px;
}
@media(max-width:920px){
  .lightbox{
    padding:18px;
  }
  .lightbox-arrow{
    width:46px;
    height:46px;
    font-size:38px;
  }
  .lightbox-prev{
    left:10px;
  }
  .lightbox-next{
    right:10px;
  }
  .lightbox-close{
    top:12px;
    right:12px;
  }
  .lightbox-content img{
    max-height:72vh;
  }
}

/* Ajustes V3.9: logo completo EVEREST */
.logo-full{
  height:58px !important;
  width:auto !important;
  object-fit:contain;
}
.header .brand{
  letter-spacing:normal !important;
}
@media(max-width:920px){
  .logo-full{
    height:46px !important;
  }
}

/* Ajustes V4.2: video local MP4 en modal vertical */
.logo-full,
.logo-img{
  height:76px !important;
  width:auto !important;
  object-fit:contain !important;
}
.header{
  min-height:96px;
}
.header .brand{
  letter-spacing:normal !important;
}
.hero-video.video-trigger{
  border:0;
  cursor:pointer;
  padding:0;
  font-family:inherit;
  position:relative;
}
.hero-video.video-trigger::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(7,27,51,.18);
  transition:.18s ease;
}
.hero-video.video-trigger:hover::after{
  background:rgba(7,27,51,.08);
}
.video-cover-content{
  position:relative;
  z-index:2;
  width:82%;
  min-height:190px;
  border:2px dashed rgba(255,255,255,.82);
  border-radius:24px;
  background:rgba(7,27,51,.48);
  color:white;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
  margin:auto;
}
.video-cover-content strong{
  font-size:28px;
  line-height:1.1;
}
.video-cover-content small{
  margin-top:6px;
  font-size:16px;
  opacity:.94;
}
.play-button{
  width:68px;
  height:68px;
  border-radius:50%;
  background:var(--green);
  color:#062316;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:30px;
  padding-left:4px;
  margin-bottom:16px;
  box-shadow:0 14px 34px rgba(24,214,109,.28);
}
.video-modal{
  position:fixed;
  inset:0;
  z-index:300;
  background:rgba(2,10,20,.88);
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.video-modal.is-open{
  display:flex;
}
.video-modal-inner{
  width:min(420px,86vw);
  aspect-ratio:9/16;
  background:#000;
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.45);
}
.video-modal-inner video{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
  display:block;
}
.video-modal-close{
  position:absolute;
  top:20px;
  right:24px;
  border:0;
  background:white;
  color:var(--navy);
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:32px;
  line-height:1;
  cursor:pointer;
}
@media(max-width:920px){
  .logo-full,
  .logo-img{
    height:56px !important;
  }
  .header{
    min-height:82px;
  }
  .video-cover-content{
    width:84%;
    min-height:170px;
  }
  .video-cover-content strong{
    font-size:24px;
  }
  .play-button{
    width:60px;
    height:60px;
    font-size:27px;
  }
  .video-modal{
    padding:16px;
  }
  .video-modal-inner{
    width:min(430px,92vw);
  }
  .video-modal-close{
    top:12px;
    right:12px;
  }
}
