/* ═══════════════════════════════════════════
   RESET & BASE
═══════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;overflow-x:clip}
body{font-family:'Roboto',sans-serif;background-color:#011222;color:#fff;line-height:1.6;overflow-x:clip}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,textarea,select{font-family:inherit}

/* --- CUSTOM SCROLLBAR (Only for Desktop) --- */
@media (pointer: fine) and (min-width: 768px) {
  ::-webkit-scrollbar {
    width: 4px;
    background-color: transparent;
  }
  ::-webkit-scrollbar-track {
    background-color: transparent;
  }
  ::-webkit-scrollbar-thumb {
    background-color: #1C5691;
    border-radius: 6px;
  }
  ::-webkit-scrollbar-thumb:hover {
    background-color: #1290CF;
  }
}

/* ═══════════════════════════════════════════
   CUSTOM CURSOR
═══════════════════════════════════════════ */

/* ═══════════════════════════════════════════
   SPLASH SCREEN
═══════════════════════════════════════════ */
#splash{position:fixed;inset:0;z-index:99990;background:#003B72;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;transition:opacity .7s ease,visibility .7s ease}
#splash.hidden{opacity:0;visibility:hidden;pointer-events:none}
.splash-logo{display:flex;align-items:center;gap:1rem;opacity:0;animation:splashFadeIn .4s ease 0s forwards}
.splash-gw{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(3rem,8vw,5.5rem);color:#fff;letter-spacing:-.03em;line-height:1}
.splash-gw span{color:#1290CF}
.splash-certified{font-family:'Montserrat',sans-serif;font-weight:300;font-size:clamp(2rem,5vw,3.5rem);color:rgba(255,255,255,.55);letter-spacing:.06em}
.splash-tagline{font-family:'Roboto Mono',monospace;font-size:clamp(0.45rem, 2vw, 0.85rem);letter-spacing:clamp(0.1em, 1vw, 0.25em);color:rgba(255,255,255,.4);text-transform:uppercase;opacity:0;animation:splashFadeIn .4s ease .3s forwards;text-align:center;}
.splash-bar-wrap{width:min(380px,70vw);height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;opacity:0;animation:splashFadeIn .3s ease .2s forwards}
.splash-bar{height:100%;width:0;background:linear-gradient(90deg,#1C5691,#1290CF);animation:splashLoad .8s cubic-bezier(.4,0,.2,1) .3s forwards}
@keyframes splashLoad{0%{width:0}60%{width:70%}85%{width:88%}100%{width:100%}}
@keyframes splashFadeIn{to{opacity:1}}
@keyframes splashOut{to{opacity:0;visibility:hidden}}

/* ═══════════════════════════════════════════
   SIDE MARK
═══════════════════════════════════════════ */
#side-mark{position:fixed;right:0;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:right center;font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.28em;color:rgba(255,255,255,.25);text-transform:uppercase;z-index:500;pointer-events:none;white-space:nowrap;padding-right:1rem}

/* ═══════════════════════════════════════════
   NAVIGATION
═══════════════════════════════════════════ */
nav{position:fixed;top:20px;left:0;right:0;width:calc(100% - 4rem);max-width:1400px;margin:0 auto;z-index:1000;padding:0.8rem 2rem;display:flex;align-items:center;justify-content:space-between;transition:background .4s ease,padding .4s ease,transform .4s ease,top .4s ease;border-radius:50px;background:#002d58;border:1px solid rgba(255,255,255,0.25);box-shadow:0 10px 30px rgba(0,0,0,0.15)}
nav.scrolled, body:not(.home) nav{background:#002d58;padding:0.8rem 2rem;border:1px solid rgba(255,255,255,0.15)}
.nav-logo{display:flex;align-items:center;gap:.65rem}
.nav-logo-mark{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.4rem;color:#fff;letter-spacing:-.02em;line-height:1}
.nav-logo-mark em{color:#1290CF;font-style:normal}
.nav-logo-sub{font-family:'Montserrat',sans-serif;font-weight:300;font-size:.8rem;color:rgba(255,255,255,.5);letter-spacing:.08em;line-height:1.1;display:none}
.nav-links{display:flex;align-items:center;gap:2.5rem;list-style:none}
.nav-links a{font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);transition:color .2s ease;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:#1290CF;transition:width .3s ease}
.nav-links a:hover, .nav-links a.active{color:#fff}
.nav-links a:hover::after, .nav-links a.active::after{width:100%}
.nav-cta-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#1C5691,#003B72);border:1px solid rgba(91,184,212,.4);padding:.65rem 1.5rem;border-radius:2px;transition:all .3s ease}
.nav-cta-btn:hover{background:linear-gradient(135deg,#1290CF,#1C5691);border-color:#1290CF;transform:translateY(-1px)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;z-index:1001;padding:0;}
.nav-toggle span{display:block;width:24px;height:1.5px;background:#fff;transition:transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), background 0.4s ease;transform-origin:center}
.mobile-nav-items { display: none; }
@media(max-width:900px){
  nav{padding: 0.6rem 1.2rem; width: calc(100% - 2rem); align-items: flex-start; height: 55px; overflow: hidden; transition: height 0.8s cubic-bezier(0.25, 1, 0.5, 1), background 0.5s ease, transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), border-radius 0.4s ease; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: #002d58 !important;}
  nav.scrolled{padding: 0.6rem 1.2rem; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: #002d58 !important;}
  nav.open { height: calc(100dvh - 40px); background: #002d58 !important; border-radius: 25px; }
  .nav-logo { margin-top: -4px; margin-left: -4px; }
  .nav-logo img { height: 30px !important; }
  .nav-logo span { font-size: 0.35rem !important; margin-top: -2px; }
  .nav-links,.nav-cta-main{display:none}
  .nav-logo-sub{display:block}
  .nav-toggle{display:flex; margin-top: 11px; margin-right: 0; padding: 0; gap: 6px;}
  
  nav.open .nav-toggle span:nth-child(1) { transform: translateY(3.75px) rotate(45deg); background: rgba(255,255,255,0.8); }
  nav.open .nav-toggle span:nth-child(2) { transform: translateY(-3.75px) rotate(-45deg); background: rgba(255,255,255,0.8); }

  .mobile-nav-items { position: absolute; top: 55px; bottom: 0; left: 0; right: 0; display: flex; flex-direction: column; justify-content: center; padding-bottom: 1rem; gap: 1.5rem; align-items: flex-start; padding-left: 1.5rem; opacity: 0; transform: translateY(-15px); transition: opacity 0.2s ease, transform 0.2s ease; pointer-events: none; }
  nav.open .mobile-nav-items { opacity: 1; transform: translateY(0); pointer-events: auto; transition: opacity 0.65s ease 0.2s, transform 0.8s cubic-bezier(0.25, 1, 0.5, 1) 0.15s; }
  .mobile-nav-items a { font-family: 'Montserrat', sans-serif; font-size: 1.1rem; font-weight: 700; color: #fff; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; text-align: left; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  .mobile-nav-items a:hover, .mobile-nav-items a.active { color: #1290CF; }
}

/* ═══════════════════════════════════════════
   HERO
═══════════════════════════════════════════ */
#hero{position:relative;min-height:100dvh;display:flex;align-items:center;overflow:hidden;background:#030d1a}
.hero-bg{position:absolute;inset:0;background-image:url('https://images.pexels.com/photos/7580644/pexels-photo-7580644.jpeg?auto=compress&cs=tinysrgb&fit=crop&h=1080&w=1920');background-size:cover;background-position:center top;filter:brightness(.28) saturate(1.3)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(11,59,117,.92) 0%,rgba(3,13,26,.6) 60%,rgba(11,59,117,.4) 100%)}
.hero-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(91,184,212,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(91,184,212,.05) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}
.hero-content{position:relative;z-index:2;max-width:1400px;margin:0 auto;padding:10rem 3rem 6rem;width:100%}
.hero-kicker{display:inline-flex;align-items:center;gap:.75rem;margin-bottom:2rem;opacity:0;transform:translateY(20px);animation:heroIn .8s ease .5s forwards}
.hero-kicker-line{width:40px;height:1px;background:#1290CF}
.hero-kicker-text{font-family:'Roboto Mono',monospace;font-size:.75rem;letter-spacing:.3em;color:#1290CF;text-transform:uppercase}
.hero-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(2.2rem,5vw,4.5rem);line-height:1.0;color:#fff;letter-spacing:-.02em;max-width:820px;opacity:0;transform:translateY(30px);animation:heroIn .9s ease .7s forwards}
.hero-title em{color:#1290CF;font-style:normal}
.hero-sub{font-family:'Inter',sans-serif;font-size:clamp(1rem,1.8vw,1.2rem);line-height:1.7;color:rgba(255,255,255,.65);max-width:560px;margin-top:1.5rem;opacity:0;transform:translateY(20px);animation:heroIn .8s ease .95s forwards}
.hero-btns{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.5rem;opacity:0;transform:translateY(20px);animation:heroIn .8s ease 1.15s forwards}
.btn-primary{font-family:'Montserrat',sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#1C5691,#003B72);border:1.5px solid rgba(91,184,212,.5);padding:.95rem 2.2rem;border-radius:2px;transition:all .3s ease;display:inline-flex;align-items:center;gap:.6rem}
.btn-primary:hover{background:linear-gradient(135deg,#1290CF,#1C5691);border-color:#1290CF;transform:translateY(-2px);box-shadow:0 8px 32px rgba(91,184,212,.25)}
.btn-secondary{font-family:'Montserrat',sans-serif;font-size:.85rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);border:1.5px solid rgba(255,255,255,.25);padding:.95rem 2.2rem;border-radius:2px;transition:all .3s ease;display:inline-flex;align-items:center;gap:.6rem}
.btn-secondary:hover{border-color:rgba(255,255,255,.7);color:#fff;transform:translateY(-2px)}
.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:0;animation:heroIn .8s ease 1.5s forwards}
.hero-scroll-text{font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.25em;color:rgba(255,255,255,.35);text-transform:uppercase}
.hero-scroll-arrow{width:1px;height:40px;background:linear-gradient(to bottom,rgba(91,184,212,.6),transparent);animation:scrollPulse 2s ease infinite}
@keyframes scrollPulse{0%,100%{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.2)}}
.hero-stats{position:absolute;right:3rem;bottom:5rem;display:flex;flex-direction:column;gap:1.5rem;z-index:2;opacity:0;animation:heroIn .8s ease 1.3s forwards}
.hero-stat{text-align:right}
.hero-stat-num{font-family:'Montserrat',sans-serif;font-size:2rem;font-weight:900;color:#fff;line-height:1}
.hero-stat-num span{color:#1290CF}
.hero-stat-label{font-family:'Roboto Mono',monospace;font-size:.62rem;letter-spacing:.2em;color:rgba(255,255,255,.4);text-transform:uppercase;margin-top:.2rem}
@keyframes heroIn{to{opacity:1;transform:none}}
@media(max-width:768px){
  .hero-content{padding:8rem 1.5rem 4rem}
  .hero-stats{display:none}
}

/* ═══════════════════════════════════════════
   MARQUEE
═══════════════════════════════════════════ */
.marquee-section{background:#003B72;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);padding:.85rem 0;overflow:hidden}
.marquee-track{display:flex;gap:0;animation:marqueeScroll 30s linear infinite}
.marquee-track:hover{animation-play-state:paused}
.marquee-item{flex-shrink:0;display:flex;align-items:center;gap:2.5rem;padding:0 2.5rem;font-family:'Roboto Mono',monospace;font-size:.75rem;letter-spacing:.2em;color:rgba(255,255,255,.45);text-transform:uppercase;white-space:nowrap}
.marquee-dot{width:4px;height:4px;background:#1290CF;border-radius:50%;flex-shrink:0}
@keyframes marqueeScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ═══════════════════════════════════════════
   SECTION BASE
═══════════════════════════════════════════ */
section{position:relative}
.section-inner{max-width:1400px;margin:0 auto;padding:7rem 3rem}
@media(max-width:768px){.section-inner{padding:5rem 1.5rem}}
.section-num{font-family:'Roboto Mono',monospace;font-size:6rem;font-weight:700;color:rgba(255,255,255,.04);position:absolute;top:3rem;left:3rem;line-height:1;pointer-events:none;user-select:none}
.section-label{display:inline-flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}
.section-label-line{width:32px;height:1px;background:#1290CF}
.section-label-text{font-family:'Roboto Mono',monospace;font-size:.72rem;letter-spacing:.28em;color:#1290CF;text-transform:uppercase}

/* ═══════════════════════════════════════════
   SECTION 01 — QUIÉNES SOMOS
═══════════════════════════════════════════ */
#about{background:#F2F4F7}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:stretch}
.about-grid > div:first-child{display:flex;flex-direction:column;justify-content:space-between}
.about-num{font-family:'Roboto Mono',monospace;font-size:10rem;font-weight:700;color:rgba(11,59,117,.06);position:absolute;top:4rem;right:2rem;line-height:1;pointer-events:none}
.about-label .section-label-line{background:#1C5691}
.about-aside-text strong{color:#fff;font-weight:600}
.about-label .section-label-text{color:#1C5691}
.about-est{display:inline-block;font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.35em;color:#1C5691;border:1px solid #1C5691;padding:.3rem .8rem;margin-bottom:1.5rem;text-transform:uppercase}
.about-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(2rem,3.5vw,3rem);line-height:1.1;color:#003B72;letter-spacing:-.02em;margin-bottom:2rem}
.about-title em{color:#1C5691;font-style:normal}
.about-body p{font-size:1.05rem;line-height:1.8;color:#444;margin-bottom:1.2rem}
.about-body p strong{color:#003B72;font-weight:600}
.about-defs{margin-top:auto;display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(11,59,117,.1)}
.about-def{display:flex;align-items:baseline;gap:1.5rem;padding:1rem 0;border-bottom:1px solid rgba(11,59,117,.08)}
.about-def-key{font-family:'Roboto Mono',monospace;font-size:.72rem;letter-spacing:.18em;color:#1C5691;text-transform:uppercase;white-space:nowrap;min-width:130px}
.about-def-val{font-size:.95rem;color:#444;line-height:1.5}
.about-right{display:flex;flex-direction:column;gap:2rem;height:100%}
.about-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:200px 200px;gap:1rem}
.about-img{border-radius:3px;overflow:hidden}
.about-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.about-img:hover img{transform:scale(1.05)}
.about-img.tall{grid-row:span 2}
.about-aside{background:linear-gradient(135deg,#003B72,#1C5691);color:#fff;padding:2rem;border-radius:3px}
.about-aside-title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:#1290CF;margin-bottom:1.5rem}
.about-aside-item{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem}
.about-aside-item:last-child{margin-bottom:0}
.about-aside-icon{width:20px;height:20px;flex-shrink:0;margin-top:2px}
.about-aside-text{font-size:.9rem;line-height:1.5;color:rgba(255,255,255,.8)}

/* ── Filosofía rediseñada ── */
.filosofia-block{
  position:relative;
  background:linear-gradient(145deg,#0a1e3d 0%,#0d2a52 40%,#0f3060 70%,#0a1e3d 100%);
  border-radius:8px;
  padding:1.75rem 1.5rem 1.5rem;
  margin-top:2.5rem;
  overflow:hidden;
  text-align:center
}
/* Formas diagonales de fondo */
.fil-bg-shape{position:absolute;pointer-events:none}
.fil-bg-shape--1{
  top:-40px;right:-30px;
  width:200px;height:200px;
  background:rgba(18,144,207,.08);
  transform:rotate(35deg);
  border-radius:16px
}
.fil-bg-shape--2{
  bottom:-50px;left:-40px;
  width:180px;height:180px;
  background:rgba(28,86,145,.12);
  transform:rotate(25deg);
  border-radius:16px
}
/* Puntos decorativos */
.fil-dots{
  position:absolute;
  width:80px;height:80px;
  background-image:radial-gradient(circle,rgba(18,144,207,.35) 1px,transparent 1px);
  background-size:10px 10px;
  pointer-events:none
}
.fil-dots--tl{top:16px;left:16px}
.fil-dots--br{bottom:16px;right:16px}
/* Header */
.fil-header{position:relative;z-index:1;margin-bottom:1rem}
.fil-eyebrow{
  font-family:'Roboto Mono',monospace;
  font-size:.7rem;letter-spacing:.3em;
  color:#1290CF;text-transform:uppercase;
  margin-bottom:.5rem
}
.fil-title{
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  color:#fff;
  letter-spacing:-.02em;
  margin:0 0 .75rem
}
.fil-subtitle{
  font-size:.9rem;
  color:rgba(255,255,255,.55);
  line-height:1.7;
  margin:0
}
/* Cards */
.fil-cards{
  position:relative;z-index:1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.9rem
}
.fil-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(18,144,207,.3);
  border-radius:10px;
  padding:1.25rem 1rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
  transition:border-color .35s ease, box-shadow .35s ease
}
.fil-card:hover{
  border-color:rgba(18,144,207,.7);
  box-shadow:0 0 24px rgba(18,144,207,.15)
}
/* Icono con aro */
.fil-icon-ring{
  width:54px;height:54px;
  border-radius:50%;
  border:2px solid rgba(18,144,207,.5);
  display:flex;align-items:center;justify-content:center;
  background:rgba(18,144,207,.08);
  flex-shrink:0
}
.fil-card-title{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:1.1rem;
  color:#fff;
  margin:0
}
.fil-card-sep{
  width:40px;height:2px;
  background:linear-gradient(90deg,#1290CF,rgba(18,144,207,.3));
  border-radius:2px
}
.fil-card-body{
  font-size:.88rem;
  line-height:1.75;
  color:rgba(255,255,255,.65);
  text-align:center
}
@media(max-width:600px){
  .fil-cards{grid-template-columns:1fr}
  .filosofia-block{padding:2rem 1.5rem}
}
@media(max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:3rem}
  .about-collage{grid-template-rows:160px 160px}
}


/* ═══════════════════════════════════════════
   SECTION 02 - CERTIFICACIONES
═══════════════════════════════════════════ */
#certs{background:#030d1a}
.certs-header{padding:5rem 3rem 2rem;max-width:1400px;margin:0 auto}
.certs-header .section-label-text{color:#1290CF}
.certs-header-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(2rem,4vw,3.2rem);color:#fff;letter-spacing:-.02em;max-width:600px;margin-top:.5rem}
.certs-header-sub{font-size:1rem;color:rgba(255,255,255,.5);margin-top:1rem;max-width:500px;line-height:1.7}
.certs-scroll-wrap{overflow:hidden;padding:2rem 3rem 1.5rem}
@media(max-width:900px){
  .certs-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(91,184,212,.3) transparent;padding:2rem 1.5rem 1.5rem}
  .certs-scroll-wrap::-webkit-scrollbar{height:3px}
  .certs-scroll-wrap::-webkit-scrollbar-track{background:transparent}
  .certs-scroll-wrap::-webkit-scrollbar-thumb{background:rgba(91,184,212,.35);border-radius:2px}
}
.certs-track{display:flex;gap:1.5rem;width:max-content}
.cert-card{width:320px;height:600px;flex-shrink:0;position:relative;perspective:1000px;cursor:pointer;outline:none}
.flip-card-inner{position:absolute;width:100%;height:100%;transition:transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);transform-style:preserve-3d;border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,0.2)}
.cert-card.is-flipped .flip-card-inner{transform:rotateY(180deg)}
.flip-card-front, .flip-card-back{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:4px;padding:2.5rem;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04)}
.flip-card-front{align-items:center;text-align:center;justify-content:space-between;background:linear-gradient(135deg,rgba(255,255,255,.05),rgba(255,255,255,.02))}
.cert-card:hover .flip-card-front{background:rgba(255,255,255,.07);border-color:rgba(91,184,212,.3)}
.flip-card-front-content{flex:1;display:flex;flex-direction:column;justify-content:center}
.flip-card-front-action{margin-top:1.5rem}
.btn-flip-text{font-size:0.85rem;color:#1290CF;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;transition:color 0.3s ease}
.cert-card:hover .btn-flip-text{color:#fff}
.flip-card-back{transform:rotateY(180deg);background:linear-gradient(135deg,#003B72,#030d1a);border-color:rgba(91,184,212,.3);text-align:left;padding:2.5rem 2rem}
.cert-desc-scroll{flex:1;overflow-y:auto;padding-right:0.5rem;margin-bottom:1rem}
.cert-desc-scroll::-webkit-scrollbar{width:4px}
.cert-desc-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:2px}
.flip-card-back-action{margin-top:auto}
.cert-name{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.4rem;color:#fff;margin-bottom:.5rem}
.cert-cat{font-family:'Roboto Mono',monospace;font-size:.8rem;letter-spacing:.15em;color:#1290CF;text-transform:uppercase;margin-bottom:1.2rem}
.cert-desc{font-size:.9rem;line-height:1.7;color:rgba(255,255,255,.55);margin-bottom:1.5rem}
.cert-benefits{margin-bottom:1.5rem}
.cert-benefits-title{font-family:'Roboto Mono',monospace;font-size:.62rem;letter-spacing:.2em;color:rgba(255,255,255,.35);text-transform:uppercase;margin-bottom:.75rem}
.cert-benefits ul{list-style:none;display:flex;flex-direction:column;gap:.4rem}
.cert-benefits ul li{font-size:.85rem;color:rgba(255,255,255,.6);padding-left:1rem;position:relative}
.cert-benefits ul li::before{content:'›';position:absolute;left:0;color:#1290CF}
.certs-progress{display:flex;align-items:center;gap:1rem;padding:.75rem 3rem 2.5rem;max-width:1400px;margin:0 auto}
.certs-progress-bar{flex:1;height:1px;background:rgba(255,255,255,.1);border-radius:1px;overflow:hidden}
.certs-progress-fill{height:100%;background:linear-gradient(90deg,#1C5691,#1290CF);width:30%;border-radius:1px;transition:width .3s ease}
.certs-progress-text{font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.15em;color:rgba(255,255,255,.3);white-space:nowrap}
@media(max-width:768px){
  .certs-header,.certs-scroll-wrap,.certs-progress{padding-left:1.5rem;padding-right:1.5rem}
  .cert-card{width:290px;height:600px}
}

/* ═══════════════════════════════════════════
   SECTION 03 — SECTORES
═══════════════════════════════════════════ */
#sectors{background:#fff}
.sectors-header{text-align:center;margin-bottom:4rem}
.sectors-header .section-label{justify-content:center}
.sectors-header .section-label-line{background:#1C5691}
.sectors-header .section-label-text{color:#1C5691}
.sectors-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,3.5vw,3rem);color:#003B72;letter-spacing:-.02em;margin-top:.5rem}
.sectors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}
.sector-card{background:#F2F4F7;border:1px solid rgba(11,59,117,.08);border-radius:4px;padding:2.5rem 2rem;text-align:center;transition:all .4s ease;position:relative;overflow:hidden}
.sector-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#1C5691,#1290CF);transform:scaleX(0);transition:transform .4s ease}
.sector-card:hover{background:#fff;border-color:rgba(30,90,168,.2);transform:translateY(-4px);box-shadow:0 12px 40px rgba(11,59,117,.1)}
.sector-card:hover::after{transform:scaleX(1)}
.sector-icon{width:56px;height:56px;margin:0 auto 1.5rem;color:#1C5691}
.sector-name{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1rem;color:#003B72;margin-bottom:.75rem}
.sector-desc{font-size:.875rem;line-height:1.65;color:#666}
@media(max-width:768px){.sectors-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.sectors-grid{grid-template-columns:1fr}}

/* ═══════════════════════════════════════════
   SECTION 04 — GALERÍA MARQUEE
═══════════════════════════════════════════ */
#gallery{background:#003B72;padding:5rem 0}
.gallery-header{padding:0 3rem 2.5rem;max-width:1400px;margin:0 auto}
.gallery-header .section-label-text{color:#1290CF}
.gallery-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,3.5vw,3rem);color:#fff;margin-top:.5rem;max-width:500px}
.gallery-lane{overflow:hidden;margin-bottom:1rem}
.gallery-lane-track{display:flex;gap:1rem;animation:galleryScroll 28s linear infinite}
.gallery-lane:nth-child(even) .gallery-lane-track{animation-direction:reverse;animation-duration:34s}
.gallery-lane:nth-child(3n) .gallery-lane-track{animation-duration:22s}
.gallery-img{flex-shrink:0;width:260px;height:180px;border-radius:3px;overflow:hidden}
.gallery-img img{width:100%;height:100%;object-fit:cover;filter:brightness(.75) saturate(.8);transition:filter .4s ease}
.gallery-img:hover img{filter:brightness(.95) saturate(1)}
@keyframes galleryScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media(max-width:768px){.gallery-header{padding-left:1.5rem}}

/* ═══════════════════════════════════════════
   SECTION 05 — CAPACITACIÓN Y AUDITORÍAS
═══════════════════════════════════════════ */
#training{background:#fff;overflow:hidden;padding:5rem 3rem}
.training-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;max-width:1400px;margin:0 auto;align-items:center}
.training-visual{position:relative;overflow:hidden;border-radius:24px;aspect-ratio:1/1;max-height:600px}
.training-visual img{width:100%;height:100%;object-fit:cover}
.training-content{background:transparent;padding:0;display:flex;flex-direction:column;justify-content:center}
.training-content .section-label-line{background:#1C5691}
.training-content .section-label-text{color:#1C5691}
.training-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,3vw,2.6rem);color:#003B72;line-height:1.1;margin-top:.5rem;margin-bottom:1.5rem;letter-spacing:-.02em}
.training-title em{color:#1C5691;font-style:normal}
.training-body{font-size:1rem;line-height:1.8;color:#555;margin-bottom:2.5rem}
.training-services{display:flex;flex-direction:column;gap:1.2rem;margin-bottom:2.5rem}
.training-service{display:flex;flex-direction:row;align-items:flex-start;gap:1.5rem;padding:1.5rem 1.8rem;background:#F0F2F5;border-radius:3px;border-left:4px solid #1C5691}
.training-service-icon{width:36px;height:36px;flex-shrink:0;color:#1C5691;margin-top:0.2rem}
.training-service-info h4, .training-service-info h3 {font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.05rem;color:#003B72;margin-bottom:.4rem;line-height:1.3}
.training-service-info p{font-size:.9rem;color:#666;line-height:1.6;margin:0}
@media(max-width:900px){
  #training{padding:3rem 1.5rem}
  .training-grid{grid-template-columns:1fr;gap:2rem}
  .training-visual{min-height:300px;border-radius:16px;max-height:400px}
  .training-content{padding:0}
}

/* ═══════════════════════════════════════════
   SECTION 06 — CONTACTO
═══════════════════════════════════════════ */
#contact{background:#030d1a}
/* Reemplazar .contact-grid actual por esto: */
.contact-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    column-gap: 5rem;
    row-gap: 2rem;
}

/* --- ALINEACIÓN PERFECTA (Desktop) --- */
@media (min-width: 901px) {
    /* Forzamos a que el formulario y la caja compartan la misma fila exacta */
    .contact-left { grid-row: 1 / 2; grid-column: 1 / 2; }
    .contact-info { grid-row: 1 / 2; grid-column: 2 / 3; }
    /* El mapa pasa a la segunda fila, manteniendo su columna */
    .contact-extras { grid-row: 2 / 3; grid-column: 1 / 3; }
}

/* Izquierda: Formulario */
.contact-left {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.contact-left > div:last-child, .contact-form {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.form-submit { margin-top: auto; }

/* Derecha: Caja de Información */
.contact-info {
    height: 100%;
}
.contact-info-box {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    height: 100%; /* Obliga a la caja a medir exactamente lo mismo que el formulario */
    box-sizing: border-box;
}
.contact-info-box .contact-info-title { margin-bottom: 2rem; }
.contact-info-item {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    padding-bottom: 1.5rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.contact-info-item:last-of-type {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
}
.contact-info-icon { width: 22px; height: 22px; color: #1290CF; flex-shrink: 0; margin-top: 2px; }
.contact-info-text strong {
    color: #1290CF;
    font-family: 'Roboto Mono', monospace;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    display: block;
    margin-bottom: 0.5rem;
}

/* Extras (Mapa) */
.contact-map-wrap { margin-top: 0; }
.contact-left .section-label-text{color:#1290CF}
.contact-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(2rem,4vw,3rem);color:#fff;line-height:1.1;margin-top:.5rem;margin-bottom:.75rem;letter-spacing:-.02em}
.contact-sub{font-size:1rem;color:rgba(255,255,255,.5);line-height:1.7;margin-bottom:3rem}
.contact-form{display:flex;flex-direction:column;gap:0}
.form-group{position:relative;margin-bottom:1.5rem}
.form-num{font-family:'Roboto Mono',monospace;font-size:.62rem;letter-spacing:.2em;color:rgba(91,184,212,.5);position:absolute;left:0;top:-1.2rem;text-transform:uppercase}
.form-field{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:2px;padding:1rem 1.2rem;font-family:'Inter',sans-serif;font-size:.95rem;color:#fff;transition:all .3s ease;outline:none;appearance:none}
.form-field::placeholder{color:rgba(255,255,255,.3)}
.form-field:focus{border-color:rgba(91,184,212,.5);background:rgba(255,255,255,.06)}
.form-field option{background:#003B72;color:#fff}
textarea.form-field{min-height:120px;resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.form-submit{margin-top:.5rem}
.contact-info{display:flex;flex-direction:column;gap:1.25rem}
.contact-info-title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:#1290CF;margin-bottom:1.5rem}
.contact-info-item{display:flex;align-items:flex-start;gap:1rem}
.contact-info-icon{width:20px;height:20px;color:#1290CF;flex-shrink:0;margin-top:2px}
.contact-info-text{font-size:.9rem;color:rgba(255,255,255,.65);line-height:1.6}
.contact-info-text strong{color:#fff;display:block;margin-bottom:.15rem;font-size:.95rem}
.contact-divider{height:1px;background:rgba(255,255,255,.08)}
.contact-map-wrap{
  height:280px;
  border-radius:4px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  margin-top:1.5rem;
  position:relative
}
#gw-map{width:100%;height:100%}
/* Ocultar logo de MapLibre para un look más limpio */
#gw-map .maplibregl-ctrl-logo{display:none!important}
#gw-map .maplibregl-ctrl-attrib{font-size:9px;opacity:.4}
.map-open-btn{
  position:absolute;
  bottom:12px;
  right:12px;
  z-index:10;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:.45rem .9rem;
  background:rgba(10,22,40,.85);
  backdrop-filter:blur(8px);
  border:1px solid rgba(18,144,207,.35);
  border-radius:3px;
  color:#fff;
  font-family:'Roboto Mono',monospace;
  font-size:.65rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  transition:all .25s ease
}
.map-open-btn:hover{background:rgba(18,144,207,.25);border-color:#1290CF;color:#fff}
/* Popup estilo oscuro GW */
.gw-map-popup .maplibregl-popup-content{
  background:#0d1f35;
  border:1px solid rgba(18,144,207,.3);
  border-radius:6px;
  padding:12px 14px;
  box-shadow:0 8px 32px rgba(0,0,0,.5)
}
.gw-map-popup .maplibregl-popup-tip{border-top-color:#0d1f35}
@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr;gap:3rem}
  .form-row{grid-template-columns:1fr}
}

/* Caja contenedora estilo tarjeta */
.contact-info-box {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
}

/* Espaciado del título principal dentro de la caja */
.contact-info-box .contact-info-title {
  margin-bottom: 2rem;
}

/* Separadores entre los items de contacto */
.contact-info-item {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  padding-bottom: 1.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Quitar la línea divisoria al último elemento de la caja */
.contact-info-item:last-of-type {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}

/* Ajuste de iconos */
.contact-info-icon {
  width: 22px;
  height: 22px;
  color: #1290CF;
  flex-shrink: 0;
  margin-top: 2px;
}

/* Estilo de los encabezados (Correo, Teléfono, Sede, etc.) imitando la referencia */
.contact-info-text strong {
  color: #1290CF;
  font-family: 'Roboto Mono', monospace;
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 0.5rem;
}

/* ═══════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════ */
footer{background:#020c1b;border-top:1px solid rgba(255,255,255,.06)}
.footer-top{max-width:1400px;margin:0 auto;padding:5rem 3rem 3rem;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:4rem}
.footer-brand-name{font-family:'Montserrat',sans-serif;font-weight:900;font-size:1.5rem;color:#fff;letter-spacing:-.02em;margin-bottom:.5rem}
.footer-brand-name em{color:#1290CF;font-style:normal}
.footer-brand-tag{font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.2em;color:rgba(255,255,255,.3);text-transform:uppercase;margin-bottom:1.5rem}
.footer-brand-desc{font-size:.9rem;color:rgba(255,255,255,.4);line-height:1.7;max-width:300px}
.footer-col-title{font-family:'Montserrat',sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:1.5rem}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.footer-links a{font-size:.88rem;color:rgba(255,255,255,.35);transition:color .2s ease}
.footer-links a:hover{color:#1290CF}
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.05);
  max-width: 1400px;
  margin: 0 auto;
  /* La magia está aquí: añadimos 5rem de espacio extra al final */
  padding: 1.5rem 3rem 5rem 3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.footer-legal{font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.12em;color:rgba(255,255,255,.2);text-transform:uppercase}
.footer-back-top{font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.2em;color:rgba(255,255,255,.3);text-transform:uppercase;transition:color .2s ease;background:none;border:none;display:flex;align-items:center;gap:.5rem}
.footer-back-top:hover{color:#1290CF}
@media(max-width:900px){
  .footer-top{grid-template-columns:1fr 1fr;gap:2.5rem}
  .footer-bottom{flex-direction:column;gap:1rem;text-align:center}
}
@media(max-width:600px){
  .footer-top{grid-template-columns:1fr;padding:3rem 1.5rem 2rem}
  .footer-bottom{padding:1.5rem}
}

/* ═══════════════════════════════════════════
   REVEAL ANIMATIONS
═══════════════════════════════════════════ */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s ease,transform .8s ease}
.reveal-left.visible{opacity:1;transform:none}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s ease,transform .8s ease}
.reveal-right.visible{opacity:1;transform:none}
.reveal-scale{opacity:0;transform:scale(.95);transition:opacity .8s ease,transform .8s ease}
.reveal-scale.visible{opacity:1;transform:none}
[data-delay="1"]{transition-delay:.1s}
[data-delay="2"]{transition-delay:.2s}
[data-delay="3"]{transition-delay:.3s}
[data-delay="4"]{transition-delay:.4s}
[data-delay="5"]{transition-delay:.5s}
[data-delay="6"]{transition-delay:.6s}

/* ═══════════════════════════════════════════
   STICKY CTA BUTTON
═══════════════════════════════════════════ */
#sticky-cta{position:fixed;bottom:2rem;right:2rem;z-index:800;opacity:0;transform:translateY(10px);transition:all .4s ease;pointer-events:none}
#sticky-cta.show{opacity:1;transform:none;pointer-events:auto}
.sticky-cta-btn{display:flex;align-items:center;gap:.6rem;font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#1C5691,#003B72);border:1px solid rgba(91,184,212,.4);padding:.8rem 1.4rem;border-radius:2px;box-shadow:0 8px 32px rgba(11,59,117,.4);transition:all .3s ease}
.sticky-cta-btn:hover{background:linear-gradient(135deg,#1290CF,#1C5691);transform:translateY(-2px);box-shadow:0 12px 40px rgba(91,184,212,.3)}
@media(max-width:768px){
  #sticky-cta{bottom:1rem;right:1rem}
  .sticky-cta-btn{font-size:.72rem;padding:.7rem 1.1rem}
}

/* ═══════════════════════════════════════════
   TOAST
═══════════════════════════════════════════ */
#toast{position:fixed;bottom:5rem;left:50%;transform:translateX(-50%) translateY(20px);background:rgba(11,59,117,.95);color:#fff;font-family:'Montserrat',sans-serif;font-size:.85rem;font-weight:600;padding:1rem 2rem;border-radius:3px;border:1px solid rgba(91,184,212,.3);backdrop-filter:blur(20px);opacity:0;transition:all .4s ease;z-index:9000;pointer-events:none;white-space:nowrap}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ═══════════════════════════════════════════
   SVG ICONS INLINE
═══════════════════════════════════════════ */
.icon-quality{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* ═══════════════════════════════════════════
   TRUST BAR / STATS
═══════════════════════════════════════════ */
#trust{background:linear-gradient(135deg,#003B72 0%,#1C5691 100%);border-top:1px solid rgba(255,255,255,.1)}
.trust-inner{max-width:1400px;margin:0 auto;padding:4rem 3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.trust-item{text-align:center;padding:1.5rem;border-right:1px solid rgba(255,255,255,.1);position:relative}
.trust-item:last-child{border-right:none}
.trust-num{font-family:'Montserrat',sans-serif;font-weight:900;font-size:2.8rem;color:#fff;line-height:1;margin-bottom:.4rem}
.trust-num span:not(.counter-num){color:#1290CF}
.trust-label{font-family:'Roboto Mono',monospace;font-size:.68rem;letter-spacing:.2em;color:rgba(255,255,255,.5);text-transform:uppercase;line-height:1.5}
@media(max-width:768px){
  .trust-inner{grid-template-columns:repeat(2,1fr)}
  .trust-item{border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}
  .trust-item:nth-child(odd){border-right:1px solid rgba(255,255,255,.08)}
  .trust-item:last-child,.trust-item:nth-last-child(2){border-bottom:none}
}
@media(max-width:480px){
  .trust-inner{grid-template-columns:1fr 1fr;padding:2.5rem 1.5rem}
}

/* ═══════════════════════════════════════════
   WHY GW / DIFERENCIADORES
═══════════════════════════════════════════ */
#why{background:#fff;overflow:hidden}
.why-inner{max-width:1400px;margin:0 auto;padding:7rem 3rem;display:grid;grid-template-columns:1.2fr 1fr;gap:4rem;align-items:center}
.why-visual{position:relative}
.why-visual-img{border-radius:4px;overflow:hidden;position:relative}
.why-visual-img img{width:100%;height:auto;object-fit:contain;border-radius:12px;}
.why-badge-float{position:absolute;bottom:-2rem;right:-2rem;background:linear-gradient(135deg,#003B72,#1C5691);color:#fff;padding:2rem;border-radius:3px;box-shadow:0 16px 48px rgba(11,59,117,.3);z-index:2;min-width:160px;text-align:center}
.why-badge-num{font-family:'Montserrat',sans-serif;font-weight:900;font-size:2.5rem;color:#fff;line-height:1}
.why-badge-label{font-family:'Roboto Mono',monospace;font-size:.6rem;letter-spacing:.2em;color:rgba(255,255,255,.6);text-transform:uppercase;margin-top:.3rem;line-height:1.4}
.why-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,3vw,2.8rem);color:#003B72;line-height:1.1;letter-spacing:-.02em;margin-bottom:1rem;margin-top:.5rem}
.why-title em{color:#1C5691;font-style:normal}
.why-sub{font-size:1rem;color:#666;line-height:1.8;margin-bottom:2.5rem;max-width:520px}
.why-items{display:flex;flex-direction:column;gap:1.2rem}
.why-item{display:flex;align-items:flex-start;gap:1.2rem;padding:1.2rem 1.5rem;border:1px solid rgba(11,59,117,.08);border-radius:3px;transition:all .3s ease;background:#F0F2F5}
.why-item-icon{width:40px;height:40px;border-radius:2px;background:linear-gradient(135deg,#003B72,#1C5691);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.why-item-icon svg{color:#fff;width:20px;height:20px}
.why-item-body h4, .why-item-body h3 {font-family:'Montserrat',sans-serif;font-weight:700;font-size:.95rem;color:#003B72;margin-bottom:.3rem}
.why-item-body p{font-size:.875rem;color:#666;line-height:1.6}
@media(max-width:900px){
  .why-inner{grid-template-columns:1fr;gap:3rem;padding:5rem 1.5rem}
  .why-badge-float{bottom:-0.5rem;right:-0.5rem;padding:0.6rem;min-width:90px}
  .why-badge-num{font-size:1.2rem}
  .why-badge-label{font-size:.4rem;margin-top:.1rem;letter-spacing:0.05em}
  .why-visual-img img{height:auto;}
}

/* ═══════════════════════════════════════════
   USO DE SELLOS Y LOGOTIPOS
═══════════════════════════════════════════ */
#sellos { background: #F2F4F7; padding: 6rem 0; }
.sellos-inner { max-width: 1400px; margin: 0 auto; padding: 0 3rem; }
.sellos-header { text-align: center; margin-bottom: 4rem; }
.sellos-header .section-label { justify-content: center; }
.sellos-header .section-label-line { background: #1C5691; }
.sellos-header .section-label-text { color: #1C5691; }
.sellos-title { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: clamp(1.8rem, 3.5vw, 2.8rem); color: #003B72; margin-top: .5rem; letter-spacing: -0.02em; }


/* ═══════════════════════════════════════════
   RECONOCIMIENTOS CAROUSEL
═══════════════════════════════════════════ */
.recon-carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  gap: 2rem;
  padding-bottom: 1rem;
}
.recon-carousel::-webkit-scrollbar {
  display: none;
}
.recon-card {
  flex: 0 0 100%;
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1rem;
}
.recon-logo {
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
}
.recon-logo a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}
.recon-logo img {
  max-height: 100%;
  width: auto;
  object-fit: contain;
  transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1), filter 0.4s ease;
}
.recon-logo:hover img {
  transform: translateY(-3px) scale(1.03);
  filter: drop-shadow(0 8px 16px rgba(11, 59, 117, 0.12));
}
.recon-name {
  font-family: 'Montserrat', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: #003B72;
  margin-bottom: 0.75rem;
}
.recon-desc {
  font-size: 0.85rem;
  color: #666;
  line-height: 1.6;
  max-width: 320px;
  margin: 0 auto;
}
.recon-dots {
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  margin-top: 2rem;
}
.recon-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(11, 59, 117, 0.15);
  cursor: pointer;
  transition: all 0.3s ease;
  border: none;
  padding: 0;
}
.recon-dot.active {
  background: #003B72;
  transform: scale(1.2);
}
@media (min-width: 768px) {
  .recon-carousel-wrap {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
  }
  .recon-carousel {
    justify-content: flex-start;
  }
  .recon-card {
    flex: 0 0 calc(33.333% - 1.33rem);
    scroll-snap-align: start;
  }
}
@media (max-width: 767px) {
  .recon-inner { padding: 0 1.5rem !important; }
}

/* ═══════════════════════════════════════════
   CONSULTA DE CERTIFICADOS
═══════════════════════════════════════════ */
#consulta{background:#F2F4F7;padding:6rem 0}
.consulta-inner{max-width:900px;margin:0 auto;padding:0 3rem;text-align:center}
.consulta-header{margin-bottom:3.5rem}
.consulta-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,3.5vw,2.8rem);color:#003B72;margin-top:.5rem;letter-spacing:-.02em}
.consulta-title em{color:#1C5691;font-style:normal}
.consulta-sub{font-size:1rem;color:#666;line-height:1.7;margin-top:1rem}
.consulta-list{display:flex;flex-direction:column;gap:1rem}
.consulta-btn{display:flex;align-items:center;gap:1.2rem;background:#fff;border:1px solid rgba(11,59,117,.1);padding:1.2rem 2rem;border-radius:4px;color:#003B72;font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.05rem;transition:all .3s ease;text-align:left;box-shadow:0 4px 15px rgba(0,0,0,.03);width:100%}
.consulta-btn:hover{border-color:#1290CF;background:#003B72;color:#fff;box-shadow:0 8px 25px rgba(11,59,117,.15)}
.consulta-btn-icon{width:22px;height:22px;color:#1290CF;flex-shrink:0}
.consulta-btn:hover .consulta-btn-icon{color:#fff}
@media(max-width:768px){.consulta-inner{padding:0 1.5rem}}

/* ═══════════════════════════════════════════
   UTILITY
═══════════════════════════════════════════ */
.text-accent{color:#1290CF}
.text-blue{color:#1C5691}
.bg-corporate{background:linear-gradient(135deg,#003B72,#1C5691)}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
/* ═══════════════════════════════════════════
   INFORMACIÓN DE INTERÉS (DOCUMENTOS INSTITUCIONALES)
═══════════════════════════════════════════ */
#docs { background: #ffffff; padding: 6rem 0; border-top: 1px solid rgba(0,0,0,.05); border-bottom: 1px solid rgba(0,0,0,.05); }
.docs-inner { max-width: 1200px; margin: 0 auto; padding: 0 3rem; }
.docs-header { text-align: center; margin-bottom: 4rem; }
.docs-header .section-label { justify-content: center; }
.docs-header .section-label-text { color: #1C5691; }
.docs-title { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: clamp(1.8rem, 3.5vw, 2.8rem); color: #003B72; margin-top: .5rem; letter-spacing: -0.02em; }

.docs-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; }
.doc-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 1.2rem; background: #F2F4F7; border: 1px solid rgba(0,59,114,.05); padding: 2.5rem 2rem; border-radius: 8px; width: calc(33.333% - 1rem); min-width: 250px; transition: all .4s ease; text-decoration: none; color: #555; }
.doc-card:hover { background: #fff; border-color: #1290CF; transform: translateY(-5px); box-shadow: 0 15px 35px rgba(0,59,114,.1); }
.doc-icon { width: 48px; height: 48px; color: #1C5691; transition: all .3s ease; flex-shrink: 0; }
.doc-card:hover .doc-icon { transform: scale(1.1); color: #1290CF; }
.doc-title { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1rem; line-height: 1.4; color: #003B72; }
.doc-dl-text { font-family: 'Roboto Mono', monospace; font-size: .65rem; letter-spacing: .15em; color: rgba(0,59,114,.5); text-transform: uppercase; margin-top: auto; display: flex; align-items: center; gap: 6px; transition: color .3s ease; }
.doc-card:hover .doc-dl-text { color: #1290CF; }

@media(max-width: 900px) {
  .doc-card { width: calc(50% - 1rem); }
}
@media(max-width: 600px) {
  .docs-inner { padding: 0 1.5rem; }
  .doc-card { width: 100%; }
}


  .nav-dropdown { position: relative; display: inline-block; }
  .nav-dropdown-content {
    display: none;
    position: absolute;
    background-color: #fff;
    min-width: 320px;
    box-shadow: 0px 8px 16px rgba(0,0,0,0.15);
    z-index: 1000;
    border-radius: 6px;
    top: 100%;
    left: 0;
    padding: 0.5rem 0;
  }
  .nav-dropdown:hover .nav-dropdown-content { display: block; }
  .nav-dropdown-content a {
    color: #003B72 !important;
    padding: 12px 20px;
    text-decoration: none;
    display: block;
    font-size: 0.75rem !important;
    text-transform: none !important;
    font-weight: 500 !important;
    white-space: normal !important;
    line-height: 1.4;
    border-bottom: 1px solid #f0f0f0;
    transition: background 0.3s, color 0.3s;
  }
  .nav-dropdown-content a:last-child { border-bottom: none; }
  .nav-dropdown-content a:hover {
    background-color: #F2F4F7;
    color: #1290CF !important;
  }

  /* ═══════════════════════════════════════════
     SECTION ACREDITACIONES
  ═══════════════════════════════════════════ */
  #acreditaciones { background: #F2F4F7; padding: 6rem 0; border-bottom: 1px solid rgba(11,59,117,.05); }
  .acred-inner { max-width: 1000px; margin: 0 auto; padding: 0 3rem; position: relative; }
  .acred-header { text-align: center; margin-bottom: 3.5rem; }
  .acred-header .section-label { justify-content: center; }
  .acred-header .section-label-line { background: #1C5691; }
  .acred-header .section-label-text { color: #1C5691; }
  .acred-title { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: clamp(1.8rem, 3.5vw, 2.8rem); color: #003B72; margin-top: .5rem; letter-spacing: -0.02em; }
  .acred-list { display: flex; flex-direction: column; gap: 1rem; }
  .acred-item { display: flex; align-items: center; gap: 1.5rem; background: #fff; border: 1px solid rgba(11,59,117,.1); padding: 1.5rem 2rem; border-radius: 4px; text-decoration: none; transition: all .3s ease; box-shadow: 0 4px 15px rgba(0,0,0,.02); }
  .acred-item:hover { border-color: #1290CF; transform: translateX(5px); box-shadow: 0 8px 25px rgba(11,59,117,.08); }
  .acred-icon-wrap { width: 48px; height: 48px; background: linear-gradient(135deg, #003B72, #1C5691); border-radius: 4px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #fff; }
  .acred-text { flex: 1; }
  .acred-text h4, .acred-text h3 { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: .95rem; color: #003B72; margin-bottom: .3rem; line-height: 1.5; }
  .acred-text p { font-size: .75rem; color: #666; font-family: 'Roboto Mono', monospace; text-transform: uppercase; letter-spacing: .05em; }
  .acred-action { font-family: 'Montserrat', sans-serif; font-size: .8rem; font-weight: 700; color: #1290CF; display: flex; align-items: center; gap: .5rem; opacity: 0; transform: translateX(-10px); transition: all .3s ease; white-space: nowrap; }
  .acred-item:hover .acred-action { opacity: 1; transform: translateX(0); }
  @media(max-width: 768px) {
    .acred-inner { padding: 0 1.5rem; }
    .acred-item { flex-direction: column; text-align: center; padding: 1.5rem; gap: 1rem; }
    .acred-action { opacity: 1; transform: none; justify-content: center; margin-top: .5rem; }
  }
/* ═══════════════════════════════════════════
     OPTIMIZACIÓN MÓVIL DEFINITIVA (V9 - CORREGIDA)
  ═══════════════════════════════════════════ */
  @media (max-width: 768px) {
    /* 1. Menú, fotos y otros ajustes */
    .nav-links { display: none !important; }
    
    .mobile-menu {
        display: flex !important;
        position: fixed !important;
        top: 75px !important; 
        left: 0 !important;
        right: 0 !important;
        bottom: auto !important; 
        background: rgba(11, 59, 117, 0.65) !important;
        backdrop-filter: blur(12px) !important; 
        -webkit-backdrop-filter: blur(12px) !important;
        flex-direction: column !important;
        padding: 0 !important;
        transform: translateY(-150%) !important;
        transition: transform 0.4s ease-in-out !important;
        z-index: 999 !important;
        box-shadow: 0 10px 30px rgba(0,0,0,0.3) !important; 
        border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    }
    .mobile-menu.open { transform: translateY(0) !important; }
    
    .mobile-menu-inner {
        padding: 1rem 2rem 2.5rem 2rem !important; 
        display: flex !important;
        flex-direction: column !important;
    }
    
    .mobile-close {
        align-self: flex-end !important;
        font-size: 2.2rem !important;
        color: rgba(255,255,255,0.6) !important;
        background: transparent !important;
        border: none !important;
        line-height: 1 !important;
        padding: 0 !important;
        margin-bottom: 0.5rem !important;
    }

    .mobile-menu-inner > a, .mobile-submenu-label {
        font-family: 'Inter', sans-serif !important;
        font-size: 0.9rem !important;
        font-weight: 600 !important;
        color: #fff !important;
        padding: 0.8rem 0 !important;
        margin: 0 !important;
        text-align: left !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        border: none !important;
        width: 100% !important; 
        box-sizing: border-box !important;
    }

    .mobile-submenu-container { width: 100% !important; }
    
    .mobile-submenu-label {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        cursor: pointer !important;
    }
    
    .submenu-arrow {
        font-size: 0.6rem !important;
        color: #1290CF !important;
        transition: transform 0.4s ease !important;
    }
    
    #submenu-toggle:checked ~ .mobile-submenu-label .submenu-arrow {
        transform: rotate(180deg) !important;
    }
    
    .mobile-submenu-content {
        display: flex !important;
        flex-direction: column !important;
        padding-left: 1rem !important;
        max-height: 0 !important;
        opacity: 0 !important;
        overflow: hidden !important;
        transition: max-height 0.5s ease-in-out, opacity 0.4s ease-in-out, padding 0.5s ease-in-out !important;
    }
    
    #submenu-toggle:checked ~ .mobile-submenu-content {
        max-height: 400px !important;
        opacity: 1 !important;
        padding-top: 0.5rem !important;
        padding-bottom: 1rem !important;
    }

    .mobile-submenu-content a {
    font-size: 0.75rem !important;
    color: rgba(255, 255, 255, 0.7) !important; 
    padding: 0.6rem 0 !important;
    text-align: left !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    line-height: 1.4 !important;
    display: block !important;
    transition: color 0.3s ease !important;
}


.mobile-submenu-content a:active {
    color: #ffffff !important; 
}

    /* 4. Hero y Galería */
    .hero-kicker-text { font-size: 0.55rem !important; letter-spacing: 0.12em !important; }
    .hero-kicker { margin-bottom: 1rem !important; }
    .trust-inner { display: flex !important; flex-direction: row !important; padding: 1.5rem 1rem !important; gap: 0.5rem !important; align-items: flex-start !important; }
    .trust-item { padding: 0 !important; flex: 1 !important; border: none !important; }
    .trust-num { font-size: 1.5rem !important; margin-bottom: 0.2rem !important; }
    .trust-label { font-size: 0.5rem !important; line-height: 1.3 !important; }
    .trust-num svg { width: 22px !important; height: 22px !important; } 
    .gallery-img { width: 160px !important; height: 115px !important; }
    .gallery-lane-track { gap: 0.5rem !important; }

    /* 5. AJUSTES DEL PIE DE PÁGINA (FOOTER) - AHORA SÍ DENTRO */
    .footer-top {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 2.5rem !important;
    }
    .footer-top > div:nth-child(2) {
        display: none !important;
    }
    .footer-links {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }
    .footer-links a {
        justify-content: center !important;
    }
    .footer-links a[href^="mailto:"] {
        font-size: 0.9rem !important;
        word-break: break-word !important;
    }
    
    footer {
        padding-bottom: 6rem !important;
    }
    .footer-bottom {
        flex-direction: column !important;
        gap: 1.5rem !important;
        text-align: center !important;
        margin-top: 2rem !important;
    }
  } 

  .logo-marquee-track {
      display: flex;
      width: max-content;
      gap: 0; /* Cero espacio entre las imágenes */
      padding: 0;
      animation: logoScroll 60s linear infinite; /* Animación continua y fluida */
    }
    
    .logo-marquee-track img {
      height: auto; max-height: 300px; padding: 0;
      width: auto;
      object-fit: contain;
    }
    
    @keyframes logoScroll {
      0% { transform: translateX(0); }
      /* Como el gap es 0, el desplazamiento exacto del 50% crea un bucle perfecto */
      100% { transform: translateX(-50%); } 
    }
    
    @media (max-width: 768px) {
      .logo-marquee-track img { height: auto; max-height: 150px; padding: 0; } /* Ajuste proporcional para celulares */
    }

    #sellos { background: #F2F4F7; padding: 6rem 0; }
.sellos-inner { max-width: 1400px; margin: 0 auto; padding: 0 3rem; }
.sellos-header { text-align: center; margin-bottom: 4rem; }
.sellos-header .section-label { justify-content: center; }
.sellos-header .section-label-line { background: #1C5691; }
.sellos-header .section-label-text { color: #1C5691; }
.sellos-title { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: clamp(1.8rem, 3.5vw, 2.8rem); color: #003B72; margin-top: .5rem; letter-spacing: -0.02em; }
.sellos-grid { width: 100%; display: grid; grid-template-columns: 1.2fr 1fr; gap: 4rem; position: relative; align-items: start; margin-bottom: 4rem; }

/* Pasos (Lado Izquierdo) */
.sellos-steps { display: flex; flex-direction: column; width: 100%; position: relative; margin: 0; padding: 0; will-change: transform; }
.sello-step { height: 100vh; display: flex; flex-direction: column; justify-content: center; gap: 2.5rem; align-items: flex-start; padding: 0; opacity: 0.3; transition: opacity 0.5s ease, transform 0.5s ease; border: none; background: transparent; box-shadow: none; flex-shrink: 0; }
.sello-step.is-active { opacity: 1; transform: translateX(10px); }
.sello-step-num-large { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 3.5rem; color: #cbd5e1; line-height: 1; margin-top: -0.5rem; }
.sello-step-content { padding-left: 2rem; border-left: 2px solid transparent; }
.sello-step.is-active .sello-step-content.border-accent { border-left-color: #1290CF; /* Naranja corporativo */ }
.sello-step-content h4, .sello-step-content h3 { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 2.2rem; color: #003B72; margin-bottom: 1rem; }
.sello-step-content p { font-size: 1.1rem; color: #555; line-height: 1.7; }
.sello-step-content p strong { color: #003B72; }

/* Sticky Right Column */
.sellos-visual-sticky { position: relative; height: 100vh; align-self: start; display: flex; align-items: center; justify-content: center; padding: 10vh 0; }
.sellos-visual-bg { width: 100%; height: 100%; border-radius: 20px; background-color: #003B72; display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; box-shadow: 0 20px 50px rgba(0,59,114,.2); }
.sellos-visual-num { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 20rem; line-height: 1; color: rgba(255,255,255,0.15); position: absolute; z-index: 1; text-align: center; width: 100%; display: flex; justify-content: center; align-items: center; user-select: none; }
.sellos-visual-content { position: relative; z-index: 2; padding: 3rem; text-align: left; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; }
.sellos-visual-content h3 { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 2rem; color: #fff; margin-bottom: 1rem; }
.sellos-visual-content p { font-size: 1.1rem; color: rgba(255,255,255,0.8); line-height: 1.6; }
.sellos-visual-top-right { position: absolute; top: 2rem; right: 2rem; color: rgba(255,255,255,0.5); font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 1rem; letter-spacing: 2px; }

/* Descargas Split Layout (Glassmorphism) */
.sellos-downloads-wrap { width: 100%; min-height: auto; position: relative; display: flex; align-items: center; justify-content: center; padding: 2rem; background-color: #0b1115; overflow: hidden; margin-top: 5rem; margin-bottom: -6rem; z-index: 10; }
.sellos-downloads-overlay { position: absolute; inset: 0; background: linear-gradient(to right, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.5) 100%); z-index: 1; }
.sellos-downloads-split { position: relative; z-index: 2; width: 100%; max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }

/* Left Column */
.sellos-split-left { display: flex; flex-direction: column; gap: 1.5rem; }
.split-eyebrow { display: inline-flex; align-items: center; gap: 0.5rem; font-family: 'Roboto Mono', monospace; font-size: 0.75rem; letter-spacing: 0.1em; color: rgba(255,255,255,0.7); text-transform: uppercase; background: rgba(255,255,255,0.05); padding: 0.4rem 1rem; border-radius: 50px; border: 1px solid rgba(255,255,255,0.1); width: max-content; }
.split-dot { width: 6px; height: 6px; border-radius: 50%; background: #1290CF; }
.split-title { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: clamp(2.5rem, 4vw, 4rem); color: #fff; line-height: 1.1; margin: 0; letter-spacing: -0.02em; }
.split-subtitle { font-size: 1.1rem; color: rgba(255,255,255,0.7); line-height: 1.6; margin: 0; max-width: 90%; }

/* Right Column (Glassmorphism) */
.sellos-split-right { width: 100%; }
.glass-container { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 24px; padding: 1.5rem 2rem; box-shadow: 0 30px 60px rgba(0,0,0,0.4); }
.glass-header { font-family: 'Roboto Mono', monospace; font-size: 0.65rem; letter-spacing: 0.15em; color: rgba(255,255,255,0.5); text-transform: uppercase; margin-bottom: 2rem; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 1rem; }
.glass-list { display: flex; flex-direction: column; gap: 1rem; }
.glass-card { display: flex; align-items: center; gap: 1.5rem; background: rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.05); padding: 1.5rem; border-radius: 16px; transition: all 0.3s ease; text-decoration: none; }
.glass-card:hover { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.15); transform: translateX(5px); }
.glass-icon-wrap { width: 48px; height: 48px; border-radius: 50%; background: rgba(18, 144, 207, 0.1); border: 1px solid rgba(18, 144, 207, 0.3); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #1290CF; }
.glass-icon-wrap svg { width: 20px; height: 20px; }
.glass-text { display: flex; flex-direction: column; gap: 0.25rem; }
.glass-label { font-family: 'Roboto Mono', monospace; font-size: 0.65rem; color: rgba(255,255,255,0.5); letter-spacing: 0.05em; text-transform: uppercase; }
.glass-name { font-size: 1.05rem; font-weight: 600; color: #fff; line-height: 1.3; }

/* Contact Row */
.glass-contact-wrap { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,0.05); text-align: center; }
.glass-contact-text { font-size: 0.85rem; color: rgba(255,255,255,0.6); margin-bottom: 0.5rem; }
.glass-contact-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.5rem; font-size: 0.9rem; color: rgba(255,255,255,0.6); }
.glass-contact-row a { color: #1290CF; text-decoration: none; font-weight: 600; transition: color 0.3s ease; }
.glass-contact-row a:hover { color: #fff; }
.contact-sep { color: rgba(255,255,255,0.2); }

@media(max-width: 900px) {
  .hidden-mobile { display: none !important; }
  .sellos-grid { grid-template-columns: 1fr; gap: 2rem; margin-bottom: 2rem; }
  
  /* Reset sticky styles for mobile */
  .sello-step { 
    opacity: 1 !important; 
    transform: none !important; 
    height: auto !important;
    min-height: auto !important;
    padding: 2.5rem 0 !important; /* Compact padding instead of 30vh */
    flex-direction: column !important;
    gap: 0.5rem !important;
    justify-content: flex-start !important;
  }
  
  .sello-step-num-large { 
    font-size: 4rem !important; 
    color: #e2e8f0 !important; 
    margin-bottom: 0 !important;
    margin-top: 0 !important;
  }
  
  .sello-step-content { 
    border-left: none !important; 
    padding-left: 0 !important; 
  }
  
  .sello-step-content h4, .sello-step-content h3 {
    font-size: 2rem !important;
    margin-bottom: 0.8rem !important;
  }
  
  .sello-step-content p {
    font-size: 1.05rem !important;
  }

  .sellos-downloads-split { grid-template-columns: 1fr; gap: 3rem; }
}
@media(max-width: 600px) {
  .sellos-inner { padding: 0 1.5rem; }
  .split-title { font-size: 2rem; }
}

/* ═══════════════════════════════════════════
   TESTIMONIOS (Masonry Vertical Marquee)
═══════════════════════════════════════════ */
.test-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    height: 500px;
    overflow: hidden;
    position: relative;
    -webkit-mask-image: linear-gradient(to bottom, transparent, black 10%, black 90%, transparent);
    mask-image: linear-gradient(to bottom, transparent, black 10%, black 90%, transparent);
}

@media (min-width: 768px) {
    .test-grid {
        grid-template-columns: 1fr 1fr;
        height: 600px;
    }
}

@media (min-width: 1024px) {
    .test-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
        height: 740px;
    }
    .hide-tablet { display: block; }
}

@media (max-width: 767px) {
    .hide-mobile { display: none; }
}
@media (max-width: 1023px) {
    .hide-tablet { display: none; }
}

.test-col {
    position: relative;
    height: 100%;
}

.test-track {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    animation: scrollVertical linear infinite;
}
@media (min-width: 1024px) {
    .test-track {
        gap: 2rem;
    }
}

.test-track:hover {
    animation-play-state: paused;
}

@keyframes scrollVertical {
    0% { transform: translateY(0); }
    100% { transform: translateY(-50%); }
}

.test-card {
    background: #ffffff;
    border: 1px solid rgba(0, 59, 114, 0.1);
    border-radius: 1.5rem;
    padding: 2.5rem;
    box-shadow: 0 10px 30px rgba(0, 59, 114, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}
.test-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 59, 114, 0.1);
}

.test-text {
    font-size: 1.05rem;
    color: #444;
    line-height: 1.6;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.test-author {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: auto;
}

.test-author img {
    border-radius: 50%;
}

  

  .logo-marquee-track {
      display: flex;
      width: max-content;
      gap: 0; /* Cero espacio entre las imágenes */
      padding: 0;
      animation: logoScroll 60s linear infinite; /* Animación continua y fluida */
    }
    
    .logo-marquee-track img {
      height: auto; max-height: 300px; padding: 0;
      width: auto;
      object-fit: contain;
    }
    
    @keyframes logoScroll {
      0% { transform: translateX(0); }
      /* Como el gap es 0, el desplazamiento exacto del 50% crea un bucle perfecto */
      100% { transform: translateX(-50%); } 
    }
    
    @media (max-width: 768px) {
      .logo-marquee-track img { height: auto; max-height: 150px; padding: 0; } /* Ajuste proporcional para celulares */
    }

    #sellos { background: #F2F4F7; padding: 6rem 0; }
.sellos-inner { max-width: 1400px; margin: 0 auto; padding: 0 3rem; }
.sellos-header { text-align: center; margin-bottom: 4rem; }
.sellos-header .section-label { justify-content: center; }
.sellos-header .section-label-line { background: #1C5691; }
.sellos-header .section-label-text { color: #1C5691; }
.sellos-title { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: clamp(1.8rem, 3.5vw, 2.8rem); color: #003B72; margin-top: .5rem; letter-spacing: -0.02em; }


/* ═══════════════════════════════════════════
   TESTIMONIOS (Masonry Vertical Marquee)
═══════════════════════════════════════════ */
.test-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    height: 500px;
    overflow: hidden;
    position: relative;
    -webkit-mask-image: linear-gradient(to bottom, transparent, black 10%, black 90%, transparent);
    mask-image: linear-gradient(to bottom, transparent, black 10%, black 90%, transparent);
}

@media (min-width: 768px) {
    .test-grid {
        grid-template-columns: 1fr 1fr;
        height: 600px;
    }
}

@media (min-width: 1024px) {
    .test-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 2rem;
        height: 740px;
    }
    .hide-tablet { display: block; }
}

@media (max-width: 767px) {
    .hide-mobile { display: none; }
}
@media (max-width: 1023px) {
    .hide-tablet { display: none; }
}

.test-col {
    position: relative;
    height: 100%;
}

.test-track {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    animation: scrollVertical linear infinite;
}
@media (min-width: 1024px) {
    .test-track {
        gap: 2rem;
    }
}

.test-track:hover {
    animation-play-state: paused;
}

@keyframes scrollVertical {
    0% { transform: translateY(0); }
    100% { transform: translateY(-50%); }
}

.test-card {
    background: #ffffff;
    border: 1px solid rgba(0, 59, 114, 0.1);
    border-radius: 1.5rem;
    padding: 2.5rem;
    box-shadow: 0 10px 30px rgba(0, 59, 114, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}
.test-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 59, 114, 0.1);
}

.test-text {
    font-size: 1.05rem;
    color: #444;
    line-height: 1.6;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.test-author {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: auto;
}

.test-author img {
    border-radius: 50%;
}

.test-name {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    color: #003B72;
    font-size: 0.95rem;
    line-height: 1.3;
}

/* ═══════════════════════════════════════════
   DROPDOWN MENU
═══════════════════════════════════════════ */
.nav-dropdown {
    position: relative;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: #ffffff;
    min-width: 280px;
    box-shadow: 0 10px 30px rgba(0, 59, 114, 0.1);
    border-radius: 4px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    list-style: none;
    padding: 0.5rem 0;
    margin: 0;
    z-index: 1000;
    border: 1px solid rgba(0, 59, 114, 0.05);
}

.nav-dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.dropdown-menu li {
    margin: 0;
}

.dropdown-menu li a {
    display: block;
    padding: 0.8rem 1.5rem;
    color: #003B72 !important;
    font-size: 0.8rem !important;
    font-weight: 500;
    text-transform: none;
    letter-spacing: normal;
    text-align: left;
    transition: background 0.2s ease, color 0.2s ease;
    border-bottom: 1px solid rgba(0, 59, 114, 0.05);
    white-space: normal !important;
}

.dropdown-menu li:last-child a {
    border-bottom: none;
}

.dropdown-menu li a:hover {
    background: #f8f9fa;
    color: #1290CF !important;
}




/* ═══════════════════════════════════════════
   DIFUSIÓN — Blog / Noticias
   archive-difusion.php  +  single-difusion.php
═══════════════════════════════════════════ */

/* ── Hero interior (compartido con otras subpáginas) ── */
.difusion-hero{
  position:relative;
  height:420px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#030d1a
}
.difusion-hero-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  filter:brightness(.32) saturate(1.2);
  transition:transform 8s ease
}
.difusion-hero:hover .difusion-hero-bg{transform:scale(1.03)}
.difusion-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(3,13,26,.9) 0%,rgba(3,13,26,.3) 60%,transparent 100%)
}
.difusion-hero-content{
  position:relative;
  z-index:2;
  max-width:1400px;
  width:100%;
  margin:0 auto;
  padding:3rem;
  padding-bottom:2.5rem
}
.difusion-hero-badge{
  display:inline-block;
  font-family:'Roboto Mono',monospace;
  font-size:.65rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#1290CF;
  border:1px solid rgba(18,144,207,.4);
  padding:.3rem .75rem;
  border-radius:2px;
  margin-bottom:1rem
}
.difusion-hero-title{
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  font-size:clamp(1.8rem,4vw,2.8rem);
  color:#fff;
  letter-spacing:-.02em;
  line-height:1.1;
  margin:0
}
.difusion-hero-meta{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-top:1rem;
  font-family:'Roboto Mono',monospace;
  font-size:.7rem;
  letter-spacing:.1em;
  color:rgba(255,255,255,.5)
}
.difusion-hero-meta-dot{
  width:3px;
  height:3px;
  border-radius:50%;
  background:rgba(255,255,255,.3)
}

/* ── Sección de listado ── */
#difusion{
  background:#f8f9fb;
  padding:5rem 0 6rem
}
.difusion-inner{
  max-width:1400px;
  margin:0 auto;
  padding:0 3rem
}

/* Header del listado */
.difusion-list-header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:3rem;
  flex-wrap:wrap
}
.difusion-list-title-wrap .section-label{margin-bottom:.75rem}
.difusion-list-title{
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  font-size:clamp(1.8rem,3.5vw,2.8rem);
  color:#003B72;
  letter-spacing:-.02em;
  margin:0
}

/* Pestañas filtro */
.difusion-tabs{
  display:flex;
  gap:.5rem
}
.difusion-tab{
  font-family:'Roboto Mono',monospace;
  font-size:.7rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  padding:.45rem 1rem;
  border-radius:2px;
  border:1px solid rgba(0,59,114,.2);
  background:transparent;
  color:rgba(0,59,114,.6);
  cursor:pointer;
  transition:all .25s ease
}
.difusion-tab:hover{border-color:#1290CF;color:#1290CF}
.difusion-tab.active{
  background:#003B72;
  border-color:#003B72;
  color:#fff
}

/* Grid de tarjetas */
.difusion-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.75rem
}

/* Tarjeta individual */
.difusion-card{
  background:#fff;
  border-radius:6px;
  overflow:hidden;
  box-shadow:0 2px 16px rgba(0,59,114,.07);
  transition:transform .35s ease, box-shadow .35s ease;
  display:flex;
  flex-direction:column;
  text-decoration:none
}
.difusion-card:hover{
  transform:translateY(-6px);
  box-shadow:0 12px 40px rgba(0,59,114,.14)
}
.difusion-card-img-wrap{
  position:relative;
  width:100%;
  padding-top:56.25%; /* 16:9 */
  overflow:hidden
}
.difusion-card-img-wrap img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease
}
.difusion-card:hover .difusion-card-img-wrap img{transform:scale(1.05)}
.difusion-card-badge{
  position:absolute;
  top:12px;
  left:12px;
  font-family:'Roboto Mono',monospace;
  font-size:.6rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  background:#1290CF;
  color:#fff;
  padding:.25rem .6rem;
  border-radius:2px
}
.difusion-card-img-placeholder{
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,#e8edf5,#d0dcea)
}
.difusion-card-body{
  padding:1.5rem;
  display:flex;
  flex-direction:column;
  gap:.6rem;
  flex:1
}
.difusion-card-meta{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-family:'Roboto Mono',monospace;
  font-size:.65rem;
  letter-spacing:.08em;
  color:rgba(0,59,114,.45)
}
.difusion-card-meta-dot{
  width:3px;
  height:3px;
  border-radius:50%;
  background:rgba(0,59,114,.25)
}
.difusion-card-title{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:1.05rem;
  color:#003B72;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden
}
.difusion-card-excerpt{
  font-size:.875rem;
  line-height:1.7;
  color:rgba(0,59,114,.6);
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  flex:1
}
.difusion-card-link{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  font-family:'Roboto Mono',monospace;
  font-size:.65rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#1290CF;
  margin-top:auto;
  padding-top:.75rem;
  transition:gap .2s ease
}
.difusion-card:hover .difusion-card-link{gap:.7rem}

/* Sin resultados */
.difusion-empty{
  grid-column:1/-1;
  text-align:center;
  padding:4rem 0;
  color:rgba(0,59,114,.4);
  font-family:'Roboto Mono',monospace;
  font-size:.8rem;
  letter-spacing:.15em
}

/* == Articulo individual: layout editorial == */
.single-difusion-section{background:#f8f9fb;width:100%;padding:3rem 0 5rem}
.single-layout{max-width:1200px;margin:0 auto;padding:0 3rem;display:grid;grid-template-columns:1fr 320px;gap:3rem;align-items:start}
.single-main{background:#fff;border-radius:6px;padding:3rem 3rem 3.5rem;box-shadow:0 2px 20px rgba(0,59,114,.06)}
.single-breadcrumb{display:flex;align-items:center;gap:.5rem;font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(0,59,114,.45);margin-bottom:2.5rem}
.single-breadcrumb a{color:rgba(0,59,114,.45);text-decoration:none;transition:color .2s}
.single-breadcrumb a:hover{color:#1290CF}
.single-breadcrumb-sep{color:rgba(0,59,114,.25)}
.single-difusion-content{font-size:1rem;line-height:1.9;color:#374151}
.single-difusion-content h2{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.4rem;color:#003B72;margin:2.5rem 0 .9rem;padding-left:1rem;border-left:3px solid #1290CF;line-height:1.3}
.single-difusion-content h3{font-family:'Montserrat',sans-serif;font-weight:700;font-size:1.1rem;color:#003B72;margin:2rem 0 .5rem}
.single-difusion-content p{margin-bottom:1.3rem}
.single-difusion-content img{width:100%;border-radius:4px;margin:1.75rem 0;box-shadow:0 4px 16px rgba(0,59,114,.1)}
.single-difusion-content a{color:#1290CF;text-decoration:underline;text-decoration-color:rgba(18,144,207,.3)}
.single-difusion-content a:hover{text-decoration-color:#1290CF}
.single-difusion-content ul{padding-left:0;margin-bottom:1.3rem;list-style:none}
.single-difusion-content ul li{padding:.3rem 0 .3rem 1.4rem;position:relative;margin-bottom:.3rem}
.single-difusion-content ul li::before{content:'';position:absolute;left:0;top:.7rem;width:7px;height:7px;border-radius:50%;background:#1290CF}
.single-difusion-content ol{padding-left:1.5rem;margin-bottom:1.3rem}
.single-difusion-content ol li{margin-bottom:.4rem;padding-left:.3rem}
.single-difusion-content ol li::marker{color:#1290CF;font-weight:700;font-family:'Roboto Mono',monospace}
.single-difusion-content blockquote,.single-difusion-content .callout-gw{background:linear-gradient(135deg,rgba(18,144,207,.06),rgba(0,59,114,.04));border-left:4px solid #1290CF;border-radius:0 6px 6px 0;padding:1.25rem 1.5rem;margin:1.75rem 0;font-style:normal}
.single-difusion-content blockquote p,.single-difusion-content .callout-gw p{margin:0;color:#003B72;font-weight:500}
.single-difusion-content hr{border:none;border-top:1px solid rgba(0,59,114,.12);margin:2.5rem 0}
.single-cta{margin-top:3rem;padding-top:2.5rem;border-top:1px solid rgba(0,59,114,.1)}
.single-cta-inner{background:linear-gradient(135deg,#003B72 0%,#0d2a52 60%,#1290CF 100%);border-radius:8px;padding:2.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.single-cta-label{font-family:'Roboto Mono',monospace;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:.5rem}
.single-cta-title{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.3rem;color:#fff;margin:0 0 .5rem}
.single-cta-body{font-size:.875rem;line-height:1.6;color:rgba(255,255,255,.7);margin:0}
.single-cta-btn{display:inline-flex;align-items:center;gap:.5rem;background:#fff;color:#003B72;font-family:'Montserrat',sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.05em;padding:.85rem 1.75rem;border-radius:3px;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:background .25s,gap .2s}
.single-cta-btn:hover{background:#e8f0fb;gap:.8rem}
.single-sidebar{position:sticky;top:100px;display:flex;flex-direction:column;gap:1.5rem}
.sidebar-meta-card{background:#fff;border-radius:6px;padding:1.75rem;box-shadow:0 2px 20px rgba(0,59,114,.06)}
.sidebar-meta-badge{display:inline-block;font-family:'Roboto Mono',monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;background:#1290CF;color:#fff;padding:.25rem .65rem;border-radius:2px;margin-bottom:1.25rem}
.sidebar-meta-badge.blog{background:#1290CF}
.sidebar-meta-badge.noticias{background:#003B72}
.sidebar-meta-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}
.sidebar-meta-row{display:flex;flex-direction:column;gap:.2rem}
.sidebar-meta-row dt{display:flex;align-items:center;gap:.35rem;font-family:'Roboto Mono',monospace;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(0,59,114,.4)}
.sidebar-meta-row dd{font-size:.85rem;color:#003B72;font-weight:500;margin:0;padding-left:1.1rem}
.sidebar-back-link{display:inline-flex;align-items:center;gap:.4rem;font-family:'Roboto Mono',monospace;font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:#1290CF;text-decoration:none;border-top:1px solid rgba(0,59,114,.08);padding-top:1.25rem;width:100%;transition:gap .2s}
.sidebar-back-link:hover{gap:.65rem}
.sidebar-related{background:#fff;border-radius:6px;padding:1.5rem;box-shadow:0 2px 20px rgba(0,59,114,.06)}
.sidebar-related-title{font-family:'Roboto Mono',monospace;font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(0,59,114,.4);margin-bottom:1.25rem}
.sidebar-related-item{display:flex;gap:.9rem;padding:.85rem 0;border-bottom:1px solid rgba(0,59,114,.07);text-decoration:none;transition:opacity .2s}
.sidebar-related-item:last-child{border-bottom:none;padding-bottom:0}
.sidebar-related-item:hover{opacity:.75}
.sidebar-related-thumb{width:64px;height:48px;border-radius:4px;overflow:hidden;flex-shrink:0}
.sidebar-related-thumb img{width:100%;height:100%;object-fit:cover}
.sidebar-related-info{display:flex;flex-direction:column;gap:.2rem}
.sidebar-related-name{font-family:'Montserrat',sans-serif;font-weight:600;font-size:.8rem;color:#003B72;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sidebar-related-date{font-size:.7rem;color:rgba(0,59,114,.4)}
.difusion-related{display:none}
@media(max-width:1024px){.difusion-grid{grid-template-columns:repeat(2,1fr)}.single-layout{grid-template-columns:1fr;gap:2rem}.single-sidebar{position:static}}
@media(max-width:768px){.difusion-inner,.difusion-hero-content{padding-left:1.5rem;padding-right:1.5rem}.single-layout{padding:0 1.5rem}.single-main{padding:2rem 1.5rem 2.5rem}.difusion-grid{grid-template-columns:1fr}.difusion-hero{height:320px}.difusion-list-header{flex-direction:column;align-items:flex-start}.difusion-tabs{flex-wrap:wrap}.single-cta-inner{flex-direction:column;align-items:flex-start}}
/* ========================================================
   LAYOUT EDITORIAL — single-difusion.php (estilo revista)
   ======================================================== */
.editorial-wrap{
  display:grid;
  grid-template-columns:260px 1fr;
  min-height:100vh;
  background:linear-gradient(to right,#0a1628 260px,#f8f9fb 260px);
  padding-top: 70px;
}

/* ── Sidebar ── */
.editorial-sidebar{
  background:#0a1628;
  padding:0.85rem 1.5rem 2.5rem;
  position:sticky;
  top:70px;
  height:calc(100vh - 70px);
  overflow-y:auto;
  display:flex;
  flex-direction:column;
  gap:0;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.1) transparent
}
.editorial-sidebar-logo{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-family:'Roboto Mono',monospace;
  font-size:.65rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.5);
  text-decoration:none;
  margin-bottom:2.5rem;
  transition:color .2s
}
.editorial-sidebar-logo:hover{color:#1290CF}
.editorial-sidebar-section{
  font-family:'Roboto Mono',monospace;
  font-size:.6rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#1290CF;
  margin-bottom:1.25rem;
  padding-bottom:.75rem;
  border-bottom:1px solid rgba(18,144,207,.25)
}
.editorial-sidebar-item{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  padding:.85rem 0;
  border-bottom:1px solid rgba(255,255,255,.06);
  text-decoration:none;
  transition:opacity .2s
}
.editorial-sidebar-item:hover{opacity:.75}
.editorial-sidebar-item.active .editorial-sidebar-title{color:#1290CF}
.editorial-sidebar-date{
  font-family:'Roboto Mono',monospace;
  font-size:.58rem;
  letter-spacing:.08em;
  color:rgba(255,255,255,.35)
}
.editorial-sidebar-title{
  font-family:'Montserrat',sans-serif;
  font-weight:600;
  font-size:.78rem;
  color:rgba(255,255,255,.85);
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  transition:color .2s
}

/* ── Contenido principal ── */
.editorial-main{
  max-width:800px;
  margin:0 auto;
  padding:4rem 3.5rem 6rem;
  width:100%
}
.editorial-meta-top{
  display:flex;
  align-items:center;
  gap:.6rem;
  font-family:'Roboto Mono',monospace;
  font-size:.65rem;
  letter-spacing:.1em;
  color:rgba(0,59,114,.45);
  margin-bottom:1.25rem;
  justify-content:center
}
.editorial-tipo{
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.15em
}
.editorial-tipo.blog{color:#1290CF}
.editorial-tipo.noticias{color:#003B72}
.editorial-meta-sep{color:rgba(0,59,114,.2)}
.editorial-date,.editorial-author{color:rgba(0,59,114,.45)}
.editorial-title{
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  font-size:clamp(1.8rem,4vw,2.8rem);
  color:#003B72;
  letter-spacing:-.03em;
  line-height:1.15;
  text-align:center;
  margin:0 0 2.5rem
}
.editorial-featured-img{
  width:100%;
  margin-bottom:2.5rem;
  border-radius:4px;
  overflow:hidden
}
.editorial-featured-img img{
  width:100%;
  height:auto;
  display:block
}

/* Pie del artículo */
.editorial-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  padding:1.5rem 0;
  border-top:1px solid rgba(0,59,114,.1);
  margin-top:2.5rem
}
.editorial-tags{
  display:flex;
  align-items:center;
  gap:.5rem
}
.editorial-tags-label{
  font-family:'Roboto Mono',monospace;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(0,59,114,.4)
}
.editorial-tag{
  font-family:'Roboto Mono',monospace;
  font-size:.62rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#1290CF;
  text-decoration:none;
  border:1px solid rgba(18,144,207,.35);
  padding:.2rem .6rem;
  border-radius:2px;
  transition:background .2s, color .2s
}
.editorial-tag:hover{background:#1290CF;color:#fff}
.editorial-byline{
  font-family:'Roboto Mono',monospace;
  font-size:.65rem;
  letter-spacing:.1em;
  color:rgba(0,59,114,.4);
  font-style:italic
}

/* Responsive */
@media(max-width:1024px){
  .editorial-wrap{grid-template-columns:220px 1fr}
  .editorial-main{padding:3rem 2.5rem 5rem}
}
@media(max-width:768px){
  .editorial-wrap{
    grid-template-columns:1fr;
    background:#f8f9fb;
  }
  .editorial-sidebar{
    position:static;
    height:auto;
    padding:1.5rem;
    flex-direction:column;
    order: 2;
  }
  .editorial-main{
    padding:2.5rem 1.5rem 4rem;
    order: 1;
  }
  .editorial-title{font-size:1.2rem}
  .single-cta-inner{flex-direction:column;align-items:flex-start}
}

/* ========================================================
   COMPONENTES MODULARES (Subpáginas)
   ======================================================== */

/* ── Hero Interior ── */
.hero-interior{
  position:relative;
  min-height:45vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background-size:cover;
  background-position:center;
  background-color:#030d1a;
  padding:8rem 2rem 4rem;
  overflow:hidden;
}
.hero-interior-overlay{
  position:absolute;
  inset:0;
  background: rgba(0, 31, 63, 0.85);
  z-index:1;
}
.hero-interior-content{
  position:relative;
  z-index:2;
  max-width:1400px;
  width:100%;
  margin:0 auto;
  padding:0 3rem;
}
.hero-interior-kicker{
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  margin-bottom:2rem;
}
.hero-interior-kicker-line{
  width:40px;
  height:1px;
  background:#1290CF;
}
.hero-interior-kicker-text{
  font-family:'Roboto Mono',monospace;
  font-size:.75rem;
  letter-spacing:.3em;
  color:#1290CF;
  text-transform:uppercase;
}
.hero-interior-title{
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  font-size:clamp(1.8rem,4vw,2.8rem);
  line-height:1.1;
  color:#fff;
  letter-spacing:-.02em;
  max-width:900px;
  margin-bottom:1.5rem;
}
.hero-interior-subtitle{
  font-size: 1.15rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.75);
  max-width: 800px;
  margin-bottom: 2.5rem;
}
.hero-interior-buttons{
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.cta-interior {
  position: relative;
  padding: 8rem 2rem;
  background: linear-gradient(135deg, #003B72, #030d1a);
  background-size: cover;
  background-position: center;
  text-align: center;
  overflow: hidden;
}
.cta-interior-overlay {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(0, 31, 63, 0.85);
  z-index: 1;
}
.cta-interior-inner {
  position: relative;
  z-index: 2;
  max-width: 1000px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;
}
.cta-interior-content {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cta-interior-kicker-line{
  width: 40px;
  height: 1px;
  background: #1290CF;
}
.cta-interior-kicker-text{
  font-family: 'Roboto Mono', monospace;
  font-size: .75rem;
  letter-spacing: .3em;
  color: #1290CF;
  text-transform: uppercase;
}
.cta-interior-title{
  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-size: clamp(2.2rem, 5vw, 4rem);
  color: #fff;
  letter-spacing: -.02em;
  line-height: 1.1;
  margin: 0 0 1.5rem;
}
.cta-interior-text{
  font-size: 1.1rem;
  line-height: 1.7;
  color: rgba(255,255,255,.75);
  max-width: 700px;
  margin: 0 auto;
}
.cta-interior-action{
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

@media(max-width:768px){
  .cta-interior{
    padding: 6rem 1.5rem;
  }
  .cta-interior-kicker-line{
    width:20px;
  }
  .hero-interior{
    min-height:45vh;
    padding:8rem 1.5rem 4rem;
  }
}

/* Permite que la cuadricula crezca con el scroll natural */
.sellos-grid {
    height: auto !important; 
    overflow: visible !important;
}

/* Quitamos cualquier movimiento forzado del contenedor izquierdo */
.sellos-steps {
    transform: none !important;
}

/* Damos a cada paso un alto natural, pero con espacio para respirar al scrollear (Solo Escritorio) */
@media(min-width: 901px) {
    .sello-step {
        height: auto !important;
        min-height: 40vh;
        padding: 30vh 0 !important;
    }
}

/* La magia: esto hace que la columna derecha te persiga */
.sellos-visual-sticky {
    position: sticky !important;
    top: 0;
    height: 100vh !important;
}


/* --- REDISE�O CONTACTO --- */
.contact-form-card {
    background: #020b14; 
    border-radius: 16px;
    padding: 3.5rem;
    box-shadow: 0 30px 60px rgba(0,0,0,0.4);
    border: 1px solid rgba(255,255,255,0.03);
}
@media (max-width: 768px) {
    .contact-form-card { padding: 2rem; }
}
.contact-form-card .form-group {
    position: relative;
    margin-bottom: 2rem;
}
.contact-form-card .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}
@media (max-width: 768px) {
    .contact-form-card .form-row { grid-template-columns: 1fr; gap: 0; }
}
.contact-form-card .form-num {
    font-family: 'Montserrat', sans-serif;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 0.8rem;
    text-transform: uppercase;
    font-weight: 600;
    position: static; /* override old style */
}
.contact-form-card .form-field {
    width: 100%;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 8px;
    padding: 1.2rem;
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    transition: all 0.3s ease;
    appearance: none;
    outline: none;
}
.contact-form-card .form-field:focus {
    background: rgba(255,255,255,0.05);
    border-color: #1290CF;
    box-shadow: 0 0 0 4px rgba(18,144,207,0.15);
}
.contact-form-card .form-field::placeholder {
    color: rgba(255,255,255,0.3);
}
.contact-form-card select.form-field option {
    background: #020b14;
    color: #fff;
}
.contact-channels-card {
    background: #020b14;
    border-radius: 16px;
    padding: 3.5rem;
    box-shadow: 0 30px 60px rgba(0,0,0,0.4);
    border: 1px solid rgba(255,255,255,0.03);
    height: 100%;
}
@media (max-width: 768px) {
    .contact-channels-card { padding: 2rem; }
}
.form-submit-btn {
    padding: 1rem 2rem;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 30px;
    background: #1290CF;
    color: #fff;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
}
.form-submit-btn:hover {
    background: #1A9EE0;
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(18,144,207,0.3);
}

/* Ocultar guiones de los kickers a nivel global */
.hero-kicker-line,
.section-label-line,
.hero-interior-kicker-line,
.cta-interior-kicker-line {
  display: none !important;
}

/* Optimizacion de hardware para el scroll suave de certificados */
.certs-track {
  will-change: transform;
  transform: translateZ(0);
}



.faq-icon{color:#1C5691;transition:transform .3s cubic-bezier(0.87, 0, 0.13, 1);flex-shrink:0;margin-left:1rem}
.faq-trigger[aria-expanded="true"] .faq-icon{transform:rotate(180deg)}
.faq-content{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(0.87, 0, 0.13, 1)}
.faq-content-inner{padding:0 1.5rem 1.5rem 1.5rem;font-family:'Inter',sans-serif;font-size:.9rem;color:#666;line-height:1.6}

/* --- SWIPE HINT MOBILE --- */
.swipe-hint-mobile { display: none; }
@media(max-width: 900px) {
  .swipe-hint-mobile {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: rgba(255,255,255,0.6);
    font-size: 0.8rem;
    font-family: 'Montserrat', sans-serif;
    margin-bottom: 1.5rem;
    animation: swipePulse 2s infinite ease-in-out;
  }
  @keyframes swipePulse {
    0%, 100% { transform: translateX(0); opacity: 0.5; }
    50% { transform: translateX(5px); opacity: 1; }
  }
}

/* ═══════════════════════════════════════════
   OPTIMIZACIÓN PARA PANTALLAS SÚPER ESTRECHAS
   (Galaxy Z Flip, iPhone SE, etc.)
═══════════════════════════════════════════ */
@media(max-width: 400px) {
  /* Recuperamos espacio horizontal reduciendo el padding a 1rem (16px) */
  .hero-content, .hero-interior-content, .section-inner, .footer-inner, .consulta-inner, 
  .difusion-inner, .single-layout, .single-main, .editorial-main, .editorial-sidebar, 
  .cta-interior, .trust-inner, .why-inner, .cert-inner, .faq-content-inner {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  nav { width: calc(100% - 1.5rem); padding-left: 1rem; padding-right: 1rem; }
  
  /* Hacemos que los textos gigantes cedan más espacio */
  .splash-gw { font-size: 2.3rem !important; }
  .splash-certified { font-size: 1.5rem !important; }
  .hero-title, .difusion-hero-title, .hero-interior-title { font-size: clamp(1.8rem, 8vw, 2.5rem) !important; }
  .hero-subtitle, .hero-interior-subtitle { font-size: 1rem !important; }
  .cert-btn { padding: 1rem 1.5rem; font-size: .8rem; }
}

/* --- BOTÓN FLOTANTE WHATSAPP --- */
.floating-wa-btn {
  position: fixed;
  bottom: 100px;
  right: 2rem;
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, #1C5691, #003B72);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(11, 59, 117, 0.4);
  z-index: 9999;
  transition: all 0.4s ease;
  border: 1.5px solid rgba(91, 184, 212, 0.5);
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
}
.floating-wa-btn.show {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.floating-wa-btn.show:hover {
  background: linear-gradient(135deg, #1290CF, #1C5691);
  transform: translateY(-5px) scale(1.05);
  box-shadow: 0 12px 32px rgba(18, 144, 207, 0.5);
  color: #fff;
}
@media (max-width: 768px) {
  .floating-wa-btn {
    bottom: 90px;
    right: 1.5rem;
    width: 50px;
    height: 50px;
  }
  .floating-wa-btn svg {
    width: 24px;
    height: 24px;
  }
}

/* --- TARJETA DE CONTACTO --- */
.contact-channels-card {
  flex: 1;
  background: #020b14;
  border-radius: 16px;
  padding: 3rem;
  border: 1px solid rgba(255,255,255,0.03);
  box-shadow: 0 30px 60px rgba(0,0,0,0.4);
}
@media(max-width: 900px) {
  .contact-channels-card {
    background: transparent;
    border-radius: 0;
    padding: 0;
    border: none;
    box-shadow: none;
  }
}

/* -----------------------------------------
   INTERACTIVE MAP NETWORK (Vanilla JS)
----------------------------------------- */
.map-node {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center;
}
.map-node:hover {
  transform: scale(1.3);
}

.map-pulse {
  opacity: 0.6;
  animation: pulseNode 2s infinite;
  transform-origin: center;
}

@keyframes pulseNode {
  0% { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(3.5); opacity: 0; }
}

.map-connection-line {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: drawLine 4s infinite cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes drawLine {
  0%, 15% { stroke-dashoffset: 1; }
  45%, 85% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -1; }
}

.map-moving-dot {
  offset-distance: 0%;
  opacity: 0;
  animation: moveDot 4s infinite ease-in-out;

}

@keyframes moveDot {
  0%, 15% { offset-distance: 0%; opacity: 0; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  45%, 100% { offset-distance: 100%; opacity: 0; }
}

.map-pill-label {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.85);
  color: #fff;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 500;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  font-family: 'Montserrat', sans-serif;
  pointer-events: none;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.3s ease;
}

.map-flag {
  font-size: 1.1em;
  line-height: 1;
}

@media (max-width: 768px) {
  .map-label-text {
    display: none;
  }
  
  .map-pill-label {
    padding: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    justify-content: center;
    gap: 0;
    border-color: rgba(255,255,255,0.25);
  }
  
  .map-flag {
    font-size: 1.25em;
  }
}

/* --- SECCION FAQS --- */
.faqs-section{background:#F2F4F7;padding:6rem 0;border-top:1px solid rgba(11,59,117,.1)}
.faqs-inner{max-width:800px;margin:0 auto;padding:0 2rem}
.faqs-header{margin-bottom:3rem;display:flex;flex-direction:column;align-items:center;text-align:center}
.faqs-header .section-label{justify-content:center}
.faqs-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,4vw,2.5rem);color:#003B72;letter-spacing:-.02em;margin-top:.5rem;margin-bottom:1rem}
.faqs-sub{font-size:1.05rem;color:#666;line-height:1.7}

.faqs-accordion{background:#fff;border-radius:8px;border:1px solid rgba(11,59,117,.1)}
.faq-item{border-bottom:1px solid rgba(11,59,117,.1)}
.faq-item:last-child{border-bottom:none}
.faq-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;background:transparent;border:none;cursor:pointer;text-align:left;font-family:'Inter',sans-serif;font-size:.95rem;font-weight:500;color:#333;transition:all .2s ease}
.faq-trigger:hover{text-decoration:underline}
}

/* ═══════════════════════════════════════════
   OPTIMIZACIÓN PARA PANTALLAS SÚPER ESTRECHAS
   (Galaxy Z Flip, iPhone SE, etc.)
═══════════════════════════════════════════ */
@media(max-width: 400px) {
  /* Recuperamos espacio horizontal reduciendo el padding a 1rem (16px) */
  .hero-content, .hero-interior-content, .section-inner, .footer-inner, .consulta-inner, 
  .difusion-inner, .single-layout, .single-main, .editorial-main, .editorial-sidebar, 
  .cta-interior, .trust-inner, .why-inner, .cert-inner, .faq-content-inner {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  nav { width: calc(100% - 1.5rem); padding-left: 1rem; padding-right: 1rem; }
  
  /* Hacemos que los textos gigantes cedan más espacio */
  .splash-gw { font-size: 2.3rem !important; }
  .splash-certified { font-size: 1.5rem !important; }
  .hero-title, .difusion-hero-title, .hero-interior-title { font-size: clamp(1.8rem, 8vw, 2.5rem) !important; }
  .hero-subtitle, .hero-interior-subtitle { font-size: 1rem !important; }
  .cert-btn { padding: 1rem 1.5rem; font-size: .8rem; }
}

/* --- BOTÓN FLOTANTE WHATSAPP --- */
.floating-wa-btn {
  position: fixed;
  bottom: 100px;
  right: 2rem;
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, #1C5691, #003B72);
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(11, 59, 117, 0.4);
  z-index: 9999;
  transition: all 0.4s ease;
  border: 1.5px solid rgba(91, 184, 212, 0.5);
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
}
.floating-wa-btn.show {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.floating-wa-btn.show:hover {
  background: linear-gradient(135deg, #1290CF, #1C5691);
  transform: translateY(-5px) scale(1.05);
  box-shadow: 0 12px 32px rgba(18, 144, 207, 0.5);
  color: #fff;
}
@media (max-width: 768px) {
  .floating-wa-btn {
    bottom: 90px;
    right: 1.5rem;
    width: 50px;
    height: 50px;
  }
  .floating-wa-btn svg {
    width: 24px;
    height: 24px;
  }
}

/* --- TARJETA DE CONTACTO --- */
.contact-channels-card {
  flex: 1;
  background: #020b14;
  border-radius: 16px;
  padding: 3rem;
  border: 1px solid rgba(255,255,255,0.03);
  box-shadow: 0 30px 60px rgba(0,0,0,0.4);
}
@media(max-width: 900px) {
  .contact-channels-card {
    background: transparent;
    border-radius: 0;
    padding: 0;
    border: none;
    box-shadow: none;
  }
}

/* -----------------------------------------
   INTERACTIVE MAP NETWORK (Vanilla JS)
----------------------------------------- */
.map-node {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center;
}
.map-node:hover {
  transform: scale(1.3);
}

.map-pulse {
  opacity: 0.6;
  animation: pulseNode 2s infinite;
  transform-origin: center;
}

@keyframes pulseNode {
  0% { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(3.5); opacity: 0; }
}

.map-connection-line {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: drawLine 4s infinite cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes drawLine {
  0%, 15% { stroke-dashoffset: 1; }
  45%, 85% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -1; }
}

.map-moving-dot {
  offset-distance: 0%;
  opacity: 0;
  animation: moveDot 4s infinite ease-in-out;

}

@keyframes moveDot {
  0%, 15% { offset-distance: 0%; opacity: 0; }
  20% { opacity: 1; }
  40% { opacity: 1; }
  45%, 100% { offset-distance: 100%; opacity: 0; }
}

.map-pill-label {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.85);
  color: #fff;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 500;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  font-family: 'Montserrat', sans-serif;
  pointer-events: none;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.3s ease;
}

.map-flag {
  font-size: 1.1em;
  line-height: 1;
}

@media (max-width: 768px) {
  .map-label-text {
    display: none;
  }
  
  .map-pill-label {
    padding: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    justify-content: center;
    gap: 0;
    border-color: rgba(255,255,255,0.25);
  }
  
  .map-flag {
    font-size: 1.25em;
  }
}

/* --- SECCION FAQS --- */
.faqs-section{background:#F2F4F7;padding:6rem 0;border-top:1px solid rgba(11,59,117,.1)}
.faqs-inner{max-width:800px;margin:0 auto;padding:0 2rem}
.faqs-header{margin-bottom:3rem;display:flex;flex-direction:column;align-items:center;text-align:center}
.faqs-header .section-label{justify-content:center}
.faqs-title{font-family:'Montserrat',sans-serif;font-weight:900;font-size:clamp(1.8rem,4vw,2.5rem);color:#003B72;letter-spacing:-.02em;margin-top:.5rem;margin-bottom:1rem}
.faqs-sub{font-size:1.05rem;color:#666;line-height:1.7}

.faqs-accordion{background:#fff;border-radius:8px;border:1px solid rgba(11,59,117,.1)}
.faq-item{border-bottom:1px solid rgba(11,59,117,.1)}
.faq-item:last-child{border-bottom:none}
.faq-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:1.2rem 1.5rem;background:transparent;border:none;cursor:pointer;text-align:left;font-family:'Inter',sans-serif;font-size:.95rem;font-weight:500;color:#333;transition:all .2s ease}
.faq-trigger:hover{text-decoration:underline}
.faq-icon{color:#1C5691;transition:transform .3s cubic-bezier(0.87, 0, 0.13, 1);flex-shrink:0;margin-left:1rem}
.faq-trigger[aria-expanded="true"] .faq-icon{transform:rotate(180deg)}
.faq-content{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(0.87, 0, 0.13, 1)}
.faq-content-inner{padding:0 1.5rem 1.5rem 1.5rem;font-family:'Inter',sans-serif;font-size:.9rem;color:#666;line-height:1.6}

/* Ocultar cursor personalizado en dispositivos moviles/tactiles */
@media (max-width: 900px) {
  #cursor-dot, #cursor-ring { display: none !important; }
}

/* Optimización de hardware para evitar parpadeos (flickering) en Safari/iOS al abrir FAQs */
.map-container, #interactive-map-svg {
  will-change: transform;
  transform: translateZ(0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}













/* ==========================================================================
   404 ERROR PAGE
   ========================================================================== */
.error-404-section {
  background: #030d1a;
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8rem 1.5rem;
  position: relative;
  overflow: hidden;
}

.error-404-inner {
  max-width: 800px;
  width: 100%;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 2;
}

.error-404-graphic {
  position: relative;
  display: inline-block;
  margin-bottom: 2rem;
}

.error-404-title {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(8rem, 20vw, 15rem);
  font-weight: 900;
  line-height: 1;
  margin: 0;
  color: #fff;
  letter-spacing: -0.02em;
  background: linear-gradient(to bottom, #ffffff 30%, rgba(255,255,255,0) 85%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 20px 50px rgba(0,0,0,0.5);
}

.error-404-fade {
  position: absolute;
  bottom: -5%;
  left: -10%;
  width: 120%;
  height: 50%;
  background: linear-gradient(to top, #030d1a 20%, transparent 100%);
  pointer-events: none;
}

.error-404-subtitle {
  font-family: 'Montserrat', sans-serif;
  color: #fff;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  font-weight: 700;
  margin-bottom: 1rem;
}

.error-404-text {
  color: rgba(255,255,255,0.7);
  font-size: 1.1rem;
  line-height: 1.6;
  margin: 0 auto 3rem;
  max-width: 600px;
}

.error-404-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.btn-404-primary,
.btn-404-secondary {
  display: inline-flex;
  align-items: center;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.8rem 2rem;
  border-radius: 4px;
  text-decoration: none;
  transition: all 0.3s ease;
}

.btn-404-primary {
  background: #fff;
  color: #020b14;
  border: 1px solid #fff;
}
.btn-404-primary:hover {
  background: #e6e6e6;
  border-color: #e6e6e6;
  transform: translateY(-2px);
}

.btn-404-secondary {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.3);
}
.btn-404-secondary:hover {
  border-color: #fff;
  background: rgba(255,255,255,0.05);
  transform: translateY(-2px);
}

.btn-404-primary svg,
.btn-404-secondary svg {
  margin-right: 8px;
}

@media(max-width: 768px) {
  .error-404-actions {
    flex-direction: column;
    width: 100%;
  }
  .btn-404-primary,
  .btn-404-secondary {
    width: 100%;
    justify-content: center;
  }
}



/* Fix Chrome Autofill */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active, .form-field:-webkit-autofill { -webkit-background-clip: text; -webkit-text-fill-color: #ffffff !important; transition: background-color 5000s ease-in-out 0s, color 5000s ease-in-out 0s; }


/* FIX STICKY HOVER BUG */
.nav-dropdown.force-hide .dropdown-menu {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
