/**
 * Página Servicios — LAM Seguridad & Integración
 * Archivo: /assets/css/lam-services.css
 */

:root {
  --ls-ink: #02070d;
  --ls-ink-2: #06111d;
  --ls-ink-3: #0b1c2b;
  --ls-green: #18e98a;
  --ls-green-2: #5af2b2;
  --ls-white: #fff;
  --ls-text: #c5d3dc;
  --ls-muted: #8fa3b4;
  --ls-light: #f2f5f7;
  --ls-dark-text: #07131e;
  --ls-border: rgba(255,255,255,.11);
  --ls-max: 1680px;
  --ls-gutter: clamp(22px,4.5vw,88px);
  --ls-ease: cubic-bezier(.22,1,.36,1);
}

.home .ls-page,
.page-id-0 .ls-page,
.ls-page {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.ls-page,
.ls-page *,
.ls-page *::before,
.ls-page *::after { box-sizing: border-box; }

.ls-page {
  overflow: hidden;
  background: var(--ls-ink);
  color: var(--ls-white);
}

.ls-shell {
  width: min(100%,var(--ls-max));
  margin-inline: auto;
  padding-inline: var(--ls-gutter);
}

.ls-kicker {
  margin: 0 0 24px;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: #e3edf3;
  font-size: 12px;
  font-weight: 760;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ls-kicker > span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ls-green);
  box-shadow: 0 0 18px rgba(24,233,138,.72);
}

.ls-kicker--dark { color: #203441; }

.ls-button {
  min-height: 58px;
  padding: 16px 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: inherit !important;
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 780;
  transition: transform .24s var(--ls-ease),background-color .24s,border-color .24s,box-shadow .24s;
}

.ls-button:hover { transform: translateY(-3px); }
.ls-button:focus-visible { outline: 3px solid rgba(24,233,138,.55); outline-offset: 4px; }

.ls-button--primary {
  background: var(--ls-green);
  color: #021109 !important;
  box-shadow: 0 18px 42px rgba(24,233,138,.18);
}

.ls-button--primary:hover { background: var(--ls-green-2); }
.ls-button--ghost { border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.055); backdrop-filter: blur(14px); }

.ls-sound {
  position: fixed;
  z-index: 999;
  right: 22px;
  bottom: 22px;
  min-height: 42px;
  padding: 10px 14px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(4,13,21,.76);
  color: #fff;
  backdrop-filter: blur(16px);
  cursor: pointer;
}

.ls-sound__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #7a8c99;
}

.ls-sound[aria-pressed="true"] .ls-sound__dot {
  background: var(--ls-green);
  box-shadow: 0 0 14px rgba(24,233,138,.8);
}

.ls-sound__label { font-size: 12px; font-weight: 700; }

/* HERO */
.ls-hero {
  position: relative;
  isolation: isolate;
  min-height: max(760px,calc(100svh - 110px));
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 24%,rgba(24,233,138,.12),transparent 28%),
    linear-gradient(135deg,#02070d,#06111d 58%,#02060b);
}

.ls-hero__canvas,
.ls-hero__grid,
.ls-hero__glow { position: absolute; inset: 0; }

.ls-hero__canvas { width: 100%; height: 100%; z-index: -2; opacity: .72; }

.ls-hero__grid {
  z-index: -3;
  opacity: .24;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size: 86px 86px;
  mask-image: linear-gradient(90deg,#000,rgba(0,0,0,.28) 72%,transparent);
}

.ls-hero__glow {
  z-index: -1;
  width: min(50vw,820px);
  aspect-ratio: 1;
  border-radius: 50%;
  filter: blur(20px);
  pointer-events: none;
}

.ls-hero__glow--one { top: -18%; right: -12%; background: radial-gradient(circle,rgba(24,233,138,.16),transparent 70%); }
.ls-hero__glow--two { top: auto; right: auto; bottom: -35%; left: -16%; background: radial-gradient(circle,rgba(0,119,255,.11),transparent 72%); }

.ls-hero__shell {
  min-height: max(760px,calc(100svh - 110px));
  padding-top: clamp(100px,12vh,160px);
  padding-bottom: 130px;
  display: grid;
  align-content: center;
}

.ls-hero__title,
.ls-section-title,
.ls-final__title {
  margin: 0;
  font-size: clamp(62px,7.2vw,132px);
  font-weight: 800;
  line-height: .89;
  letter-spacing: -.068em;
}

.ls-hero__title > span,
.ls-section-title > span,
.ls-final__title > span {
  display: block;
  overflow: hidden;
  padding-bottom: .07em;
}

.ls-hero__title em,
.ls-section-title em,
.ls-final__title em { color: var(--ls-green); font-style: normal; }

.ls-hero__footer {
  margin-top: 44px;
  display: grid;
  grid-template-columns: minmax(0,720px) auto;
  align-items: end;
  gap: 48px;
}

.ls-hero__lead {
  margin: 0;
  color: var(--ls-text);
  font-size: clamp(18px,1.3vw,23px);
  line-height: 1.62;
}

.ls-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: flex-end; }

.ls-hero__ticker {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.13);
  border-bottom: 1px solid rgba(255,255,255,.08);
  background: rgba(3,10,17,.58);
  backdrop-filter: blur(12px);
}

.ls-hero__ticker-track {
  width: max-content;
  padding: 18px 0;
  display: flex;
  align-items: center;
  gap: 24px;
  animation: ls-ticker 30s linear infinite;
}

.ls-hero__ticker-track span { color: #dce8ef; font-size: 12px; font-weight: 760; letter-spacing: .13em; }
.ls-hero__ticker-track i { width: 6px; height: 6px; border-radius: 50%; background: var(--ls-green); }

@keyframes ls-ticker { to { transform: translateX(-50%); } }

/* HEADERS */
.ls-products,.ls-industries { background: var(--ls-light); color: var(--ls-dark-text); }
.ls-products .ls-shell,.ls-industries .ls-shell,.ls-architecture .ls-shell {
  padding-top: clamp(120px,13vw,205px);
  padding-bottom: clamp(130px,14vw,220px);
}

.ls-section-head {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr);
  align-items: end;
  gap: clamp(44px,8vw,150px);
  margin-bottom: clamp(70px,8vw,120px);
}

.ls-section-title { font-size: clamp(58px,6.4vw,116px); }
.ls-section-title--dark { color: var(--ls-dark-text); }
.ls-section-summary {
  max-width: 520px;
  margin: 0;
  justify-self: end;
  color: #b9c7d1;
  font-size: clamp(17px,1.25vw,22px);
  line-height: 1.62;
}

.ls-section-summary--dark { color: #526675; }

/* PRODUCT STACK */
.ls-product-stack { display: grid; gap: 20px; }

.ls-product {
  position: relative;
  min-height: clamp(620px,52vw,820px);
  display: grid;
  grid-template-columns: minmax(0,.88fr) minmax(420px,1.12fr);
  overflow: hidden;
  border-radius: clamp(24px,2.2vw,34px);
  background: #06111d;
  color: #fff;
  box-shadow: 0 30px 80px rgba(7,19,30,.12);
}

.ls-product:nth-child(even) { grid-template-columns: minmax(420px,1.12fr) minmax(0,.88fr); }
.ls-product:nth-child(even) .ls-product__copy { order: 2; }
.ls-product:nth-child(even) .ls-product__visual { order: 1; }

.ls-product__meta {
  position: absolute;
  z-index: 4;
  top: 28px;
  right: 32px;
  left: 32px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: #9db0bf;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ls-product__copy {
  position: relative;
  z-index: 2;
  padding: clamp(90px,8vw,140px) clamp(30px,4.5vw,76px) clamp(50px,5vw,80px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background:
    linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,.01)),
    var(--ls-ink-2);
}

