/* ============ TOKENS ============ */
:root{
  --ink:#0B0C0E;
  --ink-soft:#131417;
  --charcoal:#1B1D21;
  --charcoal-2:#232529;
  --steel:#4B4F58;
  --steel-light:#9195A0;
  --fog:#ECEBE7;
  --fog-dark:#DFDDD7;
  --white:#FFFFFF;
  --orange:#FF5A1F;
  --orange-dark:#C7430F;
  --volt:#FFC93C;
  --line-on-dark:rgba(255,255,255,0.12);
  --line-on-light:rgba(11,12,14,0.12);
  --font-display:'Oswald',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'JetBrains Mono',monospace;
  --container:1240px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important;animation-iteration-count:1 !important;transition-duration:0.001ms !important;}
}
body{
  font-family:var(--font-body);
  background:var(--fog);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.menu-open{
  overflow:hidden;
}

[id]{scroll-margin-top:90px;}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
input,textarea,select{font-family:inherit;font-size:1rem;}
.wrap{max-width:var(--container);margin:0 auto;padding:0 28px;}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;}

/* ============ TYPO UTILITIES ============ */
.eyebrow{
  font-family:var(--font-mono);
  font-size:0.72rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  font-weight:500;
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--orange);display:inline-block;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  text-transform:uppercase;
  line-height:1.05;
  letter-spacing:0.005em;
  font-weight:600;
}
h2{font-size:clamp(2rem,4.2vw,3.1rem);}
h3{font-size:1.35rem;}
.lede{font-size:1.08rem;color:var(--steel);max-width:52ch;}
.on-dark .lede{color:var(--steel-light);}

/* ============ HAZARD STRIPE (signature motif) ============ */
.hazard{
  height:6px;
  width:64px;
  background-image:repeating-linear-gradient(135deg,var(--orange) 0 10px,var(--ink) 10px 20px);
  border-radius:1px;
}
.hazard.wide{width:100%;height:5px;}

/* ============ RIVET / DATAPLATE CARD SYSTEM ============ */
.plate{
  position:relative;
  border:1px solid var(--line-on-light);
  background:var(--white);
}
.plate::before,.plate::after{
  content:"";
  position:absolute;
  width:6px;height:6px;
  border-radius:50%;
  background:var(--steel);
  opacity:0.35;
  top:10px;
}
.plate::before{left:10px;}
.plate::after{right:10px;}
.plate.dark{background:var(--charcoal);border-color:var(--line-on-dark);color:var(--white);}
.plate.dark::before,.plate.dark::after{background:var(--steel-light);}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:0.78rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-weight:500;
  padding:15px 26px;
  border:1px solid transparent;
  transition:transform 0.25s ease, background 0.25s ease, color 0.25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--orange);color:var(--ink);}
.btn-primary:hover{background:var(--volt);transform:translateY(-2px);}
.btn-outline{border-color:currentColor;}
.btn-outline:hover{background:var(--white);color:var(--ink);transform:translateY(-2px);}
.on-dark .btn-outline{border-color:rgba(255,255,255,0.4);}
.on-dark .btn-outline:hover{background:var(--white);color:var(--ink);}
.btn-outline.on-light{border-color:var(--ink);}
.btn-outline.on-light:hover{background:var(--ink);color:var(--white);}
.btn-dark{background:var(--ink);color:var(--white);}
.btn-dark:hover{background:var(--volt);color:var(--ink);transform:translateY(-2px);}
.btn-arrow{transition:transform .25s ease;}
.btn:hover .btn-arrow{transform:translateX(4px);}

/* ============ SECTION SPACING ============ */
section{padding:104px 0;position:relative;}
@media(max-width:720px){section{padding:72px 0;}}
.section-head{margin-bottom:56px;max-width:680px;}
.section-head h2{margin-top:16px;}
.on-dark{background:var(--ink);color:var(--white);}
.on-charcoal{background:var(--charcoal);color:var(--white);}

/* ============ FEATURE BAND 24/7 ============ */
.feature-band{background:var(--orange);color:var(--ink);padding:46px 0;}
.feature-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;}
.feature-band .band-24{
  flex-shrink:0;display:flex;align-items:center;gap:14px;
  background:var(--ink);color:var(--white);
  padding:18px 26px;border:1px solid rgba(11,12,14,0.25);
}
.feature-band .band-24 .num{font-family:var(--font-display);font-size:2.6rem;line-height:1;color:var(--volt);font-weight:700;}
.feature-band .band-24 .lbl{font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.14em;text-transform:uppercase;line-height:1.4;}
.feature-band .eyebrow{color:var(--ink);}
.feature-band .eyebrow::before{background:var(--ink);}
.feature-band h2{margin-top:14px;font-size:clamp(1.6rem,3.4vw,2.6rem);max-width:20ch;}
.feature-band h2 em{font-style:normal;background:var(--volt);padding:0 10px;color:var(--ink);}
@media(max-width:800px){.feature-band .wrap{flex-direction:column;align-items:flex-start;}}

/* ============ HEADER ============ */
header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:22px 0;
  transition:background .3s ease, padding .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
}
header.scrolled{
  background:var(--ink);
  padding:14px 0;
  border-color:rgba(254,254,252,0.12);
  box-shadow:0 6px 24px rgba(11,12,14,0.35);
}
body.menu-open header{background:var(--ink);}
header .wrap{display:flex;align-items:center;justify-content:space-between;}
/* El logo naranja y blanco solo se muestra arriba; al hacer scroll entra el original */
.logo{display:flex;flex-direction:column;color:var(--white);}
.logo img{height:60px;width:auto;display:block;}
.logo .logo-dark{display:none;}
header.scrolled .logo .logo-light{display:none;}
header.scrolled .logo .logo-dark{display:block;}
header.scrolled nav.main-nav a{color:var(--white);}
header.scrolled .hamburger span{background:var(--white);}
.logo .mark{font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:0.03em;}
.logo .mark span{color:var(--orange);}
.logo .sub{font-family:var(--font-mono);font-size:0.58rem;letter-spacing:0.18em;color:var(--steel-light);text-transform:uppercase;margin-top:6px;}
nav.main-nav{display:flex;align-items:center;gap:36px;}
nav.main-nav ul{display:flex;gap:32px;}
nav.main-nav a{
  font-family:var(--font-mono);font-size:0.76rem;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--white);position:relative;padding-bottom:4px;
}
nav.main-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--orange);transition:width .25s ease;}
nav.main-nav a:hover::after{width:100%;}
nav.main-nav a.active::after{width:100%;}
.hamburger{display:none;flex-direction:column;gap:5px;width:30px;z-index:1200;}
.hamburger span{height:2px;background:var(--white);width:100%;transition:transform .3s ease, opacity .3s ease;}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media(max-width:920px){
  .logo img{height:42px;}
  nav.main-nav ul{
    position:fixed;inset:0;
    background:var(--ink);
    flex-direction:column;justify-content:center;align-items:flex-start;
    padding:0 40px;gap:20px;
    transform:translateX(100%);
    transition:transform .4s ease;
  }
  nav.main-nav ul.open{transform:translateX(0);}
  nav.main-nav ul a{font-size:1.15rem;}
  nav.main-nav ul .mobile-cta{display:inline-flex;margin-top:14px;}
  /* el menu movil siempre se dibuja sobre fondo oscuro */
  .hamburger{display:flex;}
}

