
:root{
  --navy:#08254b;
  --navy-dark:#06182d;
  --red:#d82027;
  --paper:#f5f7f9;
  --ink:#10233f;
  --muted:#65758b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff}
a{text-decoration:none;color:inherit}

/* HEADER */
.site-header{
  height:126px;
  padding:0 4.2vw;
  display:grid;
  grid-template-columns:120px 1fr auto;
  align-items:center;
  gap:24px;
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #eef1f4;
  backdrop-filter:blur(12px);
}
.brand{display:flex;align-items:center}
.brand img{height:88px;width:72px;object-fit:contain;display:block}
nav{display:flex;align-items:center;justify-content:center;gap:28px;font-size:12px;font-weight:800;text-transform:uppercase}
nav a{padding:18px 0;white-space:nowrap;position:relative}
nav a:hover,nav a.active{color:var(--red)}
nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--red)}
.header-cta{
  background:var(--red);
  color:#fff;
  padding:18px 24px;
  border-radius:7px;
  font-size:13px;
  font-weight:800;
  box-shadow:0 8px 22px rgba(216,32,39,.18);
  white-space:nowrap;
}
.header-cta span{font-size:18px;margin-right:8px}
.menu-button{display:none;border:0;background:none;font-size:28px;color:var(--navy)}