.ls-product__eyebrow {
  margin: 0 0 16px;
  color: var(--ls-green);
  font-size: 11px;
  font-weight: 780;
  letter-spacing: .14em;
}

.ls-product__copy h3 {
  margin: 0;
  max-width: 680px;
  color: #fff;
  font-size: clamp(42px,4.4vw,78px);
  font-weight: 790;
  line-height: .95;
  letter-spacing: -.052em;
}

.ls-product__copy > p:not(.ls-product__eyebrow) {
  max-width: 650px;
  margin: 24px 0 0;
  color: #c3d0d9;
  font-size: clamp(16px,1.15vw,20px);
  line-height: 1.58;
}

.ls-product__features {
  margin: 30px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px 22px;
  list-style: none;
  color: #a9bac7;
  font-size: 13px;
  font-weight: 650;
}

.ls-product__features li { position: relative; padding-left: 16px; }
.ls-product__features li::before {
  content: "";
  position: absolute;
  top: .55em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ls-green);
  box-shadow: 0 0 10px rgba(24,233,138,.6);
}

.ls-product__visual {
  position: relative;
  min-height: 100%;
  overflow: hidden;
  background:
    radial-gradient(circle at 65% 28%,rgba(24,233,138,.13),transparent 30%),
    linear-gradient(145deg,#0b1d2b,#02070d);
}

/* PARKING UI */
.ls-parking-ui {
  position: absolute;
  inset: 10%;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 22px;
  background: rgba(5,15,24,.82);
  box-shadow: 0 36px 80px rgba(0,0,0,.36);
  backdrop-filter: blur(18px);
  transform: perspective(1200px) rotateY(-8deg) rotateX(4deg);
}

.ls-ui-topbar {
  height: 58px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.ls-ui-topbar span { width: 8px; height: 8px; border-radius: 50%; background: #405160; }
.ls-ui-topbar b { margin-left: auto; color: #dce8ef; font-size: 11px; letter-spacing: .12em; }

.ls-parking-ui__stats {
  padding: 22px;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}

.ls-parking-ui__stats div {
  padding: 16px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 14px;
  background: rgba(255,255,255,.03);
}

.ls-parking-ui__stats strong,.ls-parking-ui__stats span { display: block; }
.ls-parking-ui__stats strong { color: var(--ls-green); font-size: 28px; }
.ls-parking-ui__stats span { margin-top: 5px; color: #8fa4b4; font-size: 10px; }

.ls-parking-ui__camera {
  position: relative;
  height: 44%;
  margin: 0 22px;
  overflow: hidden;
  border-radius: 16px;
  background:
    linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.55)),
    repeating-linear-gradient(90deg,#122637 0 60px,#0e1e2c 60px 120px);
}

.ls-parking-ui__camera::before {
  content:"";
  position:absolute;
  right:12%;
  bottom:18%;
  width:48%;
  height:28%;
  border:2px solid var(--ls-green);
  border-radius:45% 44% 18% 18%;
  box-shadow:0 0 30px rgba(24,233,138,.12);
}

.ls-scan-line {
  position:absolute;
  top:0;
  right:0;
  left:0;
  height:2px;
  background:linear-gradient(90deg,transparent,var(--ls-green),transparent);
  animation:ls-scan 3s ease-in-out infinite;
}

@keyframes ls-scan { 0%,100%{top:10%}50%{top:88%} }

.ls-plate {
  position:absolute;
  right:22%;
  bottom:16%;
  padding:6px 11px;
  border-radius:5px;
  background:#f5f3d6;
  color:#08131d;
  font-family:ui-monospace,monospace;
  font-weight:800;
}

.ls-parking-ui__camera small { position:absolute; left:18px; bottom:18px; color:var(--ls-green); font-size:9px; }

.ls-parking-ui__receipt {
  padding:18px 22px;
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:12px;
  color:#91a5b4;
  font-size:10px;
}

.ls-parking-ui__receipt strong { color:#fff; font-size:18px; }

/* LPR */
.ls-road { position:absolute; inset:0; overflow:hidden; }
.ls-road::before {
  content:"";
  position:absolute;
  inset:38% -20% -30%;
  background:#0a1824;
  transform:perspective(800px) rotateX(64deg);
}
.ls-road__lane { position:absolute; z-index:1; top:55%; left:48%; width:4px; height:60%; background:repeating-linear-gradient(#fff 0 22px,transparent 22px 42px); transform:perspective(700px) rotateX(62deg); opacity:.5; }
.ls-car { position:absolute; z-index:2; right:14%; bottom:24%; width:54%; height:25%; animation:ls-car-float 3.6s ease-in-out infinite; }
.ls-car__body { position:absolute; inset:14% 0 20%; border:2px solid #2bd9ff; border-radius:45% 45% 18% 18%; box-shadow:0 0 36px rgba(43,217,255,.14); }
.ls-car__wheel { position:absolute; bottom:8%; width:16%; aspect-ratio:1; border:2px solid #2bd9ff; border-radius:50%; }
.ls-car__wheel--one { left:13%; } .ls-car__wheel--two { right:13%; }
.ls-car__plate { position:absolute; right:34%; bottom:18%; padding:6px 10px; border:1px solid var(--ls-green); color:var(--ls-green); font-family:ui-monospace,monospace; font-size:12px; }
.ls-lpr-box { position:absolute; z-index:3; top:24%; right:18%; width:52%; height:36%; border:1px solid var(--ls-green); }
.ls-lpr-box span { position:absolute; inset:-1px; background:linear-gradient(90deg,var(--ls-green),transparent 30%,transparent 70%,var(--ls-green)); opacity:.3; }
.ls-lpr-box b,.ls-lpr-box small { position:absolute; right:12px; color:var(--ls-green); }
.ls-lpr-box b { top:12px; font-size:28px; } .ls-lpr-box small { top:48px; font-size:9px; }
@keyframes ls-car-float { 50%{transform:translateY(-8px)} }

/* SECURITY */
.ls-monitor-grid {
  position:absolute;
  inset:10%;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(2,1fr);
  gap:10px;
  transform:perspective(1200px) rotateY(7deg) rotateX(2deg);
}

.ls-monitor-grid > div {
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:
    linear-gradient(135deg,rgba(24,233,138,.04),transparent),
    repeating-linear-gradient(90deg,#112534 0 42px,#0c1d29 42px 84px);
}

.ls-monitor-grid span { position:absolute; top:10px; left:10px; color:#91a7b6; font-size:9px; }
.ls-monitor-grid i { position:absolute; right:18%; bottom:18%; width:34%; height:46%; border:1px solid rgba(43,217,255,.5); }
.ls-monitor-grid .is-alert { border-color:rgba(255,67,67,.55); box-shadow:inset 0 0 38px rgba(255,0,0,.08); animation:ls-alert 2s ease-in-out infinite; }
.ls-monitor-grid .is-alert b { position:absolute; left:12px; bottom:12px; color:#ff5d5d; font-size:12px; }
@keyframes ls-alert { 50%{box-shadow:inset 0 0 55px rgba(255,0,0,.18)} }

/* COUNTING */
.ls-counting-stage { position:absolute; inset:10%; border:1px solid rgba(255,255,255,.12); border-radius:22px; background:linear-gradient(180deg,#0b1e2c,#06111d); }
.ls-counting-stage__gate { position:absolute; top:14%; bottom:14%; left:50%; width:2px; background:var(--ls-green); box-shadow:0 0 18px rgba(24,233,138,.55); }
.ls-person { position:absolute; width:18px; height:18px; border-radius:50%; background:#2bd9ff; box-shadow:0 20px 0 -4px #2bd9ff; animation:ls-walk 5s linear infinite; }
.ls-person--one{top:18%;left:18%}.ls-person--two{top:35%;left:28%;animation-delay:-1.5s}.ls-person--three{top:58%;left:14%;animation-delay:-2.7s}.ls-person--four{top:74%;left:34%;animation-delay:-3.8s}
@keyframes ls-walk { to{transform:translateX(340px)} }
.ls-counting-panel { position:absolute; right:6%; bottom:8%; padding:18px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:rgba(2,7,13,.72); backdrop-filter:blur(12px); }
.ls-counting-panel strong,.ls-counting-panel span{display:block}.ls-counting-panel strong{color:var(--ls-green);font-size:42px}.ls-counting-panel span{margin-top:6px;color:#91a5b4;font-size:9px;}

/* ACCESS */
.ls-face-scan { position:absolute; top:50%; left:50%; width:58%; aspect-ratio:1; transform:translate(-50%,-50%); }
.ls-face-scan__head { position:absolute; top:13%; left:50%; width:26%; aspect-ratio:.82; border:2px solid #2bd9ff; border-radius:48% 48% 42% 42%; transform:translateX(-50%); }
.ls-face-scan__shoulders { position:absolute; right:20%; bottom:18%; left:20%; height:32%; border:2px solid #2bd9ff; border-bottom:0; border-radius:50% 50% 0 0; }
.ls-face-scan__corner { position:absolute; width:28px; height:28px; border-color:var(--ls-green); border-style:solid; }
.ls-face-scan__corner--one{top:0;left:0;border-width:2px 0 0 2px}.ls-face-scan__corner--two{top:0;right:0;border-width:2px 2px 0 0}.ls-face-scan__corner--three{bottom:0;left:0;border-width:0 0 2px 2px}.ls-face-scan__corner--four{right:0;bottom:0;border-width:0 2px 2px 0}
.ls-face-scan::after{content:"";position:absolute;right:0;left:0;height:2px;background:linear-gradient(90deg,transparent,var(--ls-green),transparent);animation:ls-face-line 2.8s ease-in-out infinite}
@keyframes ls-face-line{0%,100%{top:12%}50%{top:86%}}
.ls-face-scan__status{position:absolute;right:0;bottom:-46px;left:0;text-align:center;color:var(--ls-green);font-size:11px;font-weight:800;letter-spacing:.12em}

/* INDUSTRIAL */
.ls-epp-stage { position:absolute; inset:10%; border:1px solid rgba(255,255,255,.12); border-radius:22px; background:linear-gradient(135deg,#132230,#07131e); }
.ls-worker { position:absolute; bottom:18%; width:12%; height:45%; border:2px solid #2bd9ff; border-radius:40% 40% 18% 18%; }
.ls-worker::before{content:"";position:absolute;top:-22%;left:50%;width:60%;aspect-ratio:1;border:2px solid #2bd9ff;border-radius:50%;transform:translateX(-50%)}
.ls-worker--one{left:18%}.ls-worker--two{left:44%}.ls-worker--three{right:16%}
.ls-detect-box { position:absolute; border:1px solid var(--ls-green); color:var(--ls-green); font-size:9px; }
.ls-detect-box b { position:absolute; top:-18px; left:0; }
.ls-detect-box--one{top:12%;left:14%;width:22%;height:64%}.ls-detect-box--two{top:15%;left:40%;width:20%;height:60%}.ls-detect-box--three{top:18%;right:12%;width:22%;height:58%}

/* CRITICAL */
.ls-critical-stage{position:absolute;inset:0;background:radial-gradient(circle at 58% 38%,rgba(255,35,35,.12),transparent 28%),linear-gradient(145deg,#130c12,#02070d)}
.ls-critical-stage__silhouette{position:absolute;top:18%;left:42%;width:20%;height:50%;border:2px solid #2bd9ff;border-radius:42% 42% 18% 18%;opacity:.8}
.ls-critical-stage__target{position:absolute;top:30%;left:48%;width:24%;height:28%;border:1px solid #ff4e4e}
.ls-critical-stage__target span{position:absolute;width:22px;height:22px;border-color:#ff4e4e;border-style:solid}
.ls-critical-stage__target span:nth-child(1){top:-1px;left:-1px;border-width:2px 0 0 2px}.ls-critical-stage__target span:nth-child(2){top:-1px;right:-1px;border-width:2px 2px 0 0}.ls-critical-stage__target span:nth-child(3){bottom:-1px;left:-1px;border-width:0 0 2px 2px}.ls-critical-stage__target span:nth-child(4){right:-1px;bottom:-1px;border-width:0 2px 2px 0}
.ls-critical-stage__alert{position:absolute;right:10%;bottom:12%;padding:13px 16px;display:flex;align-items:center;gap:9px;border:1px solid rgba(255,78,78,.5);border-radius:999px;background:rgba(25,6,8,.72);color:#ff7373;font-size:10px;font-weight:800;letter-spacing:.1em}
.ls-critical-stage__alert i{width:8px;height:8px;border-radius:50%;background:#ff4e4e;box-shadow:0 0 14px rgba(255,78,78,.8);animation:ls-critical-pulse 1.5s ease-in-out infinite}
@keyframes ls-critical-pulse{50%{opacity:.25}}

/* ARCHITECTURE */
.ls-architecture { background:var(--ls-ink); }
.ls-section-head--dark { color:#fff; }
.ls-architecture__flow {
  display:grid;
  grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr) 80px minmax(0,1fr) 80px minmax(0,1fr);
  align-items:center;
}
.ls-architecture__flow article{min-height:330px;padding:34px;border:1px solid var(--ls-border);border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.012))}
.ls-architecture__flow article>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#07131e;color:var(--ls-green);font-family:ui-monospace,monospace;font-size:11px;border:1px solid rgba(255,255,255,.12)}
.ls-architecture__flow h3{margin:34px 0 0;color:#fff;font-size:34px;line-height:1}.ls-architecture__flow p{margin:18px 0 0;color:#9fb1bf;line-height:1.58}
.ls-architecture__flow>i{height:1px;background:linear-gradient(90deg,transparent,var(--ls-green),transparent);animation:ls-flow 2.8s linear infinite}
@keyframes ls-flow{50%{opacity:.25}}

/* INDUSTRIES */
.ls-industries__list{border-top:1px solid rgba(7,19,30,.16)}
.ls-industries__list article{padding:30px 0;display:grid;grid-template-columns:70px minmax(260px,.8fr) minmax(320px,1fr);align-items:center;gap:24px;border-bottom:1px solid rgba(7,19,30,.16);transition:padding .3s var(--ls-ease),background-color .3s}
.ls-industries__list article:hover{padding-left:18px;background:rgba(255,255,255,.56)}
.ls-industries__list span{font-family:ui-monospace,monospace;color:#0abb68;font-size:11px;font-weight:700}
.ls-industries__list h3{margin:0;color:var(--ls-dark-text);font-size:clamp(28px,2.7vw,46px);line-height:1;letter-spacing:-.04em}
.ls-industries__list p{margin:0;color:#536776;font-size:16px;line-height:1.55}

/* FINAL */
.ls-final{position:relative;isolation:isolate;overflow:hidden;background:#02070d}
.ls-final__glow{position:absolute;z-index:-1;top:50%;left:50%;width:min(88vw,1480px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(24,233,138,.16),rgba(24,233,138,.035) 42%,transparent 72%);transform:translate(-50%,-50%);filter:blur(22px)}
.ls-final__shell{padding-top:clamp(150px,17vw,270px);padding-bottom:clamp(160px,18vw,290px);text-align:center}
.ls-final__title{max-width:1350px;margin:0 auto}
.ls-final__text{max-width:760px;margin:34px auto 0;color:#bdcad3;font-size:clamp(18px,1.3vw,23px);line-height:1.62}
.ls-final__actions{margin-top:38px;display:flex;justify-content:center;flex-wrap:wrap;gap:14px}

@media(max-width:1100px){
  .ls-hero__footer,.ls-section-head{grid-template-columns:1fr}
  .ls-hero__actions{justify-content:flex-start}
  .ls-section-summary{justify-self:start}
  .ls-product,.ls-product:nth-child(even){grid-template-columns:1fr}
  .ls-product:nth-child(even) .ls-product__copy,.ls-product:nth-child(even) .ls-product__visual{order:initial}
  .ls-product__visual{min-height:520px}
  .ls-architecture__flow{grid-template-columns:1fr;gap:16px}
  .ls-architecture__flow>i{width:1px;height:50px;justify-self:center;background:linear-gradient(180deg,transparent,var(--ls-green),transparent)}
  .ls-industries__list article{grid-template-columns:50px 1fr}
  .ls-industries__list p{grid-column:2}
}

@media(max-width:680px){
  .ls-hero__shell{padding-top:84px;padding-bottom:120px}
  .ls-hero__title,.ls-section-title,.ls-final__title{font-size:clamp(48px,14vw,72px);line-height:.93}
  .ls-hero__footer{margin-top:30px;gap:28px}
  .ls-hero__actions,.ls-final__actions{display:grid;grid-template-columns:1fr}
  .ls-button{width:100%}
  .ls-products .ls-shell,.ls-industries .ls-shell,.ls-architecture .ls-shell{padding-top:94px;padding-bottom:112px}
  .ls-section-head{margin-bottom:52px}
  .ls-product{min-height:auto}
  .ls-product__meta{top:20px;right:20px;left:20px}
  .ls-product__copy{padding:88px 20px 42px}
  .ls-product__copy h3{font-size:clamp(38px,11vw,54px)}
  .ls-product__features{grid-template-columns:1fr}
  .ls-product__visual{min-height:430px}
  .ls-parking-ui,.ls-monitor-grid,.ls-counting-stage,.ls-epp-stage{inset:7%}
  .ls-industries__list article{grid-template-columns:36px 1fr;gap:14px}
  .ls-sound{right:14px;bottom:14px}
}

@media(prefers-reduced-motion:reduce){
  .ls-hero__ticker-track,.ls-scan-line,.ls-car,.ls-person,.ls-face-scan::after,.ls-critical-stage__alert i,.ls-architecture__flow>i{animation:none!important}
}


/* =========================================================
   LAM SERVICES — CORRECCIÓN DE CONTRASTE + INTERACCIÓN PREMIUM
   ========================================================= */

/* 1) CONTRASTE: en fondos oscuros, todo título principal debe ser blanco. */
.ls-hero__title,
.ls-hero__title > span,
.ls-section-head--dark .ls-section-title,
.ls-section-head--dark .ls-section-title > span,
.ls-final__title,
.ls-final__title > span,
.ls-product__copy h3,
.ls-architecture__flow h3 {
  color: #ffffff !important;
  text-shadow: 0 12px 40px rgba(0, 0, 0, .28);
}

/* Los acentos permanecen verdes. */
.ls-hero__title em,
.ls-section-title em,
.ls-final__title em {
  color: var(--ls-green) !important;
}

/* En secciones claras se conserva texto oscuro. */
.ls-products .ls-section-title--dark,
.ls-products .ls-section-title--dark > span,
.ls-industries .ls-section-title--dark,
.ls-industries .ls-section-title--dark > span {
  color: var(--ls-dark-text) !important;
  text-shadow: none !important;
}

.ls-kicker--dark {
  color: #203441 !important;
}

/* 2) HERO MÁS VIVO */
.ls-hero {
  --ls-pointer-x: 50%;
  --ls-pointer-y: 50%;
}

.ls-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(
      520px circle at var(--ls-pointer-x) var(--ls-pointer-y),
      rgba(24, 233, 138, .12),
      rgba(24, 233, 138, .035) 32%,
      transparent 68%
    );
  opacity: .95;
  transition: opacity .35s ease;
}

.ls-hero__grid {
  transform: translate3d(0,0,0);
  will-change: transform;
}

.ls-hero__glow {
  will-change: transform;
}

/* 3) TARJETAS DE PRODUCTO CON EFECTO "WOW" */
.ls-product {
  --ls-card-x: 50%;
  --ls-card-y: 50%;
  --ls-card-rotate-x: 0deg;
  --ls-card-rotate-y: 0deg;
  isolation: isolate;
  transform-style: preserve-3d;
  will-change: transform;
  transition:
    transform .55s var(--ls-ease),
    box-shadow .55s var(--ls-ease),
    border-color .45s ease;
  border: 1px solid rgba(255,255,255,.09);
}

.ls-product::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(
      520px circle at var(--ls-card-x) var(--ls-card-y),
      rgba(24,233,138,.17),
      rgba(24,233,138,.045) 31%,
      transparent 66%
    );
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity .35s ease;
}

.ls-product::after {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: 7;
  pointer-events: none;
  border-radius: calc(clamp(24px,2.2vw,34px) - 1px);
  border: 1px solid transparent;
  background:
    linear-gradient(
      120deg,
      rgba(255,255,255,.28),
      rgba(255,255,255,.02) 22%,
      transparent 48%,
      rgba(24,233,138,.18) 78%,
      rgba(255,255,255,.08)
    ) border-box;
  -webkit-mask:
    linear-gradient(#fff 0 0) padding-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: .34;
  transition: opacity .35s ease;
}

.ls-product.is-pointer-active {
  border-color: rgba(24,233,138,.32);
  box-shadow:
    0 46px 120px rgba(0,0,0,.24),
    0 0 0 1px rgba(24,233,138,.06),
    0 0 70px rgba(24,233,138,.08);
}

.ls-product.is-pointer-active::before {
  opacity: 1;
}

.ls-product.is-pointer-active::after {
  opacity: .86;
}

.ls-product__copy {
  transform: translateZ(24px);
  transition:
    background .45s ease,
    transform .55s var(--ls-ease);
}

.ls-product__visual {
  transform: translateZ(34px);
  transition:
    transform .55s var(--ls-ease),
    filter .45s ease;
}

.ls-product.is-pointer-active .ls-product__copy {
  background:
    linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.012)),
    var(--ls-ink-2);
}

.ls-product.is-pointer-active .ls-product__visual {
  filter: saturate(1.06) contrast(1.035);
}

/* 4) IMÁGENES PROMOCIONALES CON PROFUNDIDAD, ZOOM Y BRILLO */
.ls-product__brochure {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
  background: #02070d;
  transform-style: preserve-3d;
}

.ls-product__brochure img {
  position: absolute;
  inset: -3%;
  width: 106%;
  height: 106%;
  object-fit: cover;
  object-position: center;
  transform:
    translate3d(var(--ls-image-x, 0px), var(--ls-image-y, 0px), 0)
    scale(var(--ls-image-scale, 1.025));
  filter: saturate(.96) contrast(1.035) brightness(.93);
  transition:
    transform .65s var(--ls-ease),
    filter .45s ease;
  will-change: transform;
}

.ls-product.is-pointer-active .ls-product__brochure img {
  --ls-image-scale: 1.075;
  filter: saturate(1.08) contrast(1.055) brightness(1);
}

.ls-product__brochure::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(2,7,13,.20), transparent 34%, transparent 68%, rgba(2,7,13,.16)),
    linear-gradient(180deg, rgba(2,7,13,.06), transparent 54%, rgba(2,7,13,.26));
}

.ls-product__brochure-glass {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background:
    radial-gradient(
      420px circle at var(--ls-card-x) var(--ls-card-y),
      rgba(255,255,255,.22),
      rgba(24,233,138,.08) 28%,
      transparent 64%
    );
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity .35s ease;
}

.ls-product.is-pointer-active .ls-product__brochure-glass {
  opacity: .9;
}

.ls-product__brochure-scan {
  position: absolute;
  z-index: 5;
  top: -12%;
  right: 0;
  left: 0;
  height: 2px;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(24,233,138,.25) 18%,
      rgba(24,233,138,1) 50%,
      rgba(24,233,138,.25) 82%,
      transparent 100%
    );
  box-shadow:
    0 0 18px rgba(24,233,138,.72),
    0 0 42px rgba(24,233,138,.28);
  opacity: .65;
  animation: ls-brochure-scan 4.2s ease-in-out infinite;
}

@keyframes ls-brochure-scan {
  0%, 100% { top: 5%; opacity: .18; }
  48% { opacity: .9; }
  50% { top: 92%; opacity: 1; }
}

/* Líneas de interfaz discretas sobre la imagen. */
.ls-product__visual::before,
.ls-product__visual::after {
  content: "";
  position: absolute;
  z-index: 8;
  pointer-events: none;
}

.ls-product__visual::before {
  top: 7%;
  right: 7%;
  width: 72px;
  height: 72px;
  border-top: 1px solid rgba(24,233,138,.62);
  border-right: 1px solid rgba(24,233,138,.62);
  opacity: .48;
  transition: transform .45s var(--ls-ease), opacity .35s ease;
}

.ls-product__visual::after {
  bottom: 7%;
  left: 7%;
  width: 72px;
  height: 72px;
  border-bottom: 1px solid rgba(24,233,138,.62);
  border-left: 1px solid rgba(24,233,138,.62);
  opacity: .48;
  transition: transform .45s var(--ls-ease), opacity .35s ease;
}

.ls-product.is-pointer-active .ls-product__visual::before {
  transform: translate(8px,-8px);
  opacity: 1;
}

.ls-product.is-pointer-active .ls-product__visual::after {
  transform: translate(-8px,8px);
  opacity: 1;
}

/* 5) MICROINTERACCIONES DE TEXTO Y LISTAS */
.ls-product__eyebrow,
.ls-product__features li {
  transition:
    transform .35s var(--ls-ease),
    color .3s ease;
}

.ls-product.is-pointer-active .ls-product__eyebrow {
  transform: translateX(5px);
}

.ls-product.is-pointer-active .ls-product__features li {
  color: #dce8ef;
}

.ls-product__features li::before {
  transition:
    transform .35s var(--ls-ease),
    box-shadow .35s ease;
}

.ls-product.is-pointer-active .ls-product__features li::before {
  transform: scale(1.35);
  box-shadow:
    0 0 10px rgba(24,233,138,.7),
    0 0 22px rgba(24,233,138,.36);
}

/* 6) ARQUITECTURA: hover de ingeniería */
.ls-architecture__flow article {
  position: relative;
  overflow: hidden;
  transition:
    transform .42s var(--ls-ease),
    border-color .35s ease,
    background .35s ease,
    box-shadow .42s var(--ls-ease);
}

.ls-architecture__flow article::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(340px circle at var(--ls-flow-x,50%) var(--ls-flow-y,50%), rgba(24,233,138,.14), transparent 66%);
  opacity: 0;
  transition: opacity .3s ease;
}

.ls-architecture__flow article:hover {
  transform: translateY(-8px);
  border-color: rgba(24,233,138,.34);
  background:
    linear-gradient(145deg,rgba(24,233,138,.09),rgba(255,255,255,.014));
  box-shadow: 0 26px 70px rgba(0,0,0,.22);
}

.ls-architecture__flow article:hover::before {
  opacity: 1;
}

/* 7) BOTONES */
.ls-button {
  overflow: hidden;
  isolation: isolate;
}

.ls-button::after {
  content: "";
  position: absolute;
  inset: -100% auto -100% -35%;
  width: 28%;
  z-index: -1;
  opacity: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.46), transparent);
  transform: rotate(18deg);
  transition: left .7s var(--ls-ease), opacity .2s ease;
}

.ls-button:hover::after {
  left: 118%;
  opacity: 1;
}

.ls-button:hover {
  transform: translateY(-3px);
}

/* 8) RESPONSIVE Y ACCESIBILIDAD */
@media (hover: none) {
  .ls-product::before {
    display: none;
  }

  .ls-product__brochure img {
    transform: scale(1.025);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ls-product,
  .ls-product__copy,
  .ls-product__visual,
  .ls-product__brochure img,
  .ls-product__brochure-scan,
  .ls-architecture__flow article {
    transition: none !important;
    animation: none !important;
    transform: none !important;
  }
}


/* =========================================================
   FIX DEFINITIVO DE COLOR + HUD INTERACTIVO POR SOLUCIÓN
   ========================================================= */

/* TÍTULOS EN SECCIONES OSCURAS: BLANCO REAL, SIN AZUL HEREDADO. */
body .ls-page .ls-hero__title,
body .ls-page .ls-hero__title > span,
body .ls-page .ls-section-title,
body .ls-page .ls-section-title > span,
body .ls-page .ls-final__title,
body .ls-page .ls-final__title > span {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

/* ACENTOS VERDES. */
body .ls-page .ls-hero__title em,
body .ls-page .ls-section-title em,
body .ls-page .ls-final__title em {
  color: #18e98a !important;
  -webkit-text-fill-color: #18e98a !important;
}

/* SECCIONES CLARAS: TEXTO OSCURO ÚNICAMENTE DONDE CORRESPONDE. */
body .ls-page .ls-section-title--dark,
body .ls-page .ls-section-title--dark > span {
  color: #07131e !important;
  -webkit-text-fill-color: #07131e !important;
  text-shadow: none !important;
}

/* El texto de cada tarjeta siempre legible. */
body .ls-page .ls-product__copy h3,
body .ls-page .ls-product__copy p,
body .ls-page .ls-product__features li {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

body .ls-page .ls-product__copy > p:not(.ls-product__eyebrow),
body .ls-page .ls-product__features li {
  color: #cbd7df !important;
  -webkit-text-fill-color: #cbd7df !important;
}

/* =========================================================
   HUD INTERACTIVO INYECTADO POR JAVASCRIPT
   ========================================================= */

.ls-product__interactive-hud {
  position: absolute;
  inset: 0;
  z-index: 12;
  pointer-events: none;
  overflow: hidden;
  border-radius: inherit;
  opacity: 0;
  transition: opacity .28s ease;
}

.ls-product.is-pointer-active .ls-product__interactive-hud {
  opacity: 1;
}

.ls-product__cursor-orb {
  position: absolute;
  left: var(--ls-hud-x, 50%);
  top: var(--ls-hud-y, 50%);
  width: 168px;
  height: 168px;
  border: 1px solid rgba(24,233,138,.62);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(.72);
  background:
    radial-gradient(circle, rgba(24,233,138,.16), rgba(24,233,138,.045) 38%, transparent 70%);
  box-shadow:
    0 0 0 12px rgba(24,233,138,.025),
    0 0 44px rgba(24,233,138,.22),
    inset 0 0 34px rgba(24,233,138,.08);
  backdrop-filter: blur(2px);
  transition:
    transform .42s var(--ls-ease),
    opacity .25s ease;
}

.ls-product.is-pointer-active .ls-product__cursor-orb {
  transform: translate(-50%, -50%) scale(1);
}

.ls-product__cursor-orb::before,
.ls-product__cursor-orb::after {
  content: "";
  position: absolute;
  background: rgba(24,233,138,.7);
}

.ls-product__cursor-orb::before {
  top: 50%;
  left: -26px;
  width: calc(100% + 52px);
  height: 1px;
}

.ls-product__cursor-orb::after {
  top: -26px;
  left: 50%;
  width: 1px;
  height: calc(100% + 52px);
}

.ls-product__hud-corner {
  position: absolute;
  width: 64px;
  height: 64px;
  border-color: rgba(24,233,138,.72);
  opacity: .8;
}

.ls-product__hud-corner--tl {
  top: 30px;
  left: 30px;
  border-top: 1px solid;
  border-left: 1px solid;
}

.ls-product__hud-corner--br {
  right: 30px;
  bottom: 30px;
  border-right: 1px solid;
  border-bottom: 1px solid;
}

.ls-product__hud-readout {
  position: absolute;
  right: 34px;
  bottom: 34px;
  min-width: min(330px, 46%);
  padding: 17px 18px 16px;
  border: 1px solid rgba(24,233,138,.24);
  border-radius: 14px;
  background: rgba(1,9,15,.74);
  box-shadow:
    0 20px 60px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(16px);
  transform: translateY(12px);
  transition: transform .36s var(--ls-ease);
}

.ls-product.is-pointer-active .ls-product__hud-readout {
  transform: translateY(0);
}

.ls-product__hud-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #97adbb;
  font: 700 10px/1.2 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ls-product__hud-kicker::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #18e98a;
  box-shadow: 0 0 14px rgba(24,233,138,.8);
}

.ls-product__hud-title {
  margin-top: 8px;
  color: #ffffff;
  font-size: clamp(19px,1.8vw,30px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.035em;
}

.ls-product__hud-title span {
  display: inline-block;
  color: #18e98a;
  animation: ls-hud-label-in .42s var(--ls-ease);
}

@keyframes ls-hud-label-in {
  from {
    opacity: 0;
    transform: translateY(9px);
    filter: blur(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.ls-product__hud-status {
  margin-top: 9px;
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: #b7c7d1;
  font: 650 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.ls-product__hud-status strong {
  color: #18e98a;
  font-weight: 800;
}

.ls-product__hud-trace {
  position: absolute;
  left: 8%;
  right: 8%;
  top: var(--ls-hud-y, 50%);
  height: 1px;
  background:
    linear-gradient(90deg, transparent, rgba(24,233,138,.18), #18e98a, rgba(24,233,138,.18), transparent);
  box-shadow: 0 0 18px rgba(24,233,138,.28);
  transform: translateY(-50%);
}

.ls-product__hud-trace::after {
  content: "";
  position: absolute;
  top: -3px;
  left: var(--ls-trace-x, 50%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #18e98a;
  box-shadow: 0 0 14px rgba(24,233,138,.9);
}

/* El visual reacciona con más profundidad. */
.ls-product__visual {
  perspective: 1200px;
}

.ls-product__brochure {
  transform-style: preserve-3d;
}

.ls-product__brochure img {
  transform:
    translate3d(var(--ls-image-x, 0px), var(--ls-image-y, 0px), 0)
    scale(var(--ls-image-scale, 1.03));
}

.ls-product.is-pointer-active .ls-product__brochure img {
  --ls-image-scale: 1.09;
}

/* Pulso tecnológico en hover. */
.ls-product.is-pointer-active .ls-product__brochure-scan {
  animation-duration: 1.75s;
  opacity: 1;
}

/* En móvil no se fuerza el HUD del cursor. */
@media (hover: none), (pointer: coarse) {
  .ls-product__interactive-hud {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ls-product__hud-title span {
    animation: none !important;
  }
}

/* =========================================================
   LAM SERVICES — VERSIÓN DEFINITIVA VISUAL E INTERACTIVA
   ========================================================= */

/* CONTRASTE DEFINITIVO */
body .ls-page .ls-hero__title,
body .ls-page .ls-hero__title > span,
body .ls-page .ls-section-title,
body .ls-page .ls-section-title > span,
body .ls-page .ls-final__title,
body .ls-page .ls-final__title > span {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  opacity: 1 !important;
}

body .ls-page .ls-hero__title em,
body .ls-page .ls-section-title em,
body .ls-page .ls-final__title em {
  color: #18e98a !important;
  -webkit-text-fill-color: #18e98a !important;
}

body .ls-page .ls-section-title--dark,
body .ls-page .ls-section-title--dark > span {
  color: #07131e !important;
  -webkit-text-fill-color: #07131e !important;
  text-shadow: none !important;
}

/* RESTAURA Y POTENCIA EL MOVIMIENTO DEL HERO */
.ls-hero {
  --ls-pointer-x: 50%;
  --ls-pointer-y: 50%;
  position: relative;
  isolation: isolate;
}

.ls-hero__canvas {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

.ls-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(
      560px circle at var(--ls-pointer-x) var(--ls-pointer-y),
      rgba(24,233,138,.14),
      rgba(24,233,138,.04) 34%,
      transparent 72%
    );
}

.ls-hero__grid,
.ls-hero__glow {
  will-change: transform;
}

/* TARJETAS: IMAGEN COMPLETA, SIN RECORTES */
.ls-product {
  --ls-card-x: 50%;
  --ls-card-y: 50%;
  position: relative;
  isolation: isolate;
  transform-style: preserve-3d;
  overflow: hidden;
  transition:
    transform .55s cubic-bezier(.22,1,.36,1),
    box-shadow .55s cubic-bezier(.22,1,.36,1),
    border-color .35s ease;
}

.ls-product__visual {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  background: #02070d;
  perspective: 1400px;
}

.ls-product__brochure {
  position: absolute;
  inset: 0;
  margin: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 50%, rgba(24,233,138,.055), transparent 58%),
    #02070d;
}

.ls-product__brochure img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  transform:
    translate3d(var(--ls-image-x, 0px), var(--ls-image-y, 0px), 0)
    scale(var(--ls-image-scale, 1));
  filter: saturate(1) contrast(1.03) brightness(.98);
  transition:
    transform .65s cubic-bezier(.22,1,.36,1),
    filter .45s ease;
  will-change: transform;
}

/* Desactiva el escáner antiguo repetitivo */
.ls-product__brochure-scan {
  display: none !important;
}

/* Contenido siempre legible */
body .ls-page .ls-product__copy h3 {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

body .ls-page .ls-product__copy > p:not(.ls-product__eyebrow),
body .ls-page .ls-product__features li {
  color: #cbd7df !important;
  -webkit-text-fill-color: #cbd7df !important;
}

/* CAPA INTERACTIVA ÚNICA POR SOLUCIÓN */
.ls-livefx {
  position: absolute;
  inset: 0;
  z-index: 15;
  overflow: hidden;
  pointer-events: none;
  border-radius: inherit;
  opacity: 0;
  transition: opacity .3s ease;
}

.ls-product.is-live .ls-livefx,
.ls-product.is-auto-live .ls-livefx {
  opacity: 1;
}

.ls-livefx__spot {
  position: absolute;
  left: var(--fx-x, 50%);
  top: var(--fx-y, 50%);
  width: 190px;
  height: 190px;
  border: 1px solid rgba(24,233,138,.68);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(.72);
  background:
    radial-gradient(circle, rgba(24,233,138,.14), rgba(24,233,138,.04) 42%, transparent 72%);
  box-shadow:
    0 0 0 12px rgba(24,233,138,.025),
    0 0 52px rgba(24,233,138,.22);
  transition: transform .42s cubic-bezier(.22,1,.36,1);
}

.ls-product.is-live .ls-livefx__spot,
.ls-product.is-auto-live .ls-livefx__spot {
  transform: translate(-50%, -50%) scale(1);
}

.ls-livefx__spot::before,
.ls-livefx__spot::after {
  content: "";
  position: absolute;
  background: rgba(24,233,138,.72);
}

.ls-livefx__spot::before {
  top: 50%;
  left: -34px;
  width: calc(100% + 68px);
  height: 1px;
}

.ls-livefx__spot::after {
  top: -34px;
  left: 50%;
  width: 1px;
  height: calc(100% + 68px);
}

.ls-livefx__hud {
  position: absolute;
  right: 28px;
  bottom: 28px;
  width: min(360px, 54%);
  padding: 16px 18px;
  border: 1px solid rgba(24,233,138,.28);
  border-radius: 14px;
  background: rgba(1,9,15,.78);
  box-shadow:
    0 22px 60px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(16px);
  transform: translateY(16px);
  transition: transform .38s cubic-bezier(.22,1,.36,1);
}

.ls-product.is-live .ls-livefx__hud,
.ls-product.is-auto-live .ls-livefx__hud {
  transform: translateY(0);
}

.ls-livefx__kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #9eb0bd;
  font: 700 10px/1.2 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ls-livefx__kicker::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #18e98a;
  box-shadow: 0 0 14px rgba(24,233,138,.9);
}

.ls-livefx__label {
  margin-top: 8px;
  color: #ffffff;
  font-size: clamp(20px,1.7vw,30px);
  font-weight: 820;
  line-height: 1;
  letter-spacing: -.04em;
}

.ls-livefx__label span {
  color: #18e98a;
  display: inline-block;
  animation: ls-label-in .42s cubic-bezier(.22,1,.36,1);
}

@keyframes ls-label-in {
  from {
    opacity: 0;
    transform: translateY(10px);
    filter: blur(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.ls-livefx__meta {
  margin-top: 9px;
  display: flex;
  justify-content: space-between;
  gap: 14px;
  color: #b8c8d2;
  font: 650 11px/1.4 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.ls-livefx__meta strong {
  color: #18e98a;
}

/* Marcadores específicos */
.ls-livefx__markers {
  position: absolute;
  inset: 0;
}

.ls-livefx__marker {
  position: absolute;
  width: 74px;
  height: 52px;
  border: 1px solid rgba(24,233,138,.72);
  opacity: 0;
  transform: scale(.82);
  animation: ls-marker-pulse 2.4s ease-in-out infinite;
}

.ls-product.is-live .ls-livefx__marker,
.ls-product.is-auto-live .ls-livefx__marker {
  opacity: 1;
}

.ls-livefx__marker::after {
  content: attr(data-label);
  position: absolute;
  left: 0;
  bottom: calc(100% + 6px);
  white-space: nowrap;
  color: #18e98a;
  font: 750 9px/1 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ls-livefx__marker:nth-child(1) { left: 18%; top: 27%; }
.ls-livefx__marker:nth-child(2) { right: 16%; top: 22%; animation-delay: .38s; }
.ls-livefx__marker:nth-child(3) { right: 24%; bottom: 19%; animation-delay: .76s; }

@keyframes ls-marker-pulse {
  0%,100% { transform: scale(.84); box-shadow: 0 0 0 rgba(24,233,138,0); }
  50% { transform: scale(1); box-shadow: 0 0 28px rgba(24,233,138,.2); }
}

/* Variaciones visuales por servicio */
.ls-livefx[data-theme="alert"] .ls-livefx__marker {
  border-color: rgba(255,73,73,.84);
}

.ls-livefx[data-theme="alert"] .ls-livefx__marker::after {
  color: #ff6262;
}

.ls-livefx[data-theme="alert"] .ls-livefx__spot {
  border-color: rgba(255,73,73,.72);
  background:
    radial-gradient(circle, rgba(255,73,73,.13), rgba(255,73,73,.035) 42%, transparent 72%);
  box-shadow: 0 0 48px rgba(255,73,73,.2);
}

.ls-livefx[data-theme="count"] .ls-livefx__marker {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

.ls-livefx[data-theme="access"] .ls-livefx__spot {
  border-radius: 22%;
}

.ls-product.is-live,
.ls-product.is-auto-live {
  border-color: rgba(24,233,138,.34);
  box-shadow:
    0 48px 130px rgba(0,0,0,.24),
    0 0 72px rgba(24,233,138,.075);
}

.ls-product.is-live .ls-product__brochure img,
.ls-product.is-auto-live .ls-product__brochure img {
  filter: saturate(1.08) contrast(1.06) brightness(1.02);
}

/* Touch: efecto automático, no depende del cursor */
@media (hover: none), (pointer: coarse) {
  .ls-livefx__spot {
    left: 58%;
    top: 44%;
    width: 142px;
    height: 142px;
  }

  .ls-livefx__hud {
    right: 18px;
    bottom: 18px;
    width: calc(100% - 36px);
  }

  .ls-product.is-auto-live .ls-product__brochure img {
    animation: ls-touch-breathe 5.2s ease-in-out infinite;
  }

  @keyframes ls-touch-breathe {
    0%,100% { transform: scale(1); }
    50% { transform: scale(1.045); }
  }
}

/* Responsive */
@media (max-width: 720px) {
  .ls-livefx__marker {
    width: 54px;
    height: 38px;
  }

  .ls-livefx__hud {
    padding: 13px 14px;
  }

  .ls-livefx__meta {
    font-size: 9px;
  }
}

/* El movimiento principal se conserva aunque el sistema tenga reducción de movimiento.
   Solo se suavizan los efectos intensos. */
@media (prefers-reduced-motion: reduce) {
  .ls-livefx__marker,
  .ls-livefx__label span,
  .ls-product.is-auto-live .ls-product__brochure img {
    animation-duration: 8s !important;
  }
}

/* =========================================================
   SERVICIOS V2 — PANTALLA COMPLETA + AUDIO MULTIPISTA
   Conserva contenidos, colores, animaciones y estructura.
   ========================================================= */

/* Cada solución ocupa toda la anchura y una pantalla completa en escritorio. */
@media (min-width: 1101px) {
  .ls-products > .ls-shell {
    width: 100%;
    max-width: none;
    padding-inline: 0;
  }

  .ls-products .ls-section-head {
    width: min(100%, var(--ls-max));
    margin-inline: auto;
    padding-inline: var(--ls-gutter);
  }

  .ls-product-stack {
    gap: 0;
  }

  .ls-product,
  .ls-product:nth-child(even) {
    width: 100%;
    min-height: 100svh;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .ls-product:nth-child(even) {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  }

  .ls-product__copy {
    padding-right: clamp(44px, 6vw, 112px);
    padding-left: clamp(44px, 6vw, 112px);
  }

  .ls-product__visual,
  .ls-product__brochure,
  .ls-product__brochure img {
    min-height: 100%;
  }

  .ls-product__brochure img {
    inset: 0;
    width: 100%;
    height: 100%;
  }
}

/* Evita cortes de descendentes, letras pegadas y palabras partidas. */
.ls-hero__title,
.ls-section-title,
.ls-final__title,
.ls-product__copy h3 {
  overflow: visible;
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

.ls-hero__title > span,
.ls-section-title > span,
.ls-final__title > span {
  overflow: visible;
  padding-top: .03em;
  padding-bottom: .15em;
}

.ls-hero__title,
.ls-section-title,
.ls-final__title {
  line-height: .96;
  letter-spacing: -.058em;
}

.ls-product__copy h3 {
  padding-bottom: .12em;
  font-size: clamp(40px, 3.75vw, 72px);
  line-height: 1.01;
  letter-spacing: -.045em;
}

/* Elimina el espacio blanco residual después del último producto. */
.ls-products > .ls-shell {
  padding-bottom: 0 !important;
}

/* Reproductor de Servicios: mismo diseño exacto del reproductor de Inicio. */
.ls-audio-player,
.ls-audio-player * {
  box-sizing: border-box;
}

.ls-audio-player {
  position: fixed;
  z-index: 9998;
  right: 14px;
  bottom: 14px;
  display: grid;
  grid-template-columns: auto minmax(112px, auto) 30px 30px minmax(88px, 118px);
  align-items: center;
  gap: 7px;
  min-height: 46px;
  padding: 6px 8px;
  overflow: visible;
  border: 1px solid rgba(24, 233, 138, .48);
  border-radius: 15px;
  background: rgba(3, 13, 22, .92);
  color: #fff;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .24);
  backdrop-filter: blur(14px);
}

.ls-audio-player button,
.ls-audio-player input {
  font: inherit;
}

.ls-audio-player button {
  border: 0;
  color: inherit;
  cursor: pointer;
}

.ls-audio-player__toggle {
  min-height: 32px;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border-right: 1px solid rgba(255,255,255,.12) !important;
  background: transparent;
}

.ls-audio-player__toggle-text {
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ls-audio-player__bars {
  width: 22px;
  height: 19px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  color: var(--ls-green);
}

.ls-audio-player__bars i {
  width: 2px;
  height: 7px;
  border-radius: 10px;
  background: currentColor;
  opacity: .45;
}

.ls-audio-player.is-playing .ls-audio-player__bars i {
  opacity: 1;
  animation: ls-audio-bars 900ms ease-in-out infinite alternate;
}

.ls-audio-player.is-playing .ls-audio-player__bars i:nth-child(2) { animation-delay: -220ms; }
.ls-audio-player.is-playing .ls-audio-player__bars i:nth-child(3) { animation-delay: -480ms; }
.ls-audio-player.is-playing .ls-audio-player__bars i:nth-child(4) { animation-delay: -140ms; }

@keyframes ls-audio-bars {
  from { height: 5px; }
  to { height: 18px; }
}

.ls-audio-player__meta {
  min-width: 0;
  padding: 0;
  display: grid;
  gap: 2px;
}

.ls-audio-player__eyebrow {
  color: #8fa3b5;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ls-audio-player__track {
  overflow: hidden;
  color: var(--ls-green);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .05em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ls-audio-player__nav {
  width: 30px;
  height: 30px;
  min-height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 50%;
  background: rgba(255,255,255,.045);
  font-size: 18px !important;
  line-height: 1;
  transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.ls-audio-player__nav:hover {
  transform: translateY(-1px);
  border-color: rgba(24,233,138,.58) !important;
  background: rgba(24,233,138,.10);
}

.ls-audio-player__volume {
  width: auto;
  padding: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 5px;
  border-left: 0;
  color: #8fa3b5;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .08em;
}

.ls-audio-player__volume span {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

.ls-audio-player__volume input {
  width: 100%;
  height: 3px;
  margin: 0;
  padding: 0;
  accent-color: var(--ls-green);
  cursor: pointer;
}

.ls-audio-player button:focus-visible,
.ls-audio-player input:focus-visible {
  outline: 2px solid rgba(24,233,138,.62);
  outline-offset: 2px;
}

.ls-audio-player.is-blocked .ls-audio-player__bars {
  opacity: .55;
}

/* Oculta el control anterior si permanece en caché. */
.ls-sound {
  display: none !important;
}

@media (max-width: 760px) {
  .ls-audio-player {
    right: 9px;
    bottom: 9px;
    grid-template-columns: auto minmax(92px, auto) 28px 28px;
    gap: 5px;
    min-height: 42px;
    padding: 5px 6px;
  }

  .ls-audio-player__volume {
    display: none;
  }

  .ls-audio-player__toggle {
    min-height: 32px;
    padding-inline: 6px;
  }

  .ls-audio-player__toggle-text,
  .ls-audio-player__track {
    font-size: 8px;
  }

  .ls-audio-player__nav {
    width: 28px;
    height: 28px;
    min-height: 28px;
  }

  .ls-product__copy h3 {
    font-size: clamp(36px, 10.5vw, 52px);
    line-height: 1.02;
  }
}

/* Flecha de retorno de Blocksy: evita que quede cubierta por el reproductor. */
.ct-back-to-top,
[data-id="scroll-top"],
[data-device="desktop"] .ct-back-to-top {
  bottom: 92px !important;
  z-index: 1001 !important;
}

@media (max-width: 760px) {
  .ct-back-to-top,
  [data-id="scroll-top"],
  [data-device="mobile"] .ct-back-to-top {
    bottom: 66px !important;
  }
}

/* =========================================================
   RENDIMIENTO SERVICIOS — móvil y escritorio
   ========================================================= */

/* Evita procesar de inmediato las secciones que están debajo del Hero. */
.ls-products,
.ls-architecture,
.ls-industries,
.ls-final {
  content-visibility: auto;
  contain-intrinsic-size: 1px 1200px;
}

/* El navegador puede aislar el trabajo de cada tarjeta. */
.ls-product {
  contain: layout paint style;
}

@media (max-width: 760px) {
  /* En móvil se conserva el diseño, reduciendo efectos costosos fuera del foco. */
  .ls-hero__glow {
    filter: blur(12px);
  }

  .ls-product:not(.is-auto-live) .ls-product__brochure-scan,
  .ls-product:not(.is-auto-live) .ls-livefx__scan,
  .ls-product:not(.is-auto-live) .ls-livefx__pulse {
    animation-play-state: paused !important;
  }

  .ls-hero__ticker-track {
    animation-duration: 42s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ls-hero__canvas {
    display: none;
  }
}