/* ============ HERO ============ */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  color:var(--white);
  background:
    linear-gradient(180deg, rgba(11,12,14,0.55) 0%, rgba(11,12,14,0.72) 55%, rgba(11,12,14,0.96) 100%),
    url('../img/hero/CENTRO\ DE\ CONTROL\ DE\ MOTORES.png') center/cover no-repeat;
  padding-top:140px;
}
.hero-inner{width:100%;padding-bottom:60px;}
.hero .eyebrow{color:var(--volt);}
.hero h1{
  font-size:clamp(2.4rem,6vw,4.6rem);
  margin-top:20px;
  max-width:16ch;
}
.hero h1 em{
  color:var(--orange);font-style:normal;
}
.hero .subtitle{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:clamp(1.1rem,2vw,1.5rem);
  color:var(--fog);
  margin-top:18px;
  letter-spacing:0.02em;
}
.hero p.desc{margin-top:18px;max-width:56ch;color:var(--steel-light);font-size:1.05rem;}
.hero .cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:36px;}
.stat-rail{
  margin-top:60px;
  border-top:1px solid var(--line-on-dark);
  padding-top:26px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}
.stat-rail .stat .num{font-family:var(--font-mono);font-size:1.8rem;color:var(--orange);font-weight:700;}
.stat-rail .stat .label{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--steel-light);margin-top:6px;}
@media(max-width:800px){.stat-rail{grid-template-columns:repeat(2,1fr);row-gap:28px;}}
.scroll-cue{
  position:absolute;bottom:24px;right:28px;
  writing-mode:vertical-rl;
  font-family:var(--font-mono);font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;
  color:var(--steel-light);
  display:flex;align-items:center;gap:10px;
}
.scroll-cue::after{content:"";width:1px;height:46px;background:var(--orange);animation:cue 2s ease-in-out infinite;}
@keyframes cue{0%,100%{transform:scaleY(0.4);}50%{transform:scaleY(1);}}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

/* ============ ADN SECTION ============ */
.adn{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.adn-photo{position:relative;}
.adn-photo img{width:100%;height:560px;object-fit:cover;filter:grayscale(15%) contrast(1.05);}
.adn-photo .frame{
  position:absolute;inset:18px;border:1px solid rgba(255,255,255,0.5);pointer-events:none;
}
.adn-photo .tag{
  position:absolute;bottom:24px;left:24px;
  background:var(--ink);color:var(--white);
  font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:10px 16px;
  display:flex;align-items:center;gap:10px;
}
.adn-photo .tag::before{content:"";width:8px;height:8px;background:var(--orange);border-radius:50%;}
.adn-copy h2{margin-top:16px;}
.adn-copy p{margin-top:20px;color:var(--steel);max-width:52ch;}
.adn-copy .btn{margin-top:32px;}
@media(max-width:920px){.adn{grid-template-columns:1fr;gap:36px;}.adn-photo img{height:380px;}.adn-copy .btn{white-space:normal;}} 

/* ============ BRANDS ============ */
.brands-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line-on-light);
  border:1px solid var(--line-on-light);
}
.brand-tile{
  background:var(--white);
  aspect-ratio:3/1.6;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);
  color:var(--steel);
  font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;
  transition:background .25s ease, color .25s ease;
  text-align:center;padding:10px;
}

.brands-grid .brand-tile{padding:14px;}
.brand-tile img{max-width:90%;max-height:80%;object-fit:contain;filter:grayscale(25%);transition:filter .25s ease, transform .25s ease;}
.brand-tile:hover img{filter:grayscale(0%);transform:scale(1.06);}
.brands-grid .brand-tile:hover{background:var(--white);}
@media(max-width:720px){.brands-grid{grid-template-columns:repeat(2,1fr);}}
.note-placeholder{
  margin-top:20px;font-family:var(--font-mono);font-size:0.72rem;color:var(--steel-light);
  letter-spacing:0.04em;
}

/* ============ CLIENTS / MAP ============ */
.clients-layout{display:grid;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;}
.map-box{
  position:relative;background:var(--charcoal);border:1px solid var(--line-on-dark);
  padding:30px;
}
.map-box svg{width:100%;height:auto;display:block;}
.map-state{fill:rgba(255,255,255,0.05);stroke:rgba(255,255,255,0.16);stroke-width:0.7;transition:fill 0.3s ease;}
.estado-cobertura{fill:rgba(255,90,31,0.32);stroke:rgba(255,90,31,0.65);}
.map-pin{fill:var(--orange);}
.map-pin-pulse{
  fill:none;stroke:var(--orange);stroke-width:1.4;opacity:0.6;
  transform-box:fill-box;transform-origin:center;
  animation:pulse 2.4s ease-out infinite;
}
@keyframes pulse{0%{transform:scale(0.4);opacity:0.7;}100%{transform:scale(2.4);opacity:0;}}
.map-legend{margin-top:22px;display:flex;flex-wrap:wrap;gap:18px;font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.06em;color:var(--steel-light);text-transform:uppercase;}
.map-legend span{display:inline-flex;align-items:center;gap:8px;}
.map-legend i{width:8px;height:8px;background:var(--orange);border-radius:50%;display:inline-block;}
.clients-copy p{margin-top:18px;color:var(--steel);max-width:48ch;}
.client-logos{
  margin-top:34px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-on-light);border:1px solid var(--line-on-light);
}
.client-logos .brand-tile{aspect-ratio:1.5/1;font-size:0.66rem;}
.client-logos .brand-tile img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;padding:8%;}
@media(max-width:920px){.clients-layout{grid-template-columns:1fr;gap:40px;}}