/* HERO */
.hero{
  height:calc(100vh - 126px);
  min-height:650px;
  max-height:900px;
  position:relative;
  overflow:hidden;
  background:#f7f9fb;
}
.hero-photo{
  position:absolute;
  inset:0 0 0 38%;
  background-image:url("assets/hero-guard.jpg");
  background-size:cover;
  background-position:center right;
  background-repeat:no-repeat;
}
.hero-fade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,#f8fafc 0%,#f8fafc 27%,rgba(248,250,252,.95) 38%,rgba(248,250,252,.60) 53%,rgba(248,250,252,.08) 68%,rgba(248,250,252,0) 78%),
    linear-gradient(0deg,rgba(247,249,251,.08),rgba(247,249,251,.08));
}
.hero-content{
  position:relative;
  z-index:3;
  width:min(650px,47vw);
  margin-left:4.7vw;
  padding-top:17vh;
}
.hero-rule{
  display:block;
  width:40px;
  height:3px;
  background:var(--red);
  margin-bottom:35px;
}
.hero h1{
  margin:0;
  font-size:clamp(54px,5vw,76px);
  line-height:1.02;
  letter-spacing:-3.4px;
  color:#092b56;
  font-weight:800;
}
.hero h1 strong{
  color:var(--red);
  font-weight:800;
}
.hero-content>p{
  width:min(490px,90%);
  margin:28px 0 0;
  color:#56677e;
  font-size:19px;
  line-height:1.65;
}
.hero-actions{
  display:flex;
  gap:14px;
  margin-top:34px;
}
.btn{
  min-height:58px;
  padding:0 25px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:6px;
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  transition:.2s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-red{
  background:var(--red);
  color:#fff;
  box-shadow:0 8px 20px rgba(216,32,39,.13);
}
.btn-outline{
  color:var(--navy);
  border:1.5px solid var(--navy);
  background:rgba(255,255,255,.55);
}
.btn span{font-size:18px;margin-right:9px}
.wave{
  position:absolute;
  z-index:4;
  left:0;
  bottom:-5px;
  width:66%;
  height:155px;
  pointer-events:none;
  opacity:.92;
}
.wave svg{width:100%;height:100%}

/* SECTIONS */
section:not(.hero){padding:95px 7vw}
.light{background:#fff}
.soft{background:var(--paper)}
.dark{background:var(--navy-dark);color:#fff}
.eyebrow{font-size:11px;letter-spacing:2.1px;font-weight:800;color:var(--red);margin-bottom:25px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:8vw}
.two h2,.feature h2,section:not(.hero)>h2,.contact-section h2{
  font-size:clamp(34px,4vw,56px);
  line-height:1.08;
  letter-spacing:-2px;
  margin:0;
}
.two p,.feature p,.lead{font-size:17px;line-height:1.8;color:var(--muted);margin-top:0}
.dark>h2{max-width:820px;margin-bottom:42px}
.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.grid article{background:#0d2948;border:1px solid #183858;padding:25px;min-height:245px}
.grid i{font-style:normal;color:#e03a41;font-weight:800;font-size:12px}
.grid h3{font-size:19px;margin:35px 0 12px}
.grid p{font-size:13px;color:#afbdcb;line-height:1.7}
.feature{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw}
.locations{display:grid;gap:14px}
.locations div{border-top:3px solid var(--red);background:var(--paper);padding:24px}
.locations b,.locations span{display:block}
.locations span{font-size:13px;color:var(--muted);margin-top:8px;line-height:1.6}
.lead{max-width:850px}
.training{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:35px}
.training span{background:#fff;border:1px solid #e0e4e9;padding:17px;font-size:13px;font-weight:700}
.credentials{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:40px}
.credentials div{background:#0d2948;border-top:3px solid var(--red);padding:24px}
.credentials small,.credentials strong{display:block}
.credentials small{color:#9cafbf;margin-bottom:12px}
.credentials strong{font-size:17px}
.note{color:#aebbc8;font-size:13px;margin-top:24px}
.contact-section{background:#eef1f4;display:flex;align-items:end;justify-content:space-between;gap:40px}
.contact-section h2{max-width:760px;margin:15px 0}
.contact-section p{color:var(--muted);font-size:18px}
footer{background:#040d19;color:#8795a4;padding:28px 7vw;display:flex;justify-content:space-between;gap:25px;font-size:11px}
footer a{color:#fff}

/* RESPONSIVE */
@media(max-width:1200px){
  .site-header{grid-template-columns:90px 1fr auto;padding:0 3vw}
  .site-header nav{gap:15px;font-size:10.5px}
  .header-cta{padding:15px 17px}
}
@media(max-width:1000px){
  .site-header{height:86px;grid-template-columns:70px 1fr auto;padding:0 22px}
  .brand img{height:65px;width:54px}
  .menu-button{display:block;justify-self:end}
  .site-header nav{
    display:none;position:absolute;top:86px;left:0;right:0;background:#fff;
    padding:25px;flex-direction:column;box-shadow:0 12px 25px rgba(10,30,50,.10)
  }
  .site-header nav.open{display:flex}
  .header-cta{display:none}
  .hero{height:auto;min-height:720px}
  .hero-photo{inset:0 0 0 22%;background-position:62% center}
  .hero-fade{background:linear-gradient(90deg,#f8fafc 0%,#f8fafc 30%,rgba(248,250,252,.93) 50%,rgba(248,250,252,.3) 72%,rgba(248,250,252,0) 100%)}
  .hero-content{padding-top:120px;width:60vw;margin-left:5vw}
  .grid{grid-template-columns:repeat(2,1fr)}
  .credentials{grid-template-columns:repeat(2,1fr)}
  .two,.feature{grid-template-columns:1fr}
  .training{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .hero{min-height:780px}
  .hero-photo{inset:38% 0 0 0;background-position:58% center}
  .hero-fade{
    background:
      linear-gradient(180deg,#f8fafc 0%,#f8fafc 39%,rgba(248,250,252,.82) 52%,rgba(248,250,252,.05) 73%),
      linear-gradient(90deg,rgba(248,250,252,.65),rgba(248,250,252,.05));
  }
  .hero-content{width:auto;margin:0;padding:62px 24px 0}
  .hero h1{font-size:49px;letter-spacing:-2.3px}
  .hero-content>p{font-size:16px;width:100%}
  .hero-actions{flex-direction:column;align-items:flex-start}
  .wave{width:100%;height:115px}
  section:not(.hero){padding:70px 24px}
  .grid,.credentials,.training{grid-template-columns:1fr}
  .contact-section{align-items:flex-start;flex-direction:column}
  footer{padding:28px 24px;flex-direction:column}
}


/* ===== QUIÉNES SOMOS · V3 ANIMADA ===== */
.about-modern{
  background:radial-gradient(circle at 68% 35%,rgba(11,75,124,.055),transparent 31%),linear-gradient(180deg,#fbfcfe 0%,#fff 100%);
  padding:82px 5.5vw 62px;overflow:hidden;
}
.about-inner{display:grid;grid-template-columns:.9fr 1.25fr;gap:4vw;align-items:center;max-width:1500px;margin:0 auto}
.about-kicker{color:var(--red);font-size:13px;font-weight:800;letter-spacing:.8px;margin-bottom:30px}
.about-copy h2{font-size:clamp(40px,4.2vw,66px);line-height:1.08;letter-spacing:-2.4px;margin:0;max-width:640px;color:#0a2a53}
.about-copy h2 strong{color:var(--red)}
.about-rule{display:block;width:72px;height:3px;background:var(--red);margin:30px 0}
.about-copy p{max-width:530px;color:#253a56;font-size:18px;line-height:1.75;margin:0}
.about-copy p b{color:var(--red)}
.map-stage{position:relative;min-height:500px;display:grid;place-items:center}
.mexico-map{width:min(100%,920px);display:block;filter:drop-shadow(0 18px 22px rgba(20,38,60,.11));animation:mapFloat 7s ease-in-out infinite}
@keyframes mapFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

.pulse-pin{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 0 rgba(216,32,39,.35);animation:pinPulse 2.8s infinite;z-index:3}
.pulse-pin::after{content:"";position:absolute;inset:-6px;border:1px solid rgba(216,32,39,.35);border-radius:50%}
.pin1{left:29%;top:24%;animation-delay:0s}.pin2{left:49%;top:31%;animation-delay:.45s}.pin3{left:58%;top:48%;animation-delay:.9s}.pin4{left:71%;top:58%;animation-delay:1.35s}.pin5{left:61%;top:70%;animation-delay:1.8s}.pin6{left:90%;top:61%;animation-delay:2.25s}
@keyframes pinPulse{0%{box-shadow:0 0 0 0 rgba(216,32,39,.42);transform:scale(.95)}55%{box-shadow:0 0 0 18px rgba(216,32,39,0);transform:scale(1.08)}100%{box-shadow:0 0 0 0 rgba(216,32,39,0);transform:scale(.95)}}

.services-served{max-width:1500px;margin:20px auto 0}
.served-title{display:grid;grid-template-columns:1fr auto 1fr;gap:22px;align-items:center;margin-bottom:20px}
.served-title span{height:1px;background:#d5dce5;position:relative}
.served-title span:first-child::after,.served-title span:last-child::before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--red);top:-3px}
.served-title span:first-child::after{right:-1px}.served-title span:last-child::before{left:-1px}
.served-title h3{margin:0;color:#0b2a52;font-size:23px;letter-spacing:-.4px}
.served-grid{display:grid;grid-template-columns:repeat(6,1fr);background:rgba(255,255,255,.87);border:1px solid #eef1f5;box-shadow:0 14px 35px rgba(24,44,70,.06);border-radius:20px;padding:16px 10px 10px}
.sector-card{min-width:0;padding:8px 12px 14px;text-align:center;position:relative;transition:transform .28s ease}
.sector-card:not(:last-child)::after{content:"";position:absolute;right:0;top:16%;height:68%;width:1px;background:#dde4ec}
.sector-card img{width:100%;max-width:190px;height:145px;object-fit:contain;display:block;margin:0 auto;transition:transform .3s cubic-bezier(.2,.8,.2,1),filter .3s ease;filter:drop-shadow(0 8px 7px rgba(20,40,60,.10))}
.sector-card h4{margin:5px auto 0;color:#0a2a53;font-size:16px;line-height:1.2;max-width:155px}
.sector-card:hover{transform:translateY(-3px)}
.sector-card:hover img{transform:translateY(-9px) scale(1.055);filter:drop-shadow(0 16px 12px rgba(20,40,60,.16))}
.reveal,.reveal-delay{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal-delay{transition-delay:.18s}.reveal.is-visible,.reveal-delay.is-visible{opacity:1;transform:translateY(0)}

@media(max-width:1050px){
  .about-inner{grid-template-columns:1fr}
  .map-stage{min-height:430px}
  .served-grid{grid-template-columns:repeat(3,1fr)}
  .sector-card:nth-child(3)::after{display:none}
}
@media(max-width:650px){
  .about-modern{padding:64px 22px 45px}
  .about-copy h2{font-size:42px;letter-spacing:-1.5px}
  .about-copy p{font-size:16px}
  .map-stage{min-height:320px;margin-top:15px}
  .served-title{grid-template-columns:1fr}
  .served-title span{display:none}
  .served-title h3{text-align:center}
  .served-grid{grid-template-columns:repeat(2,1fr)}
  .sector-card:nth-child(odd)::after{display:block}
  .sector-card:nth-child(even)::after{display:none}
  .sector-card img{height:120px}
}
@media(prefers-reduced-motion:reduce){
  .mexico-map,.pulse-pin{animation:none}
  .reveal,.reveal-delay{opacity:1;transform:none;transition:none}
  .sector-card,.sector-card img{transition:none}
}
\n\n/* ===== ALET · MAPA E ICONOS ACTUALIZADOS ===== */\n.map-stage{position:relative;overflow:visible}.mexico-map{width:min(100%,920px);display:block;object-fit:contain;animation:aletMapFloat 7.5s ease-in-out infinite;transform-origin:center center;filter:drop-shadow(0 18px 24px rgba(16,35,63,.10))}@keyframes aletMapFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.006)}}.map-animation-layer{position:absolute;inset:0;pointer-events:none;z-index:4}.map-pulse{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#e01f26;box-shadow:0 0 0 0 rgba(224,31,38,.42);animation:aletPulse 2.7s ease-out infinite}.map-pulse::before,.map-pulse::after{content:"";position:absolute;inset:50%;width:14px;height:14px;margin:-7px;border:1.5px solid rgba(224,31,38,.30);border-radius:50%;animation:aletRing 2.7s ease-out infinite}.map-pulse::after{animation-delay:.8s}@keyframes aletPulse{0%,100%{transform:scale(.85);opacity:.9;box-shadow:0 0 0 0 rgba(224,31,38,.36)}50%{transform:scale(1.06);opacity:1;box-shadow:0 0 0 14px rgba(224,31,38,0)}}@keyframes aletRing{0%{transform:scale(.5);opacity:.65}70%,100%{transform:scale(3.1);opacity:0}}.map-pulse.p1{left:32%;top:29%;animation-delay:0s}.map-pulse.p2{left:47%;top:37%;animation-delay:.35s}.map-pulse.p3{left:58%;top:46%;animation-delay:.7s}.map-pulse.p4{left:66%;top:62%;animation-delay:1.05s}.map-pulse.p5{left:59%;top:76%;animation-delay:1.4s}.map-pulse.p6{left:88%;top:71%;animation-delay:1.75s}.sector-card.icon-float img{background:transparent!important;mix-blend-mode:normal;animation:aletIconIdle 5.5s ease-in-out infinite}.sector-card.icon-float:nth-child(2) img{animation-delay:.45s}.sector-card.icon-float:nth-child(3) img{animation-delay:.9s}.sector-card.icon-float:nth-child(4) img{animation-delay:1.35s}.sector-card.icon-float:nth-child(5) img{animation-delay:1.8s}.sector-card.icon-float:nth-child(6) img{animation-delay:2.25s}@keyframes aletIconIdle{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}.sector-card.icon-float:hover img{animation:none;transform:translateY(-10px) scale(1.055)}@media(prefers-reduced-motion:reduce){.mexico-map,.map-pulse,.map-pulse::before,.map-pulse::after,.sector-card.icon-float img{animation:none!important}}\n
/* ===== SERVICIOS CON LOTTIE ===== */
.services-lottie-section{background:radial-gradient(circle at 48% 15%,rgba(17,55,91,.55),transparent 38%),#06192e;color:#fff}
.services-lottie-section>h2{max-width:900px;margin-bottom:42px}
.services-lottie-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.service-lottie-card{position:relative;min-height:390px;padding:24px 24px 28px;background:linear-gradient(180deg,#123253 0%,#0e2a48 100%);border:1px solid rgba(93,137,179,.28);overflow:hidden;transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease}
.service-lottie-card:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.035),transparent 45%);pointer-events:none}
.service-lottie-card:hover{transform:translateY(-7px);border-color:rgba(232,40,49,.60);background:linear-gradient(180deg,#15395f 0%,#102d4c 100%);box-shadow:0 18px 34px rgba(0,0,0,.18)}
.service-number{position:relative;z-index:2;color:#ff313a;font-weight:800;font-size:13px;letter-spacing:.3px}
.lottie-box{height:145px;width:100%;margin:4px auto 6px;position:relative;z-index:2;display:flex;align-items:center;justify-content:center}
.lottie-box svg{width:100%!important;height:100%!important;max-width:155px;max-height:145px;overflow:visible!important}
.service-lottie-card h3{position:relative;z-index:2;margin:5px 0 12px;font-size:19px;line-height:1.25}
.service-lottie-card p{position:relative;z-index:2;margin:0;color:#bed0e1;font-size:13px;line-height:1.72}
@media(max-width:1180px){.services-lottie-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.services-lottie-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.services-lottie-grid{grid-template-columns:1fr}.service-lottie-card{min-height:340px}.lottie-box{height:130px}}
@media(prefers-reduced-motion:reduce){.service-lottie-card{transition:none}.service-lottie-card:hover{transform:none}}

/* Lottie visibility fix */
.lottie-box{
  min-height:160px;
  height:160px;
  margin:10px auto 12px;
}
.lottie-box svg{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:180px!important;
  max-height:160px!important;
  margin:auto;
}
.lottie-fallback{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:#ef3139;
  font-size:42px;
}


/* =========================================================
   ALET WEB V4 — SERVICIOS
   Basado en la propuesta visual aprobada
   ========================================================= */

.services-v4{
  --v4-navy:#061a30;
  --v4-navy-deep:#031427;
  --v4-red:#f12631;
  --v4-white:#f8f9fb;
  --v4-muted:#b6c1d0;
  min-height:760px;
  padding:72px 4.2vw 86px;
  color:var(--v4-white);
  background:
    radial-gradient(circle at 50% 45%, rgba(18,61,103,.22), transparent 36%),
    linear-gradient(120deg,var(--v4-navy-deep) 0%,var(--v4-navy) 48%,#04172b 100%);
  overflow:hidden;
}

.services-v4-head{
  max-width:850px;
  margin:0 auto 34px;
  text-align:center;
}

.services-v4-kicker{
  color:var(--v4-red);
  font-size:13px;
  line-height:1;
  font-weight:800;
  letter-spacing:.7px;
  text-transform:uppercase;
  margin-bottom:22px;
}

.services-v4-head h2{
  margin:0;
  color:#fff;
  font-size:clamp(50px,5.4vw,78px);
  line-height:.95;
  font-weight:800;
  letter-spacing:-2px;
}

.services-v4-head p{
  color:var(--v4-muted);
  margin:26px auto 0;
  font-size:clamp(16px,1.3vw,20px);
  line-height:1.65;
  font-weight:400;
}

.services-v4-grid{
  max-width:1540px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  align-items:center;
  gap:24px;
}

.service-v4-item{
  position:relative;
  min-width:0;
  text-align:center;
  padding:26px 12px 24px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-height:390px;
  border-radius:16px;
  transition:transform .28s ease, opacity .28s ease;
}

.service-v4-item:not(.featured){
  background:transparent;
}

.service-v4-item.featured{
  min-height:495px;
  padding:38px 28px 34px;
  background:linear-gradient(180deg,#ffffff 0%,#f6f8fb 100%);
  color:#08203c;
  box-shadow:
    0 24px 50px rgba(0,0,0,.22),
    inset 0 0 0 1px rgba(255,255,255,.8);
}

.service-v4-lottie{
  width:160px;
  height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 10px;
}

.service-v4-lottie svg{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:160px!important;
  max-height:150px!important;
  overflow:visible!important;
}

.service-v4-item.featured .service-v4-lottie{
  width:178px;
  height:165px;
  margin-top:2px;
}

.service-v4-number{
  margin-top:6px;
  color:var(--v4-red);
  font-size:22px;
  line-height:1;
  font-weight:800;
}

.service-v4-item h3{
  margin:18px 0 0;
  color:#fff;
  font-size:clamp(18px,1.4vw,23px);
  line-height:1.15;
  font-weight:750;
  letter-spacing:-.35px;
}

.service-v4-item.featured h3{
  color:#08203c;
}

.service-v4-item p{
  margin:27px auto 0;
  max-width:255px;
  color:var(--v4-muted);
  font-size:14px;
  line-height:1.72;
  font-weight:400;
}

.service-v4-item.featured p{
  color:#59677b;
}

@media (hover:hover) and (pointer:fine){
  .service-v4-item:not(.featured):hover{
    transform:translateY(-7px);
  }
  .service-v4-item.featured:hover{
    transform:translateY(-6px) scale(1.012);
  }
}

@media(max-width:1180px){
  .services-v4{
    padding-left:32px;
    padding-right:32px;
  }
  .services-v4-grid{
    grid-template-columns:repeat(3,1fr);
    max-width:960px;
  }
  .service-v4-item.featured{
    order:-1;
    grid-column:2;
  }
}

@media(max-width:760px){
  .services-v4{
    padding:62px 20px 70px;
  }
  .services-v4-head{
    margin-bottom:28px;
  }
  .services-v4-head p br{
    display:none;
  }
  .services-v4-grid{
    grid-template-columns:1fr;
    max-width:420px;
    gap:10px;
  }
  .service-v4-item,
  .service-v4-item.featured{
    min-height:auto;
    padding:30px 22px;
    background:rgba(13,43,72,.6);
    border:1px solid rgba(255,255,255,.08);
    color:#fff;
    box-shadow:none;
    order:initial;
    grid-column:auto;
  }
  .service-v4-item.featured h3{
    color:#fff;
  }
  .service-v4-item.featured p{
    color:var(--v4-muted);
  }
  .service-v4-lottie,
  .service-v4-item.featured .service-v4-lottie{
    width:150px;
    height:135px;
  }
}

@media(prefers-reduced-motion:reduce){
  .service-v4-item{
    transition:none;
  }
}
\n\n/* ===== V4 ajuste: tarjeta blanca solo al pasar el puntero ===== */
@media (hover:hover) and (pointer:fine){
  .service-v4-item,
  .service-v4-item.featured{
    min-height:390px;
    padding:26px 12px 24px;
    background:transparent;
    color:var(--v4-white);
    box-shadow:none;
    transition:transform .28s ease, background .28s ease, box-shadow .28s ease, color .28s ease, padding .28s ease;
  }
  .service-v4-item .service-v4-lottie,
  .service-v4-item.featured .service-v4-lottie{
    width:160px;
    height:150px;
    margin:0 auto 10px;
  }
  .service-v4-item h3,
  .service-v4-item.featured h3{color:#fff;}
  .service-v4-item p,
  .service-v4-item.featured p{color:var(--v4-muted);}
  .service-v4-item:hover,
  .service-v4-item.featured:hover{
    min-height:495px;
    padding:38px 28px 34px;
    transform:translateY(-6px) scale(1.012);
    background:linear-gradient(180deg,#ffffff 0%,#f6f8fb 100%);
    color:#08203c;
    box-shadow:0 24px 50px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.8);
  }
  .service-v4-item:hover .service-v4-lottie,
  .service-v4-item.featured:hover .service-v4-lottie{
    width:178px;
    height:165px;
    margin-top:2px;
  }
  .service-v4-item:hover h3,
  .service-v4-item.featured:hover h3{color:#08203c;}
  .service-v4-item:hover p,
  .service-v4-item.featured:hover p{color:#59677b;}
}

/* ===== Personal y capacitación — versión aprobada ===== */
.personal-section{background:#fff;padding:72px 5.5% 86px;color:#071d43}
.personal-section .eyebrow{color:#ef1f28;font-weight:800;letter-spacing:.08em;margin-bottom:30px}
.personal-section h2{position:relative;display:inline-block;margin:0;font-size:clamp(38px,4.2vw,66px);line-height:1.05;letter-spacing:-.035em;color:#071d43}
.personal-section .yellow-stroke{position:absolute;right:0;bottom:-12px;width:31%;height:7px;background:#f5ad00;border-radius:99px;transform:rotate(-.4deg)}
.personal-section .lead{max-width:820px;margin:38px 0 0;color:#61708d;font-size:clamp(17px,1.45vw,22px);line-height:1.8}
.training-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px}
.training-card{min-height:92px;display:flex;align-items:center;gap:26px;padding:18px 30px;background:#f4f5f7;border:1px solid #e2e6eb;border-radius:10px;box-shadow:0 5px 15px rgba(9,29,63,.055);transition:transform .22s ease,box-shadow .22s ease,background .22s ease}
.training-card:hover{transform:translateY(-3px);background:#eef0f3;box-shadow:0 10px 24px rgba(9,29,63,.09)}
.training-card span{font-size:16px;font-weight:750;color:#071d43;line-height:1.25}
.training-icon{width:64px;height:58px;display:grid;place-items:center;flex:0 0 64px}
.training-icon svg{width:58px;height:58px;fill:none;stroke:#071d43;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.training-icon svg .accent{stroke:#f5ad00}
@media(max-width:980px){.training-grid{grid-template-columns:repeat(2,1fr)}.personal-section{padding-left:6%;padding-right:6%}}
@media(max-width:620px){.training-grid{grid-template-columns:1fr;gap:14px}.training-card{min-height:78px;padding:13px 20px}.training-icon{width:54px;height:50px;flex-basis:54px}.training-icon svg{width:48px;height:48px}.personal-section .yellow-stroke{width:42%}}


/* =========================================================
   ALET WEB V5 — PERMISOS Y ACREDITACIONES · MINIMALISTA
   ========================================================= */
.permits-v5{background:radial-gradient(circle at 50% 38%,rgba(19,55,91,.16),transparent 48%),linear-gradient(120deg,#06192e 0%,#071d34 48%,#04172b 100%);color:#fff;padding:72px 4vw 78px;overflow:hidden}
.permits-v5-inner{width:min(1500px,92vw);margin:0 auto;text-align:center}
.permits-v5-kicker{color:#fff;font-size:12px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;margin-bottom:24px}
.permits-v5-kicker::first-letter{color:#ff2833}.permits-v5-kicker{background:linear-gradient(90deg,#ff2833 0 43%,#fff 43%);-webkit-background-clip:text;background-clip:text;color:transparent}
.permits-v5 h2{margin:0 auto;color:#fff;font-size:clamp(42px,4.1vw,64px);line-height:1.05;letter-spacing:-1.8px;max-width:900px}
.permits-v5-yellow-line{display:block;width:135px;height:4px;margin:24px auto 25px;border-radius:999px;background:#ffb400}
.permits-v5-intro{margin:0 auto;color:#cbd3de;font-size:16px;line-height:1.55;max-width:790px}
.permits-v5-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:58px;align-items:start}
.permit-v5-item{position:relative;min-width:0;padding:0 34px;text-align:center}
.permit-v5-item:not(:last-child)::after{content:"";position:absolute;right:0;top:0;height:100%;width:1px;background:rgba(170,190,210,.22)}
.permit-v5-image{height:190px;width:100%;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;background:transparent;overflow:visible}
.permit-v5-image img{display:block;max-width:92%;max-height:178px;width:auto;height:auto;object-fit:contain;object-position:center;background:transparent}
.permit-v5-image.iso img{max-width:180px;max-height:180px;border-radius:50%}
.permit-v5-image.amesp img{max-width:260px;max-height:150px}
.permit-v5-image.certificate img{max-width:280px;max-height:180px;object-fit:contain}
.permit-v5-red-line{display:block;width:40px;height:2px;margin:10px auto 18px;background:#ff2934}
.permit-v5-item h3{margin:0;color:#fff;font-size:20px;line-height:1.18;font-weight:750}
.permit-v5-item p{margin:14px auto 0;color:#c9d2de;font-size:14px;line-height:1.5;max-width:280px}
@media(max-width:1100px){.permits-v5-grid{grid-template-columns:repeat(2,1fr);row-gap:54px}.permit-v5-item:nth-child(2)::after{display:none}}
@media(max-width:650px){.permits-v5{padding:56px 20px 62px}.permits-v5 h2{font-size:40px}.permits-v5 h2 br{display:none}.permits-v5-grid{grid-template-columns:1fr;margin-top:45px;row-gap:44px}.permit-v5-item{padding:0 10px}.permit-v5-item::after{display:none!important}.permit-v5-image{height:170px}.permits-v5-intro{font-size:15px}}

/* ===== ALET V5 · CLIENTES — DOS CARRUSELES ===== */
.clients-v5{background:#061a31;color:#fff;padding:68px 0 78px;overflow:hidden}
.clients-v5-inner{width:min(1420px,92vw);margin:auto;text-align:center}
.clients-v5-eyebrow{color:#ff2738;font-size:12px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:16px}
.clients-v5 h2{font-size:clamp(30px,3.1vw,48px);line-height:1.08;margin:0 auto;max-width:900px;color:#fff}
.clients-v5-redline,.clients-v5-subline{display:block;width:64px;height:3px;background:#ff2738;border-radius:9px;margin:16px auto 0}
.clients-v5-group{margin-top:48px}
.clients-v5-group.government{margin-top:58px}
.clients-v5-group h3{margin:0;color:#fff;font-size:clamp(20px,2vw,28px);font-weight:600;letter-spacing:.04em}
.clients-v5-subline{width:54px;height:2px;margin-top:10px}
.clients-v5-carousel{position:relative;margin-top:20px;border:1px solid rgba(255,255,255,.13);border-radius:12px;background:rgba(11,40,70,.48);overflow:hidden;padding:24px 0;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.clients-v5-track{display:flex;width:max-content;align-items:center;gap:0;will-change:transform}
.private-track{animation:aletClientsScroll 34s linear infinite}
.government-track{animation:aletClientsScroll 68s linear infinite}
.clients-v5-carousel:hover .clients-v5-track{animation-play-state:paused}
.client-logo{width:240px;height:108px;flex:0 0 240px;display:flex;align-items:center;justify-content:center;padding:18px 28px;border-right:1px solid rgba(255,255,255,.12)}
.client-logo img{max-width:100%;max-height:72px;object-fit:contain;display:block}
.client-logo-photo img{max-height:76px;border-radius:4px}
.government .client-logo{width:210px;flex-basis:210px;height:96px;padding:16px 22px}
.government .client-logo img{max-height:62px}
@keyframes aletClientsScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:760px){.clients-v5{padding:52px 0 60px}.clients-v5-group{margin-top:38px}.clients-v5-group.government{margin-top:44px}.client-logo{width:180px;flex-basis:180px;height:92px;padding:14px 20px}.government .client-logo{width:170px;flex-basis:170px;height:86px}.private-track{animation-duration:28s}.government-track{animation-duration:58s}}
@media(prefers-reduced-motion:reduce){.clients-v5-track{animation-play-state:paused!important}.clients-v5-carousel{overflow-x:auto;mask-image:none;-webkit-mask-image:none}}


/* =========================================================
   ALET WEB V5 — CONTACTO Y FOOTER
   ========================================================= */
.contact-v6{
  background:#f7f8fa;
  padding:70px 5.5vw 0;
  color:#0a2140;
}
.contact-v6-inner{
  max-width:1500px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(330px,.7fr);
  gap:70px;
  align-items:stretch;
}
.contact-v6-main{
  padding:0 0 58px;
}
.contact-v6-kicker{
  color:#ed1f2b;
  font-size:13px;
  font-weight:800;
  letter-spacing:1.8px;
  margin-bottom:20px;
}
.contact-v6 h2{
  margin:0;
  font-size:clamp(42px,4vw,64px);
  line-height:1.04;
  letter-spacing:-1.8px;
  color:#0a2140;
}
.contact-v6-lead{
  margin:20px 0 38px;
  max-width:720px;
  color:#5e7189;
  font-size:18px;
  line-height:1.55;
}
.contact-v6-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px 28px;
}
.contact-v6-form label{
  position:relative;
  display:block;
}
.contact-v6-form label > span{
  position:absolute;
  z-index:2;
  left:18px;
  top:-9px;
  background:#f7f8fa;
  padding:0 7px;
  color:#0b2140;
  font-size:12px;
}
.contact-v6-form input,
.contact-v6-form textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #d8dde4;
  border-radius:11px;
  background:#fff;
  color:#0b2140;
  font:inherit;
  padding:18px 20px;
  outline:none;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.contact-v6-form textarea{
  min-height:96px;
  resize:vertical;
}
.contact-v6-form input:focus,
.contact-v6-form textarea:focus{
  border-color:#9caec2;
  box-shadow:0 0 0 3px rgba(10,33,64,.06);
}
.contact-v6-message{
  grid-column:1 / -1;
}
.contact-v6-actions{
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
  margin-top:28px;
}
.contact-v6-mail,
.contact-v6-whatsapp{
  border-radius:999px;
  min-height:54px;
  padding:0 30px;
  font-weight:800;
  letter-spacing:.2px;
  cursor:pointer;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.contact-v6-mail{
  border:0;
  color:#fff;
  background:#e91f2a;
  box-shadow:0 10px 24px rgba(233,31,42,.28);
  animation:aletMailPulse 3.2s ease-in-out infinite;
}
.contact-v6-mail:hover{
  transform:translateY(-3px);
  box-shadow:0 15px 30px rgba(233,31,42,.34);
}
.contact-v6-whatsapp{
  border:1.5px solid #32c565;
  color:#25a94f;
  background:#fff;
  animation:aletWhatsPulse 3.6s ease-in-out infinite;
}
.contact-v6-whatsapp:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(50,197,101,.16);
}
.contact-v6-or{
  color:#6c7b8e;
  font-size:15px;
}
.contact-v6-info{
  background:linear-gradient(145deg,#153555 0%,#102b48 100%);
  border-radius:18px 18px 0 0;
  padding:58px 48px;
  color:#fff;
}
.contact-v6-info h3{
  margin:0;
  color:#fff;
  font-size:25px;
}
.contact-v6-redline{
  display:block;
  width:48px;
  height:3px;
  background:#f12631;
  margin:18px 0 38px;
}
.contact-v6-info-row{
  display:flex;
  align-items:center;
  gap:17px;
  padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.contact-v6-info-row a{
  color:#fff;
  text-decoration:none;
  font-size:17px;
}
.contact-v6-info-icon{
  color:#f12631;
  font-size:24px;
}
.contact-v6-info-note{
  margin-top:28px;
  color:#c8d2df;
  font-size:14px;
  line-height:1.65;
}

.footer-v6{
  background:#06192e;
  color:#fff;
  padding:34px 5.5vw 26px;
}
.footer-v6-top,
.footer-v6-bottom{
  max-width:1500px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.footer-v6-brand img{
  display:block;
  width:125px;
  max-height:62px;
  object-fit:contain;
}
.footer-v6-nav{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:20px;
}
.footer-v6-nav a,
.footer-v6-bottom a{
  color:#fff;
  text-decoration:none;
  font-size:13px;
}
.footer-v6-nav a:hover,
.footer-v6-bottom a:hover{
  color:#ff3340;
}
.footer-v6-cta{
  border:1px solid #ff2934;
  border-radius:999px;
  padding:12px 22px;
  color:#fff;
  text-decoration:none;
  white-space:nowrap;
}
.footer-v6-divider{
  max-width:1500px;
  margin:30px auto 22px;
  height:1px;
  background:rgba(255,255,255,.18);
}
.footer-v6-bottom{
  color:#b9c4d1;
  font-size:12px;
}

@keyframes aletMailPulse{
  0%,100%{box-shadow:0 10px 24px rgba(233,31,42,.22)}
  50%{box-shadow:0 10px 34px rgba(233,31,42,.42)}
}
@keyframes aletWhatsPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(50,197,101,.0)}
  50%{box-shadow:0 0 0 10px rgba(50,197,101,.08)}
}
@keyframes aletNudge{
  0%,100%{transform:translateX(0)}
  30%{transform:translateX(-4px)}
  60%{transform:translateX(4px)}
}
.contact-v6-nudge{
  animation:aletNudge .35s ease!important;
}

@media(max-width:980px){
  .contact-v6-inner{
    grid-template-columns:1fr;
    gap:0;
  }
  .contact-v6-info{
    border-radius:18px 18px 0 0;
  }
  .footer-v6-top,
  .footer-v6-bottom{
    flex-direction:column;
    text-align:center;
  }
}
@media(max-width:640px){
  .contact-v6{
    padding:56px 20px 0;
  }
  .contact-v6-form{
    grid-template-columns:1fr;
  }
  .contact-v6-message{
    grid-column:auto;
  }
  .contact-v6-actions{
    align-items:stretch;
  }
  .contact-v6-mail,
  .contact-v6-whatsapp{
    width:100%;
  }
  .contact-v6-or{
    width:100%;
    text-align:center;
  }
  .contact-v6-info{
    padding:42px 26px;
  }
  .footer-v6{
    padding-left:20px;
    padding-right:20px;
  }
}
@media(prefers-reduced-motion:reduce){
  .contact-v6-mail,
  .contact-v6-whatsapp{
    animation:none!important;
    transition:none;
  }
}


/* ALET WEB V5 — Datos completos de contacto */
.contact-v6-info-row{
  min-height:62px;
}
.contact-v6-info-row > span:not(.contact-v6-info-icon),
.contact-v6-info-row a{
  color:#fff;
  font-size:16px;
  line-height:1.45;
}
.contact-v6-info-icon{
  width:26px;
  flex:0 0 26px;
  text-align:center;
  color:#f12631;
  font-size:23px;
}
.contact-v6-info .contact-v6-info-row:last-child{
  border-bottom:0;
}


/* =========================================================
   CORRECCIÓN FINAL · PERMISOS TRANSPARENTES / SIN RECORTES
   ========================================================= */
.permit-v5-image{
  background:transparent!important;
  overflow:visible!important;
  padding:0!important;
}
.permit-v5-image img{
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  object-fit:contain!important;
  object-position:center!important;
}
.permit-v5-image.iso img{
  max-width:176px!important;
  max-height:176px!important;
  border-radius:0!important;
}
.permit-v5-image.amesp img{
  max-width:255px!important;
  max-height:145px!important;
}
.permit-v5-image.certificate img{
  max-width:290px!important;
  max-height:185px!important;
}

/* =========================================================
   ALET WEB V5 — CLIENTES V6 (FONDO BLANCO)
   ========================================================= */
.clients-v6{
  background:#fff;
  color:#0b2442;
  padding:70px 0 84px;
  overflow:hidden;
}
.clients-v6-inner{
  width:min(1420px,92vw);
  margin:auto;
  text-align:center;
}
.clients-v6-eyebrow{
  color:#ed1f2b;
  font-size:12px;
  font-weight:800;
  letter-spacing:.20em;
  text-transform:uppercase;
  margin-bottom:18px;
}
.clients-v6 h2{
  margin:0 auto;
  max-width:930px;
  color:#0b2442;
  font-size:clamp(32px,3.2vw,50px);
  line-height:1.08;
  letter-spacing:-.8px;
}
.clients-v6-redline,
.clients-v6-subline{
  display:block;
  width:64px;
  height:3px;
  margin:18px auto 0;
  border-radius:99px;
  background:#ed1f2b;
}
.clients-v6-group{
  margin-top:52px;
}
.clients-v6-group.government{
  margin-top:62px;
}
.clients-v6-group h3{
  margin:0;
  color:#0b2442;
  font-size:clamp(22px,2vw,29px);
  font-weight:700;
  letter-spacing:.02em;
}
.clients-v6-subline{
  width:52px;
  height:2px;
  margin-top:10px;
}

/* No card backgrounds: logos sit directly on the section background. */
.clients-v6-carousel{
  position:relative;
  margin-top:22px;
  height:154px;
  overflow:hidden;
  border-top:1px solid #e6ebf0;
  border-bottom:1px solid #e6ebf0;
  background:transparent;
  display:flex;
  align-items:center;
  mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);
  -webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);
}
.clients-v6-track{
  display:flex;
  width:max-content;
  height:100%;
  align-items:center;
  will-change:transform;
}
.private-track-v6{
  animation:aletClientsScrollV6 46s linear infinite;
}
.government-track-v6{
  animation:aletClientsScrollV6 96s linear infinite;
}
.clients-v6-carousel:hover .clients-v6-track{
  animation-play-state:paused;
}

/* Equal invisible logo boxes. */
.clients-v6 .client-logo{
  box-sizing:border-box;
  width:235px;
  height:132px;
  flex:0 0 235px;
  padding:24px 30px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent !important;
  border:0 !important;
}
.clients-v6 .client-logo img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  background:transparent !important;
  border:0;
  border-radius:0;
  transition:transform .26s ease;
  transform-origin:center;
}
.clients-v6 .client-logo:hover img{
  transform:scale(1.045);
}

/* Epic and Vidara have more visual mass, so reduce them slightly. */
.clients-v6 .client-logo.compact-photo img{
  width:88%;
  height:88%;
}

/* Government uses the same invisible box dimensions for consistency. */
.clients-v6 .government .client-logo{
  width:235px;
  height:132px;
  flex-basis:235px;
  padding:24px 30px;
}

@keyframes aletClientsScrollV6{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

@media(max-width:760px){
  .clients-v6{
    padding:56px 0 64px;
  }
  .clients-v6-group{
    margin-top:42px;
  }
  .clients-v6-group.government{
    margin-top:48px;
  }
  .clients-v6-carousel{
    height:132px;
  }
  .clients-v6 .client-logo,
  .clients-v6 .government .client-logo{
    width:190px;
    height:112px;
    flex-basis:190px;
    padding:20px 24px;
  }
  .private-track-v6{animation-duration:42s}
  .government-track-v6{animation-duration:88s}
}

@media(prefers-reduced-motion:reduce){
  .clients-v6-track{
    animation:none!important;
  }
  .clients-v6 .client-logo img{
    transition:none;
  }
}


/* =========================================================
   ALET V5 · AJUSTE FINAL PERMISOS — ALINEACIÓN + ANIMACIÓN
   ========================================================= */
.permits-v5-kicker{
  color:#ff2833!important;
  background:none!important;
  -webkit-background-clip:initial!important;
  background-clip:initial!important;
}
.permits-v5-grid{
  align-items:stretch!important;
}
.permit-v5-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  min-height:324px;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .65s ease, transform .65s cubic-bezier(.2,.7,.2,1);
}
.permit-v5-item.is-visible{
  opacity:1;
  transform:translateY(0);
}
.permit-v5-item:not(:last-child)::after{
  top:8px!important;
  bottom:8px!important;
  height:auto!important;
  right:0!important;
  background:rgba(170,190,210,.24)!important;
}
.permit-v5-image{
  flex:0 0 190px;
  height:190px!important;
  margin-bottom:8px!important;
}
.permit-v5-image img{
  transition:transform .35s ease, filter .35s ease;
}
.permit-v5-item:hover .permit-v5-image img{
  transform:translateY(-5px) scale(1.035);
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.20));
}
.permit-v5-red-line{
  margin:8px auto 16px!important;
}
.permit-v5-item h3{
  min-height:48px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
}
.permit-v5-item p{
  margin-top:10px!important;
}
@keyframes permitFloatSoft{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-4px)}
}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .permit-v5-item.is-visible .permit-v5-image img{
    animation:permitFloatSoft 5.2s ease-in-out infinite;
  }
  .permit-v5-item.is-visible:nth-child(2) .permit-v5-image img{animation-delay:.45s}
  .permit-v5-item.is-visible:nth-child(3) .permit-v5-image img{animation-delay:.9s}
  .permit-v5-item.is-visible:nth-child(4) .permit-v5-image img{animation-delay:1.35s}
  .permit-v5-item:hover .permit-v5-image img{
    animation-play-state:paused;
    transform:translateY(-5px) scale(1.035);
  }
}
@media(max-width:1100px){
  .permit-v5-item{min-height:310px}
  .permit-v5-item:nth-child(2)::after{display:none!important}
}
@media(max-width:650px){
  .permit-v5-item{min-height:auto;opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .permit-v5-item{opacity:1!important;transform:none!important;transition:none!important}
  .permit-v5-image img{animation:none!important;transition:none!important}
}


/* ===== Personal y capacitación · trazo amarillo animado ===== */
.personal-section .yellow-stroke{
  overflow:visible;
  background:transparent;
  transform:rotate(-.4deg);
  transform-origin:left center;
}
.personal-section .yellow-stroke::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:70% 45% 65% 40% / 55% 60% 45% 50%;
  background:linear-gradient(90deg,#f5ad00 0%,#ffb800 55%,#f0a400 100%);
  box-shadow:0 1px 0 rgba(183,116,0,.18);
  clip-path:polygon(0 29%,8% 18%,18% 26%,30% 16%,42% 24%,53% 17%,64% 27%,76% 19%,88% 25%,100% 16%,100% 77%,91% 69%,79% 79%,68% 70%,55% 81%,43% 72%,31% 80%,18% 70%,8% 78%,0 67%);
  transform:scaleX(0);
  transform-origin:left center;
}
.personal-section .yellow-stroke.is-drawn::before{
  animation:aletYellowScribble 1.15s cubic-bezier(.2,.72,.25,1) forwards;
}
@keyframes aletYellowScribble{
  0%{transform:scaleX(0);opacity:.2}
  18%{opacity:1}
  72%{transform:scaleX(.92)}
  100%{transform:scaleX(1);opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .personal-section .yellow-stroke::before{transform:scaleX(1)!important;animation:none!important}
}


/* =========================================================
   ALET WEB — SERVICIOS V5
   Diseño compacto, integrado y animado
   ========================================================= */
.services-v5{
  --svc-navy:#061a30;
  --svc-deep:#031427;
  --svc-red:#ff2c35;
  --svc-gold:#f5ad00;
  --svc-white:#f8fafc;
  --svc-muted:#b9c6d5;
  background:
    radial-gradient(circle at 50% 42%,rgba(18,61,103,.24),transparent 35%),
    linear-gradient(120deg,var(--svc-deep) 0%,var(--svc-navy) 50%,#04172b 100%);
  color:var(--svc-white);
  padding:64px 4.2vw 68px;
  overflow:hidden;
}

.services-v5-head{
  max-width:820px;
  margin:0 auto 40px;
  text-align:center;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .65s ease,transform .65s ease;
}
.services-v5-head.is-visible{
  opacity:1;
  transform:none;
}
.services-v5-kicker{
  color:var(--svc-red);
  font-weight:850;
  letter-spacing:.13em;
  font-size:12px;
  text-transform:uppercase;
  margin-bottom:14px;
}
.services-v5-head h2{
  margin:0;
  font-size:clamp(44px,5vw,70px);
  line-height:.96;
  letter-spacing:-.045em;
  font-weight:850;
}
.services-v5-title-line{
  display:block;
  width:94px;
  height:4px;
  margin:18px auto 0;
  border-radius:999px;
  background:var(--svc-gold);
  transform:scaleX(0);
  transform-origin:center;
}
.services-v5-head.is-visible .services-v5-title-line{
  animation:svcDrawTitle .75s .18s cubic-bezier(.2,.8,.2,1) forwards;
}
.services-v5-head p{
  margin:22px auto 0;
  max-width:650px;
  color:var(--svc-muted);
  font-size:clamp(13px,1.05vw,16px);
  line-height:1.55;
}

.services-v5-grid{
  max-width:1440px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
}

.service-v5-card{
  position:relative;
  min-height:330px;
  padding:26px 18px 24px;
  border:1px solid rgba(117,157,197,.28);
  border-radius:15px;
  background:linear-gradient(180deg,rgba(10,37,65,.92),rgba(6,29,53,.84));
  box-shadow:inset 0 -2px 0 var(--svc-red);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  opacity:0;
  transform:translateY(24px) scale(.985);
  transition:
    opacity .55s ease,
    transform .55s cubic-bezier(.2,.75,.2,1),
    border-color .28s ease,
    box-shadow .28s ease,
    background .28s ease;
}
.service-v5-card.is-visible{
  opacity:1;
  transform:none;
}

.service-v5-icon-ring{
  width:82px;
  height:82px;
  border-radius:50%;
  display:grid;
  place-items:center;
  position:relative;
  border:1px solid rgba(255,44,53,.72);
  box-shadow:0 0 22px rgba(255,44,53,.08);
  margin-bottom:16px;
}
.service-v5-icon-ring::after{
  content:"";
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  right:1px;
  bottom:10px;
  background:var(--svc-red);
  box-shadow:0 0 12px rgba(255,44,53,.75);
  animation:svcPulseDot 1.8s ease-in-out infinite;
}
.service-v5-lottie{
  width:54px;
  height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.service-v5-lottie svg{
  width:100%!important;
  height:100%!important;
  max-width:54px!important;
  max-height:54px!important;
  overflow:visible!important;
}
.service-v5-number{
  color:var(--svc-red);
  font-size:19px;
  line-height:1;
  font-weight:850;
  margin-top:2px;
}
.service-v5-card h3{
  margin:14px 0 0;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:clamp(17px,1.25vw,21px);
  line-height:1.08;
  letter-spacing:-.025em;
}
.service-v5-gold-line{
  width:34px;
  height:2px;
  margin:14px auto 0;
  border-radius:999px;
  background:var(--svc-gold);
  transform:scaleX(.25);
  transform-origin:center;
  transition:transform .35s ease;
}
.service-v5-card p{
  margin:17px auto 0;
  max-width:210px;
  color:var(--svc-muted);
  font-size:13px;
  line-height:1.55;
}
.service-v5-card.is-visible .service-v5-icon-ring{
  animation:svcIconFloat 3.6s ease-in-out infinite;
}

.services-v5-footer{
  max-width:710px;
  min-height:72px;
  margin:42px auto 0;
  padding:15px 24px;
  border:1px solid rgba(117,157,197,.22);
  border-radius:12px;
  background:rgba(7,31,56,.74);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  opacity:0;
  transform:translateY(16px);
  transition:opacity .55s ease,transform .55s ease;
}
.services-v5-footer.is-visible{
  opacity:1;
  transform:none;
}
.services-v5-footer-icon{
  color:var(--svc-red);
  font-size:34px;
  line-height:1;
  animation:svcFooterGlow 2.2s ease-in-out infinite;
}
.services-v5-footer-rule{
  width:1px;
  height:42px;
  background:rgba(184,204,225,.32);
}
.services-v5-footer p{
  margin:0;
  color:#d7e1ec;
  font-size:14px;
  line-height:1.45;
}

@media (hover:hover) and (pointer:fine){
  .service-v5-card:hover{
    transform:translateY(-7px);
    border-color:rgba(255,44,53,.58);
    background:linear-gradient(180deg,rgba(13,47,80,.98),rgba(7,32,58,.92));
    box-shadow:
      0 16px 35px rgba(0,0,0,.2),
      inset 0 -3px 0 var(--svc-red);
  }
  .service-v5-card:hover .service-v5-icon-ring{
    box-shadow:0 0 28px rgba(255,44,53,.23);
    animation:svcIconHover .8s ease both;
  }
  .service-v5-card:hover .service-v5-gold-line{
    transform:scaleX(1);
  }
  .service-v5-card:hover h3{
    animation:svcTextLift .32s ease both;
  }
}

@keyframes svcDrawTitle{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}
@keyframes svcPulseDot{
  0%,100%{transform:scale(.82);opacity:.65}
  50%{transform:scale(1.35);opacity:1}
}
@keyframes svcIconFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-4px)}
}
@keyframes svcIconHover{
  0%{transform:scale(1) rotate(0)}
  45%{transform:scale(1.08) rotate(-3deg)}
  100%{transform:scale(1.04) rotate(0)}
}
@keyframes svcTextLift{
  from{transform:translateY(2px);letter-spacing:-.025em}
  to{transform:translateY(0);letter-spacing:-.01em}
}
@keyframes svcFooterGlow{
  0%,100%{filter:drop-shadow(0 0 0 rgba(255,44,53,0))}
  50%{filter:drop-shadow(0 0 8px rgba(255,44,53,.5))}
}

@media(max-width:1180px){
  .services-v5-grid{
    grid-template-columns:repeat(3,1fr);
    max-width:960px;
  }
}
@media(max-width:760px){
  .services-v5{
    padding:56px 20px 62px;
  }
  .services-v5-head{
    margin-bottom:30px;
  }
  .services-v5-grid{
    grid-template-columns:1fr;
    max-width:390px;
    gap:14px;
  }
  .service-v5-card{
    min-height:290px;
  }
  .services-v5-footer{
    margin-top:30px;
    padding:14px 18px;
    gap:16px;
  }
}
@media(prefers-reduced-motion:reduce){
  .services-v5-head,
  .service-v5-card,
  .services-v5-footer{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  .services-v5-title-line{
    transform:scaleX(1)!important;
    animation:none!important;
  }
  .service-v5-icon-ring,
  .service-v5-icon-ring::after,
  .services-v5-footer-icon{
    animation:none!important;
  }
}

/* ===== V6 · QUIÉNES SOMOS COMPACTO + SECCIONES UNIFICADAS ===== */
.about-modern{min-height:calc(100vh - 72px);padding:54px 3.5vw 38px;display:flex;flex-direction:column;justify-content:center;background:#fff;overflow:hidden}
.about-inner{width:min(1500px,94vw);grid-template-columns:.78fr 1.22fr;gap:2.4vw;align-items:center}
.about-kicker{font-size:13px;letter-spacing:.12em;text-transform:none;margin-bottom:24px}
.about-copy h2{font-size:clamp(38px,3.7vw,60px);line-height:1.08;letter-spacing:-2px;max-width:610px}
.about-rule{margin:24px 0;width:64px}
.about-copy p{font-size:clamp(15px,1.12vw,18px);line-height:1.65;max-width:510px}
.map-stage{min-height:365px;overflow:visible;isolation:isolate}
.mexico-map{width:min(100%,800px);max-height:430px;object-fit:contain;animation:mapFloat 6.5s ease-in-out infinite,mapBreathe 4.2s ease-in-out infinite;position:relative;z-index:2}
.map-glow{position:absolute;width:62%;height:42%;border-radius:50%;background:radial-gradient(circle,rgba(29,112,255,.12),rgba(226,31,40,.06) 38%,transparent 70%);filter:blur(22px);animation:mapGlow 4s ease-in-out infinite;z-index:1}
@keyframes mapBreathe{0%,100%{filter:drop-shadow(0 16px 18px rgba(20,38,60,.10)) brightness(1)}50%{filter:drop-shadow(0 22px 28px rgba(20,70,135,.18)) brightness(1.025)}}
@keyframes mapGlow{0%,100%{transform:scale(.9);opacity:.42}50%{transform:scale(1.08);opacity:.8}}
.services-served{width:min(1500px,94vw);margin:8px auto 0}
.served-title{margin-bottom:14px}
.served-title h3{font-size:21px}
.served-grid{padding:10px 6px 8px;border-radius:16px;box-shadow:0 10px 26px rgba(24,44,70,.045)}
.sector-card{padding:5px 10px 10px}
.sector-card img{height:82px;max-width:125px}
.sector-card h4{font-size:14px;margin:3px auto 0;max-width:175px}
.sector-card p{font-size:11.5px;line-height:1.45;color:#40536e;margin:8px auto 0;max-width:175px}

/* Unificar etiquetas/subtítulos numerados de las secciones */
.services-v5-kicker,.personal-section .eyebrow,.accreditations-v5-eyebrow,.clients-v6-eyebrow,.about-kicker{font-size:13px!important;font-weight:800!important;letter-spacing:.12em!important;text-transform:none!important}

@media (min-width:1100px) and (max-height:850px){
 .about-modern{padding-top:34px;padding-bottom:24px}
 .map-stage{min-height:315px}.mexico-map{max-height:370px}
 .about-copy h2{font-size:clamp(36px,3.3vw,52px)}
 .about-copy p{font-size:15px}.served-grid{padding-top:7px}.sector-card img{height:68px}
 .sector-card p{font-size:10.5px;margin-top:5px}.sector-card h4{font-size:13px}
}
@media(max-width:1050px){.about-modern{min-height:auto}.about-inner{grid-template-columns:1fr}.map-stage{min-height:330px}.mexico-map{max-height:360px}.served-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.about-modern{padding:54px 20px 34px}.about-copy h2{font-size:38px}.map-stage{min-height:250px}.mexico-map{max-height:280px}.served-grid{grid-template-columns:repeat(2,1fr)}.sector-card p{font-size:11px}}
\n\n/* V6.1 · Radar animado sobre el mapa */
.map-radar-layer{position:absolute;inset:0;z-index:3;pointer-events:none}
.radar{position:absolute;width:18px;height:18px;border:2px solid rgba(226,31,40,.72);border-radius:50%;transform:translate(-50%,-50%);opacity:.9}
.radar::before,.radar::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;border:2px solid currentColor;border-radius:50%;transform:translate(-50%,-50%) scale(.45);opacity:0;animation:aletRadar 2.8s cubic-bezier(.15,.65,.3,1) infinite}
.radar::after{animation-delay:.9s}
.radar.r1,.radar.r3,.radar.r5{color:rgba(20,93,185,.58);border-color:rgba(20,93,185,.70)}
.radar.r2,.radar.r4{color:rgba(226,31,40,.58)}
.radar.r1{left:28.5%;top:25%}.radar.r2{left:51.5%;top:31%}.radar.r3{left:54.5%;top:53%}.radar.r4{left:70.5%;top:66%}.radar.r5{left:58%;top:80%}
@keyframes aletRadar{0%{transform:translate(-50%,-50%) scale(.45);opacity:.8}75%,100%{transform:translate(-50%,-50%) scale(4.2);opacity:0}}
.map-stage:hover .mexico-map{animation-duration:4.5s,3s}
@media(prefers-reduced-motion:reduce){.radar::before,.radar::after{animation:none!important}.map-glow{animation:none!important}}


/* ===== ALET V6.2 · AJUSTE MAPA RADAR + ICONOS ESTÁTICOS ===== */
.about-modern .map-stage{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}
.about-modern .map-visual{
  position:relative;
  width:min(100%,920px);
  line-height:0;
  isolation:isolate;
}
.about-modern .mexico-map{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  animation:none!important;
  transform:none!important;
}
.about-modern .map-radar-layer{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  overflow:visible;
}
.about-modern .radar{
  position:absolute;
  width:10px;
  height:10px;
  border-radius:50%;
  transform:translate(-50%,-50%);
  background:rgba(255,255,255,.74);
  border:2px solid currentColor;
  box-shadow:0 0 9px currentColor;
  opacity:.9;
}
.about-modern .radar::before,
.about-modern .radar::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:18px;
  height:18px;
  border:2px solid currentColor;
  border-radius:50%;
  transform:translate(-50%,-50%) scale(.35);
  opacity:0;
  animation:aletRadarPin 2.8s cubic-bezier(.15,.65,.3,1) infinite;
}
.about-modern .radar::after{animation-delay:.85s}
.about-modern .radar.r1,
.about-modern .radar.r3,
.about-modern .radar.r5{color:rgba(18,91,187,.72)}
.about-modern .radar.r2,
.about-modern .radar.r4,
.about-modern .radar.r6{color:rgba(226,31,40,.72)}
/* Posiciones alineadas con los seis pines impresos en el PNG */
.about-modern .radar.r1{left:28.2%;top:24.2%}
.about-modern .radar.r2{left:50.4%;top:29.2%;animation-delay:.35s}
.about-modern .radar.r3{left:54.2%;top:51.7%;animation-delay:.7s}
.about-modern .radar.r4{left:70.1%;top:63.3%;animation-delay:1.05s}
.about-modern .radar.r5{left:58.1%;top:78.6%;animation-delay:1.4s}
.about-modern .radar.r6{left:88.6%;top:68.2%;animation-delay:1.75s}
@keyframes aletRadarPin{
  0%{transform:translate(-50%,-50%) scale(.35);opacity:.72}
  68%,100%{transform:translate(-50%,-50%) scale(3.15);opacity:0}
}
/* Los iconos de sectores quedan estáticos: sin efecto de subir y bajar */
.about-modern .sector-card,
.about-modern .sector-card img{
  animation:none!important;
}
.about-modern .sector-card:hover{
  transform:none!important;
}
.about-modern .sector-card:hover img{
  transform:scale(1.035)!important;
  filter:drop-shadow(0 10px 8px rgba(20,40,60,.12));
}
@media(prefers-reduced-motion:reduce){
  .about-modern .radar::before,
  .about-modern .radar::after{animation:none!important}
}


/* ===== ALET V6.3 · MAPA MÁS COMPACTO + RADAR DISTRIBUIDO ===== */

/* Reduce el mapa para recuperar aire visual entre texto, mapa y sectores */
.about-modern .map-stage{
  min-height:315px;
  padding:4px 0 8px;
}
.about-modern .map-visual{
  width:min(82%,720px);
  margin:0 auto;
}
.about-modern .mexico-map{
  width:100%;
  max-height:335px;
  object-fit:contain;
}

/* Radar: varios puntos dentro del territorio, sin quedar pegados a los pines */
.about-modern .radar{
  width:7px;
  height:7px;
  background:rgba(255,255,255,.92);
  border-width:1.5px;
  box-shadow:0 0 7px currentColor;
}
.about-modern .radar::before,
.about-modern .radar::after{
  width:15px;
  height:15px;
  border-width:1.5px;
  animation-duration:3.4s;
}
.about-modern .radar::after{
  animation-delay:1.12s;
}

/* Distribución interior del radar a lo largo del mapa */
.about-modern .radar.r1{
  left:34%;
  top:31%;
  animation-delay:0s;
}
.about-modern .radar.r2{
  left:48%;
  top:39%;
  animation-delay:.55s;
}
.about-modern .radar.r3{
  left:57%;
  top:50%;
  animation-delay:1.1s;
}
.about-modern .radar.r4{
  left:66%;
  top:61%;
  animation-delay:1.65s;
}
.about-modern .radar.r5{
  left:54%;
  top:71%;
  animation-delay:2.2s;
}
.about-modern .radar.r6{
  left:78%;
  top:68%;
  animation-delay:2.75s;
}

@keyframes aletRadarPin{
  0%{
    transform:translate(-50%,-50%) scale(.25);
    opacity:.72;
  }
  68%,100%{
    transform:translate(-50%,-50%) scale(3.65);
    opacity:0;
  }
}

/* Mantener completamente estáticos los iconos de sectores */
.about-modern .sector-card,
.about-modern .sector-card img{
  animation:none!important;
  translate:none!important;
}
.about-modern .sector-card:hover{
  transform:none!important;
}
.about-modern .sector-card:hover img{
  transform:scale(1.025)!important;
}

/* Ajustes responsivos del mapa */
@media(max-width:1200px){
  .about-modern .map-visual{width:min(78%,680px)}
  .about-modern .mexico-map{max-height:315px}
}
@media(max-width:1050px){
  .about-modern .map-stage{min-height:285px}
  .about-modern .map-visual{width:min(88%,640px)}
  .about-modern .mexico-map{max-height:300px}
}
@media(max-width:650px){
  .about-modern .map-stage{min-height:235px}
  .about-modern .map-visual{width:min(96%,520px)}
  .about-modern .mexico-map{max-height:255px}
}


/* ===== ALET V6.4 · MAPA TAMAÑO INTERMEDIO =====
   Corrección: más grande que V6.3, sin volver al tamaño excesivo anterior.
*/
.about-modern .map-stage{
  min-height:365px;
  padding:0 0 8px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.about-modern .map-visual{
  width:min(94%,860px);
  margin:0 auto;
}

.about-modern .mexico-map{
  width:100%;
  max-height:390px;
  object-fit:contain;
}

/* Mantener el radar dentro del mapa y distribuido */
.about-modern .radar.r1{ left:31%; top:30%; }
.about-modern .radar.r2{ left:44%; top:38%; }
.about-modern .radar.r3{ left:56%; top:49%; }
.about-modern .radar.r4{ left:66%; top:58%; }
.about-modern .radar.r5{ left:53%; top:70%; }
.about-modern .radar.r6{ left:77%; top:67%; }

@media(max-width:1200px){
  .about-modern .map-stage{min-height:345px}
  .about-modern .map-visual{width:min(92%,800px)}
  .about-modern .mexico-map{max-height:365px}
}
@media(max-width:1050px){
  .about-modern .map-stage{min-height:320px}
  .about-modern .map-visual{width:min(94%,735px)}
  .about-modern .mexico-map{max-height:340px}
}
@media(max-width:650px){
  .about-modern .map-stage{min-height:270px}
  .about-modern .map-visual{width:min(98%,560px)}
  .about-modern .mexico-map{max-height:285px}
}


/* =========================================================
   ALET V6.5 — HERO IMPACTO / UNIFORME BLANCO
   ========================================================= */
.hero-v65{
  position:relative;
  min-height:720px;
  overflow:hidden;
  isolation:isolate;
  color:#0b2a56;
  background:#f5f8fb url("images/hero_guardia_blanco_v65.png") center/cover no-repeat;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:78px 5vw 112px;
}
.hero-v65-overlay{
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(250,252,255,.98) 0%,rgba(250,252,255,.94) 32%,rgba(250,252,255,.56) 55%,rgba(250,252,255,.08) 78%,rgba(250,252,255,0) 100%),
    radial-gradient(circle at 70% 40%,rgba(229,31,42,.06),transparent 34%);
}
.hero-v65-content{
  width:min(1480px,100%);
  margin:0 auto;
  position:relative;
}
.hero-v65-copy{
  width:min(610px,48vw);
  opacity:0;
  transform:translateY(22px);
}
.hero-v65.hero-ready .hero-v65-copy{
  animation:heroV65Reveal .7s cubic-bezier(.2,.8,.2,1) forwards;
}
.hero-v65-kicker{
  color:#e41f2b;
  text-transform:none;
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  margin-bottom:24px;
}
.hero-v65 h1{
  margin:0;
  font-size:clamp(56px,6vw,88px);
  line-height:.9;
  letter-spacing:-.055em;
  font-weight:900;
  display:flex;
  flex-direction:column;
}
.hero-v65 h1 span{display:block}
.hero-v65-accent{color:#e41f2b}
.hero-v65-redline{
  display:block;
  width:74px;
  height:4px;
  border-radius:999px;
  background:#e41f2b;
  margin:28px 0 22px;
  transform:scaleX(0);
  transform-origin:left;
}
.hero-v65.hero-ready .hero-v65-redline{
  animation:heroV65Line .75s .25s ease forwards;
}
.hero-v65-copy p{
  max-width:530px;
  margin:0;
  font-size:18px;
  line-height:1.65;
  color:#4d6280;
}
.hero-v65-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}
.hero-v65-btn{
  min-height:54px;
  padding:0 24px;
  border-radius:6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-size:13px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.02em;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease;
}
.hero-v65-btn-primary{
  color:#fff;
  background:#e41f2b;
  box-shadow:0 12px 24px rgba(228,31,43,.18);
}
.hero-v65-btn-secondary{
  color:#0b2a56;
  border:1px solid #0b2a56;
  background:rgba(255,255,255,.7);
}
@media (hover:hover) and (pointer:fine){
  .hero-v65-btn:hover{transform:translateY(-2px)}
  .hero-v65-btn-primary:hover{box-shadow:0 16px 30px rgba(228,31,43,.26)}
  .hero-v65-btn-secondary:hover{background:#fff}
}

/* Señales laterales: más discretas que el mockup para no saturar */
.hero-v65-signals{
  position:absolute;
  right:0;
  top:50%;
  transform:translateY(-50%);
  display:grid;
  gap:18px;
  width:170px;
}
.hero-v65-signal{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  color:#fff;
  opacity:0;
  transform:translateX(14px);
  text-shadow:0 1px 6px rgba(0,0,0,.3);
}
.hero-v65-signal span{
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(228,31,43,.76);
  position:relative;
  flex:0 0 auto;
  box-shadow:0 0 0 0 rgba(228,31,43,.2);
}
.hero-v65-signal span::before{
  content:"";
  position:absolute;
  inset:50% auto auto 50%;
  width:8px;height:8px;border-radius:50%;
  background:#fff;
  transform:translate(-50%,-50%);
}
.hero-v65.hero-ready .hero-v65-signal{
  animation:heroV65SignalIn .45s ease forwards;
}
.hero-v65.hero-ready .s1{animation-delay:.45s}
.hero-v65.hero-ready .s2{animation-delay:.58s}
.hero-v65.hero-ready .s3{animation-delay:.71s}
.hero-v65.hero-ready .s4{animation-delay:.84s}
.hero-v65.hero-ready .hero-v65-signal span{
  animation:heroV65Pulse 2.6s ease-out infinite;
}

.hero-v65-stats{
  width:min(1180px,86%);
  margin:44px auto 0;
  min-height:92px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border:1px solid rgba(11,42,86,.12);
  border-radius:14px;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(9px);
  box-shadow:0 14px 34px rgba(11,42,86,.08);
  opacity:0;
  transform:translateY(18px);
}
.hero-v65.hero-ready .hero-v65-stats{
  animation:heroV65Reveal .65s .55s ease forwards;
}
.hero-v65-stats>div{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:16px 28px;
  border-right:1px solid rgba(11,42,86,.1);
}
.hero-v65-stats>div:last-child{border-right:0}
.hero-v65-stats strong{
  color:#0b2a56;
  font-size:24px;
  line-height:1;
  text-transform:uppercase;
}
.hero-v65-stats span{
  margin-top:7px;
  color:#64748b;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.hero-v65-wave{
  position:absolute;
  left:-5%;
  right:-5%;
  bottom:-18px;
  height:74px;
  border-top:2px solid rgba(228,31,43,.95);
  border-radius:50% 50% 0 0;
  transform:rotate(-1.8deg);
  opacity:.8;
}
.hero-v65-wave::after{
  content:"";
  position:absolute;
  inset:10px 0 auto;
  border-top:1px solid rgba(11,42,86,.22);
  border-radius:50%;
}

@keyframes heroV65Reveal{
  to{opacity:1;transform:none}
}
@keyframes heroV65Line{
  to{transform:scaleX(1)}
}
@keyframes heroV65SignalIn{
  to{opacity:1;transform:none}
}
@keyframes heroV65Pulse{
  0%{box-shadow:0 0 0 0 rgba(228,31,43,.32)}
  70%{box-shadow:0 0 0 12px rgba(228,31,43,0)}
  100%{box-shadow:0 0 0 0 rgba(228,31,43,0)}
}

@media(max-width:1150px){
  .hero-v65{min-height:650px;background-position:62% center}
  .hero-v65-copy{width:min(580px,54vw)}
  .hero-v65-signals{display:none}
}
@media(max-width:820px){
  .hero-v65{
    min-height:auto;
    padding:64px 24px 88px;
    background-position:68% center;
  }
  .hero-v65-overlay{
    background:linear-gradient(90deg,rgba(250,252,255,.98) 0%,rgba(250,252,255,.92) 58%,rgba(250,252,255,.5) 100%);
  }
  .hero-v65-copy{width:min(100%,590px)}
  .hero-v65 h1{font-size:clamp(48px,12vw,70px)}
  .hero-v65-stats{
    width:100%;
    grid-template-columns:1fr;
    margin-top:36px;
  }
  .hero-v65-stats>div{
    border-right:0;
    border-bottom:1px solid rgba(11,42,86,.1);
  }
  .hero-v65-stats>div:last-child{border-bottom:0}
}
@media(max-width:520px){
  .hero-v65 h1{font-size:46px}
  .hero-v65-copy p{font-size:16px}
  .hero-v65-actions{flex-direction:column}
  .hero-v65-btn{width:100%}
}
@media(prefers-reduced-motion:reduce){
  .hero-v65-copy,.hero-v65-stats,.hero-v65-signal{
    opacity:1!important;
    transform:none!important;
    animation:none!important;
  }
  .hero-v65-redline{transform:scaleX(1)!important;animation:none!important}
  .hero-v65-signal span{animation:none!important}
}


/* =========================================================
   ALET V6.6 — HERO CORREGIDO
   - Imagen limpia (sin textos incrustados)
   - Mejor escala y resolución
   - Sin duplicados
   - Composición completa dentro de pantalla
   ========================================================= */

.hero-v65{
  min-height:700px;
  height:min(780px,100vh);
  padding:84px clamp(38px,5vw,92px) 145px;
  background-color:#f7f9fc;
  background-image:
    linear-gradient(90deg,
      rgba(248,250,253,1) 0%,
      rgba(248,250,253,.99) 34%,
      rgba(248,250,253,.9) 47%,
      rgba(248,250,253,.38) 61%,
      rgba(248,250,253,0) 76%
    ),
    url("images/hero_guardia_blanco_clean_v67.jpg");
  background-repeat:no-repeat,no-repeat;
  background-position:left center,right center;
  background-size:100% 100%,auto 100%;
  display:block;
}

.hero-v65-overlay{
  background:
    radial-gradient(circle at 62% 39%,rgba(228,31,43,.045),transparent 30%),
    linear-gradient(90deg,rgba(255,255,255,.08),transparent 62%);
}

.hero-v65-content{
  height:100%;
  display:flex;
  align-items:center;
  max-width:1500px;
  margin:0 auto;
}

.hero-v65-copy{
  width:min(570px,43vw);
  margin-top:-45px;
}

.hero-v65-kicker{
  font-size:12px;
  letter-spacing:.055em;
  margin-bottom:20px;
}

.hero-v65 h1{
  font-size:clamp(52px,4.55vw,78px);
  line-height:.92;
  letter-spacing:-.05em;
  max-width:570px;
}

.hero-v65-redline{
  width:68px;
  height:3px;
  margin:22px 0 19px;
}

.hero-v65-copy p{
  max-width:490px;
  font-size:16px;
  line-height:1.55;
}

.hero-v65-actions{
  margin-top:25px;
  gap:12px;
}

.hero-v65-btn{
  min-height:50px;
  padding:0 21px;
  font-size:12px;
}

/* Eliminamos visualmente cualquier señal vieja que haya quedado del markup anterior */
.hero-v65-signals{
  display:none!important;
}

.hero-v65-stats{
  position:absolute;
  z-index:3;
  left:50%;
  bottom:36px;
  transform:translateX(-50%) translateY(14px);
  width:min(1060px,82%);
  min-height:82px;
  margin:0;
  background:rgba(255,255,255,.91);
  border:1px solid rgba(11,42,86,.1);
  box-shadow:0 12px 30px rgba(11,42,86,.09);
  backdrop-filter:blur(10px);
}

.hero-v65.hero-ready .hero-v65-stats{
  animation:heroV66Stats .58s .45s ease forwards;
}

.hero-v65-stats>div{
  padding:14px 24px;
}

.hero-v65-stats strong{
  font-size:21px;
}

.hero-v65-stats span{
  font-size:11px;
  margin-top:5px;
}

.hero-v65-wave{
  bottom:-42px;
  height:76px;
  opacity:.65;
}

/* Animación sutil sobre la zona del guardia, sin duplicar elementos gráficos */
.hero-v65::after{
  content:"";
  position:absolute;
  z-index:1;
  right:19%;
  top:34%;
  width:115px;
  height:115px;
  border-radius:50%;
  border:1px solid rgba(228,31,43,.18);
  opacity:0;
  pointer-events:none;
}

.hero-v65.hero-ready::after{
  animation:heroV66Radar 3.4s 1.1s ease-out infinite;
}

@keyframes heroV66Radar{
  0%{transform:scale(.35);opacity:0}
  15%{opacity:.48}
  70%,100%{transform:scale(1.65);opacity:0}
}

@keyframes heroV66Stats{
  to{opacity:1;transform:translateX(-50%) translateY(0)}
}

@media(max-width:1350px){
  .hero-v65{
    height:720px;
    min-height:680px;
    background-position:left center,calc(100% + 60px) center;
    background-size:100% 100%,auto 100%;
  }
  .hero-v65-copy{
    width:min(535px,46vw);
  }
  .hero-v65 h1{
    font-size:clamp(50px,5vw,70px);
  }
}

@media(max-width:1050px){
  .hero-v65{
    min-height:670px;
    height:auto;
    padding:70px 34px 130px;
    background-position:left center,72% center;
    background-size:100% 100%,auto 92%;
  }
  .hero-v65-content{
    min-height:470px;
  }
  .hero-v65-copy{
    width:min(520px,58vw);
    margin-top:-20px;
  }
  .hero-v65-stats{
    width:calc(100% - 68px);
  }
}

@media(max-width:760px){
  .hero-v65{
    padding:58px 22px 26px;
    background-image:
      linear-gradient(180deg,rgba(248,250,253,.96) 0%,rgba(248,250,253,.88) 58%,rgba(248,250,253,.98) 100%),
      url("images/hero_guardia_blanco_clean_v67.jpg");
    background-position:center,76% top;
    background-size:cover,auto 74%;
  }
  .hero-v65-content{
    min-height:560px;
    align-items:flex-end;
    padding-bottom:24px;
  }
  .hero-v65-copy{
    width:100%;
    margin:0;
    background:rgba(255,255,255,.78);
    backdrop-filter:blur(6px);
    padding:22px;
    border-radius:14px;
  }
  .hero-v65 h1{
    font-size:clamp(43px,13vw,58px);
  }
  .hero-v65-stats{
    position:relative;
    left:auto;
    bottom:auto;
    transform:none!important;
    width:100%;
    margin:18px auto 0;
    grid-template-columns:1fr;
  }
  .hero-v65.hero-ready .hero-v65-stats{
    animation:none;
    opacity:1;
  }
  .hero-v65::after{display:none}
  .hero-v65-wave{display:none}
}

@media(prefers-reduced-motion:reduce){
  .hero-v65::after{animation:none!important}
}


/* =========================================================
   ALET V6.7 — CORRECCIÓN FINAL DE IMAGEN HERO
   ========================================================= */
.hero-v65{
  background-position:left center, right 42% center;
  background-size:100% 100%, auto 112%;
}

/* Fusión suave entre el bloque de texto y la fotografía */
.hero-v65::before{
  content:"";
  position:absolute;
  z-index:1;
  top:0;
  bottom:0;
  left:49%;
  width:18%;
  pointer-events:none;
  background:linear-gradient(
    90deg,
    rgba(248,250,253,.98) 0%,
    rgba(248,250,253,.78) 34%,
    rgba(248,250,253,.28) 72%,
    rgba(248,250,253,0) 100%
  );
}

.hero-v65-content,
.hero-v65-stats{
  z-index:3;
}

@media(max-width:1350px){
  .hero-v65{
    background-position:left center, right 40% center;
    background-size:100% 100%, auto 108%;
  }
}

@media(max-width:1050px){
  .hero-v65{
    background-position:left center, 78% center;
    background-size:100% 100%, auto 98%;
  }
  .hero-v65::before{
    left:45%;
    width:24%;
  }
}

@media(max-width:760px){
  .hero-v65{
    background-position:center, 74% top;
    background-size:cover, auto 76%;
  }
  .hero-v65::before{
    display:none;
  }
}


/* =========================================================
   ALET V6.8 — AJUSTES FINALES
   ========================================================= */

/* HERO: integración limpia de la imagen, sin corte duro */
.hero-v65{
  min-height:680px;
  height:auto;
  padding-top:82px;
  padding-bottom:132px;
  background-position:left center, right center;
  background-size:100% 100%, auto 108%;
  background-color:#f7f9fc;
}

.hero-v65-overlay{
  background:
    linear-gradient(90deg,
      rgba(248,250,253,1) 0%,
      rgba(248,250,253,.995) 36%,
      rgba(248,250,253,.92) 49%,
      rgba(248,250,253,.64) 58%,
      rgba(248,250,253,.24) 67%,
      rgba(248,250,253,0) 78%
    ),
    radial-gradient(circle at 63% 45%,rgba(255,255,255,.32),transparent 28%);
}

.hero-v65::before{
  left:46%;
  width:26%;
  background:linear-gradient(
    90deg,
    rgba(248,250,253,.98) 0%,
    rgba(248,250,253,.92) 18%,
    rgba(248,250,253,.66) 44%,
    rgba(248,250,253,.28) 72%,
    rgba(248,250,253,0) 100%
  );
  filter:blur(.2px);
}

.hero-v65-content{
  max-width:1480px;
}

.hero-v65-copy{
  width:min(560px,42vw);
  margin-top:-24px;
}

.hero-v65 h1{
  font-size:clamp(54px,4.9vw,76px);
  max-width:560px;
}

.hero-v65-stats{
  width:min(980px,76%);
  bottom:26px;
}

@media(max-width:1250px){
  .hero-v65{
    background-position:left center, calc(100% + 25px) center;
    background-size:100% 100%, auto 105%;
  }
  .hero-v65-copy{width:min(530px,46vw)}
}
@media(max-width:980px){
  .hero-v65{
    background-position:left center, 74% center;
    background-size:100% 100%, auto 94%;
  }
  .hero-v65::before{left:42%;width:32%}
}
@media(max-width:760px){
  .hero-v65{
    min-height:auto;
    padding-bottom:34px;
    background-position:center, 72% top;
    background-size:cover, auto 76%;
  }
  .hero-v65::before{display:none}
}

/* SUBTÍTULOS: ocultar numeración roja al inicio */
.section-kicker,
.services-v5-kicker,
.about-modern .eyebrow,
.clients-kicker,
.permissions-kicker{
  text-transform:none !important;
}

/* Offset correcto para navegación con header fijo */
section[id]{
  scroll-margin-top:96px;
}

/* Ajuste adicional en secciones grandes */
#quienes-somos,
#servicios,
#personal,
#permisos,
#clientes,
#contacto{
  scroll-margin-top:92px;
}

/* SERVICIOS */
.services-v5-head h2{
  text-transform:none !important;
  letter-spacing:-.035em;
}

/* FOOTER nuevo */
.site-footer-v68{
  background:#071b31;
  color:#e9f0f8;
  padding:34px 6vw 26px;
  border-top:1px solid rgba(255,255,255,.08);
}
.site-footer-v68-inner{
  max-width:1380px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1.2fr 1fr auto;
  gap:34px;
  align-items:center;
}
.site-footer-v68-brand{
  display:flex;
  align-items:center;
  gap:16px;
}
.site-footer-v68-brand img{
  width:54px;
  height:auto;
}
.site-footer-v68-brand strong{
  display:block;
  font-size:14px;
  letter-spacing:.02em;
}
.site-footer-v68-brand span{
  display:block;
  margin-top:4px;
  color:#aebdcd;
  font-size:12px;
}
.site-footer-v68-links{
  display:flex;
  flex-wrap:wrap;
  gap:18px 24px;
  justify-content:center;
}
.site-footer-v68-links a{
  color:#dfe8f2;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
}
.site-footer-v68-links a:hover{
  color:#fff;
}
.site-footer-v68-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 18px;
  border:1px solid #ef233c;
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}
.site-footer-v68-bottom{
  max-width:1380px;
  margin:24px auto 0;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#98aabd;
  font-size:11px;
}
.site-footer-v68-bottom a{
  color:#c9d4df;
  text-decoration:none;
}
@media(max-width:900px){
  .site-footer-v68-inner{
    grid-template-columns:1fr;
    text-align:center;
  }
  .site-footer-v68-brand{justify-content:center}
  .site-footer-v68-links{justify-content:center}
  .site-footer-v68-cta{justify-self:center}
  .site-footer-v68-bottom{
    flex-direction:column;
    text-align:center;
  }
}


/* =========================================================
   ALET V6.9 — CORRECCIONES VISUALES Y NAVEGACIÓN
   ========================================================= */

/* ---------------------------------------------------------
   SCROLL / MENÚ
   --------------------------------------------------------- */
html{
  scroll-behavior:auto !important;
  scroll-padding-top:134px !important;
}
main > section[id]{
  scroll-margin-top:134px !important;
}

/* ---------------------------------------------------------
   QUITAR TÍTULOS ROJOS / KICKERS
   --------------------------------------------------------- */
.hero-v65-kicker,
.about-kicker,
.services-v5-kicker,
.personal-section .eyebrow,
.permits-v5-kicker,
.clients-v6-eyebrow,
.contact-v6-kicker{
  display:none !important;
}

/* Compensar espacio que dejaban los kickers */
.services-v5-head{padding-top:0}
.personal-section h2{margin-top:0}
.permits-v5 h2{margin-top:0}
.clients-v6 h2{margin-top:0}
.contact-v6 h2{margin-top:0}

/* ---------------------------------------------------------
   HERO — FOTO A LA DERECHA + DIFUMINACIÓN EN LA UNIÓN
   La foto NO recibe desenfoque: la transición ocurre
   en una capa superior entre el blanco y la fotografía.
   --------------------------------------------------------- */
.hero-v65{
  position:relative !important;
  isolation:isolate !important;
  min-height:650px !important;
  height:calc(100vh - 126px) !important;
  max-height:760px !important;
  padding:58px 5.2vw 116px !important;
  background:#f8fafc !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
}

.hero-v65::after{
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  left:auto !important;
  width:58% !important;
  height:100% !important;
  border:0 !important;
  border-radius:0 !important;
  opacity:1 !important;
  animation:none !important;
  box-shadow:none !important;
  pointer-events:none !important;
  background:
    url("images/hero_guardia_blanco_clean_v67.jpg")
    52% center / cover no-repeat !important;
}

/* Capa que integra blanco + fotografía sin desenfocar la foto */
.hero-v65-overlay{
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:
    linear-gradient(90deg,
      #f8fafc 0%,
      #f8fafc 38%,
      rgba(248,250,252,.98) 43%,
      rgba(248,250,252,.90) 47%,
      rgba(248,250,252,.70) 51%,
      rgba(248,250,252,.42) 55%,
      rgba(248,250,252,.16) 59%,
      rgba(248,250,252,0) 65%
    ) !important;
}

/* Franja suave adicional sobre la unión */
.hero-v65::before{
  content:"" !important;
  position:absolute !important;
  z-index:2 !important;
  top:0 !important;
  bottom:0 !important;
  left:45.5% !important;
  width:15% !important;
  pointer-events:none !important;
  display:block !important;
  background:linear-gradient(90deg,
    rgba(248,250,252,.90),
    rgba(248,250,252,.45),
    rgba(248,250,252,0)
  ) !important;
  filter:none !important;
}

.hero-v65-content{
  position:relative !important;
  z-index:3 !important;
  width:min(1440px,100%) !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 auto !important;
  display:flex !important;
  align-items:center !important;
}

.hero-v65-copy{
  width:min(535px,40vw) !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  backdrop-filter:none !important;
}

.hero-v65 h1{
  margin:0 !important;
  max-width:520px !important;
  font-size:clamp(52px,4.45vw,74px) !important;
  line-height:.94 !important;
  letter-spacing:-.05em !important;
}

.hero-v65-redline{
  margin:20px 0 18px !important;
}

.hero-v65-copy p{
  max-width:470px !important;
  font-size:16px !important;
  line-height:1.52 !important;
}

.hero-v65-actions{
  margin-top:24px !important;
}

.hero-v65-stats{
  z-index:4 !important;
  bottom:22px !important;
  width:min(960px,72%) !important;
  min-height:74px !important;
  border-radius:12px !important;
}

.hero-v65-stats > div{
  padding:12px 22px !important;
}

.hero-v65-stats strong{
  font-size:19px !important;
}

.hero-v65-wave{
  z-index:3 !important;
  bottom:-46px !important;
  opacity:.45 !important;
}

/* ---------------------------------------------------------
   CONTACTO — SIN HUECO ENTRE CONTACTO Y FOOTER
   --------------------------------------------------------- */
.contact-v6{
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}
.contact-v6-inner{
  margin-bottom:0 !important;
}
.contact-v6-main{
  padding-bottom:30px !important;
}
.contact-v6-info{
  border-radius:14px 14px 0 0 !important;
}
.site-footer-v68{
  margin-top:0 !important;
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */
@media(max-width:1250px){
  html{scroll-padding-top:126px !important}
  main > section[id]{scroll-margin-top:126px !important}

  .hero-v65{
    height:auto !important;
    min-height:620px !important;
    padding:56px 4vw 112px !important;
  }
  .hero-v65::after{
    width:60% !important;
    background-position:56% center !important;
  }
  .hero-v65-copy{
    width:min(500px,43vw) !important;
  }
  .hero-v65 h1{
    font-size:clamp(50px,5vw,68px) !important;
  }
}

@media(max-width:900px){
  html{scroll-padding-top:94px !important}
  main > section[id]{scroll-margin-top:94px !important}

  .hero-v65{
    min-height:650px !important;
    padding:50px 26px 30px !important;
    align-items:flex-end !important;
  }
  .hero-v65::after{
    width:100% !important;
    height:62% !important;
    top:0 !important;
    bottom:auto !important;
    background-position:68% 18% !important;
  }
  .hero-v65-overlay{
    background:linear-gradient(180deg,
      rgba(248,250,252,.10) 0%,
      rgba(248,250,252,.30) 37%,
      rgba(248,250,252,.86) 59%,
      #f8fafc 73%,
      #f8fafc 100%
    ) !important;
  }
  .hero-v65::before{display:none !important}
  .hero-v65-content{
    align-items:flex-end !important;
    padding-top:260px !important;
  }
  .hero-v65-copy{
    width:100% !important;
    max-width:580px !important;
  }
  .hero-v65-stats{
    position:relative !important;
    left:auto !important;
    bottom:auto !important;
    width:100% !important;
    transform:none !important;
    margin:24px auto 0 !important;
  }
  .hero-v65-wave{display:none !important}
}

@media(max-width:600px){
  .hero-v65 h1{
    font-size:46px !important;
  }
}

.site-footer-v68{
  padding-top:28px !important;
}


/* =========================================================
   ALET V7.0 — SISTEMA VISUAL UNIFICADO
   Revisión general: jerarquía tipográfica, alturas,
   espaciados, hero, navegación y consistencia.
   ========================================================= */

:root{
  --alet-navy:#0b2a56;
  --alet-deep:#061a30;
  --alet-red:#e51f2a;
  --alet-gold:#f5ad00;
  --alet-text:#53677f;
  --alet-light:#f7f9fc;
  --alet-header-h:112px;

  --alet-section-pad-x:clamp(24px,4.8vw,82px);
  --alet-section-pad-y:clamp(46px,5.3vh,64px);

  --alet-title:clamp(42px,3.55vw,58px);
  --alet-subtitle:clamp(22px,1.7vw,28px);
  --alet-body:clamp(14px,1.02vw,16px);
  --alet-small:13px;
}

/* ---------- Base ---------- */
html{
  scroll-behavior:auto !important;
  scroll-padding-top:calc(var(--alet-header-h) + 8px) !important;
}

body{
  overflow-x:hidden;
}

main > section[id]{
  box-sizing:border-box;
  scroll-margin-top:calc(var(--alet-header-h) + 8px) !important;
}

/* ---------- Jerarquía tipográfica global ---------- */
.about-modern h2,
.services-v5-head h2,
.personal-section h2,
.permits-v5 h2,
.clients-v6 h2,
.contact-v6 h2{
  font-size:var(--alet-title) !important;
  line-height:1.06 !important;
  letter-spacing:-.035em !important;
  font-weight:800 !important;
}

.about-modern p,
.services-v5-head p,
.personal-section .lead,
.permits-v5-intro,
.clients-v6,
.contact-v6-lead{
  font-size:var(--alet-body) !important;
  line-height:1.6 !important;
}

/* Eliminación definitiva de títulos auxiliares rojos */
.hero-v65-kicker,
.about-kicker,
.services-v5-kicker,
.personal-section .eyebrow,
.permits-v5-kicker,
.clients-v6-eyebrow,
.contact-v6-kicker{
  display:none !important;
}

/* ---------- Secciones: ritmo vertical común ---------- */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  min-height:calc(100vh - var(--alet-header-h)) !important;
  padding-top:var(--alet-section-pad-y) !important;
  padding-bottom:var(--alet-section-pad-y) !important;
  box-sizing:border-box !important;
}

/* Centrado vertical solo donde el contenido cabe cómodamente */
.about-modern,
.services-v5,
.permits-v5{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* ---------- HERO: menor escala, composición limpia ---------- */
.hero-v65{
  position:relative !important;
  isolation:isolate !important;
  min-height:610px !important;
  height:calc(100vh - var(--alet-header-h)) !important;
  max-height:700px !important;
  padding:48px var(--alet-section-pad-x) 104px !important;
  background:#f8fafc !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
}

/* Fotografía completa y más contenida: ya no usa cover */
.hero-v65::after{
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  top:0 !important;
  right:1.5% !important;
  bottom:0 !important;
  width:55% !important;
  height:100% !important;
  opacity:1 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  animation:none !important;
  pointer-events:none !important;
  background:
    url("images/hero_guardia_blanco_clean_v67.jpg")
    82% center / auto 92% no-repeat !important;
}

/* La transición se hace SOBRE la unión, no sobre la fotografía */
.hero-v65-overlay{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  display:block !important;
  pointer-events:none !important;
  background:
    linear-gradient(90deg,
      #f8fafc 0%,
      #f8fafc 40%,
      rgba(248,250,252,.98) 45%,
      rgba(248,250,252,.88) 49%,
      rgba(248,250,252,.62) 54%,
      rgba(248,250,252,.30) 59%,
      rgba(248,250,252,.08) 64%,
      rgba(248,250,252,0) 69%
    ) !important;
}

.hero-v65::before{
  content:"" !important;
  position:absolute !important;
  z-index:2 !important;
  top:0 !important;
  bottom:0 !important;
  left:47% !important;
  width:13% !important;
  display:block !important;
  pointer-events:none !important;
  background:linear-gradient(90deg,
    rgba(248,250,252,.76),
    rgba(248,250,252,.30),
    rgba(248,250,252,0)
  ) !important;
  filter:none !important;
}

.hero-v65-content{
  position:relative !important;
  z-index:3 !important;
  width:min(1420px,100%) !important;
  height:auto !important;
  min-height:0 !important;
  margin:0 auto !important;
  display:flex !important;
  align-items:center !important;
}

.hero-v65-copy{
  width:min(510px,39vw) !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  backdrop-filter:none !important;
}

.hero-v65 h1{
  max-width:505px !important;
  margin:0 !important;
  font-size:clamp(50px,4.25vw,68px) !important;
  line-height:.95 !important;
  letter-spacing:-.05em !important;
}

.hero-v65-redline{
  width:60px !important;
  height:3px !important;
  margin:18px 0 16px !important;
}

.hero-v65-copy p{
  max-width:440px !important;
  margin:0 !important;
  font-size:15px !important;
  line-height:1.55 !important;
}

.hero-v65-actions{
  margin-top:22px !important;
  gap:10px !important;
}

.hero-v65-btn{
  min-height:48px !important;
  padding:0 19px !important;
  font-size:11.5px !important;
}

.hero-v65-stats{
  z-index:4 !important;
  bottom:17px !important;
  width:min(900px,68%) !important;
  min-height:68px !important;
  border-radius:12px !important;
}

.hero-v65-stats > div{
  padding:10px 20px !important;
}

.hero-v65-stats strong{
  font-size:18px !important;
}

.hero-v65-stats span{
  font-size:10px !important;
}

.hero-v65-wave{
  z-index:3 !important;
  bottom:-50px !important;
  opacity:.32 !important;
}

/* ---------- QUIÉNES SOMOS ---------- */
.about-modern{
  padding-left:var(--alet-section-pad-x) !important;
  padding-right:var(--alet-section-pad-x) !important;
}

.about-modern .about-inner{
  width:min(1480px,100%) !important;
  margin:auto !important;
}

.about-modern .about-copy h2{
  font-size:var(--alet-title) !important;
}

.about-modern .map-stage{
  min-height:320px !important;
}

.about-modern .map-visual{
  width:min(90%,790px) !important;
}

.about-modern .mexico-map{
  max-height:350px !important;
}

.about-modern .sector-card h3{
  font-size:15px !important;
}

.about-modern .sector-card p{
  font-size:12px !important;
  line-height:1.45 !important;
}

/* ---------- SERVICIOS ---------- */
.services-v5{
  padding-left:var(--alet-section-pad-x) !important;
  padding-right:var(--alet-section-pad-x) !important;
}

.services-v5-head{
  margin:0 auto 34px !important;
}

.services-v5-head h2{
  text-transform:none !important;
}

.services-v5-head p{
  margin-top:18px !important;
  max-width:620px !important;
}

.services-v5-grid{
  width:min(1420px,100%) !important;
  gap:16px !important;
}

.service-v5-card{
  min-height:300px !important;
  padding-top:24px !important;
  padding-bottom:24px !important;
}

.service-v5-card h3{
  font-size:20px !important;
  line-height:1.12 !important;
}

.service-v5-card p{
  font-size:13px !important;
  line-height:1.5 !important;
}

.services-v5-footer{
  margin-top:28px !important;
  min-height:62px !important;
}

/* ---------- PERSONAL ---------- */
.personal-section{
  padding-left:var(--alet-section-pad-x) !important;
  padding-right:var(--alet-section-pad-x) !important;
}

.personal-section > h2,
.personal-section > .lead,
.personal-section > .training-grid{
  width:min(1460px,100%) !important;
}

.personal-section .lead{
  margin-top:28px !important;
  max-width:780px !important;
}

.personal-section .training-grid{
  margin-top:38px !important;
  gap:18px !important;
}

.personal-section .training-item{
  min-height:84px !important;
}

/* ---------- PERMISOS ---------- */
.permits-v5{
  padding-left:var(--alet-section-pad-x) !important;
  padding-right:var(--alet-section-pad-x) !important;
}

.permits-v5-inner{
  width:min(1480px,100%) !important;
}

.permits-v5 h2{
  max-width:820px !important;
}

.permits-v5-yellow-line{
  margin:18px auto 20px !important;
}

.permits-v5-grid{
  margin-top:42px !important;
}

.permits-v5-card h3{
  font-size:20px !important;
}

.permits-v5-card p{
  font-size:13px !important;
}

/* ---------- CLIENTES ---------- */
.clients-v6{
  padding-left:0 !important;
  padding-right:0 !important;
}

.clients-v6-inner{
  width:min(1420px,92vw) !important;
}

.clients-v6 h2{
  max-width:860px !important;
}

.clients-v6-group{
  margin-top:38px !important;
}

.clients-v6-group.government{
  margin-top:44px !important;
}

.clients-v6-group h3{
  font-size:var(--alet-subtitle) !important;
}

.clients-v6-carousel{
  height:132px !important;
  margin-top:18px !important;
}

.clients-v6 .client-logo,
.clients-v6 .government .client-logo{
  height:112px !important;
}

/* ---------- CONTACTO ---------- */
.contact-v6{
  min-height:auto !important;
  padding:52px var(--alet-section-pad-x) 0 !important;
  margin:0 !important;
}

.contact-v6-inner{
  width:min(1420px,100%) !important;
  margin:0 auto !important;
  gap:54px !important;
}

.contact-v6 h2{
  max-width:760px !important;
}

.contact-v6-lead{
  margin:16px 0 28px !important;
}

.contact-v6-main{
  padding-bottom:30px !important;
}

.contact-v6-info{
  padding:42px 38px !important;
  border-radius:14px 14px 0 0 !important;
}

.contact-v6-info h3{
  font-size:22px !important;
}

/* Contacto pegado al footer */
.site-footer-v68{
  margin-top:0 !important;
  padding-top:26px !important;
}

/* ---------- Responsive ---------- */
@media(max-width:1250px){
  :root{--alet-header-h:104px}

  .hero-v65{
    min-height:600px !important;
    height:auto !important;
  }

  .hero-v65::after{
    width:56% !important;
    right:0 !important;
    background-position:86% center !important;
    background-size:auto 88% !important;
  }

  .hero-v65-copy{
    width:min(485px,43vw) !important;
  }

  .service-v5-card{
    min-height:285px !important;
  }
}

@media(max-width:900px){
  :root{
    --alet-header-h:82px;
    --alet-title:clamp(36px,7vw,48px);
  }

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    min-height:auto !important;
  }

  .hero-v65{
    min-height:650px !important;
    padding:38px 24px 28px !important;
    align-items:flex-end !important;
  }

  .hero-v65::after{
    top:0 !important;
    width:100% !important;
    height:57% !important;
    background-position:72% 16% !important;
    background-size:auto 94% !important;
  }

  .hero-v65-overlay{
    background:linear-gradient(180deg,
      rgba(248,250,252,.04) 0%,
      rgba(248,250,252,.24) 35%,
      rgba(248,250,252,.78) 55%,
      #f8fafc 70%,
      #f8fafc 100%
    ) !important;
  }

  .hero-v65::before{display:none !important}

  .hero-v65-content{
    padding-top:275px !important;
  }

  .hero-v65-copy{
    width:100% !important;
    max-width:560px !important;
  }

  .hero-v65-stats{
    position:relative !important;
    left:auto !important;
    bottom:auto !important;
    width:100% !important;
    margin:20px auto 0 !important;
    transform:none !important;
  }

  .hero-v65-wave{display:none !important}
}

@media(max-width:600px){
  .hero-v65 h1{
    font-size:44px !important;
  }
}


/* =========================================================
   ALET V7.1 — AJUSTES PUNTUALES
   Menú compacto, hero integrado, WhatsApp y secciones completas
   ========================================================= */
:root{ --alet-header-h:74px; }

/* 1. MENÚ SUPERIOR MÁS PEQUEÑO */
.site-header{
  height:74px !important;
  min-height:74px !important;
  padding:0 4.2vw !important;
  gap:28px !important;
  align-items:center !important;
}
.site-header .brand{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
}
.site-header .brand img{
  width:auto !important;
  height:44px !important;
  max-height:44px !important;
  object-fit:contain !important;
}
#nav{
  gap:25px !important;
  align-items:center !important;
}
#nav a{
  font-size:11px !important;
  line-height:1 !important;
  padding:29px 0 26px !important;
  white-space:nowrap !important;
}
.header-cta{
  min-height:42px !important;
  padding:0 18px !important;
  border-radius:6px !important;
  font-size:11px !important;
  white-space:nowrap !important;
}

/* 2. HERO: fotografía contenida y transición suave */
.hero-v65{
  position:relative !important;
  isolation:isolate !important;
  min-height:calc(100svh - var(--alet-header-h)) !important;
  height:auto !important;
  max-height:none !important;
  padding:64px 5.2vw 112px !important;
  background:#f7f9fc !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
}
/* fotografía: tamaño moderado, sin rectángulo visual duro */
.hero-v65::after{
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  top:4% !important;
  right:1.5% !important;
  width:55% !important;
  height:92% !important;
  opacity:1 !important;
  pointer-events:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:url("images/hero_guardia_blanco_clean_v67.jpg") 78% center / auto 100% no-repeat !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 8%,rgba(0,0,0,.48) 19%,rgba(0,0,0,.85) 31%,#000 43%,#000 100%),linear-gradient(180deg,transparent 0%,#000 4%,#000 96%,transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 8%,rgba(0,0,0,.48) 19%,rgba(0,0,0,.85) 31%,#000 43%,#000 100%);
  animation:aletHeroPhotoIn .9s cubic-bezier(.2,.8,.2,1) both !important;
}
/* difuminación aplicada a la unión fondo/foto, no a la fotografía */
.hero-v65-overlay{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:
    linear-gradient(90deg,
      #f7f9fc 0%, #f7f9fc 39%,
      rgba(247,249,252,.99) 44%,
      rgba(247,249,252,.92) 48%,
      rgba(247,249,252,.73) 53%,
      rgba(247,249,252,.46) 58%,
      rgba(247,249,252,.19) 63%,
      rgba(247,249,252,0) 69%) !important;
}
/* radar/pulso llamativo */
.hero-v65::before{
  content:"" !important;
  position:absolute !important;
  z-index:2 !important;
  top:26% !important;
  right:16% !important;
  left:auto !important;
  bottom:auto !important;
  width:170px !important;
  height:170px !important;
  display:block !important;
  border:1px solid rgba(229,31,42,.20) !important;
  border-radius:50% !important;
  background:transparent !important;
  pointer-events:none !important;
  animation:aletHeroRadar 3.3s ease-out infinite !important;
}
.hero-v65-content{
  position:relative !important;
  z-index:3 !important;
  width:min(1420px,100%) !important;
  margin:0 auto !important;
  display:flex !important;
  align-items:center !important;
}
.hero-v65-copy{
  width:min(525px,40vw) !important;
  margin:0 !important;
}
.hero-v65 h1{
  max-width:510px !important;
  font-size:clamp(52px,4.35vw,70px) !important;
  line-height:.96 !important;
  letter-spacing:-.047em !important;
  margin:0 !important;
}
.hero-v65-redline{ margin:20px 0 18px !important; }
.hero-v65-copy p{
  max-width:445px !important;
  font-size:16px !important;
  line-height:1.65 !important;
  margin:0 !important;
}
.hero-v65-actions{ margin-top:25px !important; }
.hero-v65-stats{
  z-index:4 !important;
  width:min(900px,68%) !important;
  min-height:72px !important;
  bottom:18px !important;
}
.hero-v65-wave{ opacity:.26 !important; }
@keyframes aletHeroPhotoIn{
  from{opacity:0;transform:translateX(24px) scale(1.015)}
  to{opacity:1;transform:none}
}
@keyframes aletHeroRadar{
  0%{transform:scale(.45);opacity:0;box-shadow:0 0 0 0 rgba(229,31,42,.15)}
  18%{opacity:.42}
  72%{transform:scale(1.4);opacity:0;box-shadow:0 0 0 28px rgba(229,31,42,0)}
  100%{opacity:0}
}

/* 4. SECCIONES: cada bloque ocupa la pantalla, sin asomar la siguiente */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  min-height:calc(100svh - var(--alet-header-h)) !important;
  box-sizing:border-box !important;
  padding-top:clamp(62px,7vh,88px) !important;
  padding-bottom:clamp(62px,7vh,88px) !important;
}
.about-modern,
.services-v5,
.permits-v5,
.clients-v6{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}
/* Evita que una sección compacta deje ver demasiado la siguiente */
.personal-section{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* 5. DISTRIBUCIÓN DEL TEXTO: más aire y anchuras controladas */
.about-modern .about-copy{ max-width:570px !important; }
.about-modern .about-copy h2{ margin-bottom:24px !important; }
.about-modern .about-copy p{ max-width:520px !important; line-height:1.7 !important; }
.services-v5-head{ max-width:760px !important; margin-bottom:44px !important; }
.services-v5-head p{ max-width:600px !important; margin:20px auto 0 !important; line-height:1.65 !important; }
.personal-section > h2,
.personal-section > .lead,
.personal-section > .training-grid{ width:min(1440px,100%) !important; margin-left:auto !important; margin-right:auto !important; }
.personal-section > .lead{ max-width:780px !important; margin-top:28px !important; margin-left:auto !important; margin-right:auto !important; text-align:center !important; line-height:1.7 !important; }
.permits-v5-intro{ max-width:760px !important; margin-left:auto !important; margin-right:auto !important; line-height:1.7 !important; }
.clients-v6 h2{ max-width:850px !important; margin-left:auto !important; margin-right:auto !important; }
.contact-v6-lead{ max-width:720px !important; line-height:1.7 !important; }

/* 6. PERSONAL Y CAPACITACIÓN: línea amarilla centrada debajo del título */
.personal-section h2{
  position:relative !important;
  display:block !important;
  max-width:1160px !important;
  text-align:center !important;
  padding-bottom:24px !important;
  margin-bottom:0 !important;
}
.personal-section h2 .yellow-stroke{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  top:auto !important;
  bottom:0 !important;
  width:190px !important;
  height:5px !important;
  border-radius:999px !important;
  transform:translateX(-50%) scaleX(0) !important;
  transform-origin:left center !important;
  background:#f5ad00 !important;
  animation:aletYellowScribble 1.05s cubic-bezier(.2,.8,.2,1) forwards !important;
}
@keyframes aletYellowScribble{
  0%{transform:translateX(-50%) scaleX(0);opacity:.35}
  75%{transform:translateX(-50%) scaleX(1.06);opacity:1}
  100%{transform:translateX(-50%) scaleX(1);opacity:1}
}
.personal-section .training-grid{ margin-top:44px !important; }

/* 3. WHATSAPP FLOTANTE + MENSAJE DE BIENVENIDA */
.whatsapp-float{
  position:fixed !important;
  right:24px !important;
  bottom:24px !important;
  z-index:9999 !important;
  width:58px !important;
  height:58px !important;
  border-radius:50% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#25D366 !important;
  box-shadow:0 12px 28px rgba(0,0,0,.22) !important;
  transition:transform .2s ease,box-shadow .2s ease !important;
}
.whatsapp-float:hover{ transform:translateY(-3px) scale(1.04) !important; box-shadow:0 16px 34px rgba(0,0,0,.26) !important; }
.whatsapp-float svg{ width:31px !important; height:31px !important; fill:#fff !important; }
.wa-welcome{
  position:fixed !important;
  right:24px !important;
  bottom:94px !important;
  z-index:9998 !important;
  width:270px !important;
  padding:15px 38px 15px 16px !important;
  border-radius:12px !important;
  background:#fff !important;
  color:#0b2a56 !important;
  box-shadow:0 14px 34px rgba(11,42,86,.17) !important;
  border:1px solid rgba(11,42,86,.10) !important;
  opacity:0 !important;
  transform:translateY(10px) scale(.98) !important;
  pointer-events:none !important;
  transition:.28s ease !important;
}
.wa-welcome.show{ opacity:1 !important; transform:none !important; pointer-events:auto !important; }
.wa-welcome strong{ display:block !important; margin-bottom:4px !important; font-size:14px !important; }
.wa-welcome span{ display:block !important; font-size:12px !important; line-height:1.45 !important; color:#53677f !important; }
.wa-welcome-close{
  position:absolute !important;
  top:8px !important;
  right:9px !important;
  border:0 !important;
  background:transparent !important;
  color:#7b8ca0 !important;
  font-size:20px !important;
  cursor:pointer !important;
}

/* navegación alineada con el header compacto */
html{ scroll-padding-top:82px !important; }
main > section[id]{ scroll-margin-top:82px !important; }

@media(max-width:1200px){
  :root{--alet-header-h:70px}
  .site-header{height:70px !important;min-height:70px !important;padding:0 3vw !important;gap:18px !important}
  .site-header .brand img{height:40px !important;max-height:40px !important}
  #nav{gap:18px !important}
  #nav a{font-size:10px !important}
  .header-cta{padding:0 14px !important;font-size:10px !important}
  .hero-v65::after{width:57% !important;background-position:82% center !important}
}
@media(max-width:900px){
  .about-modern,.services-v5,.personal-section,.permits-v5,.clients-v6{min-height:auto !important}
  .hero-v65{min-height:660px !important;height:auto !important;padding:38px 24px 28px !important;align-items:flex-end !important}
  .hero-v65::after{top:0 !important;right:0 !important;width:100% !important;height:56% !important;background-position:70% 12% !important;background-size:auto 98% !important}
  .hero-v65-overlay{background:linear-gradient(180deg,rgba(247,249,252,.02) 0%,rgba(247,249,252,.2) 34%,rgba(247,249,252,.78) 55%,#f7f9fc 70%,#f7f9fc 100%) !important}
  .hero-v65::before{display:none !important}
  .hero-v65-content{padding-top:280px !important}
  .hero-v65-copy{width:100% !important;max-width:560px !important}
  .hero-v65-stats{position:relative !important;left:auto !important;bottom:auto !important;width:100% !important;transform:none !important;margin-top:20px !important}
  .whatsapp-float{right:16px !important;bottom:16px !important;width:54px !important;height:54px !important}
  .wa-welcome{right:16px !important;bottom:80px !important;width:min(260px,calc(100vw - 32px)) !important}
}
@media(prefers-reduced-motion:reduce){
  .hero-v65::after,.hero-v65::before,.personal-section h2 .yellow-stroke{animation:none !important}
  .personal-section h2 .yellow-stroke{transform:translateX(-50%) scaleX(1) !important}
}


/* =========================================================
   ALET V7.2 — AJUSTES SOLICITADOS
   Menú compacto · Hero integrado · Secciones más amplias
   · Texto respirado · Línea amarilla corregida
   ========================================================= */

:root{
  --alet-header-h:68px !important;
  --alet-section-x:clamp(28px,5vw,86px);
  --alet-section-y:clamp(54px,6vh,72px);
}

/* 1. MENÚ SUPERIOR MÁS PEQUEÑO */
.site-header{
  height:68px !important;
  min-height:68px !important;
  padding:0 4vw !important;
  gap:24px !important;
}

.site-header .brand{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
}

.site-header .brand img{
  width:auto !important;
  height:40px !important;
  max-height:40px !important;
  object-fit:contain !important;
}

#nav{
  gap:22px !important;
}

#nav a{
  font-size:10.5px !important;
  padding:23px 0 20px !important;
  letter-spacing:.01em !important;
}

.header-cta{
  min-height:40px !important;
  padding:0 16px !important;
  font-size:10.5px !important;
  border-radius:6px !important;
}

/* Ajuste del desplazamiento para el nuevo header */
html{
  scroll-padding-top:74px !important;
}
main > section[id]{
  scroll-margin-top:74px !important;
}

/* 2. HERO — imagen más pequeña, sin corte y transición progresiva */
.hero-v65{
  position:relative !important;
  min-height:calc(100vh - 68px) !important;
  height:auto !important;
  max-height:none !important;
  padding:56px var(--alet-section-x) 108px !important;
  display:flex !important;
  align-items:center !important;
  overflow:hidden !important;
  background:#f7f9fc !important;
}

/* Foto contenida; nunca ocupa toda la mitad ni toca visualmente los bordes */
.hero-v65::after{
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  top:2% !important;
  right:1.5% !important;
  bottom:2% !important;
  width:57% !important;
  height:96% !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  opacity:1 !important;
  pointer-events:none !important;

  background:
    url("images/hero_guardia_blanco_clean_v67.jpg")
    86% center / auto 88% no-repeat !important;

  /* El borde izquierdo y los extremos se disuelven suavemente */
  -webkit-mask-image:
    linear-gradient(90deg,
      transparent 0%,
      rgba(0,0,0,.10) 8%,
      rgba(0,0,0,.38) 16%,
      rgba(0,0,0,.72) 25%,
      #000 37%,
      #000 96%,
      rgba(0,0,0,.72) 100%
    ),
    linear-gradient(180deg,
      transparent 0%,
      rgba(0,0,0,.65) 5%,
      #000 12%,
      #000 88%,
      rgba(0,0,0,.65) 95%,
      transparent 100%
    );
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(90deg,
      transparent 0%,
      rgba(0,0,0,.10) 8%,
      rgba(0,0,0,.38) 16%,
      rgba(0,0,0,.72) 25%,
      #000 37%,
      #000 96%,
      rgba(0,0,0,.72) 100%
    );

  animation:aletHeroImageIn 1.1s cubic-bezier(.2,.78,.2,1) both !important;
}

/* Difuminación únicamente entre el fondo y la imagen */
.hero-v65-overlay{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  display:block !important;
  pointer-events:none !important;
  background:
    linear-gradient(90deg,
      #f7f9fc 0%,
      #f7f9fc 38%,
      rgba(247,249,252,.98) 43%,
      rgba(247,249,252,.90) 48%,
      rgba(247,249,252,.70) 53%,
      rgba(247,249,252,.44) 58%,
      rgba(247,249,252,.20) 63%,
      rgba(247,249,252,.06) 68%,
      transparent 73%
    ) !important;
}

/* Pulso tecnológico discreto sobre la zona de la fotografía */
.hero-v65::before{
  content:"" !important;
  position:absolute !important;
  z-index:2 !important;
  top:31% !important;
  right:18% !important;
  left:auto !important;
  bottom:auto !important;
  width:110px !important;
  height:110px !important;
  border-radius:50% !important;
  border:1px solid rgba(229,31,42,.22) !important;
  background:transparent !important;
  pointer-events:none !important;
  animation:aletHeroRadar 3.5s ease-out infinite !important;
}

.hero-v65-content{
  position:relative !important;
  z-index:3 !important;
  width:min(1420px,100%) !important;
  margin:0 auto !important;
  display:flex !important;
  align-items:center !important;
}

.hero-v65-copy{
  width:min(520px,40vw) !important;
  max-width:520px !important;
  padding:0 !important;
  margin:0 !important;
}

/* 5. TEXTO MÁS RESPIRADO */
.hero-v65 h1{
  max-width:510px !important;
  font-size:clamp(50px,4.15vw,67px) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}

.hero-v65-redline{
  margin:22px 0 20px !important;
}

.hero-v65-copy p{
  max-width:455px !important;
  font-size:15.5px !important;
  line-height:1.7 !important;
}

.hero-v65-actions{
  margin-top:26px !important;
  gap:12px !important;
}

.hero-v65-stats{
  width:min(900px,68%) !important;
  min-height:68px !important;
  bottom:18px !important;
}

/* 4. SECCIONES: que cada sección ocupe la pantalla completa.
   Si el contenido necesita más espacio, crece de forma natural. */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  min-height:calc(100vh - 68px) !important;
  box-sizing:border-box !important;
  padding-top:var(--alet-section-y) !important;
  padding-bottom:var(--alet-section-y) !important;
}

/* Contenido centrado verticalmente cuando hay espacio */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* Evitar que las secciones se vean compactadas */
.about-modern .about-inner,
.services-v5-head,
.services-v5-grid,
.personal-section > h2,
.personal-section > .lead,
.personal-section > .training-grid,
.permits-v5-inner,
.clients-v6-inner{
  flex-shrink:0 !important;
}

/* Ritmo común para títulos y párrafos */
.about-modern h2,
.services-v5-head h2,
.personal-section h2,
.permits-v5 h2,
.clients-v6 h2{
  margin-top:0 !important;
}

.about-modern .about-copy p,
.services-v5-head p,
.personal-section .lead,
.permits-v5-intro{
  line-height:1.7 !important;
}

/* Quiénes somos: más aire entre bloques */
.about-modern .about-inner{
  margin-bottom:36px !important;
}
.about-modern .services-served{
  margin-top:18px !important;
}

/* Servicios: separación más limpia */
.services-v5-head{
  margin-bottom:42px !important;
}
.services-v5-grid{
  gap:18px !important;
}
.services-v5-footer{
  margin-top:34px !important;
}

/* Personal: texto y tarjetas mejor distribuidos */
.personal-section > .lead{
  max-width:760px !important;
  margin-top:26px !important;
  margin-bottom:0 !important;
  text-align:center !important;
}
.personal-section .training-grid{
  margin-top:42px !important;
  gap:18px !important;
}

/* 6. LÍNEA AMARILLA DE ADIESTRAMIENTO:
   centrada y separada del texto, sin atravesar el título */
.personal-section h2{
  position:relative !important;
  width:min(1160px,100%) !important;
  max-width:1160px !important;
  margin:0 auto !important;
  padding:0 0 30px !important;
  text-align:center !important;
  line-height:1.08 !important;
}

.personal-section h2 .yellow-stroke{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  top:auto !important;
  bottom:8px !important;
  width:160px !important;
  height:5px !important;
  margin:0 !important;
  border-radius:999px !important;
  background:#f5ad00 !important;
  transform:translateX(-50%) scaleX(0) !important;
  transform-origin:center center !important;
  animation:aletYellowLineV72 1.05s .15s cubic-bezier(.2,.8,.2,1) forwards !important;
}

@keyframes aletYellowLineV72{
  0%{transform:translateX(-50%) scaleX(0);opacity:.3}
  72%{transform:translateX(-50%) scaleX(1.06);opacity:1}
  100%{transform:translateX(-50%) scaleX(1);opacity:1}
}

@keyframes aletHeroImageIn{
  from{opacity:0;transform:translateX(25px)}
  to{opacity:1;transform:none}
}

@keyframes aletHeroRadar{
  0%{transform:scale(.45);opacity:0}
  18%{opacity:.5}
  75%{transform:scale(1.55);opacity:0}
  100%{transform:scale(1.55);opacity:0}
}

/* WhatsApp: conservar botón y mensaje de bienvenida */
.whatsapp-float{
  right:22px !important;
  bottom:22px !important;
}
.wa-welcome{
  right:22px !important;
  bottom:90px !important;
}

/* Escritorio mediano */
@media(max-width:1250px){
  .site-header{
    height:64px !important;
    min-height:64px !important;
  }
  .site-header .brand img{
    height:37px !important;
    max-height:37px !important;
  }
  #nav{gap:17px !important}
  #nav a{font-size:10px !important}
  .header-cta{font-size:10px !important;padding:0 13px !important}

  html{scroll-padding-top:70px !important}
  main > section[id]{scroll-margin-top:70px !important}

  .hero-v65{
    min-height:calc(100vh - 64px) !important;
  }
  .hero-v65::after{
    width:56% !important;
    background-position:88% center !important;
    background-size:auto 84% !important;
  }

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    min-height:calc(100vh - 64px) !important;
  }
}

/* Tablet / móvil: la altura deja de ser forzada */
@media(max-width:900px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    min-height:auto !important;
    padding-top:50px !important;
    padding-bottom:50px !important;
  }

  .hero-v65{
    min-height:650px !important;
    height:auto !important;
  }

  .hero-v65::after{
    top:0 !important;
    right:0 !important;
    width:100% !important;
    height:54% !important;
    background-position:71% 12% !important;
    background-size:auto 92% !important;
  }

  .hero-v65-overlay{
    background:linear-gradient(180deg,
      rgba(247,249,252,0) 0%,
      rgba(247,249,252,.18) 32%,
      rgba(247,249,252,.74) 54%,
      #f7f9fc 70%,
      #f7f9fc 100%
    ) !important;
  }

  .hero-v65::before{
    display:none !important;
  }

  .hero-v65-content{
    padding-top:280px !important;
  }

  .hero-v65-copy{
    width:100% !important;
    max-width:560px !important;
  }

  .personal-section h2 .yellow-stroke{
    width:130px !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .hero-v65::after,
  .hero-v65::before,
  .personal-section h2 .yellow-stroke{
    animation:none !important;
  }

  .personal-section h2 .yellow-stroke{
    transform:translateX(-50%) scaleX(1) !important;
  }
}


/* =========================================================
   ALET V7.3 — Ajuste solicitado por etapas
   ========================================================= */

:root{
  --alet-header-h:74px !important;
  --section-vh:calc(100vh - var(--alet-header-h));
}

/* 1. MENÚ MÁS PEQUEÑO */
.site-header{
  height:74px !important;
  min-height:74px !important;
  padding:0 4vw !important;
  grid-template-columns:72px 1fr auto !important;
  gap:18px !important;
}
.site-header .logo,
.site-logo{
  width:auto !important;
  height:42px !important;
  max-height:42px !important;
}
.site-header nav{
  gap:22px !important;
}
.site-header nav a{
  font-size:11px !important;
  padding:25px 0 21px !important;
}
.header-cta{
  min-height:42px !important;
  padding:0 17px !important;
  font-size:11px !important;
}

/* 2. HERO: más integrado, sin corte visible */
.hero-v65{
  min-height:var(--section-vh) !important;
  height:var(--section-vh) !important;
  max-height:none !important;
  padding:46px 5vw 92px !important;
  background:#f7f9fc !important;
  overflow:hidden !important;
  display:flex !important;
  align-items:center !important;
}

/* Imagen derecha con máscara gradual */
.hero-v65::after{
  content:"" !important;
  position:absolute !important;
  z-index:0 !important;
  top:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:57% !important;
  height:100% !important;
  opacity:1 !important;
  pointer-events:none !important;
  border:0 !important;
  background:url("images/hero_guardia_blanco_clean_v67.jpg") 74% center / auto 91% no-repeat !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 8%,rgba(0,0,0,.45) 17%,rgba(0,0,0,.78) 27%,#000 38%,#000 100%) !important;
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.12) 8%,rgba(0,0,0,.45) 17%,rgba(0,0,0,.78) 27%,#000 38%,#000 100%) !important;
  animation:heroPhotoSoftIn 1.15s cubic-bezier(.2,.8,.2,1) both !important;
}

/* Difuminación visual en la UNIÓN, no sobre la foto */
.hero-v65-overlay{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:
    linear-gradient(90deg,
      #f7f9fc 0%,
      #f7f9fc 40%,
      rgba(247,249,252,.98) 45%,
      rgba(247,249,252,.90) 49%,
      rgba(247,249,252,.70) 54%,
      rgba(247,249,252,.43) 59%,
      rgba(247,249,252,.18) 64%,
      rgba(247,249,252,0) 70%
    ) !important;
}

/* Pulso discreto tipo radar */
.hero-v65::before{
  content:"" !important;
  position:absolute !important;
  z-index:2 !important;
  right:15% !important;
  top:23% !important;
  left:auto !important;
  bottom:auto !important;
  width:180px !important;
  height:180px !important;
  border:1px solid rgba(229,31,42,.16) !important;
  border-radius:50% !important;
  background:transparent !important;
  pointer-events:none !important;
  animation:heroRadarPulse 3.5s ease-out infinite !important;
}

.hero-v65-content{
  width:min(1400px,100%) !important;
  margin:0 auto !important;
  position:relative !important;
  z-index:3 !important;
}
.hero-v65-copy{
  width:min(520px,39vw) !important;
  margin:0 !important;
}
.hero-v65 h1{
  font-size:clamp(52px,4.25vw,68px) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
  max-width:520px !important;
}
.hero-v65-redline{
  width:62px !important;
  height:3px !important;
  margin:20px 0 17px !important;
}
.hero-v65-copy p{
  max-width:455px !important;
  font-size:15.5px !important;
  line-height:1.65 !important;
  margin:0 !important;
}
.hero-v65-actions{
  margin-top:24px !important;
  gap:12px !important;
}
.hero-v65-stats{
  width:min(900px,68%) !important;
  min-height:68px !important;
  bottom:18px !important;
}

/* 4. SECCIONES: una sección completa por pantalla */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6,
.contact-v6{
  min-height:var(--section-vh) !important;
  box-sizing:border-box !important;
  padding-top:56px !important;
  padding-bottom:56px !important;
}

/* Evita que asome demasiado la siguiente sección */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* 5. TEXTO: más aire y mejor distribución */
.about-modern h2,
.services-v5-head h2,
.personal-section h2,
.permits-v5 h2,
.clients-v6 h2,
.contact-v6 h2{
  margin-top:0 !important;
  margin-bottom:22px !important;
  line-height:1.08 !important;
}
.about-modern p,
.services-v5-head p,
.personal-section .lead,
.permits-v5-intro,
.contact-v6-lead{
  line-height:1.68 !important;
  max-width:760px !important;
}
.services-v5-head{
  margin-bottom:40px !important;
}
.services-v5-grid{
  gap:18px !important;
}
.service-v5-card{
  padding:28px 22px !important;
}
.service-v5-card h3{
  margin:14px 0 10px !important;
  line-height:1.18 !important;
}
.service-v5-card p{
  line-height:1.55 !important;
}

/* 6. PERSONAL: línea amarilla correctamente debajo del título */
.personal-section h2{
  position:relative !important;
  display:inline-block !important;
  width:auto !important;
  padding-bottom:20px !important;
}
.personal-section h2 .yellow-stroke{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  bottom:2px !important;
  width:220px !important;
  max-width:38% !important;
  height:5px !important;
  transform:translateX(-50%) rotate(-.4deg) !important;
  transform-origin:center !important;
  border-radius:999px !important;
}
.personal-section .lead{
  margin-top:10px !important;
  margin-bottom:32px !important;
}
.personal-section .training-grid{
  margin-top:18px !important;
  gap:16px !important;
}
.personal-section .training-card{
  min-height:82px !important;
}

/* 3. WHATSAPP */
.whatsapp-float{
  position:fixed !important;
  right:22px !important;
  bottom:22px !important;
  z-index:9999 !important;
  width:58px !important;
  height:58px !important;
  border-radius:50% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#25D366 !important;
  box-shadow:0 12px 30px rgba(0,0,0,.20) !important;
  transition:transform .22s ease,box-shadow .22s ease !important;
}
.whatsapp-float svg{
  width:31px !important;
  height:31px !important;
  fill:#fff !important;
}
.whatsapp-float:hover{
  transform:translateY(-3px) scale(1.05) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.25) !important;
}
.whatsapp-tooltip{
  position:absolute !important;
  right:70px !important;
  bottom:7px !important;
  width:max-content !important;
  max-width:285px !important;
  padding:10px 13px !important;
  border-radius:8px !important;
  background:#071b31 !important;
  color:#fff !important;
  font-size:12px !important;
  line-height:1.35 !important;
  opacity:0 !important;
  transform:translateX(8px) !important;
  pointer-events:none !important;
  transition:.2s ease !important;
}
.whatsapp-float:hover .whatsapp-tooltip{
  opacity:1 !important;
  transform:none !important;
}

@keyframes heroPhotoSoftIn{
  0%{opacity:0;transform:translateX(24px) scale(1.015)}
  100%{opacity:1;transform:none}
}
@keyframes heroRadarPulse{
  0%{transform:scale(.55);opacity:0}
  16%{opacity:.36}
  72%{transform:scale(1.35);opacity:0}
  100%{opacity:0}
}

/* Menú/scroll consistente con nuevo header */
html{
  scroll-padding-top:82px !important;
}
main > section[id]{
  scroll-margin-top:82px !important;
}

@media(max-width:1100px){
  :root{--alet-header-h:68px !important}

  .site-header{
    height:68px !important;
    min-height:68px !important;
    grid-template-columns:62px 1fr auto !important;
  }
  .site-header .logo,
  .site-logo{
    height:38px !important;
    max-height:38px !important;
  }
  .site-header nav{gap:15px !important}
  .site-header nav a{font-size:10px !important}

  .hero-v65{
    min-height:calc(100vh - 68px) !important;
    height:calc(100vh - 68px) !important;
  }
  .hero-v65::after{
    width:59% !important;
    background-position:78% center !important;
    background-size:auto 88% !important;
  }

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:calc(100vh - 68px) !important;
  }

  html{scroll-padding-top:76px !important}
  main > section[id]{scroll-margin-top:76px !important}
}

@media(max-width:900px){
  .hero-v65{
    height:auto !important;
    min-height:680px !important;
    padding:36px 24px 30px !important;
    align-items:flex-end !important;
  }
  .hero-v65::after{
    width:100% !important;
    height:55% !important;
    top:0 !important;
    bottom:auto !important;
    background-position:70% 16% !important;
    background-size:auto 96% !important;
  }
  .hero-v65-overlay{
    background:linear-gradient(180deg,
      rgba(247,249,252,.02) 0%,
      rgba(247,249,252,.20) 35%,
      rgba(247,249,252,.78) 55%,
      #f7f9fc 70%,
      #f7f9fc 100%
    ) !important;
  }
  .hero-v65::before{display:none !important}
  .hero-v65-content{padding-top:285px !important}
  .hero-v65-copy{width:100% !important}

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:auto !important;
  }

  .whatsapp-tooltip{display:none !important}
}

@media(prefers-reduced-motion:reduce){
  .hero-v65::after,
  .hero-v65::before{
    animation:none !important;
  }
}


/* =========================================================
   ALET V7.4 — RESPONSIVE / HERO / MENÚ / ALTURAS
   ========================================================= */

:root{
  --header-h:88px;
  --section-pad-x:clamp(22px,4.8vw,86px);
  --section-pad-y:clamp(44px,6vh,72px);
  --title-lg:clamp(42px,3.5vw,58px);
  --subtitle-lg:clamp(19px,1.6vw,26px);
  --body-lg:clamp(14px,1vw,16px);
}

/* 1) MENÚ: un poco más grande, sin verse comprimido */
.site-header{
  height:var(--header-h) !important;
  min-height:var(--header-h) !important;
  padding:0 4.2vw !important;
  grid-template-columns:86px 1fr auto !important;
  gap:24px !important;
}
.site-header .logo,
.site-logo{
  height:52px !important;
  max-height:52px !important;
  width:auto !important;
}
.site-header nav{
  gap:clamp(18px,1.7vw,31px) !important;
  justify-content:center !important;
}
.site-header nav a{
  font-size:clamp(11px,.78vw,13px) !important;
  padding:31px 0 27px !important;
  white-space:nowrap !important;
}
.header-cta{
  min-height:48px !important;
  padding:0 20px !important;
  font-size:12px !important;
  border-radius:8px !important;
}

/* 2) HERO: nueva integración real, sin rectángulo cortado */
.hero-v65{
  min-height:calc(100svh - var(--header-h)) !important;
  height:calc(100svh - var(--header-h)) !important;
  max-height:none !important;
  padding:clamp(38px,5vh,62px) var(--section-pad-x) 100px !important;
  background:
    linear-gradient(90deg,#f7f9fc 0%,#f7f9fc 46%,rgba(247,249,252,.72) 57%,rgba(247,249,252,0) 70%),
    url("images/hero_guardia_blanco_clean_v67.jpg") right center / 56% auto no-repeat !important;
  display:flex !important;
  align-items:center !important;
  overflow:hidden !important;
}

/* Neutraliza capas anteriores que causaban el corte */
.hero-v65::after{
  display:none !important;
}
.hero-v65-overlay{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  pointer-events:none !important;
  background:
    radial-gradient(circle at 72% 38%,rgba(229,31,42,.07),transparent 22%),
    linear-gradient(90deg,
      rgba(247,249,252,1) 0%,
      rgba(247,249,252,1) 44%,
      rgba(247,249,252,.95) 49%,
      rgba(247,249,252,.72) 55%,
      rgba(247,249,252,.38) 61%,
      rgba(247,249,252,.12) 67%,
      rgba(247,249,252,0) 73%
    ) !important;
}

/* Animación llamativa pero discreta: aro radar en zona derecha */
.hero-v65::before{
  content:"" !important;
  position:absolute !important;
  z-index:2 !important;
  top:25% !important;
  right:14% !important;
  left:auto !important;
  bottom:auto !important;
  width:160px !important;
  height:160px !important;
  border-radius:50% !important;
  border:1px solid rgba(229,31,42,.16) !important;
  background:transparent !important;
  animation:heroRadarV74 3.4s ease-out infinite !important;
  pointer-events:none !important;
}

.hero-v65-content{
  width:min(1400px,100%) !important;
  margin:0 auto !important;
  z-index:3 !important;
}
.hero-v65-copy{
  width:min(540px,42vw) !important;
}
.hero-v65 h1{
  font-size:clamp(52px,4.4vw,70px) !important;
  line-height:.96 !important;
  max-width:540px !important;
}
.hero-v65-copy p{
  font-size:16px !important;
  line-height:1.65 !important;
  max-width:470px !important;
}
.hero-v65-stats{
  width:min(900px,68%) !important;
  min-height:70px !important;
  bottom:18px !important;
}

@keyframes heroRadarV74{
  0%{transform:scale(.55);opacity:0}
  15%{opacity:.34}
  72%{transform:scale(1.45);opacity:0}
  100%{opacity:0}
}

/* 3) WhatsApp estándar */
.whatsapp-float{
  width:56px !important;
  height:56px !important;
  right:22px !important;
  bottom:22px !important;
  background:#25D366 !important;
  border-radius:50% !important;
  box-shadow:0 12px 28px rgba(0,0,0,.20) !important;
}
.whatsapp-float svg{
  width:32px !important;
  height:32px !important;
  fill:#fff !important;
}

/* 4) TITULARES Y SUBTÍTULOS: máximo dos líneas */
.about-modern h2,
.services-v5-head h2,
.personal-section h2,
.permits-v5 h2,
.clients-v6 h2,
.contact-v6 h2{
  font-size:var(--title-lg) !important;
  line-height:1.08 !important;
  max-width:900px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-wrap:balance !important;
}
.about-modern .about-copy h2{
  max-width:620px !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.services-v5-head h2,
.permits-v5 h2,
.clients-v6 h2,
.contact-v6 h2{
  max-width:820px !important;
}
.personal-section h2{
  max-width:1040px !important;
}
/* Fuerza saltos más compactos donde había 3 líneas */
.permits-v5 h2 br{
  display:none !important;
}
.clients-v6 h2 br{
  display:none !important;
}

/* 5) ALTURA DE SECCIONES: cada una ocupa el viewport útil */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6,
.contact-v6{
  min-height:calc(100svh - var(--header-h)) !important;
  height:auto !important;
  padding:var(--section-pad-y) var(--section-pad-x) !important;
  box-sizing:border-box !important;
}
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* 6) RESPONSIVE COMPLETO */
html{
  scroll-padding-top:calc(var(--header-h) + 8px) !important;
}
main > section[id]{
  scroll-margin-top:calc(var(--header-h) + 8px) !important;
}

/* Desktop mediano / laptop */
@media (max-width:1366px){
  :root{--header-h:82px}
  .site-header{
    grid-template-columns:76px 1fr auto !important;
  }
  .site-header .logo,.site-logo{
    height:46px !important;
    max-height:46px !important;
  }
  .site-header nav{gap:18px !important}
  .site-header nav a{font-size:11px !important}
  .hero-v65{
    background-size:58% auto !important;
    background-position:right center !important;
  }
  .hero-v65-copy{width:min(500px,43vw) !important}
}

/* Tablet horizontal */
@media (max-width:1024px){
  :root{--header-h:76px}
  .site-header{
    grid-template-columns:64px 1fr auto !important;
    padding:0 24px !important;
  }
  .site-header .logo,.site-logo{
    height:42px !important;
    max-height:42px !important;
  }
  .site-header nav{
    gap:13px !important;
  }
  .site-header nav a{
    font-size:10px !important;
  }
  .header-cta{
    min-height:42px !important;
    padding:0 14px !important;
  }

  .hero-v65{
    min-height:calc(100svh - var(--header-h)) !important;
    height:auto !important;
    background:
      linear-gradient(90deg,#f7f9fc 0%,#f7f9fc 48%,rgba(247,249,252,.60) 64%,rgba(247,249,252,0) 76%),
      url("images/hero_guardia_blanco_clean_v67.jpg") 92% center / 58% auto no-repeat !important;
  }
  .hero-v65-copy{
    width:min(470px,48vw) !important;
  }
}

/* Tablet vertical + móvil */
@media (max-width:820px){
  :root{--header-h:68px}

  .site-header{
    height:auto !important;
    min-height:68px !important;
    padding:10px 18px !important;
    grid-template-columns:52px 1fr auto !important;
  }
  .site-header .logo,.site-logo{
    height:38px !important;
    max-height:38px !important;
  }

  /* navegación adaptable */
  .site-header nav{
    overflow-x:auto !important;
    justify-content:flex-start !important;
    gap:18px !important;
    scrollbar-width:none !important;
    padding:0 8px !important;
  }
  .site-header nav::-webkit-scrollbar{display:none !important}
  .site-header nav a{
    font-size:10px !important;
    padding:18px 0 15px !important;
  }
  .header-cta{
    display:none !important;
  }

  .hero-v65{
    min-height:720px !important;
    height:auto !important;
    padding:34px 24px 30px !important;
    align-items:flex-end !important;
    background:
      linear-gradient(180deg,
        rgba(247,249,252,.04) 0%,
        rgba(247,249,252,.22) 34%,
        rgba(247,249,252,.78) 54%,
        #f7f9fc 69%,
        #f7f9fc 100%),
      url("images/hero_guardia_blanco_clean_v67.jpg") 68% 6% / auto 56% no-repeat !important;
  }
  .hero-v65-overlay{display:none !important}
  .hero-v65::before{display:none !important}
  .hero-v65-content{
    padding-top:300px !important;
  }
  .hero-v65-copy{
    width:100% !important;
    max-width:580px !important;
  }
  .hero-v65 h1{
    font-size:clamp(44px,11vw,58px) !important;
  }
  .hero-v65-stats{
    position:relative !important;
    left:auto !important;
    bottom:auto !important;
    width:100% !important;
    transform:none !important;
    margin-top:22px !important;
    grid-template-columns:repeat(3,1fr) !important;
  }

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:auto !important;
    padding:48px 24px !important;
  }

  .services-v5-grid,
  .training-grid,
  .permits-v5-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Móvil */
@media (max-width:560px){
  .site-header{
    grid-template-columns:44px 1fr !important;
    gap:10px !important;
  }
  .site-header .logo,.site-logo{
    height:34px !important;
    max-height:34px !important;
  }
  .site-header nav{
    gap:14px !important;
  }
  .site-header nav a{
    font-size:9.5px !important;
  }

  .hero-v65{
    min-height:690px !important;
    background:
      linear-gradient(180deg,
        rgba(247,249,252,.02) 0%,
        rgba(247,249,252,.20) 30%,
        rgba(247,249,252,.82) 50%,
        #f7f9fc 64%,
        #f7f9fc 100%),
      url("images/hero_guardia_blanco_clean_v67.jpg") 68% 3% / auto 50% no-repeat !important;
  }
  .hero-v65-content{
    padding-top:270px !important;
  }
  .hero-v65 h1{
    font-size:43px !important;
  }
  .hero-v65-copy p{
    font-size:14px !important;
  }
  .hero-v65-actions{
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .hero-v65-btn{
    width:100% !important;
    justify-content:center !important;
  }
  .hero-v65-stats{
    grid-template-columns:1fr !important;
  }

  .services-v5-grid,
  .training-grid,
  .permits-v5-grid{
    grid-template-columns:1fr !important;
  }

  .whatsapp-float{
    width:52px !important;
    height:52px !important;
    right:14px !important;
    bottom:14px !important;
  }
  .whatsapp-tooltip{
    display:none !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .hero-v65::before{
    animation:none !important;
  }
}


/* =========================================================
   ALET V7.5 — Menú más legible + Hero animado
   ========================================================= */

/* MENÚ: más grande y proporcionado */
:root{
  --header-h:96px;
}

.site-header{
  height:var(--header-h) !important;
  min-height:var(--header-h) !important;
  padding:0 4vw !important;
  grid-template-columns:110px 1fr auto !important;
  gap:28px !important;
  align-items:center !important;
}

.site-header .logo,
.site-logo{
  height:62px !important;
  max-height:62px !important;
  width:auto !important;
  object-fit:contain !important;
}

.site-header nav{
  gap:clamp(22px,1.8vw,34px) !important;
  justify-content:center !important;
  align-items:center !important;
}

.site-header nav a{
  font-size:clamp(12px,.84vw,14px) !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  padding:34px 0 30px !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

/* Botón superior Contactanos mejor acomodado */
.header-cta{
  min-height:50px !important;
  padding:0 23px !important;
  margin:0 !important;
  align-self:center !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:12.5px !important;
  font-weight:800 !important;
  border-radius:9px !important;
  box-shadow:0 8px 22px rgba(229,31,42,.18) !important;
  position:relative !important;
  overflow:hidden !important;
}

/* Brillo animado en botones */
.header-cta::after,
.hero-v65-btn::after{
  content:"" !important;
  position:absolute !important;
  top:-120% !important;
  left:-40% !important;
  width:36% !important;
  height:340% !important;
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.18),
    rgba(255,255,255,.72),
    rgba(255,255,255,.18),
    transparent
  ) !important;
  transform:rotate(18deg) !important;
  animation:buttonShine 3.6s ease-in-out infinite !important;
  pointer-events:none !important;
}

.hero-v65-btn{
  position:relative !important;
  overflow:hidden !important;
  transition:transform .22s ease, box-shadow .22s ease, background-color .22s ease !important;
}

.hero-v65-btn:hover,
.header-cta:hover{
  transform:translateY(-2px) !important;
  box-shadow:0 12px 26px rgba(229,31,42,.24) !important;
}

@keyframes buttonShine{
  0%,60%{left:-45%;opacity:0}
  70%{opacity:1}
  88%{left:120%;opacity:1}
  100%{left:120%;opacity:0}
}

/* HERO: animaciones adicionales */
.hero-v65{
  min-height:calc(100svh - var(--header-h)) !important;
  height:calc(100svh - var(--header-h)) !important;
  background:
    linear-gradient(90deg,#f7f9fc 0%,#f7f9fc 46%,rgba(247,249,252,.72) 57%,rgba(247,249,252,0) 70%),
    url("images/hero_guardia_blanco_clean_v67.jpg") right center / 56% auto no-repeat !important;
}

/* Entrada del texto */
.hero-v65 h1{
  animation:heroTextIn .9s cubic-bezier(.2,.8,.2,1) both !important;
}

.hero-v65-copy p{
  animation:heroTextIn .9s .14s cubic-bezier(.2,.8,.2,1) both !important;
}

.hero-v65-actions{
  animation:heroTextIn .9s .26s cubic-bezier(.2,.8,.2,1) both !important;
}

.hero-v65-stats{
  animation:heroStatsIn .85s .38s cubic-bezier(.2,.8,.2,1) both !important;
}

/* Pulso sutil de luz sobre el fondo */
.hero-v65-overlay::after{
  content:"" !important;
  position:absolute !important;
  width:260px !important;
  height:260px !important;
  right:18% !important;
  top:20% !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(229,31,42,.08) 0%, rgba(229,31,42,.025) 38%, transparent 68%) !important;
  animation:heroGlow 4.2s ease-in-out infinite !important;
}

/* Línea roja inferior ligeramente viva */
.hero-v65-wave{
  animation:waveDrift 8s ease-in-out infinite alternate !important;
  transform-origin:center !important;
}

/* Estadísticas con micro interacción */
.hero-v65-stats > div{
  transition:transform .22s ease, background-color .22s ease !important;
}
.hero-v65-stats > div:hover{
  transform:translateY(-3px) !important;
  background:rgba(255,255,255,.96) !important;
}

@keyframes heroTextIn{
  0%{opacity:0;transform:translateY(18px)}
  100%{opacity:1;transform:none}
}

@keyframes heroStatsIn{
  0%{opacity:0;transform:translate(-50%,18px)}
  100%{opacity:1;transform:translate(-50%,0)}
}

@keyframes heroGlow{
  0%,100%{transform:scale(.92);opacity:.45}
  50%{transform:scale(1.08);opacity:.9}
}

@keyframes waveDrift{
  0%{transform:translateX(-1.5%) scaleX(.985)}
  100%{transform:translateX(1.5%) scaleX(1.015)}
}

/* Ajuste navegación/scroll al nuevo header */
html{
  scroll-padding-top:104px !important;
}
main > section[id]{
  scroll-margin-top:104px !important;
}

/* Responsive */
@media(max-width:1366px){
  :root{--header-h:90px}
  .site-header{
    grid-template-columns:96px 1fr auto !important;
    gap:22px !important;
  }
  .site-header .logo,
  .site-logo{
    height:56px !important;
    max-height:56px !important;
  }
  .site-header nav{
    gap:20px !important;
  }
  .site-header nav a{
    font-size:12px !important;
  }
}

@media(max-width:1024px){
  :root{--header-h:80px}
  .site-header{
    grid-template-columns:76px 1fr auto !important;
    padding:0 24px !important;
  }
  .site-header .logo,
  .site-logo{
    height:48px !important;
    max-height:48px !important;
  }
  .site-header nav{
    gap:14px !important;
  }
  .site-header nav a{
    font-size:10.5px !important;
  }
  .header-cta{
    min-height:44px !important;
    padding:0 16px !important;
    font-size:11px !important;
  }
}

@media(max-width:820px){
  :root{--header-h:72px}
  .site-header{
    grid-template-columns:56px 1fr auto !important;
    padding:10px 18px !important;
  }
  .site-header .logo,
  .site-logo{
    height:42px !important;
    max-height:42px !important;
  }
  .site-header nav{
    overflow-x:auto !important;
    justify-content:flex-start !important;
    gap:18px !important;
    scrollbar-width:none !important;
  }
  .site-header nav::-webkit-scrollbar{display:none !important}
  .site-header nav a{
    font-size:10px !important;
    padding:18px 0 15px !important;
  }
  .header-cta{
    display:none !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .header-cta::after,
  .hero-v65-btn::after,
  .hero-v65 h1,
  .hero-v65-copy p,
  .hero-v65-actions,
  .hero-v65-stats,
  .hero-v65-overlay::after,
  .hero-v65-wave{
    animation:none !important;
  }
}


/* =========================================================
   ALET V7.6 — ScrollSpy + secciones ajustadas al monitor
   ========================================================= */

:root{
  --header-h:96px;
  --usable-vh:calc(100svh - var(--header-h));
  --section-x:clamp(24px,4.5vw,84px);
  --section-y:clamp(40px,5.5vh,68px);
}

/* -------- MENÚ ACTIVO SEGÚN SECCIÓN -------- */
#nav a{
  position:relative !important;
  color:#0b1f3a !important;
  transition:color .22s ease, transform .22s ease !important;
}

#nav a::after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  bottom:18px !important;
  width:0 !important;
  height:2px !important;
  background:#e51f2a !important;
  transform:translateX(-50%) !important;
  transition:width .24s ease !important;
}

#nav a.is-active{
  color:#e51f2a !important;
}

#nav a.is-active::after{
  width:100% !important;
}

#nav a:hover{
  color:#e51f2a !important;
  transform:translateY(-1px) !important;
}

/* -------- ALTURA BASE RESPONSIVA --------
   Cada sección utiliza como mínimo el viewport útil real.
   Si su contenido necesita más espacio, puede crecer sin cortarse.
*/
main > section[id]{
  min-height:var(--usable-vh) !important;
  height:auto !important;
  box-sizing:border-box !important;
  scroll-margin-top:calc(var(--header-h) + 8px) !important;
}

/* Hero exacto a viewport útil */
.hero-v65{
  min-height:var(--usable-vh) !important;
  height:var(--usable-vh) !important;
  max-height:none !important;
}

/* Secciones de contenido: ocupan mínimo una pantalla, centradas */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  min-height:var(--usable-vh) !important;
  height:auto !important;
  padding-top:var(--section-y) !important;
  padding-bottom:var(--section-y) !important;
  padding-left:var(--section-x) !important;
  padding-right:var(--section-x) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  box-sizing:border-box !important;
}

/* Contacto también ocupa al menos la pantalla útil,
   pero se mantiene pegado al footer */
.contact-v6{
  min-height:var(--usable-vh) !important;
  height:auto !important;
  padding:var(--section-y) var(--section-x) 0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Corrige contenedores internos que pudieran forzar alturas raras */
.about-modern .about-inner,
.services-v5 > *,
.personal-section > *,
.permits-v5-inner,
.clients-v6-inner,
.contact-v6-inner{
  flex-shrink:0 !important;
}

/* -------- REGLAS SEGÚN ALTO DEL MONITOR -------- */

/* Monitores bajos / laptops 1366x768 */
@media (max-height:820px) and (min-width:901px){
  :root{
    --section-y:30px;
  }

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    justify-content:flex-start !important;
  }

  .services-v5-head{
    margin-bottom:22px !important;
  }

  .services-v5-grid{
    gap:12px !important;
  }

  .service-v5-card{
    min-height:245px !important;
    padding:18px 16px !important;
  }

  .personal-section .training-grid{
    margin-top:20px !important;
    gap:12px !important;
  }

  .permits-v5-grid{
    margin-top:26px !important;
  }

  .clients-v6-group{
    margin-top:24px !important;
  }

  .clients-v6-group.government{
    margin-top:28px !important;
  }
}

/* Monitores muy altos: evita que el contenido quede "flotando" demasiado */
@media (min-height:1000px) and (min-width:901px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    justify-content:center !important;
  }
}

/* Tablet */
@media (max-width:1024px){
  :root{
    --header-h:80px;
    --usable-vh:calc(100svh - var(--header-h));
    --section-x:28px;
    --section-y:44px;
  }

  #nav a::after{
    bottom:14px !important;
  }
}

/* Tablet vertical y móvil:
   no se fuerza una altura fija porque eso provoca huecos/cortes.
   Se deja crecer al contenido, manteniendo padding consistente. */
@media (max-width:820px){
  :root{
    --header-h:72px;
    --section-x:22px;
    --section-y:42px;
  }

  main > section[id],
  .hero-v65,
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:auto !important;
    height:auto !important;
  }

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    justify-content:flex-start !important;
  }

  #nav a::after{
    bottom:10px !important;
  }
}

/* Móvil pequeño */
@media (max-width:560px){
  :root{
    --section-x:18px;
    --section-y:36px;
  }
}

/* Fallback para navegadores que no soporten svh */
@supports not (height:100svh){
  :root{
    --usable-vh:calc(100vh - var(--header-h));
  }
}


/* =========================================================
   ALET V7.7 — Títulos en dos renglones + alineación + línea
   amarilla animada en Personal y Capacitación
   ========================================================= */

/* Títulos principales: dos líneas controladas y centradas */
.permits-v5 h2,
.clients-v6 h2,
.personal-section h2,
.contact-v6 h2{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  width:100% !important;
  max-width:1080px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  line-height:1.06 !important;
}

.permits-v5 h2 > span:not(.yellow-stroke),
.clients-v6 h2 > span:not(.yellow-stroke),
.personal-section h2 > span:not(.yellow-stroke),
.contact-v6 h2 > span:not(.yellow-stroke){
  display:block !important;
  width:100% !important;
}

/* Texto introductorio: alineado, centrado y con ancho consistente */
.permits-v5-intro,
.clients-v6 .clients-v6-intro,
.personal-section .lead,
.contact-v6-lead{
  width:min(820px,92%) !important;
  max-width:820px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
  line-height:1.6 !important;
}

/* Permisos: alineación vertical más pareja */
.permits-v5-grid{
  align-items:stretch !important;
}
.permits-v5-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:center !important;
}
.permits-v5-card h3,
.permits-v5-card p{
  text-align:center !important;
}

/* Clientes: títulos y grupos centrados */
.clients-v6-group h3{
  text-align:center !important;
}
.clients-v6-carousel{
  align-items:center !important;
}

/* Contacto: encabezado alineado con el formulario */
.contact-v6 h2{
  max-width:980px !important;
}
.contact-v6-lead{
  max-width:900px !important;
}

/* PERSONAL / CAPACITACIÓN:
   línea amarilla debajo del título, centrada y animada tipo rayón */
.personal-section h2{
  position:relative !important;
  padding-bottom:24px !important;
  margin-bottom:22px !important;
}

.personal-section h2 .yellow-stroke{
  position:absolute !important;
  left:50% !important;
  bottom:3px !important;
  width:260px !important;
  max-width:36vw !important;
  height:6px !important;
  transform:translateX(-50%) rotate(-0.5deg) !important;
  transform-origin:left center !important;
  border-radius:999px !important;
  background:
    linear-gradient(90deg,
      #f5ad00 0%,
      #ffc21a 48%,
      #f5ad00 100%
    ) !important;
  box-shadow:0 1px 0 rgba(245,173,0,.15) !important;
  overflow:hidden !important;
  opacity:1 !important;
}

/* Simula el trazo apareciendo como rayón */
.personal-section h2 .yellow-stroke::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:#f7f9fc !important;
  transform-origin:right center !important;
  animation:aletYellowDraw 3.6s cubic-bezier(.65,0,.35,1) infinite !important;
}

/* pequeña irregularidad visual */
.personal-section h2 .yellow-stroke::after{
  content:"" !important;
  position:absolute !important;
  left:6% !important;
  right:4% !important;
  top:2px !important;
  height:2px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.35) !important;
  transform:rotate(.3deg) !important;
}

@keyframes aletYellowDraw{
  0%,12%{transform:scaleX(1)}
  38%,72%{transform:scaleX(0)}
  88%,100%{transform:scaleX(1)}
}

/* Tarjetas de capacitación alineadas */
.personal-section .training-grid{
  width:min(1460px,100%) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.personal-section .training-card{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:left !important;
}
.personal-section .training-card span,
.personal-section .training-card h3,
.personal-section .training-card p{
  text-align:left !important;
}

/* Ajustes para laptop/monitor bajo */
@media (max-height:820px) and (min-width:901px){
  .permits-v5 h2,
  .clients-v6 h2,
  .personal-section h2,
  .contact-v6 h2{
    font-size:clamp(38px,3.2vw,52px) !important;
  }

  .personal-section h2{
    padding-bottom:20px !important;
    margin-bottom:16px !important;
  }

  .personal-section h2 .yellow-stroke{
    width:220px !important;
    height:5px !important;
  }
}

/* Tablet / móvil */
@media (max-width:820px){
  .permits-v5 h2,
  .clients-v6 h2,
  .personal-section h2,
  .contact-v6 h2{
    max-width:100% !important;
    font-size:clamp(34px,7.8vw,46px) !important;
  }

  .permits-v5 h2 > span:not(.yellow-stroke),
  .clients-v6 h2 > span:not(.yellow-stroke),
  .personal-section h2 > span:not(.yellow-stroke),
  .contact-v6 h2 > span:not(.yellow-stroke){
    white-space:normal !important;
  }

  .personal-section h2 .yellow-stroke{
    width:180px !important;
    max-width:54vw !important;
  }
}

@media (max-width:560px){
  .permits-v5 h2,
  .clients-v6 h2,
  .personal-section h2,
  .contact-v6 h2{
    font-size:34px !important;
  }

  .personal-section h2 .yellow-stroke{
    width:150px !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .personal-section h2 .yellow-stroke::before{
    animation:none !important;
    transform:scaleX(0) !important;
  }
}


/* =========================================================
   ALET V7.8 — FOOTER REDISEÑADO
   Inspirado en una composición centrada de dos niveles,
   adaptado a la identidad ALET y sin redes sociales.
   ========================================================= */

.site-footer-v68{
  margin:0 !important;
  padding:0 !important;
  background:#15191f !important;
  color:#fff !important;
  border-top:0 !important;
}

.footer-v78-main{
  min-height:210px !important;
  padding:30px 34px 26px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  background:
    radial-gradient(circle at 50% -20%,rgba(229,31,42,.07),transparent 42%),
    #15191f !important;
}

.footer-v78-logo{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-bottom:22px !important;
  transition:transform .22s ease,opacity .22s ease !important;
}

.footer-v78-logo:hover{
  transform:translateY(-2px) !important;
  opacity:.9 !important;
}

.footer-v78-logo img{
  width:auto !important;
  height:58px !important;
  max-height:58px !important;
  object-fit:contain !important;
  filter:drop-shadow(0 5px 14px rgba(0,0,0,.22)) !important;
}

.footer-v78-primary,
.footer-v78-secondary{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  text-align:center !important;
}

.footer-v78-primary{
  gap:clamp(18px,2vw,32px) !important;
  margin-bottom:14px !important;
}

.footer-v78-primary a{
  color:#fff !important;
  font-size:12px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  transition:color .2s ease,transform .2s ease !important;
}

.footer-v78-primary a:hover{
  color:#e51f2a !important;
  transform:translateY(-1px) !important;
}

.footer-v78-secondary{
  gap:12px !important;
}

.footer-v78-secondary a{
  color:rgba(255,255,255,.74) !important;
  font-size:10.5px !important;
  font-weight:600 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  transition:color .2s ease !important;
}

.footer-v78-secondary a:hover{
  color:#fff !important;
}

.footer-separator{
  width:1px !important;
  height:13px !important;
  display:inline-block !important;
  background:rgba(229,31,42,.9) !important;
}

.footer-v78-bottom{
  min-height:76px !important;
  padding:16px 32px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:6px !important;
  background:#0b2a56 !important;
  border-top:2px solid #e51f2a !important;
}

.footer-v78-bottom strong{
  color:#fff !important;
  font-size:12px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
}

.footer-v78-bottom span{
  color:rgba(255,255,255,.72) !important;
  font-size:10.5px !important;
  line-height:1.4 !important;
}

/* Contacto se une directamente al footer */
.contact-v6{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
.contact-v6-inner,
.contact-v6-main{
  margin-bottom:0 !important;
}

/* Responsive footer */
@media(max-width:820px){
  .footer-v78-main{
    min-height:auto !important;
    padding:28px 22px 24px !important;
  }

  .footer-v78-logo img{
    height:50px !important;
    max-height:50px !important;
  }

  .footer-v78-primary{
    gap:14px 20px !important;
    max-width:620px !important;
  }

  .footer-v78-primary a{
    font-size:11px !important;
  }
}

@media(max-width:560px){
  .footer-v78-main{
    padding:26px 18px 22px !important;
  }

  .footer-v78-logo{
    margin-bottom:18px !important;
  }

  .footer-v78-logo img{
    height:46px !important;
    max-height:46px !important;
  }

  .footer-v78-primary{
    gap:12px 18px !important;
  }

  .footer-v78-primary a{
    font-size:10.5px !important;
  }

  .footer-v78-secondary{
    gap:9px !important;
  }

  .footer-v78-secondary a{
    font-size:9.5px !important;
  }

  .footer-v78-bottom{
    min-height:72px !important;
    padding:14px 18px !important;
  }

  .footer-v78-bottom strong{
    font-size:10.5px !important;
  }

  .footer-v78-bottom span{
    font-size:9.5px !important;
  }
}


/* =========================================================
   ALET V7.9 — Secciones +10% y radar ajustado al mapa
   ========================================================= */

:root{
  --header-h:96px;
  --section-vh-plus:calc(110svh - var(--header-h));
}

/* 1) Secciones aproximadamente 10% más altas */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6,
.contact-v6{
  min-height:var(--section-vh-plus) !important;
}

/* Mantiene el contenido centrado dentro de la nueva altura */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* 2) Mapa: el radar queda contenido y colocado dentro del territorio */
.about-modern .map-stage{
  min-height:520px !important;
  display:grid !important;
  place-items:center !important;
}

.about-modern .map-visual{
  position:relative !important;
  width:min(100%,900px) !important;
  line-height:0 !important;
  isolation:isolate !important;
  overflow:hidden !important;
  border-radius:28px !important;
}

.about-modern .mexico-map{
  width:100% !important;
  max-width:900px !important;
  height:auto !important;
  display:block !important;
}

/* Radar más discreto y contenido */
.about-modern .map-radar-layer{
  position:absolute !important;
  inset:0 !important;
  z-index:3 !important;
  pointer-events:none !important;
  overflow:hidden !important;
}

.about-modern .radar{
  position:absolute !important;
  width:12px !important;
  height:12px !important;
  margin:0 !important;
  border:2px solid currentColor !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.78) !important;
  transform:translate(-50%,-50%) !important;
  opacity:.9 !important;
  box-shadow:0 0 0 0 currentColor !important;
  animation:mapRadarContained 2.8s ease-out infinite !important;
}

/* Puntos ubicados sobre zonas internas del mapa */
.about-modern .radar.r1{left:31.5% !important;top:29.5% !important;color:rgba(18,91,187,.60) !important;animation-delay:0s !important;}
.about-modern .radar.r2{left:48.5% !important;top:36.0% !important;color:rgba(226,31,40,.60) !important;animation-delay:.45s !important;}
.about-modern .radar.r3{left:56.0% !important;top:49.5% !important;color:rgba(18,91,187,.60) !important;animation-delay:.90s !important;}
.about-modern .radar.r4{left:67.0% !important;top:60.0% !important;color:rgba(226,31,40,.60) !important;animation-delay:1.35s !important;}
.about-modern .radar.r5{left:57.0% !important;top:70.5% !important;color:rgba(18,91,187,.60) !important;animation-delay:1.80s !important;}
.about-modern .radar.r6{left:77.5% !important;top:66.5% !important;color:rgba(226,31,40,.60) !important;animation-delay:2.25s !important;}

@keyframes mapRadarContained{
  0%{
    transform:translate(-50%,-50%) scale(.55);
    opacity:0;
    box-shadow:0 0 0 0 currentColor;
  }
  20%{opacity:.9}
  70%{
    transform:translate(-50%,-50%) scale(1.05);
    opacity:.28;
    box-shadow:0 0 0 16px transparent;
  }
  100%{
    transform:translate(-50%,-50%) scale(1.12);
    opacity:0;
    box-shadow:0 0 0 24px transparent;
  }
}

/* En laptops de poca altura, conserva el +10% sin aplastar el contenido */
@media (max-height:820px) and (min-width:901px){
  :root{
    --section-vh-plus:calc(108svh - var(--header-h));
  }

  .about-modern .map-stage{
    min-height:430px !important;
  }

  .about-modern .map-visual{
    width:min(100%,820px) !important;
  }
}

/* En tablet/móvil la altura debe crecer según contenido */
@media (max-width:820px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:auto !important;
  }

  .about-modern .map-stage{
    min-height:330px !important;
  }

  .about-modern .map-visual{
    width:min(100%,700px) !important;
  }
}

@media (max-width:560px){
  .about-modern .map-stage{
    min-height:270px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  .about-modern .radar{
    animation:none !important;
  }
}


/* =========================================================
   ALET V7.10 — Alturas restauradas / líneas unificadas /
   contacto a la derecha / footer compacto
   ========================================================= */

:root{
  --header-h:96px;
  --section-fit:calc(100svh - var(--header-h));
  --line-w:120px;
  --line-h:4px;
}

/* 1) Regresa al tamaño anterior de secciones (antes del +10%) */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6,
.contact-v6{
  min-height:var(--section-fit) !important;
  height:auto !important;
  box-sizing:border-box !important;
}

/* Centra el contenido sin que se corte */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* Contacto ocupa el monitor útil y termina directo en footer */
.contact-v6{
  min-height:var(--section-fit) !important;
  margin:0 !important;
  padding-bottom:34px !important;
}

/* Monitores de menor altura: compactar sin perder contenido */
@media (max-height:820px) and (min-width:901px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:var(--section-fit) !important;
    padding-top:28px !important;
    padding-bottom:28px !important;
  }

  .services-v5-head{margin-bottom:20px !important;}
  .services-v5-grid{gap:12px !important;}
  .service-v5-card{padding:16px 14px !important;}

  .personal-section .training-grid{
    gap:12px !important;
    margin-top:16px !important;
  }

  .permits-v5-grid{margin-top:22px !important;}
  .clients-v6-group{margin-top:20px !important;}
  .clients-v6-group.government{margin-top:24px !important;}
}

/* Tablet/móvil: altura automática para evitar cortes */
@media (max-width:820px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:auto !important;
    height:auto !important;
  }
}

/* 2) Todas las líneas de sección con misma forma, grosor y animación */
.about-rule,
.services-v5-title-line,
.personal-section h2 .yellow-stroke,
.permits-v5-yellow-line,
.clients-v6-redline,
.contact-v6-redline{
  display:block !important;
  width:var(--line-w) !important;
  height:var(--line-h) !important;
  max-width:none !important;
  min-width:0 !important;
  border:0 !important;
  border-radius:999px !important;
  box-shadow:none !important;
  transform-origin:left center !important;
  animation:aletSectionStroke 3.5s cubic-bezier(.65,0,.35,1) infinite !important;
  overflow:hidden !important;
}

/* Colores conservados por sección */
.about-rule,
.clients-v6-redline,
.contact-v6-redline{
  background:#e51f2a !important;
}

.services-v5-title-line,
.personal-section h2 .yellow-stroke,
.permits-v5-yellow-line{
  background:#f6b000 !important;
}

/* Neutraliza pseudo-elementos previos de la línea de capacitación */
.personal-section h2 .yellow-stroke::before,
.personal-section h2 .yellow-stroke::after{
  display:none !important;
  content:none !important;
}

@keyframes aletSectionStroke{
  0%,12%{
    transform:scaleX(0) rotate(-.4deg);
    opacity:.3;
  }
  36%,72%{
    transform:scaleX(1) rotate(-.4deg);
    opacity:1;
  }
  88%,100%{
    transform:scaleX(.98) rotate(-.4deg);
    opacity:.95;
  }
}

/* Mantener separación uniforme debajo del título */
.services-v5-title-line,
.permits-v5-yellow-line,
.clients-v6-redline{
  margin:18px auto 22px !important;
}

.about-rule{
  margin:18px 0 22px !important;
}

.personal-section h2{
  position:relative !important;
  padding-bottom:24px !important;
  margin-bottom:20px !important;
}

.personal-section h2 .yellow-stroke{
  position:absolute !important;
  left:50% !important;
  bottom:2px !important;
  transform-origin:left center !important;
  margin:0 !important;
}

.contact-v6-redline{
  margin:14px 0 18px auto !important;
}

/* 3) Contacto: título y texto a la derecha, no centrados */
.contact-v6-main h2{
  display:block !important;
  width:min(100%,920px) !important;
  max-width:920px !important;
  margin-left:auto !important;
  margin-right:0 !important;
  text-align:right !important;
  align-items:unset !important;
}

.contact-v6-main h2 > span{
  display:block !important;
  width:100% !important;
  text-align:right !important;
}

.contact-v6-lead{
  width:min(100%,900px) !important;
  max-width:900px !important;
  margin-left:auto !important;
  margin-right:0 !important;
  text-align:right !important;
}

.contact-v6-main{
  align-items:stretch !important;
}

/* 4) Footer mucho más pequeño: solo menú + copyright */
.site-footer-v68{
  margin:0 !important;
  padding:0 !important;
  background:#15191f !important;
  border-top:2px solid #e51f2a !important;
}

.footer-v710{
  min-height:108px !important;
  padding:20px 28px 18px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
  text-align:center !important;
}

.footer-v710-menu{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  gap:14px 24px !important;
}

.footer-v710-menu a{
  color:#fff !important;
  text-decoration:none !important;
  text-transform:uppercase !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.055em !important;
  transition:color .2s ease,transform .2s ease !important;
}

.footer-v710-menu a:hover{
  color:#e51f2a !important;
  transform:translateY(-1px) !important;
}

.footer-v710-copy{
  color:rgba(255,255,255,.67) !important;
  font-size:10px !important;
  line-height:1.35 !important;
}

/* Footer responsive */
@media(max-width:820px){
  .footer-v710{
    min-height:auto !important;
    padding:20px 18px !important;
  }

  .footer-v710-menu{
    gap:12px 18px !important;
  }

  .footer-v710-menu a{
    font-size:10px !important;
  }
}

@media(max-width:560px){
  .footer-v710-menu{
    gap:10px 14px !important;
  }

  .footer-v710-menu a{
    font-size:9.5px !important;
  }

  .footer-v710-copy{
    font-size:9px !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .about-rule,
  .services-v5-title-line,
  .personal-section h2 .yellow-stroke,
  .permits-v5-yellow-line,
  .clients-v6-redline,
  .contact-v6-redline{
    animation:none !important;
    transform:scaleX(1) rotate(-.4deg) !important;
  }
}


/* =========================================================
   ALET V7.11 — Secciones completas + todas las líneas animadas
   ========================================================= */

:root{
  --header-h:96px;
  --screen-section-h:calc(100dvh - var(--header-h));
  --main-line-w:118px;
  --sub-line-w:58px;
  --line-h:4px;
}

@media (min-width:821px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    height:var(--screen-section-h) !important;
    min-height:var(--screen-section-h) !important;
    max-height:var(--screen-section-h) !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
    padding-top:clamp(22px,3vh,36px) !important;
    padding-bottom:clamp(22px,3vh,36px) !important;
  }

  .contact-v6{
    min-height:var(--screen-section-h) !important;
    height:auto !important;
    box-sizing:border-box !important;
    padding-top:clamp(24px,3vh,36px) !important;
    padding-bottom:28px !important;
  }

  .about-modern{
    justify-content:space-between !important;
  }
  .about-modern .about-top{
    min-height:0 !important;
    flex:1 1 auto !important;
    align-items:center !important;
    gap:clamp(24px,3vw,48px) !important;
  }
  .about-modern .about-copy h2{
    margin-bottom:12px !important;
  }
  .about-modern .about-copy p{
    margin-top:12px !important;
    line-height:1.5 !important;
  }
  .about-modern .map-stage{
    min-height:0 !important;
    height:clamp(265px,39vh,360px) !important;
  }
  .about-modern .map-visual{
    width:min(100%,720px) !important;
    max-height:100% !important;
  }
  .about-modern .mexico-map{
    max-height:100% !important;
    width:auto !important;
    max-width:100% !important;
    margin:auto !important;
  }
  .about-modern .coverage-wrap{
    margin-top:8px !important;
    flex:0 0 auto !important;
  }
  .about-modern .coverage-heading{
    margin:0 0 10px !important;
  }
  .about-modern .coverage-card{
    padding-top:8px !important;
    padding-bottom:8px !important;
  }
  .about-modern .coverage-card img{
    max-height:72px !important;
  }
  .about-modern .coverage-card h3{
    margin:4px 0 3px !important;
  }
  .about-modern .coverage-card p{
    margin:0 !important;
    line-height:1.3 !important;
  }

  .services-v5-head{
    margin-bottom:18px !important;
  }
  .services-v5-grid{
    gap:12px !important;
  }
  .service-v5-card{
    min-height:0 !important;
    height:clamp(240px,39vh,310px) !important;
    padding:16px 14px !important;
  }
  .service-v5-icon-ring{
    width:76px !important;
    height:76px !important;
  }
  .service-v5-number{
    margin-top:8px !important;
  }
  .service-v5-card h3{
    margin:7px 0 6px !important;
  }
  .service-v5-card p{
    margin-top:8px !important;
  }

  .personal-section h2{
    margin-bottom:10px !important;
    padding-bottom:17px !important;
  }
  .personal-section .lead{
    margin-top:4px !important;
    margin-bottom:16px !important;
  }
  .personal-section .training-grid{
    margin-top:6px !important;
    gap:10px !important;
  }
  .personal-section .training-card{
    min-height:66px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }

  .permits-v5 h2{
    margin-bottom:6px !important;
  }
  .permits-v5-yellow-line{
    margin:10px auto 12px !important;
  }
  .permits-v5-intro{
    margin-bottom:12px !important;
  }
  .permits-v5-grid{
    margin-top:10px !important;
    align-items:start !important;
  }
  .permit-v5-image{
    height:clamp(130px,20vh,185px) !important;
  }
  .permit-v5-item h3{
    margin-top:6px !important;
  }
  .permit-v5-item p{
    margin-top:4px !important;
  }

  .clients-v6 h2{
    margin-bottom:4px !important;
  }
  .clients-v6-redline{
    margin:10px auto 12px !important;
  }
  .clients-v6-group{
    margin-top:10px !important;
  }
  .clients-v6-group.government{
    margin-top:14px !important;
  }
  .clients-v6-group h3{
    margin-bottom:4px !important;
  }
  .clients-v6-carousel{
    min-height:105px !important;
    height:clamp(105px,15vh,135px) !important;
  }
  .client-logo{
    height:100% !important;
  }
  .client-logo img{
    max-height:76px !important;
  }
}

/* Monitores bajos como el de la captura */
@media (min-width:821px) and (max-height:820px){
  :root{
    --header-h:88px;
    --screen-section-h:calc(100dvh - var(--header-h));
  }

  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6{
    padding-top:16px !important;
    padding-bottom:16px !important;
  }

  .about-modern .map-stage{
    height:280px !important;
  }
  .about-modern .coverage-card img{
    max-height:58px !important;
  }
  .about-modern .coverage-card p{
    font-size:10.5px !important;
  }
  .about-modern .coverage-heading{
    margin-bottom:6px !important;
  }

  .services-v5-head{margin-bottom:12px !important;}
  .service-v5-card{height:225px !important;}

  .personal-section .lead{margin-bottom:10px !important;}
  .personal-section .training-card{min-height:60px !important;}

  .permit-v5-image{height:128px !important;}

  .clients-v6-carousel{
    height:98px !important;
    min-height:98px !important;
  }
}

@media (max-width:820px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    height:auto !important;
    min-height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* TODAS las líneas bajo títulos y subtítulos */
.about-rule,
.services-v5-title-line,
.personal-section h2 .yellow-stroke,
.permits-v5-yellow-line,
.clients-v6-redline,
.contact-v6-redline{
  width:var(--main-line-w) !important;
  height:var(--line-h) !important;
  border-radius:999px !important;
  border:0 !important;
  opacity:1 !important;
  transform-origin:center center !important;
  animation:aletUnifiedStroke 3.2s cubic-bezier(.65,0,.35,1) infinite !important;
}

.service-v5-gold-line,
.permit-v5-red-line,
.clients-v6-subline{
  width:var(--sub-line-w) !important;
  height:var(--line-h) !important;
  border-radius:999px !important;
  border:0 !important;
  opacity:1 !important;
  transform-origin:center center !important;
  animation:aletUnifiedStroke 3.2s cubic-bezier(.65,0,.35,1) infinite !important;
}

.about-rule,
.permit-v5-red-line,
.clients-v6-redline,
.clients-v6-subline,
.contact-v6-redline{
  background:#e51f2a !important;
}
.services-v5-title-line,
.personal-section h2 .yellow-stroke,
.permits-v5-yellow-line,
.service-v5-gold-line{
  background:#f6b000 !important;
}

.personal-section h2 .yellow-stroke::before,
.personal-section h2 .yellow-stroke::after{
  display:none !important;
  content:none !important;
}

.personal-section h2 .yellow-stroke{
  position:absolute !important;
  left:50% !important;
  bottom:0 !important;
  margin:0 !important;
}

@keyframes aletUnifiedStroke{
  0%,10%{
    transform:translateX(-2px) scaleX(0);
    opacity:.35;
  }
  36%,70%{
    transform:translateX(0) scaleX(1);
    opacity:1;
  }
  88%,100%{
    transform:translateX(2px) scaleX(.98);
    opacity:.9;
  }
}

@media(prefers-reduced-motion:reduce){
  .about-rule,
  .services-v6-redline,
  .personal-v6-redline,
  .permits-v6-redline,
  .clients-v6-redline,
  .contact-v6-redline,
  .service-v6-redline,
  .permit-v5-red-line,
  .clients-v6-redline{
    animation:none !important;
    transform:none !important;
  }
}


/* =========================================================
   ALET V7.12 — Quiénes Somos: mapa completo + radares alineados
   ========================================================= */

/* La fila inferior conserva solo ícono + nombre */
.about-modern .sector-card{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  padding:8px 12px 10px !important;
}

.about-modern .sector-card img{
  height:clamp(72px,10vh,100px) !important;
  max-height:100px !important;
  width:100% !important;
  object-fit:contain !important;
  margin:0 auto 6px !important;
}

.about-modern .sector-card h4{
  margin:0 auto !important;
  line-height:1.15 !important;
  min-height:0 !important;
}

/* Mapa: completo, centrado y sin recorte inferior */
.about-modern .map-stage{
  min-height:0 !important;
  height:auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:visible !important;
  padding:6px 0 10px !important;
}

.about-modern .map-visual{
  position:relative !important;
  width:min(92%,760px) !important;
  height:auto !important;
  max-height:none !important;
  margin:0 auto !important;
  overflow:visible !important;
  border-radius:0 !important;
  isolation:isolate !important;
}

.about-modern .mexico-map{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:760px !important;
  max-height:none !important;
  object-fit:contain !important;
  margin:0 auto !important;
  position:relative !important;
  z-index:2 !important;
}

/* La capa de radar usa exactamente la caja del mapa */
.about-modern .map-radar-layer{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  overflow:visible !important;
  pointer-events:none !important;
  z-index:3 !important;
}

/* Pulsos sobre las bases reales de los 6 marcadores */
.about-modern .radar{
  width:10px !important;
  height:10px !important;
  border-width:2px !important;
  transform:translate(-50%,-50%) !important;
}

/* Azul noroeste */
.about-modern .radar.r1{
  left:31.2% !important;
  top:29.5% !important;
}

/* Rojo norte-centro */
.about-modern .radar.r2{
  left:49.9% !important;
  top:36.4% !important;
}

/* Azul centro */
.about-modern .radar.r3{
  left:55.4% !important;
  top:54.0% !important;
}

/* Rojo centro-oriente */
.about-modern .radar.r4{
  left:70.0% !important;
  top:68.0% !important;
}

/* Azul centro-sur */
.about-modern .radar.r5{
  left:59.1% !important;
  top:82.1% !important;
}

/* Rojo sureste */
.about-modern .radar.r6{
  left:88.7% !important;
  top:74.2% !important;
}

@keyframes mapRadarContainedV712{
  0%{
    transform:translate(-50%,-50%) scale(.55);
    opacity:0;
    box-shadow:0 0 0 0 currentColor;
  }
  18%{opacity:.9}
  68%{
    transform:translate(-50%,-50%) scale(1);
    opacity:.25;
    box-shadow:0 0 0 12px transparent;
  }
  100%{
    transform:translate(-50%,-50%) scale(1.08);
    opacity:0;
    box-shadow:0 0 0 18px transparent;
  }
}

.about-modern .radar{
  animation-name:mapRadarContainedV712 !important;
  animation-duration:2.9s !important;
  animation-timing-function:ease-out !important;
  animation-iteration-count:infinite !important;
}

/* Laptop baja: reducir mapa completo, nunca recortarlo */
@media (min-width:821px) and (max-height:820px){
  .about-modern .map-visual{
    width:min(88%,650px) !important;
  }
  .about-modern .mexico-map{
    max-width:650px !important;
  }
  .about-modern .sector-card img{
    height:58px !important;
  }
}

/* Tablet/móvil */
@media (max-width:820px){
  .about-modern .map-visual{
    width:min(96%,680px) !important;
  }
  .about-modern .sector-card img{
    height:76px !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .about-modern .radar{
    animation:none !important;
  }
}


/* =========================================================
   ALET V7.13 — revisión general y mejoras finales
   ========================================================= */

/* Foco visible para navegación por teclado */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
  outline:3px solid rgba(229,31,42,.32) !important;
  outline-offset:3px !important;
}

/* Formulario: estados más claros */
.contact-v6-form input:focus,
.contact-v6-form textarea:focus{
  border-color:#0b2a56 !important;
  box-shadow:0 0 0 3px rgba(11,42,86,.08) !important;
}

.contact-v6-form input:invalid:not(:placeholder-shown),
.contact-v6-form textarea:invalid:not(:placeholder-shown){
  border-color:rgba(229,31,42,.58) !important;
}

/* Evita saltos visuales durante carga de imágenes */
img{
  height:auto;
}

/* Mejor comportamiento al navegar a anclas */
html{
  scroll-behavior:smooth;
}

/* Reduce trabajo de render en secciones aún no visibles,
   sin afectar el tamaño final del contenido */
@supports (content-visibility:auto){
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    content-visibility:auto;
    contain-intrinsic-size:900px;
  }
}

/* Transiciones homogéneas en elementos interactivos */
.site-header a,
.footer-v710-menu a,
.hero-v65-btn,
.contact-v6-mail,
.contact-v6-whatsapp,
.whatsapp-float{
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    color .22s ease,
    background-color .22s ease,
    border-color .22s ease !important;
}

/* Microinteracción consistente */
.hero-v65-btn:hover,
.contact-v6-mail:hover,
.contact-v6-whatsapp:hover{
  transform:translateY(-2px) !important;
}

/* Evita que carruseles/logos provoquen desbordes horizontales */
.clients-v6,
.clients-v6-carousel,
.clients-v6-track{
  max-width:100% !important;
}

/* Ajuste tipográfico fino para pantallas medianas */
@media (min-width:821px) and (max-width:1450px){
  .section-title,
  .services-v5 h2,
  .personal-section h2,
  .permits-v5 h2,
  .clients-v6 h2,
  .contact-v6 h2{
    text-wrap:balance;
  }
}

/* Móvil: botones con área táctil suficiente */
@media (max-width:820px){
  .hero-v65-btn,
  .contact-v6-mail,
  .contact-v6-whatsapp,
  .header-cta{
    min-height:44px !important;
  }
}


/* =========================================================
   ALET V7.14 — CORRECCIÓN DE SECCIONES + FOOTER LIMPIO
   ========================================================= */

:root{
  --header-h:96px;
  --section-min-h:calc(100svh - var(--header-h));
  --section-py:clamp(32px,4.2vh,54px);
  --section-px:clamp(26px,4.5vw,78px);
}

/* ---------------------------------------------------------
   1) ELIMINA RECORTES
   --------------------------------------------------------- */

/* Quitamos cualquier altura fija/max-height/overflow oculto heredado */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6,
.contact-v6{
  height:auto !important;
  max-height:none !important;
  min-height:var(--section-min-h) !important;
  overflow:visible !important;
  box-sizing:border-box !important;
  padding-top:var(--section-py) !important;
  padding-bottom:var(--section-py) !important;
  padding-left:var(--section-px) !important;
  padding-right:var(--section-px) !important;
}

/* Centrado vertical sin cortar contenido */
.about-modern,
.services-v5,
.personal-section,
.permits-v5,
.clients-v6{
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* Quiénes somos: que mapa + sectores quepan completos */
.about-modern .about-top{
  flex:0 0 auto !important;
  min-height:auto !important;
  gap:clamp(28px,3.5vw,56px) !important;
  align-items:center !important;
}

.about-modern .map-stage{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  padding:0 !important;
  overflow:visible !important;
}

.about-modern .map-visual{
  width:min(100%,700px) !important;
  max-width:700px !important;
  height:auto !important;
  overflow:visible !important;
  margin:0 auto !important;
}

.about-modern .mexico-map{
  width:100% !important;
  max-width:700px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
}

.about-modern .coverage-wrap{
  margin-top:clamp(14px,2vh,24px) !important;
  flex:0 0 auto !important;
}

.about-modern .coverage-grid{
  min-height:0 !important;
}

.about-modern .sector-card{
  min-height:0 !important;
  padding:8px 10px !important;
}

.about-modern .sector-card img{
  height:clamp(56px,8vh,82px) !important;
  max-height:82px !important;
}

/* Servicios: compacta tarjetas, sin aplastar texto */
.services-v5-head{
  margin-bottom:clamp(18px,2.5vh,28px) !important;
}
.services-v5-grid{
  gap:clamp(12px,1.4vw,18px) !important;
}
.service-v5-card{
  height:auto !important;
  min-height:clamp(250px,34vh,315px) !important;
  max-height:none !important;
  padding:18px 16px !important;
}

/* Capacitación */
.personal-section .training-grid{
  margin-top:clamp(16px,2vh,24px) !important;
  gap:12px !important;
}
.personal-section .training-card{
  min-height:72px !important;
  height:auto !important;
}

/* Permisos */
.permits-v5-grid{
  margin-top:clamp(18px,2.2vh,28px) !important;
}
.permit-v5-image{
  height:auto !important;
  max-height:190px !important;
}
.permit-v5-image img{
  width:100% !important;
  height:100% !important;
  max-height:190px !important;
  object-fit:contain !important;
}

/* Clientes */
.clients-v6-carousel{
  height:auto !important;
  min-height:118px !important;
  max-height:none !important;
}
.client-logo{
  min-height:108px !important;
}
.client-logo img{
  max-height:80px !important;
  max-width:82% !important;
  object-fit:contain !important;
}

/* Contacto: nunca recortar y unir al footer */
.contact-v6{
  min-height:var(--section-min-h) !important;
  margin-bottom:0 !important;
  padding-bottom:clamp(28px,3.5vh,42px) !important;
}

/* ---------------------------------------------------------
   2) ADAPTACIÓN A MONITORES BAJOS
   --------------------------------------------------------- */

@media (min-width:821px) and (max-height:820px){
  :root{
    --header-h:88px;
    --section-min-h:calc(100svh - var(--header-h));
    --section-py:20px;
  }

  .about-modern .map-visual,
  .about-modern .mexico-map{
    max-width:590px !important;
  }

  .about-modern .sector-card img{
    height:52px !important;
  }

  .service-v5-card{
    min-height:220px !important;
    padding:14px 12px !important;
  }

  .service-v5-icon-ring{
    width:68px !important;
    height:68px !important;
  }

  .personal-section .training-card{
    min-height:60px !important;
  }

  .permit-v5-image,
  .permit-v5-image img{
    max-height:135px !important;
  }

  .clients-v6-carousel{
    min-height:96px !important;
  }
  .client-logo{
    min-height:90px !important;
  }
  .client-logo img{
    max-height:66px !important;
  }
}

/* Tablet/móvil: contenido natural, nada de forzar una pantalla */
@media (max-width:820px){
  .about-modern,
  .services-v5,
  .personal-section,
  .permits-v5,
  .clients-v6,
  .contact-v6{
    min-height:auto !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    padding-top:42px !important;
    padding-bottom:42px !important;
  }
}

/* ---------------------------------------------------------
   3) FOOTER NUEVO: SOLO MENÚ + COPYRIGHT
   --------------------------------------------------------- */

.site-footer-v714{
  margin:0 !important;
  padding:0 !important;
  background:#081f38 !important;
  color:#fff !important;
  border-top:3px solid #e51f2a !important;
}

.footer-v714-inner{
  width:min(1240px,92%) !important;
  margin:0 auto !important;
  min-height:104px !important;
  padding:20px 0 16px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
}

.footer-v714-menu{
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  gap:12px 26px !important;
}

.footer-v714-menu a{
  color:#fff !important;
  text-decoration:none !important;
  text-transform:uppercase !important;
  font-size:11px !important;
  line-height:1.2 !important;
  font-weight:800 !important;
  letter-spacing:.045em !important;
  transition:color .2s ease, transform .2s ease !important;
}

.footer-v714-menu a:hover{
  color:#e51f2a !important;
  transform:translateY(-1px) !important;
}

.footer-v714-copy{
  margin:0 !important;
  color:rgba(255,255,255,.66) !important;
  font-size:10px !important;
  line-height:1.35 !important;
  text-align:center !important;
}

@media (max-width:820px){
  .footer-v714-inner{
    min-height:auto !important;
    padding:18px 0 !important;
  }

  .footer-v714-menu{
    gap:10px 18px !important;
  }

  .footer-v714-menu a{
    font-size:10px !important;
  }
}

@media (max-width:560px){
  .footer-v714-menu{
    gap:9px 14px !important;
  }
  .footer-v714-menu a{
    font-size:9.5px !important;
  }
  .footer-v714-copy{
    font-size:9px !important;
  }
}


/* =========================================================
   ALET V7.15 — CONTACTO: ancla, título a la izquierda,
   panel de información hasta el footer
   ========================================================= */

:root{
  --header-h-contact:88px;
}

/* Corrige el desplazamiento al usar el menú fijo */
html{
  scroll-padding-top:var(--header-h-contact) !important;
}

#contacto{
  scroll-margin-top:var(--header-h-contact) !important;
}

/* La sección ocupa exactamente el espacio útil del monitor,
   pero puede crecer si el contenido lo necesita */
.contact-v6{
  min-height:calc(100svh - var(--header-h-contact)) !important;
  height:auto !important;
  max-height:none !important;
  margin:0 !important;
  padding:
    clamp(24px,3vh,34px)
    clamp(28px,4.5vw,76px)
    0 !important;
  box-sizing:border-box !important;

  display:flex !important;
  align-items:stretch !important;
}

/* La cuadrícula ocupa toda la altura disponible */
.contact-v6-inner{
  width:min(1420px,100%) !important;
  margin:0 auto !important;

  flex:1 1 auto !important;
  min-height:calc(100svh - var(--header-h-contact) - clamp(24px,3vh,34px)) !important;

  display:grid !important;
  grid-template-columns:minmax(0,1.72fr) minmax(330px,.70fr) !important;
  gap:clamp(34px,4vw,58px) !important;
  align-items:stretch !important;
}

/* TÍTULO Y TEXTO A LA IZQUIERDA */
.contact-v6-main{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  padding:0 0 clamp(26px,3vh,38px) !important;
}

.contact-v6-main h2{
  display:block !important;
  width:min(100%,900px) !important;
  max-width:900px !important;
  margin:0 0 10px 0 !important;
  text-align:left !important;
  align-self:flex-start !important;
  line-height:1.03 !important;
}

.contact-v6-main h2 > span{
  display:block !important;
  width:100% !important;
  text-align:left !important;
}

.contact-v6-lead{
  width:min(100%,820px) !important;
  max-width:820px !important;
  margin:8px 0 24px 0 !important;
  text-align:left !important;
  line-height:1.55 !important;
}

/* Formulario mantiene ancho limpio */
.contact-v6-form{
  width:100% !important;
}

/* El panel azul baja hasta el final de la sección.
   Así su borde inferior toca visualmente el footer. */
.contact-v6-info{
  align-self:stretch !important;
  height:auto !important;
  min-height:100% !important;
  margin:0 !important;
  padding:40px 38px !important;
  border-radius:14px 14px 0 0 !important;
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
}

/* El último bloque no deja espacio artificial */
.contact-v6-info .contact-v6-info-row:last-child{
  border-bottom:0 !important;
}

/* Footer unido directamente a contacto */
.site-footer-v714{
  margin-top:0 !important;
}

/* Laptop/monitor bajo */
@media (min-width:821px) and (max-height:820px){
  :root{
    --header-h-contact:82px;
  }

  .contact-v6{
    padding-top:18px !important;
  }

  .contact-v6-inner{
    min-height:calc(100svh - var(--header-h-contact) - 18px) !important;
    gap:34px !important;
  }

  .contact-v6-main h2{
    font-size:clamp(38px,3.4vw,50px) !important;
    margin-bottom:6px !important;
  }

  .contact-v6-lead{
    margin:6px 0 16px !important;
  }

  .contact-v6-form{
    gap:12px 20px !important;
  }

  .contact-v6-form input{
    min-height:50px !important;
  }

  .contact-v6-form textarea{
    min-height:100px !important;
  }

  .contact-v6-actions{
    margin-top:18px !important;
  }

  .contact-v6-info{
    padding:28px 30px !important;
  }

  .contact-v6-info-row{
    padding:16px 0 !important;
    min-height:54px !important;
  }
}

/* Tablet y móvil */
@media (max-width:820px){
  :root{
    --header-h-contact:72px;
  }

  .contact-v6{
    min-height:auto !important;
    display:block !important;
    padding:38px 22px 0 !important;
  }

  .contact-v6-inner{
    min-height:auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:28px !important;
  }

  .contact-v6-main h2,
  .contact-v6-lead{
    width:100% !important;
    max-width:100% !important;
    text-align:left !important;
  }

  .contact-v6-info{
    min-height:auto !important;
    border-radius:14px 14px 0 0 !important;
  }
}


/* =========================================================
   ALET V7.16 — CONTACTO COMPACTO
   Elimina el espacio inferior excesivo sin cortar contenido.
   ========================================================= */

/* Ya no forzamos a Contacto a llenar toda la pantalla */
.contact-v6{
  min-height:auto !important;
  height:auto !important;
  padding-bottom:0 !important;
  align-items:stretch !important;
}

/* La altura la determina el contenido real */
.contact-v6-inner{
  min-height:0 !important;
  height:auto !important;
  align-items:stretch !important;
}

/* Reduce el aire debajo de botones/formulario */
.contact-v6-main{
  padding-bottom:clamp(28px,4vh,48px) !important;
}

/* El panel azul conserva la misma altura que la columna izquierda */
.contact-v6-info{
  min-height:0 !important;
  height:auto !important;
  align-self:stretch !important;
  border-radius:14px 14px 0 0 !important;
}

/* El footer queda inmediatamente después de Contacto */
.site-footer-v714{
  margin-top:0 !important;
}

/* En pantallas grandes tampoco se fuerza altura de viewport */
@media (min-width:821px){
  .contact-v6,
  .contact-v6-inner{
    min-height:0 !important;
  }
}

/* En monitores bajos mantenemos una separación final corta */
@media (min-width:821px) and (max-height:820px){
  .contact-v6-main{
    padding-bottom:28px !important;
  }
}


/* =========================================================
   ALET V7.17 — CONTACTO SIN ESPACIO INFERIOR
   ========================================================= */

/* El contacto termina inmediatamente después de los botones */
.contact-v6{
  min-height:0 !important;
  height:auto !important;
  padding-bottom:0 !important;
}

.contact-v6-inner{
  min-height:0 !important;
  height:auto !important;
  align-items:stretch !important;
}

/* Quitamos el padding que todavía estaba creando el hueco */
.contact-v6-main{
  padding-bottom:24px !important;
}

/* El panel azul toma exactamente la altura real de la columna */
.contact-v6-info{
  min-height:0 !important;
  height:auto !important;
  align-self:stretch !important;
  margin-bottom:0 !important;
}

/* Acercamos el final de la sección a los botones */
.contact-v6-actions{
  margin-bottom:0 !important;
}

/* Footer pegado a la sección */
.site-footer-v714{
  margin-top:0 !important;
}

/* Desktop: evita reglas anteriores basadas en viewport */
@media (min-width:821px){
  .contact-v6{
    min-height:0 !important;
    height:auto !important;
  }

  .contact-v6-inner{
    min-height:0 !important;
    height:auto !important;
  }

  .contact-v6-main{
    padding-bottom:24px !important;
  }
}


/* =========================================================
   ALET V7.18 — Puntos del mapa, líneas sin animación
   y contacto sin hueco inferior
   ========================================================= */

/* ---------------------------------------------------------
   1) QUITAR ANIMACIÓN DE LAS LÍNEAS MARCADAS
   --------------------------------------------------------- */

/* Quiénes somos: línea roja bajo el título */
.about-rule{
  animation:none !important;
  transform:none !important;
  opacity:1 !important;
}

/* Servicios: pequeñas líneas amarillas dentro de las tarjetas */
.service-v5-gold-line{
  animation:none !important;
  transform:none !important;
  opacity:1 !important;
}

/* Permisos: pequeñas líneas rojas debajo de cada acreditación */
.permit-v5-red-line{
  animation:none !important;
  transform:none !important;
  opacity:1 !important;
}

/* Clientes: pequeñas líneas rojas bajo Sector privado / Sector gobierno */
.clients-v6-subline{
  animation:none !important;
  transform:none !important;
  opacity:1 !important;
}

/* Mantener visibles y uniformes */
.about-rule,
.service-v5-gold-line,
.permit-v5-red-line,
.clients-v6-subline{
  border-radius:999px !important;
}

/* ---------------------------------------------------------
   2) SUBIR LOS PUNTOS / PULSOS DEL MAPA
   --------------------------------------------------------- */

/* Se suben respecto a V7.12, manteniéndolos dentro del mapa */
.about-modern .radar.r1{
  left:31.2% !important;
  top:25.8% !important;
}
.about-modern .radar.r2{
  left:49.9% !important;
  top:32.5% !important;
}
.about-modern .radar.r3{
  left:55.4% !important;
  top:49.8% !important;
}
.about-modern .radar.r4{
  left:70.0% !important;
  top:63.5% !important;
}
.about-modern .radar.r5{
  left:59.1% !important;
  top:77.2% !important;
}
.about-modern .radar.r6{
  left:88.7% !important;
  top:69.3% !important;
}

/* ---------------------------------------------------------
   3) CONTACTO: ELIMINAR DEFINITIVAMENTE EL HUECO INFERIOR
   --------------------------------------------------------- */

/* Elimina cualquier altura heredada basada en viewport */
.contact-v6{
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  padding-bottom:0 !important;
  margin-bottom:0 !important;
  display:block !important;
}

/* La fila termina cuando termina el contenido real */
.contact-v6-inner{
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  margin-bottom:0 !important;
  padding-bottom:0 !important;
  display:grid !important;
  align-items:stretch !important;
}

/* Columna izquierda compacta después de acciones */
.contact-v6-main{
  min-height:0 !important;
  height:auto !important;
  padding-bottom:18px !important;
  margin-bottom:0 !important;
}

/* Acciones sin margen inferior */
.contact-v6-actions{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}

/* Panel derecho exactamente a la altura de la fila */
.contact-v6-info{
  min-height:0 !important;
  height:auto !important;
  margin-bottom:0 !important;
  padding-bottom:24px !important;
  align-self:stretch !important;
}

/* Footer inmediatamente después */
.site-footer-v714{
  margin-top:0 !important;
  padding-top:0 !important;
}

/* En desktop, sobreescribe cualquier regla anterior que fuerce 100vh */
@media (min-width:821px){
  .contact-v6{
    min-height:0 !important;
    height:auto !important;
  }

  .contact-v6-inner{
    min-height:0 !important;
    height:auto !important;
  }

  .contact-v6-main{
    padding-bottom:18px !important;
  }
}

/* En pantallas bajas, aún más compacto */
@media (min-width:821px) and (max-height:820px){
  .contact-v6-main{
    padding-bottom:14px !important;
  }

  .contact-v6-info{
    padding-bottom:18px !important;
  }
}


/* =========================================================
   ALET V7.19 — HEADER + LÍNEAS + WHATSAPP
   ========================================================= */

:root{
  --alet-red:#d82027;
}

/* ---------------------------------------------------------
   1) HEADER: logo y menú ligeramente más grandes
   --------------------------------------------------------- */
.site-header{
  height:104px !important;
  padding:0 3.6vw !important;
  grid-template-columns:96px 1fr auto !important;
  gap:22px !important;
}

.brand{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
}

.brand img{
  height:72px !important;
  width:60px !important;
  object-fit:contain !important;
  transform:none !important;
}

#nav,
.site-header nav{
  gap:24px !important;
  font-size:12.5px !important;
  font-weight:800 !important;
  letter-spacing:.005em !important;
}

#nav a,
.site-header nav a{
  padding:16px 0 !important;
}

/* CTA rojo un poco más pequeño, sin verse comprimido */
.header-cta{
  padding:13px 20px !important;
  border-radius:8px !important;
  font-size:12.5px !important;
  min-height:46px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-shadow:0 8px 20px rgba(216,32,39,.18) !important;
}

.header-cta span{
  font-size:16px !important;
  margin-right:7px !important;
}

/* ---------------------------------------------------------
   2) TODAS LAS LÍNEAS DE SUBTÍTULOS EN ROJO
      Misma apariencia y animación UNA sola vez
   --------------------------------------------------------- */

.about-rule,
.hero-v65-redline,
.services-v5-title-line,
.yellow-stroke,
.permit-v6-redline,
.clients-v6-redline,
.clients-v6-subline,
.permit-v5-red-line,
.service-v5-gold-line{
  background:var(--alet-red) !important;
  background-color:var(--alet-red) !important;
  border-color:var(--alet-red) !important;
  height:3px !important;
  border-radius:999px !important;

  transform-origin:left center !important;
  animation:aletLineDrawOnce .85s cubic-bezier(.2,.8,.2,1) both !important;
  animation-iteration-count:1 !important;
}

@keyframes aletLineDrawOnce{
  0%{
    transform:scaleX(0);
    opacity:0;
  }
  22%{
    opacity:1;
  }
  100%{
    transform:scaleX(1);
    opacity:1;
  }
}

/* Si alguna línea usa pseudo-elemento, también queda roja y sin loops */
.about-rule::before,
.about-rule::after,
.services-v5-title-line::before,
.services-v5-title-line::after,
.yellow-stroke::before,
.yellow-stroke::after,
.permit-v6-redline::before,
.permit-v6-redline::after,
.clients-v6-redline::before,
.clients-v6-redline::after,
.clients-v6-subline::before,
.clients-v6-subline::after,
.permit-v5-red-line::before,
.permit-v5-red-line::after,
.service-v5-gold-line::before,
.service-v5-gold-line::after{
  background:var(--alet-red) !important;
  border-color:var(--alet-red) !important;
  animation:none !important;
}

/* Las líneas internas de cada servicio vuelven a ser rojas */
.service-v5-card::after{
  background:var(--alet-red) !important;
}

/* ---------------------------------------------------------
   3) WHATSAPP: brillo + respiración (crece/disminuye)
   --------------------------------------------------------- */
.whatsapp-float,
a.whatsapp-float,
button.whatsapp-float,
#whatsappFloat,
.whatsapp-floating,
.floating-whatsapp{
  animation:aletWhatsappPulse 2.25s ease-in-out infinite !important;
  transform-origin:center !important;
  will-change:transform,box-shadow,filter !important;
}

@keyframes aletWhatsappPulse{
  0%,100%{
    transform:scale(1);
    box-shadow:
      0 10px 24px rgba(37,211,102,.22),
      0 0 0 0 rgba(37,211,102,.22);
    filter:brightness(1);
  }
  50%{
    transform:scale(1.10);
    box-shadow:
      0 14px 30px rgba(37,211,102,.32),
      0 0 0 11px rgba(37,211,102,0);
    filter:brightness(1.08);
  }
}

/* ---------------------------------------------------------
   Responsive del header
   --------------------------------------------------------- */
@media(max-width:1200px){
  .site-header{
    grid-template-columns:82px 1fr auto !important;
    padding:0 2.5vw !important;
  }
  .brand img{
    height:64px !important;
    width:54px !important;
  }
  #nav,
  .site-header nav{
    gap:16px !important;
    font-size:11.5px !important;
  }
  .header-cta{
    padding:12px 16px !important;
    font-size:11.5px !important;
  }
}

@media(max-width:1000px){
  .site-header{
    height:82px !important;
    grid-template-columns:68px 1fr auto !important;
  }
  .brand img{
    height:58px !important;
    width:48px !important;
  }
}

/* Accesibilidad */
@media(prefers-reduced-motion:reduce){
  .about-rule,
  .hero-v65-redline,
  .services-v5-title-line,
  .yellow-stroke,
  .permit-v6-redline,
  .clients-v6-redline,
  .clients-v6-subline,
  .permit-v5-red-line,
  .service-v5-gold-line,
  .whatsapp-float,
  a.whatsapp-float,
  button.whatsapp-float,
  #whatsappFloat,
  .whatsapp-floating,
  .floating-whatsapp{
    animation:none !important;
    transform:none !important;
  }
}


/* =========================================================
   ALET V7.20 — REVISIÓN TRIPLE
   Líneas rojas una sola vez · carruseles sincronizados
   · contacto + footer compactos
   ========================================================= */

:root{
  --alet-line-red:#d82027;
  --alet-line-main:112px;
  --alet-line-sub:48px;
  --alet-line-h:3px;
}

/* ---------------------------------------------------------
   LÍNEA UNIFICADA
   --------------------------------------------------------- */
.alet-once-line{
  display:block !important;
  width:var(--alet-line-main) !important;
  height:var(--alet-line-h) !important;
  min-width:0 !important;
  max-width:none !important;
  margin-left:auto;
  margin-right:auto;
  background:var(--alet-line-red) !important;
  background-color:var(--alet-line-red) !important;
  border:0 !important;
  border-color:var(--alet-line-red) !important;
  border-radius:999px !important;
  box-shadow:none !important;
  opacity:0 !important;
  transform:scaleX(0) !important;
  transform-origin:center center !important;
  animation:none !important;
}

.alet-once-line.line-play{
  animation:aletRedLineOnce .95s cubic-bezier(.2,.78,.22,1) forwards !important;
}

@keyframes aletRedLineOnce{
  0%{
    transform:scaleX(0);
    opacity:.15;
  }
  68%{
    transform:scaleX(1.06);
    opacity:1;
  }
  100%{
    transform:scaleX(1);
    opacity:1;
  }
}

/* Elimina pseudo-trazos heredados, incluida la vieja línea amarilla */
.alet-once-line::before,
.alet-once-line::after,
.personal-section .yellow-stroke::before,
.personal-section .yellow-stroke::after{
  display:none !important;
  content:none !important;
  animation:none !important;
}

/* Línea principal Quiénes somos */
.about-rule.alet-once-line{
  margin:18px 0 22px !important;
  width:72px !important;
  height:3px !important;
}

/* Línea principal Servicios */
.services-v5-title-line.alet-once-line{
  width:112px !important;
  height:3px !important;
  margin:16px auto 20px !important;
}

/* Personal: AHORA ROJA, centrada y visible */
.personal-section h2 .yellow-stroke.alet-once-line{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  bottom:0 !important;
  width:112px !important;
  height:3px !important;
  margin:0 !important;
  background:var(--alet-line-red) !important;
  transform-origin:center center !important;
}

/* Documentación: garantiza que la línea exista y sea visible */
.permit-v6-redline.alet-once-line{
  width:112px !important;
  height:3px !important;
  margin:16px auto 20px !important;
  background:var(--alet-line-red) !important;
}

/* Clientes: título principal */
.clients-v6-redline.alet-once-line{
  width:112px !important;
  height:3px !important;
  margin:16px auto 18px !important;
}

/* Subtítulos / tarjetas */
.service-v5-gold-line.alet-once-line,
.permit-v5-red-line.alet-once-line,
.clients-v6-subline.alet-once-line{
  width:var(--alet-line-sub) !important;
  height:3px !important;
  background:var(--alet-line-red) !important;
}

/* Servicios: línea entre título y descripción */
.service-v5-gold-line.alet-once-line{
  margin:13px auto 0 !important;
}

/* Acreditaciones: línea entre imagen y título */
.permit-v5-red-line.alet-once-line{
  margin:16px auto 12px !important;
}

/* Sector privado / gobierno */
.clients-v6-subline.alet-once-line{
  margin:10px auto 0 !important;
}

/* Información de contacto */
.contact-v6-info h3::after{
  display:none !important;
  content:none !important;
}
.contact-info-line.alet-once-line{
  width:112px !important;
  height:3px !important;
  margin:14px 0 20px auto !important;
}

/* ---------------------------------------------------------
   CARRUSELES: MISMA VELOCIDAD LINEAL REAL
   5 logos privados = 40 s
   11 logos gobierno = 88 s
   => 8 segundos por cada "caja" de logo en ambos.
   --------------------------------------------------------- */
.private-track-v6{
  animation-name:aletClientsScrollV6 !important;
  animation-duration:40s !important;
  animation-timing-function:linear !important;
  animation-iteration-count:infinite !important;
}
.government-track-v6{
  animation-name:aletClientsScrollV6 !important;
  animation-duration:88s !important;
  animation-timing-function:linear !important;
  animation-iteration-count:infinite !important;
}
.clients-v6-carousel:hover .clients-v6-track{
  animation-play-state:paused !important;
}

/* ---------------------------------------------------------
   CONTACTO + FOOTER: sin bloque vacío debajo
   --------------------------------------------------------- */
.contact-v6{
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  margin-bottom:0 !important;
  padding-bottom:0 !important;
  overflow:visible !important;
}

.contact-v6-inner{
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  padding-bottom:0 !important;
  margin-bottom:0 !important;
  align-items:start !important;
}

.contact-v6-main{
  min-height:0 !important;
  height:auto !important;
  padding-bottom:24px !important;
  margin-bottom:0 !important;
}

.contact-v6-actions{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}

/* El panel deja de obligar a toda la fila a medir 100vh */
.contact-v6-info{
  align-self:start !important;
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  margin-bottom:0 !important;
  padding-bottom:28px !important;
}

.site-footer-v714{
  margin-top:0 !important;
}

/* Footer compacto */
.footer-v714-inner{
  min-height:82px !important;
  padding:15px 0 12px !important;
  gap:10px !important;
}

/* ---------------------------------------------------------
   Accesibilidad
   --------------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  .alet-once-line,
  .alet-once-line.line-play{
    animation:none !important;
    opacity:1 !important;
    transform:scaleX(1) !important;
  }
}


/* =========================================================
   ALET V7.21 — ajuste fino validado
   ========================================================= */

.personal-section h2 .yellow-stroke.alet-once-line{
  left:50% !important;
  margin-left:-56px !important;
  margin-right:0 !important;
}

/* Refuerzo final: ninguna línea unificada puede volver a amarillo */
.alet-once-line,
.alet-once-line.line-play,
.service-v5-gold-line.alet-once-line,
.personal-section h2 .yellow-stroke.alet-once-line,
.permit-v6-redline.alet-once-line,
.clients-v6-subline.alet-once-line,
.permit-v5-red-line.alet-once-line{
  background:#d82027 !important;
  background-color:#d82027 !important;
  border-color:#d82027 !important;
}

/* Contacto y footer deben tocarse sin separación */
.contact-v6{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
.contact-v6-inner{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
.site-footer-v714{
  margin-top:0 !important;
}