/* ============ NOSOTROS ============ */
.nosotros{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.nosotros-photo{position:relative;}
.nosotros-photo img{width:100%;height:520px;object-fit:cover;}
.nosotros-badge{
  position:absolute;top:-22px;right:-22px;
  background:var(--orange);color:var(--ink);
  width:130px;height:130px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:var(--font-display);font-size:0.85rem;line-height:1.15;text-transform:uppercase;
  padding:14px;
}
.nosotros-copy p{margin-top:20px;color:var(--steel);max-width:54ch;}
.nosotros-highlight{
  margin-top:28px;padding:20px 24px;border-left:4px solid var(--orange);background:var(--white);
  font-family:var(--font-display);text-transform:uppercase;font-size:1.15rem;letter-spacing:0.01em; color: var(--ink);
}
.pillars{margin-top:44px;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-on-light);border:1px solid var(--line-on-light);}
.pillar{
  background:var(--white);padding:26px 24px;
  display:flex;flex-direction:column;gap:12px;
  transition:background .3s ease, color .3s ease;
}
.pillar:hover{background:var(--ink);color:var(--white);}
.pillar .svc-code{color:var(--steel);}
.pillar:hover .svc-code{color:var(--orange);}
.pillar .svc-icon svg{width:34px;height:34px;stroke:var(--orange);fill:none;stroke-width:1.5;}
.pillar:hover .svc-icon svg{stroke:var(--orange);}
.pillar h4{font-size:1.08rem;color:var(--ink);}
.pillar:hover h4{color:var(--white);}
.pillar p{font-size:0.92rem;color:var(--steel);flex-grow:1;}
.pillar:hover p{color:var(--steel-light);}
.pillar .svc-more{margin-top:auto;}
@media(max-width:920px){.nosotros{grid-template-columns:1fr;gap:40px;}.pillars{grid-template-columns:1fr;}}

/* ============ SERVICIOS ============ */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-on-light);border:1px solid var(--line-on-light);}
.service-card{
  background:var(--white);display:flex;flex-direction:column;min-height:260px;
  transition:background .3s ease;
  position:relative;overflow:hidden;
}
.service-card .svc-body{padding:30px 28px 28px;display:flex;flex-direction:column;gap:14px;flex:1;transition:background .3s ease;}
.service-card:hover .svc-body{background:var(--ink);color:var(--white);}
.svc-code{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.1em;color:var(--ink);}
.service-card:hover .svc-code{color:var(--orange);}
.svc-icon svg{width:34px;height:34px;stroke:var(--orange);fill:none;stroke-width:1.5;}
.service-card:hover .svc-icon svg{stroke:var(--orange);}
.service-card h3{font-size:1.12rem;}
.service-card p{font-size:0.92rem;color:var(--steel);flex-grow:1;}
.service-card:hover p{color:var(--steel-light);}
.svc-more{
  font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:8px;color:var(--orange);background:none;border:none;
  padding:0;cursor:pointer;transition:transform .25s ease;
}
.svc-more:hover{transform:translateX(4px);}
@media(max-width:1000px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.services-grid{grid-template-columns:1fr;}}

/* ============ MODAL SERVICIO ============ */
.svc-modal{
  position:fixed;inset:0;background:rgba(11,12,14,0.94);z-index:2100;
  display:none;align-items:center;justify-content:center;padding:24px;
}
.svc-modal.open{display:flex;}
.svc-modal-box{
  background:var(--fog);color:var(--ink);
  width:100%;max-width:920px;max-height:92vh;overflow-y:auto;
  position:relative;border-top:6px solid var(--orange);
}
.svc-modal-head{padding:30px 32px 0;}
.svc-modal-head .svc-code{color:var(--orange);}
.svc-modal-head h3{font-size:clamp(1.5rem,3vw,2.2rem);margin-top:10px;}
.svc-modal-desc{padding:20px 32px 0;}
.svc-modal-desc p{color:var(--steel);font-size:1.02rem;max-width:70ch;}
.svc-modal-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:22px 32px 0;}
.svc-modal-list li{display:flex;gap:12px;align-items:flex-start;font-size:0.95rem;color:var(--steel);}
.svc-modal-list li::before{
  content:"";width:8px;height:8px;flex-shrink:0;margin-top:7px;background:var(--orange);border-radius:50%;
}
.svc-modal-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:24px 32px 34px;}
.svc-modal-imgs img{width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;transition:transform .3s ease;}
.svc-modal-imgs img:hover{transform:scale(1.03);}
.svc-modal-close{
  position:absolute;top:22px;right:26px;
  font-family:var(--font-mono);font-size:0.78rem;letter-spacing:0.1em;color:var(--steel);
  display:inline-flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;
  transition:color .2s ease;
}
.svc-modal-close:hover{color:var(--orange);}
@media(max-width:720px){
  .svc-modal-list{grid-template-columns:1fr;}
  .svc-modal-imgs{grid-template-columns:1fr;}
}

/* ============ GALERIA ============ */
.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;}
.filter-btn{
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:10px 18px;border:1px solid var(--line-on-light);color:var(--steel);
  transition:all .25s ease;background:none;
}
.on-charcoal .filter-btn{border-color:var(--line-on-dark);color:var(--steel-light);}
.filter-btn.active,.filter-btn:hover{background:var(--ink);color:var(--white);border-color:var(--ink);}
.on-charcoal .filter-btn.active,.on-charcoal .filter-btn:hover{background:var(--orange);color:var(--ink);border-color:var(--orange);}
.gallery-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
}
.gallery-item{
  position:relative;overflow:hidden;cursor:pointer;
  aspect-ratio:4/3;background:var(--charcoal);
}
.gallery-item img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .5s ease;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item.diagram{
  aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:space-between;padding:22px;color:var(--white);
}
.gallery-item.diagram .diagram-code{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;color:var(--steel-light);}
.gallery-item.diagram h4{font-size:1rem;text-transform:uppercase;font-family:var(--font-display);}
.gallery-item.diagram svg{position:absolute;inset:0;width:100%;height:100%;opacity:0.5;}
.gallery-item[hidden]{display:none;}
@media (max-width:900px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
  .gallery-grid{grid-template-columns:1fr;}
}

/* Lightbox */
.lightbox{
  position:fixed;inset:0;background:rgba(11,12,14,0.96);z-index:2200;
  display:none;align-items:center;justify-content:center;padding:40px;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:min(90vw,1000px);max-height:82vh;object-fit:contain;border:1px solid var(--line-on-dark);}
.lightbox-close{
  position:absolute;top:28px;right:34px;color:var(--white);font-family:var(--font-mono);font-size:0.9rem;
  letter-spacing:0.1em;display:flex;align-items:center;gap:10px;background:none;border:none;cursor:pointer;
}
.lightbox-caption{position:absolute;bottom:34px;left:0;right:0;text-align:center;color:var(--steel-light);font-family:var(--font-mono);font-size:0.75rem;letter-spacing:0.06em;}

/* ============ EVENTOS ============ */
.eventos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.event-card{
  background:var(--white);border:1px solid var(--line-on-light);
  display:flex;flex-direction:column;overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
}
.event-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(11,12,14,0.14);}
.event-card .ev-img{height:180px;overflow:hidden;position:relative;}
.event-card .ev-img img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .5s ease;}
.event-card:hover .ev-img img{transform:scale(1.06);}
.event-card .ev-cat{
  position:absolute;top:14px;left:14px;background:var(--orange);color:var(--ink);
  font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:6px 10px;font-weight:500;
}
.event-card .ev-body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1;}
.event-card h3{font-size:1.08rem;}
.event-card .ev-body p{font-size:0.92rem;color:var(--steel);flex:1;}
.event-link{
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--orange);display:inline-flex;align-items:center;gap:8px;width:fit-content;
  transition:transform .25s ease;
}
.event-link:hover{transform:translateX(4px);}
.eventos-more{margin-top:44px;text-align:center;}
@media(max-width:900px){.eventos-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.eventos-grid{grid-template-columns:1fr;}}

/* ============ CONTACTO ============ */
.contact-layout{display:grid;grid-template-columns:1.15fr 0.85fr;gap:60px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.field{display:flex;flex-direction:column;gap:8px;min-width:0;}
.field.full{grid-column:1/-1;}
.field label{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--steel);}
.field input,.field select,.field textarea{
  width:100%;border:1px solid var(--line-on-light);background:var(--white);padding:14px 16px;
  transition:border-color .2s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange);}
.field textarea{resize:vertical;min-height:120px;}
.contact-form .btn{margin-top:8px;}
.form-status{margin-top:16px;font-family:var(--font-mono);font-size:0.8rem;color:var(--orange-dark);display:none;}
.form-status.show{display:block;}
.form-status.is-error{color:#B3261E;}

/* error por campo del formulario de contacto */
.field-error{
  display:none;
  font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.06em;
  color:#B3261E;line-height:1.4;
}
.field.invalido input,.field.invalido select,.field.invalido textarea{
  border-color:#B3261E;
  box-shadow:0 0 0 3px rgba(179,38,30,0.12);
}

.contact-info{background:var(--ink);color:var(--white);padding:44px 36px;position:relative;}
.contact-info h3{font-size:1.1rem;}
.contact-info .subline{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;color:var(--steel-light);text-transform:uppercase;margin-top:6px;}
.info-list{margin-top:32px;display:flex;flex-direction:column;gap:22px;}
.info-list li{display:flex;gap:16px;align-items:flex-start;min-width:0;}
.info-list svg{width:20px;height:20px;stroke:var(--orange);fill:none;stroke-width:1.6;flex-shrink:0;margin-top:2px;}
.info-list a,.info-list span{font-size:0.95rem;color:var(--fog);min-width:0;overflow-wrap:anywhere;}
@media(max-width:920px){.contact-layout{grid-template-columns:1fr;}.form-grid{grid-template-columns:1fr;}}

/* ============ UBICACIONES ============ */
.offices-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--line-on-light);border:1px solid var(--line-on-light);}
.office-card{background:var(--white);padding:40px 34px;color:var(--ink);}
.office-card .eyebrow{margin-bottom:14px;}
.office-card address{font-style:normal;color:var(--steel);line-height:1.8;margin-top:10px;}
.office-card .phone{margin-top:18px;font-family:var(--font-mono);font-size:1rem;color:var(--ink);font-weight:600;}
.office-card .sublogo{width:32px;height:32px;margin-top:10px;background:#fff;padding:2px;border-radius:4px;}
@media(max-width:720px){.offices-grid{grid-template-columns:1fr;}}

/* ============ CTA FINAL ============ */
.cta-final{
  background:var(--ink);color:var(--white);text-align:center;
  position:relative;overflow:hidden;
}
.cta-final::before{
  content:"";position:absolute;inset:0;
  background-image:repeating-linear-gradient(135deg, transparent 0 38px, rgba(255,90,31,0.05) 38px 40px);
  pointer-events:none;
}
.cta-final .wrap{position:relative;display:flex;flex-direction:column;align-items:center;}
.cta-final h2{max-width:16ch;margin-top:18px;}
.cta-final p{margin-top:18px;max-width:52ch;color:var(--steel-light);}
.cta-final .btn{margin-top:34px;}

/* ============ BLOG / EVENTOS PAGE ============ */
.blog-hero{padding-top:190px;padding-bottom:70px;background:var(--ink);color:var(--white);}
.blog-hero .eyebrow{color:var(--volt);}
.blog-hero h1{margin-top:16px;max-width:18ch;}
.blog-hero p{margin-top:16px;max-width:56ch;color:var(--steel-light);}
.blog-section{padding-top:88px;}
.blog-section .section-head{margin-bottom:44px;}
.blog-list-cta{font-family:var(--font-mono);font-size:0.8rem;letter-spacing:0.08em;color:var(--steel-light);margin-top:40px;text-align:center;}

/* ============ FOOTER ============ */
footer{background:var(--charcoal);color:var(--fog);padding:76px 0 30px;}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid var(--line-on-dark);}
.footer-brand img{height:40px;width:auto;display:block;}
.footer-brand .mark{font-family:var(--font-display);font-size:1.5rem;color:var(--white);letter-spacing:0.03em;}
.footer-brand .mark span{color:var(--orange);}
.footer-brand p{margin-top:16px;font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.06em;color:var(--steel-light);max-width:26ch;text-transform:uppercase;}
.footer-col h5{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--steel-light);margin-bottom:18px;}
.footer-col ul{display:flex;flex-direction:column;gap:12px;}
.footer-col a{font-size:0.93rem;color:var(--fog);transition:color .2s ease;}
.footer-col a:hover{color:var(--orange);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;padding-top:26px;font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.05em;color:var(--steel-light);text-transform:uppercase;}
.footer-bottom .hazard{width:40px;}
@media(max-width:860px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.footer-top{grid-template-columns:1fr;}}

/* ─── WHATSAPP FLOTANTE ──────────────────── */
    .wa-float {
      position: fixed;
      bottom: 28px;
      right: 28px;
      z-index: 1000;
      display: flex;
      align-items: center;
      gap: 12px;
      text-decoration: none;
    }

    .wa-label {
      background: var(--orange);
      color: var(--white);
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 1px;
      padding: 8px 14px;
      white-space: nowrap;
      opacity: 0;
      transform: translateX(10px);
      transition: opacity 0.3s ease, transform 0.3s ease;
      pointer-events: none;
    }

    .wa-float:hover .wa-label {
      opacity: 1;
      transform: translateX(0);
    }

    .wa-btn {
      width: 58px;
      height: 58px;
      border-radius: 50%;
      background: #25D366;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 4px 20px rgba(37, 211, 102, 0.45);
      transition: transform 0.25s ease, box-shadow 0.25s ease;
      flex-shrink: 0;
    }

    .wa-float:hover .wa-btn {
      transform: scale(1.1);
      box-shadow: 0 6px 28px rgba(37, 211, 102, 0.6);
    }

    .wa-btn svg {
      width: 28px;
      height: 28px;
      fill: #fff;
    }

    /* Pulso animado */
    .wa-btn::before {
      content: '';
      position: absolute;
      width: 58px;
      height: 58px;
      border-radius: 50%;
      background: rgba(37, 211, 102, 0.4);
      animation: wa-pulse 2.2s ease-out infinite;
    }

    @keyframes wa-pulse {
      0% {
        transform: scale(1);
        opacity: 0.7;
      }

      70% {
        transform: scale(1.6);
        opacity: 0;
      }

      100% {
        transform: scale(1.6);
        opacity: 0;
      }
    }

/* ============ INNER PAGE: NOSOTROS ============ */
.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.about-intro-photo{position:relative;}
.about-intro-photo .ph-placeholder{
  width:100%;height:520px;
  background:linear-gradient(135deg,var(--charcoal) 0%,var(--ink-soft) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--steel-light);text-align:center;padding:20px;
}
.about-intro-photo .frame{position:absolute;inset:18px;border:1px solid rgba(255,255,255,0.3);pointer-events:none;}
.about-intro-photo .tag{
  position:absolute;bottom:24px;left:24px;
  background:var(--ink);color:var(--white);
  font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.08em;text-transform:uppercase;
  padding:10px 16px;display:flex;align-items:center;gap:10px;
}
.about-intro-photo .tag::before{content:"";width:8px;height:8px;background:var(--orange);border-radius:50%;}
.about-intro-copy p{margin-top:20px;color:var(--steel);max-width:54ch;}
.about-intro-copy .nosotros-highlight{margin-top:28px;}
@media(max-width:920px){.about-intro{grid-template-columns:1fr;gap:40px;}.about-intro-photo .ph-placeholder{height:340px;}}

/* ============ CARRUSEL NOSOTROS (3 por vista) ============ */
.nosotros-carousel{position:relative;margin-top:40px;}
.nc-viewport{overflow:hidden;}
.nc-slide{display:none;grid-template-columns:repeat(3,1fr);gap:16px;}
.nc-slide.active{display:grid;animation:ncIn .6s ease;}
.nc-slide img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
@keyframes ncIn{
  from{opacity:0;transform:translateX(28px);}
  to{opacity:1;transform:translateX(0);}
}
.nosotros-carousel .nc-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border:none;cursor:pointer;z-index:2;
  background:var(--orange);color:var(--ink);font-size:1.3rem;line-height:1;
  display:flex;align-items:center;justify-content:center;opacity:.85;transition:opacity .2s;
}
.nosotros-carousel .nc-nav:hover{opacity:1;}
.nosotros-carousel .nc-prev{left:0;}
.nosotros-carousel .nc-next{right:0;}
@media(max-width:720px){.nc-slide{grid-template-columns:1fr;}.nosotros-carousel .nc-nav{width:36px;height:36px;}}

.philosophy-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.philosophy-card{padding:40px 36px;border:1px solid var(--line-on-light);background:var(--steel);}
.philosophy-card .eyebrow{margin-bottom:16px;}
.philosophy-card h3{font-size:1.3rem;margin-bottom:16px;}
.philosophy-card p{color:var(--white);font-size:0.98rem;line-height:1.7;}
@media(max-width:720px){.philosophy-grid{grid-template-columns:1fr;}}

.values-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-on-light);border:1px solid var(--line-on-light);}
.value-card{
  background:var(--white);padding:36px 28px;display:flex;flex-direction:column;gap:14px;
  transition:background .3s ease,color .3s ease;
}
.value-card:hover{background:var(--ink);color:var(--white);}
.value-card .value-icon{width:42px;height:42px;background:var(--orange);display:flex;align-items:center;justify-content:center;border-radius:50%;}
.value-card .value-icon svg{width:20px;height:20px;stroke:var(--ink);fill:none;stroke-width:2;}
.value-card h4{font-size:1.05rem; color: var(--ink-soft);}

.value-card:hover h4{font-size:1.05rem; color: var(--white);}
.value-card p{font-size:0.92rem;color:var(--steel);flex-grow:1;}
.value-card:hover p{color:var(--steel-light);}
@media(max-width:920px){.values-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.values-grid{grid-template-columns:1fr;}}

.about-dna{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.about-dna-photo .ph-placeholder{
  width:100%;height:480px;
  background:linear-gradient(135deg,var(--ink-soft) 0%,var(--charcoal) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--steel-light);text-align:center;padding:20px;position:relative;
}
.about-dna-photo .ph-placeholder::after{
  content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,0.25);pointer-events:none;
}
.about-dna-copy h2{margin-top:16px;}
.about-dna-copy p{margin-top:20px;color:var(--steel);max-width:52ch;}
.about-dna-copy .btn{margin-top:32px;}
@media(max-width:920px){.about-dna{grid-template-columns:1fr;gap:36px;}.about-dna-photo .ph-placeholder{height:320px;}}

/* ============ INNER PAGE: CLIENTES ============ */

.clients-hero-logos{margin-top:44px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-on-dark);border:1px solid var(--line-on-dark);}

.clients-hero-logos .brand-tile{aspect-ratio:1.5 /1;}

.clients-hero-logos .brand-tile img{max-width:80%;max-height:70%;object-fit:contain;filter:grayscale(30%) brightness(1.2);transition:filter .25s ease;}

.clients-hero-logos .brand-tile:hover img{filter:grayscale(0%) brightness(1);}

@media(max-width:920px){.clients-hero-logos{grid-template-columns:repeat(3,1fr);}}

@media(max-width:560px){.clients-hero-logos{grid-template-columns:repeat(2,1fr);}}

/* ============ SERVICES  ============ */

.objectives-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.objective-card{
  padding:40px 32px;border:1px solid var(--line-on-light);background:var(--white);
  display:flex;flex-direction:column;gap:16px;
  transition:transform .25s ease,box-shadow .25s ease;
}
.objective-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(11,12,14,0.12);}
.objective-card .obj-num{font-family:var(--font-display);font-size:3rem;color:var(--orange);line-height:1;font-weight:700;}
.objective-card h3{font-size:1.15rem;}
.objective-card p{color:var(--steel);font-size:0.95rem;flex-grow:1;}
@media(max-width:920px){.objectives-grid{grid-template-columns:1fr;}}

.cases-grid{display:grid;grid-template-columns:1fr;gap:32px;}
.case-card{
  display:grid;grid-template-columns:0.45fr 0.55fr;gap:0;
  border:1px solid var(--line-on-light);background:var(--white);overflow:hidden;
  transition:transform .25s ease,box-shadow .25s ease;
}
.case-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(11,12,14,0.12);}
.case-card:nth-child(even){grid-template-columns:0.55fr 0.45fr;}
.case-card:nth-child(even) .case-img{order:2;}
.case-img{
  position:relative;overflow:hidden;
}
.case-img .ph-placeholder{
  width:100%;height:100%;min-height:300px;
  background:linear-gradient(135deg,var(--charcoal) 0%,var(--ink-soft) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--steel-light);text-align:center;padding:20px;
}
.case-body{padding:36px 32px;display:flex;flex-direction:column;gap:14px;}
.case-body .case-client{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--orange);display:inline-flex;align-items:center;gap:8px;}
.case-body .case-client::before{content:"";width:8px;height:8px;background:var(--orange);border-radius:50%;}
.case-body h3{font-size:1.2rem;}
.case-body p{color:var(--steel);font-size:0.95rem;line-height:1.7;}
@media(max-width:800px){.case-card,.case-card:nth-child(even){grid-template-columns:1fr;}.case-card:nth-child(even) .case-img{order:0;}.case-img .ph-placeholder{min-height:220px;}}

/* ============ INNER PAGE: SERVICIOS ============ */
.services-intro{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.services-intro-photo .ph-placeholder{
  width:100%;height:480px;
  background:linear-gradient(135deg,var(--charcoal) 0%,var(--ink-soft) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--steel-light);text-align:center;padding:20px;position:relative;
}
.services-intro-photo .ph-placeholder::after{
  content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,0.25);pointer-events:none;
}
.services-intro-photo .ph-slideshow{position:relative;width:100%;height:480px;overflow:hidden;}
.services-intro-photo .ph-slideshow img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1s ease;
}
.services-intro-photo .ph-slideshow img.active{opacity:1;}
.services-intro-copy h2{margin-top:16px;}
.services-intro-copy p{margin-top:20px;color:var(--steel);max-width:52ch;}
@media(max-width:920px){.services-intro{grid-template-columns:1fr;gap:36px;}.services-intro-photo .ph-placeholder{height:320px;}.services-intro-photo .ph-slideshow{height:320px;}}

.svc-category-block{margin-bottom:48px;}
.svc-category-block:last-child{margin-bottom:0;}
.svc-category-block .cat-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;}
.svc-category-block .cat-header .cat-icon{width:48px;height:48px;background:var(--orange);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.svc-category-block .cat-header .cat-icon svg{width:24px;height:24px;stroke:var(--ink);fill:none;stroke-width:1.5;}
.svc-category-block .cat-header h3{font-size:1.3rem;}
.svc-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;counter-reset:svc-counter;}
.svc-list li{
  display:flex;gap:14px;align-items:flex-start;
  font-size:0.95rem;color:var(--steel);padding:16px 20px;
  background:var(--fog);border:1px solid var(--line-on-light);
  border-left:3px solid var(--orange);
  transition:background .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease;
  counter-increment:svc-counter;
}
.svc-list li::before{
  content:counter(svc-counter);width:28px;height:28px;flex-shrink:0;
  background:var(--orange);color:var(--ink);
  font-family:var(--font-mono);font-size:0.72rem;font-weight:700;letter-spacing:0;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;margin-top:1px;
}
.svc-list li:hover{
  background:var(--white);border-left-color:var(--orange);
  transform:translateY(-2px);box-shadow:0 6px 20px rgba(11,12,14,0.08);
}
.on-charcoal .svc-list li{
  background:var(--charcoal-2);border-color:var(--line-on-dark);color:var(--fog);
}
.on-charcoal .svc-list li:hover{
  background:var(--charcoal);border-left-color:var(--orange);
  box-shadow:0 6px 20px rgba(0,0,0,0.3);
}
@media(max-width:720px){.svc-list{grid-template-columns:1fr;}}

.svc-highlight-block{
  padding:40px 36px;border-left:4px solid var(--orange);background:var(--white);
  margin-bottom:32px;
}
.svc-highlight-block h3{font-size:1.15rem;margin-bottom:12px;}
.svc-highlight-block p{color:var(--steel);font-size:0.98rem;max-width:64ch;line-height:1.7;}

.svc-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.svc-gallery-item{
  position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--charcoal);
}
.svc-gallery-item .ph-placeholder{
  width:100%;height:100%;
  background:linear-gradient(135deg,var(--charcoal) 0%,var(--ink-soft) 100%);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:0.65rem;letter-spacing:0.08em;
  text-transform:uppercase;color:var(--steel-light);text-align:center;padding:12px;
}
.svc-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;}
@media(max-width:900px){.svc-gallery-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.svc-gallery-grid{grid-template-columns:1fr;}}

@media(max-width:720px){.svc-highlight-block{padding:28px 20px;}}
@media(max-width:560px){.svc-category-block .cat-header{flex-direction:column;align-items:flex-start;gap:10px;}}

/* ============ ALIANZA SIMX (IA industrial) ============ */
.alianza-simx{
  --simx-blue:#438CF7;
  --simx-paper:#FEFEFC;
  --simx-navy:#17235D;
  position:relative;overflow:hidden;
  background:var(--simx-navy);color:var(--simx-paper);
  isolation:isolate;
}
/* rejilla digital de fondo */
.simx-grid-bg{
  position:absolute;inset:-20%;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(67,140,247,0.20) 1px, transparent 1px),
    linear-gradient(90deg, rgba(67,140,247,0.20) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at 50% 40%, #000 0%, transparent 72%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 40%, #000 0%, transparent 72%);
  animation:simx-drift 22s linear infinite;
}
@keyframes simx-drift{
  0%{transform:translate3d(0,0,0);}
  100%{transform:translate3d(64px,64px,0);}
}
/* barrido de escaneo */
.simx-scan{
  position:absolute;left:0;right:0;height:260px;z-index:0;pointer-events:none;
  background:linear-gradient(180deg, transparent 0%, rgba(67,140,247,0.16) 50%, transparent 100%);
  animation:simx-scan 7s ease-in-out infinite;
}
@keyframes simx-scan{
  0%{transform:translateY(-260px);}
  100%{transform:translateY(calc(100vh + 260px));}
}
/* halo superior */
.alianza-simx::before{
  content:"";position:absolute;top:-30%;left:50%;transform:translateX(-50%);
  width:1100px;height:700px;z-index:0;pointer-events:none;
  background:radial-gradient(circle at 50% 50%, rgba(67,140,247,0.34) 0%, transparent 65%);
}
.alianza-simx > .wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;}

.alianza-logos{
  display:flex;align-items:center;justify-content:center;gap:44px;
  margin-bottom:56px;flex-wrap:wrap;
}
.alianza-logo{
  display:flex;flex-direction:column;align-items:center;gap:14px;
  background:rgba(254,254,252,0.06);padding:24px 46px;min-width:200px;
  border:1px solid rgba(67,140,247,0.38);
  box-shadow:0 0 0 1px rgba(23,35,93,0.6), 0 0 34px rgba(67,140,247,0.20) inset;
}
.alianza-logo img{height:56px;width:auto;object-fit:contain;max-width:100%;}
.alianza-logo-name{
  font-family:var(--font-display);font-size:1.05rem;letter-spacing:0.04em;
  text-transform:uppercase;color:var(--simx-paper);
}
.alianza-logo-name sup{color:var(--simx-blue);font-size:0.7em;}
.alianza-x{
  font-family:var(--font-display);font-size:3rem;font-weight:600;
  color:var(--simx-blue);line-height:1;
  text-shadow:0 0 18px rgba(67,140,247,0.7);
}

.alianza-head{width:100%;}
.alianza-head h2{margin:22px auto 0;max-width:20ch;text-wrap:balance;}
.alianza-head h2 em{font-style:normal;color:var(--simx-blue);text-shadow:0 0 22px rgba(67,140,247,0.45);}
/* regla luminosa en lugar de la franja de advertencia */
.simx-rule{
  display:block;margin:0 auto;width:96px;height:3px;
  background:linear-gradient(90deg,transparent,var(--simx-blue),transparent);
  box-shadow:0 0 14px rgba(67,140,247,0.85);
}
.alianza-lead{
  margin:26px auto 0;max-width:60ch;
  color:rgba(254,254,252,0.82);font-size:1.04rem;line-height:1.75;
  text-wrap:pretty;
}
.alianza-lead strong{color:var(--simx-paper);font-weight:600;}
.simx-eyebrow{
  display:block;margin:18px auto 0;
  font-family:var(--font-mono);font-size:0.7rem;font-weight:700;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--simx-blue);text-shadow:0 0 18px rgba(67,140,247,0.5);
}
.simx-lead-alt{color:rgba(254,254,252,0.66);font-size:0.98rem;}

/* ---- bloque UM MINING ---- */
.simx-partner{
  margin-top:76px;padding-top:64px;width:100%;
  border-top:1px solid rgba(67,140,247,0.24);
}
.simx-partner-head{
  margin:24px auto 0;max-width:24ch;text-wrap:balance;
  font-size:1.55rem;line-height:1.3;color:var(--simx-paper);
}
.simx-partner-head em{font-style:normal;color:var(--simx-blue);text-shadow:0 0 22px rgba(67,140,247,0.45);}
.simx-partner-sep{color:rgba(67,140,247,0.5);padding:0 4px;}

/* ---- espacios de imagen: 3 columnas x 2 filas, la 2a fila centrada ---- */
.simx-media{
  margin-top:56px;width:100%;
  display:flex;flex-wrap:wrap;justify-content:center;gap:12px;
}
.simx-media-slot{
  position:relative;overflow:hidden;margin:0;
  flex:0 0 calc((100% - 24px)/3);
  aspect-ratio:4/3;background:rgba(23,35,93,0.55);
  border:1px solid rgba(67,140,247,0.38);
  box-shadow:0 0 30px rgba(67,140,247,0.12);
  transition:border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.simx-media-slot img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(35%) contrast(1.05);
  transition:transform .5s ease, filter .3s ease;
}
.simx-media-slot:hover{border-color:var(--simx-blue);box-shadow:0 0 44px rgba(67,140,247,0.34);}
.simx-media-slot:hover img{transform:scale(1.05);filter:grayscale(0%) contrast(1);}

/* ---- capacidades ---- */
.simx-caps{
  margin-top:64px;width:100%;
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:rgba(67,140,247,0.28);border:1px solid rgba(67,140,247,0.28);
}
.simx-cap{
  background:rgba(23,35,93,0.72);padding:38px 30px;
  display:flex;flex-direction:column;gap:14px;text-align:left;
  transition:background .3s ease, box-shadow .3s ease;
}
.simx-cap:hover{background:rgba(67,140,247,0.16);box-shadow:0 0 30px rgba(67,140,247,0.22) inset;}
.simx-cap-idx{
  font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.16em;
  color:var(--simx-blue);font-weight:700;
}
.simx-cap h3{font-size:1.1rem;color:var(--simx-paper);}
.simx-cap p{font-size:0.94rem;color:rgba(254,254,252,0.72);line-height:1.7;}

.alianza-stats{
  margin-top:56px;width:100%;
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1px;background:rgba(67,140,247,0.28);
  border:1px solid rgba(67,140,247,0.28);
}
.alianza-stat{
  background:rgba(23,35,93,0.72);padding:38px 28px;
  display:flex;flex-direction:column;gap:10px;
  align-items:center;text-align:center;
  transition:background .3s ease;
}
.alianza-stat:hover{background:rgba(67,140,247,0.16);}
.alianza-stat .num{
  font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3rem);
  font-weight:700;color:var(--simx-blue);line-height:1;
  text-shadow:0 0 24px rgba(67,140,247,0.55);
}
.alianza-stat .label{
  font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.06em;
  text-transform:uppercase;color:rgba(254,254,252,0.72);line-height:1.6;
}
.alianza-desc{
  margin-top:52px;max-width:66ch;
  color:rgba(254,254,252,0.72);font-size:1.02rem;
}
@media(max-width:920px){
  .alianza-logos{gap:24px;}
  .alianza-logo{min-width:150px;padding:18px 26px;}
  .alianza-stats{grid-template-columns:repeat(2,1fr);}
  .simx-caps{grid-template-columns:1fr;}
  .simx-media-slot{flex-basis:calc((100% - 12px)/2);}
  .simx-partner{margin-top:56px;padding-top:48px;}
}
@media(max-width:560px){
  .alianza-logos{flex-direction:column;}
  .alianza-x{transform:rotate(90deg);}
  .alianza-logo{min-width:0;width:100%;}
  .alianza-stats{grid-template-columns:1fr;}
  .simx-media-slot{flex-basis:100%;}
  .simx-partner-head{font-size:1.25rem;}
}
@media (prefers-reduced-motion: reduce){
  .simx-grid-bg,.simx-scan{animation:none;}
  .simx-grid-bg{transform:none;}
}

/* ============ TERRITORIO (mapa a ancho de pagina) ============ */
.territorio-map{
  padding:0 28px 8px;
  display:flex;justify-content:center;
}
.territorio-map .map-box{
  width:100%;max-width:900px;padding:18px clamp(14px,2vw,26px);
  border-left:none;border-right:none;
}
.territorio-map .map-legend{margin-top:14px;gap:14px;}
@media(max-width:600px){.territorio-map{padding:0 14px 8px;}}
@media(max-width:820px){
  .territorio-map{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .territorio-map .map-box{min-width:620px;}
}

/* ============ MARCAS: 11 cuadros en rejilla ============ */
/* 11 marcas: flexbox para que la ultima fila incompleta quede centrada */
.brands-grid-11{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;
}
.brands-grid-11 .brand-tile{flex:0 0 calc(25% - 1px);}
@media(max-width:1100px){.brands-grid-11 .brand-tile{flex:0 0 calc(33.3333% - 1px);}}
@media(max-width:720px){.brands-grid-11 .brand-tile{flex:0 0 calc(50% - 1px);}}
@media(max-width:420px){.brands-grid-11 .brand-tile{flex:0 0 100%;}}

/* ============ CUADRO DE SERVICIO (3 columnas x 2 filas, sin fotos) ============ */
.service-card h3{line-height:1.25;}

/* ============ GALERIA DE FOTOS DENTRO DE UN CASO ============ */
.case-img{min-height:340px;position:relative;overflow:hidden;background:var(--charcoal);}
.case-carousel{position:absolute;inset:0;display:flex;flex-direction:column;}
.cc-viewport{position:relative;flex:1;overflow:hidden;}
.cc-slide{
  position:absolute;inset:0;margin:0;
  opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s;
}
.cc-slide.active{opacity:1;visibility:visible;}
.cc-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.cc-slide figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:14px 18px;
  background:linear-gradient(0deg, rgba(11,12,14,0.9), transparent);
  font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--orange);pointer-events:none;
}
.cc-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:40px;height:40px;border:none;cursor:pointer;z-index:3;
  background:rgba(11,12,14,0.6);color:var(--white);
  font-size:1.4rem;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s,opacity .2s;
}
.cc-nav:hover{background:var(--orange);color:var(--ink);}
.cc-prev{left:0;}
.cc-next{right:0;}
.cc-dots{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  display:flex;justify-content:center;gap:7px;padding:12px 0;pointer-events:none;
}
.cc-dot{
  width:9px;height:9px;padding:0;border:none;cursor:pointer;pointer-events:auto;
  border:1px solid var(--white);background:transparent;opacity:.5;transition:opacity .2s;
}
.cc-dot.active{background:var(--orange);border-color:var(--orange);opacity:1;}
@media(max-width:800px){.case-img{min-height:auto;aspect-ratio:16/10;}.case-carousel{position:absolute;}}

