/* ============================================================================
   LOBBY COMERCIAL ALTERXPERT — Midnight Editorial
   Paleta oficial del brief (cap. IX): tinta noche, marfil, latón, niebla, sello.
   Cero gradientes, cero neón, cero sombras dramáticas.
   ============================================================================ */

/* ---------- Fuentes (self-hosted, variables) ---------- */
@font-face {
  font-family: 'Fraunces';
  src: url('../fonts/lobby/fraunces.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Fraunces';
  src: url('../fonts/lobby/fraunces-italic.woff2') format('woff2');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Inter Tight';
  src: url('../fonts/lobby/inter-tight.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'JetBrains Mono';
  src: url('../fonts/lobby/jetbrains-mono.woff2') format('woff2');
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
  --lx-tinta:    #0F1A2E;
  --lx-tinta-2:  #14203a;   /* superficie levantada sobre tinta */
  --lx-tinta-3:  #0b1322;   /* pozo, más profundo que la base */
  --lx-marfil:   #F1ECDD;
  --lx-marfil-2: #e8e1cd;   /* papel levemente más denso */
  --lx-laton:    #C9A24A;
  --lx-niebla:   #6B7A8F;
  --lx-sello:    #8C2A1F;

  --lx-serif: 'Fraunces', Georgia, serif;
  --lx-sans:  'Inter Tight', system-ui, sans-serif;
  --lx-mono:  'JetBrains Mono', ui-monospace, monospace;

  --lx-nav-h: 68px;
  --lx-radius: 2px;         /* casi recto: documento institucional */
  --lx-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------- Reset mínimo ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }

body {
  font-family: var(--lx-sans);
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  max-width: 100%;
}

/* Temas: una página, un tema. Sin inversiones a mitad de scroll. */
body.lx-night {
  background: var(--lx-tinta);
  color: var(--lx-marfil);
  --lx-fg:        var(--lx-marfil);
  --lx-fg-muted:  var(--lx-niebla);
  --lx-bg:        var(--lx-tinta);
  --lx-line:      rgba(107, 122, 143, 0.24);
  --lx-line-soft: rgba(107, 122, 143, 0.13);
}
body.lx-paper {
  background: var(--lx-marfil);
  color: var(--lx-tinta);
  --lx-fg:        var(--lx-tinta);
  --lx-fg-muted:  var(--lx-niebla);
  --lx-bg:        var(--lx-marfil);
  --lx-line:      rgba(15, 26, 46, 0.18);
  --lx-line-soft: rgba(15, 26, 46, 0.09);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; background: none; border: 0; cursor: pointer; color: inherit; }

::selection { background: var(--lx-laton); color: var(--lx-tinta); }

/* ---------- Contenedores ---------- */
.lx-wrap      { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.lx-wrap-wide { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.lx-main      { position: relative; z-index: 1; }

/* ---------- Canvas de fondo (solo index) ---------- */
.lx-scene {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

/* ---------- Fondo multimedia administrable (video / imagen / gif) ---------- */
.lx-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.lx-bg video,
.lx-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.lx-bg-veil {
  position: absolute;
  inset: 0;
  background: var(--lx-tinta);
}

/* ---------- Secciones custom: bloques del constructor ---------- */
.lx-blocks {
  margin-top: 2.4rem;
  display: flex;
  flex-direction: column;
  gap: 2.2rem;
  align-items: flex-start;
}
.lx-block-title {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
  line-height: 1.3;
  max-width: 26ch;
}
.lx-block-text { max-width: 62ch; }
.lx-block-video { position: relative; width: 100%; }
.lx-block-video video {
  width: 100%;
  display: block;
  border: 1px solid var(--lx-line-soft);
  border-radius: var(--lx-radius);
  background: var(--lx-tinta-3, #0b1322);
}
.lx-video-sound {
  position: absolute;
  right: 14px;
  bottom: 14px;
  font-family: var(--lx-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--lx-marfil);
  background: rgba(15, 26, 46, 0.75);
  border: 1px solid rgba(201, 162, 74, 0.5);
  border-radius: var(--lx-radius);
  padding: 0.55rem 0.95rem;
  transition: border-color 0.25s;
}
.lx-video-sound:hover { border-color: var(--lx-laton); }
.lx-block-img { width: 100%; }
.lx-block-img img {
  width: 100%;
  border: 1px solid var(--lx-line-soft);
  border-radius: var(--lx-radius);
}
.lx-block-img figcaption {
  margin-top: 0.7rem;
  font-family: var(--lx-mono);
  font-weight: 300;
  font-size: 0.78rem;
  color: var(--lx-fg-muted);
}
.lx-block-3d {
  width: 100%;
  position: relative;
  border: 1px solid var(--lx-line-soft);
  border-radius: var(--lx-radius);
  overflow: hidden;
}
.lx-block-3d canvas { display: block; width: 100% !important; height: 100% !important; }
.lx-3d-error::after {
  content: 'No se pudo cargar el modelo 3D.';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--lx-mono);
  font-size: 0.8rem;
  color: var(--lx-fg-muted);
}

/* ---------- Galería de fotografías ---------- */
.lx-gallery {
  margin-top: 3rem;
  display: flex;
  gap: 1.6rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 1rem;
  scrollbar-width: thin;
  scrollbar-color: var(--lx-niebla) transparent;
}
.lx-gallery-item {
  flex: 0 0 min(420px, 78vw);
  scroll-snap-align: start;
}
.lx-gallery-item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--lx-line-soft);
  border-radius: var(--lx-radius);
  filter: saturate(0.85);
  transition: filter 0.4s var(--lx-ease);
}
.lx-gallery-item:hover img { filter: saturate(1); }
.lx-gallery-item figcaption {
  margin-top: 0.8rem;
  font-family: var(--lx-mono);
  font-weight: 300;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--lx-fg-muted);
}

/* ---------- Tipografía ---------- */
.lx-eyebrow {
  font-family: var(--lx-mono);
  font-weight: 300;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--lx-laton);
  margin-bottom: 1.5rem;
}
.lx-eyebrow-sello { color: #c05a4d; } /* sello aclarado para AA sobre tinta */
body.lx-paper .lx-eyebrow-sello { color: var(--lx-sello); }

.lx-h1 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(2.4rem, 5.2vw, 4.2rem);
  line-height: 1.12;
  letter-spacing: -0.01em;
}
.lx-h2 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  line-height: 1.18;
  letter-spacing: -0.01em;
  max-width: 21ch;
}
.lx-body {
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--lx-fg);
  opacity: 0.88;
  max-width: 62ch;
}
.lx-lead { font-size: 1.15rem; margin-top: 1.25rem; }
.lx-body + .lx-body { margin-top: 1.1rem; }

.lx-link {
  font-family: var(--lx-mono);
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--lx-laton);
  border-bottom: 1px solid rgba(201, 162, 74, 0.35);
  padding-bottom: 2px;
  transition: border-color 0.3s var(--lx-ease);
}
.lx-link:hover { border-color: var(--lx-laton); }

/* ---------- Botones ---------- */
.lx-btn {
  display: inline-block;
  font-family: var(--lx-mono);
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 1rem 2rem;
  border-radius: var(--lx-radius);
  white-space: nowrap;
  transition: transform 0.25s var(--lx-ease), background-color 0.25s var(--lx-ease),
              border-color 0.25s var(--lx-ease), color 0.25s var(--lx-ease);
}
.lx-btn:active { transform: translateY(1px); }
.lx-btn-laton {
  background: var(--lx-laton);
  color: var(--lx-tinta);
  border: 1px solid var(--lx-laton);
}
.lx-btn-laton:hover { background: #d5b264; border-color: #d5b264; }
.lx-btn-ghost {
  border: 1px solid var(--lx-line);
  color: var(--lx-fg);
}
.lx-btn-ghost:hover { border-color: var(--lx-fg-muted); }

/* ---------- Navegación ---------- */
.lx-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 40;
  transition: background-color 0.4s var(--lx-ease), border-color 0.4s var(--lx-ease);
  border-bottom: 1px solid transparent;
}
.lx-nav.is-scrolled {
  background: rgba(15, 26, 46, 0.92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom-color: var(--lx-line-soft);
}
body.lx-paper .lx-nav.is-scrolled {
  background: rgba(241, 236, 221, 0.94);
}
.lx-nav-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  /* min-height (no height fijo): si el logo (zona 'lobby') usa zoom/margen grandes,
     la barra crece para contenerlo en vez de recortarlo/superponerlo. */
  min-height: var(--lx-nav-h);
  display: flex;
  align-items: center;
  gap: 2.5rem;
}

.lx-brand {
  font-family: var(--lx-serif);
  font-weight: 500;
  font-size: 1.25rem;
  letter-spacing: 0.01em;
  color: var(--lx-fg);
}
.lx-brand span { color: var(--lx-laton); }

/* Logo configurable (zona 'lobby', Admin → Configuración → Identidad) */
.lx-brand.has-logo { display: inline-flex; align-items: center; }
.lx-brand-img {
  max-height: 32px; max-width: 170px; width: auto; object-fit: contain;
  transform: scale(var(--plat-logo-zoom, 1));
  margin: var(--plat-logo-margin, 0);
}
.lx-brand.logo-pos-center { justify-content: center; }
.lx-brand.logo-pos-right  { justify-content: flex-end; }
.lx-brand.logo-pos-left   .lx-brand-img { transform-origin: left center; }
.lx-brand.logo-pos-center .lx-brand-img { transform-origin: center center; }
.lx-brand.logo-pos-right  .lx-brand-img { transform-origin: right center; }

.lx-menu {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: auto;
}
.lx-menu-item { position: relative; display: flex; align-items: center; }
.lx-menu-link {
  font-size: 0.92rem;
  font-weight: 500;
  padding: 0.6rem 0.7rem 0.6rem 0.9rem;
  color: var(--lx-fg);
  opacity: 0.82;
  transition: opacity 0.25s;
}
.lx-menu-item:hover .lx-menu-link,
.lx-menu-item.is-active .lx-menu-link { opacity: 1; }
.lx-menu-item.is-active .lx-menu-link { color: var(--lx-laton); }
.lx-menu-caret {
  padding: 0.4rem 0.5rem 0.3rem 0;
  color: var(--lx-fg-muted);
  transition: transform 0.3s var(--lx-ease);
}
.lx-menu-item:hover .lx-menu-caret,
.lx-menu-item.is-open .lx-menu-caret { transform: rotate(180deg); }

.lx-submenu {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 250px;
  background: var(--lx-tinta-2);
  border: 1px solid var(--lx-line-soft);
  border-radius: var(--lx-radius);
  padding: 0.6rem 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.3s var(--lx-ease), transform 0.3s var(--lx-ease), visibility 0.3s;
}
body.lx-paper .lx-submenu {
  background: #faf7ee;
  border-color: var(--lx-line);
}
.lx-menu-item:hover .lx-submenu,
.lx-menu-item.is-open .lx-submenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.lx-submenu a {
  display: block;
  padding: 0.55rem 1.3rem;
  font-size: 0.88rem;
  color: var(--lx-fg);
  opacity: 0.85;
  transition: opacity 0.2s, padding-left 0.25s var(--lx-ease);
}
.lx-submenu a:hover { opacity: 1; padding-left: 1.55rem; color: var(--lx-laton); }

.lx-nav-actions {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}
.lx-sound {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border: 1px solid var(--lx-line);
  border-radius: 50%;
  color: var(--lx-fg-muted);
  transition: color 0.25s, border-color 0.25s;
}
.lx-sound:hover { color: var(--lx-fg); border-color: var(--lx-fg-muted); }
.lx-sound[aria-pressed="true"] { color: var(--lx-laton); border-color: rgba(201, 162, 74, 0.5); }
.lx-sound .lx-sound-on  { display: none; }
.lx-sound .lx-sound-off { display: block; }
.lx-sound[aria-pressed="true"] .lx-sound-on  { display: block; }
.lx-sound[aria-pressed="true"] .lx-sound-off { display: none; }

.lx-access {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--lx-fg);
  opacity: 0.7;
  transition: opacity 0.25s;
  white-space: nowrap;
}
.lx-access:hover { opacity: 1; }
.lx-cta-nav {
  font-family: var(--lx-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.65rem 1.2rem;
  background: var(--lx-laton);
  color: var(--lx-tinta);
  border-radius: var(--lx-radius);
  white-space: nowrap;
  transition: background-color 0.25s var(--lx-ease);
}
.lx-cta-nav:hover { background: #d5b264; }

.lx-burger { display: none; }

/* Menú móvil */
.lx-mobile {
  background: var(--lx-tinta);
  border-top: 1px solid var(--lx-line-soft);
  padding: 1.5rem 24px 2.5rem;
  max-height: calc(100dvh - var(--lx-nav-h));
  overflow-y: auto;
}
body.lx-paper .lx-mobile { background: var(--lx-marfil); }
.lx-mobile-group { border-bottom: 1px solid var(--lx-line-soft); padding: 0.9rem 0; }
.lx-mobile-link {
  font-family: var(--lx-serif);
  font-size: 1.25rem;
  color: var(--lx-fg);
  display: block;
  margin-bottom: 0.4rem;
}
.lx-mobile-sub { display: flex; flex-direction: column; gap: 0.15rem; padding-left: 0.2rem; }
.lx-mobile-sub a {
  font-size: 0.88rem;
  color: var(--lx-fg-muted);
  padding: 0.25rem 0;
}
.lx-mobile-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.2rem;
  padding-top: 1.6rem;
}

/* ---------- Hero (index) ---------- */
.lx-hero {
  min-height: 100dvh;
  display: flex;
  align-items: center;
  padding-top: var(--lx-nav-h);
}
.lx-hero-title {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(2.3rem, 4.6vw, 4.3rem);
  line-height: 1.16;
  letter-spacing: -0.015em;
  max-width: 30ch;
}
.lx-hero-title em {
  font-style: italic;
  font-weight: 300;
  color: var(--lx-laton);
}
.lx-line {
  display: block;
  overflow: hidden;
  /* holgura para descendentes de la itálica dentro del recorte */
  padding-bottom: 0.12em;
  margin-bottom: -0.12em;
}
.lx-line > .lx-line-in { display: block; }
.lx-hero-sub {
  margin-top: 1.8rem;
  font-size: 1.18rem;
  color: var(--lx-fg);
  opacity: 0.85;
  max-width: 46ch;
}
.lx-hero-ctas {
  margin-top: 2.6rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

/* ---------- Secciones narrativas ---------- */
.lx-act { padding: clamp(7rem, 14vh, 11rem) 0; }

.lx-act-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 4rem;
  align-items: start;
}
.lx-pull { padding-top: 3.2rem; }
.lx-quote {
  font-family: var(--lx-serif);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
  line-height: 1.4;
  color: var(--lx-fg);
  border-left: 2px solid var(--lx-laton);
  padding-left: 1.6rem;
  padding-bottom: 0.3rem;
}
.lx-pull figcaption {
  font-family: var(--lx-mono);
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lx-fg-muted);
  margin-top: 1.1rem;
  padding-left: 1.6rem;
}
.lx-pull-center { max-width: 640px; margin: 5rem auto 0; padding-top: 0; }

.lx-h2 + .lx-ledger,
.lx-h2 + .lx-body { margin-top: 2rem; }

/* Falsas salidas: libro mayor, filas asimétricas */
.lx-ledger { margin-top: 3.5rem; }
.lx-ledger-row {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: 2rem;
  padding: 2.1rem 0;
  border-top: 1px solid var(--lx-line-soft);
}
.lx-ledger-row:last-child { border-bottom: 1px solid var(--lx-line-soft); }
.lx-ledger-row h3 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: 1.35rem;
}
.lx-ledger-row p { color: var(--lx-fg); opacity: 0.78; max-width: 52ch; }
.lx-conclusion {
  margin-top: 2.8rem;
  font-family: var(--lx-serif);
  font-style: italic;
  font-size: 1.25rem;
  opacity: 1;
}

/* Declaración central (antagonista / cierres) */
.lx-statement {
  padding: clamp(9rem, 20vh, 15rem) 0;
  text-align: left;
}
.lx-statement-text {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(1.9rem, 4.2vw, 3.4rem);
  line-height: 1.28;
  max-width: 26ch;
}
.lx-statement-text .w { display: inline; }
.lx-statement-inner { padding: clamp(6rem, 12vh, 9rem) 0; }

/* Arquitectura (acto 3) */
.lx-arch { margin-top: 4rem; }
.lx-arch-item {
  display: grid;
  grid-template-columns: 90px minmax(0, 4fr) minmax(0, 6fr);
  gap: 2rem;
  align-items: baseline;
  padding: 2.4rem 0;
  border-top: 1px solid var(--lx-line-soft);
}
.lx-arch-item:last-child { border-bottom: 1px solid var(--lx-line-soft); }
.lx-arch-num {
  font-family: var(--lx-mono);
  font-weight: 300;
  font-size: 0.85rem;
  color: var(--lx-laton);
}
.lx-arch-item h3 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: 1.45rem;
  line-height: 1.3;
}
.lx-arch-item p { color: var(--lx-fg); opacity: 0.78; }
.lx-more { margin-top: 3rem; }

/* ---------- El método: recorrido horizontal ---------- */
.lx-method { position: relative; }
.lx-method-pin {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  padding: calc(var(--lx-nav-h) + 2rem) 0 3rem;
}
.lx-method-head { width: 100%; margin-bottom: 3.5rem; }
.lx-method-track {
  display: flex;
  gap: 2rem;
  padding: 0 max(24px, calc((100vw - 1140px) / 2));
  width: max-content;
}
.lx-station {
  width: min(420px, 82vw);
  flex-shrink: 0;
  border: 1px solid var(--lx-line-soft);
  border-radius: var(--lx-radius);
  background: rgba(20, 32, 58, 0.55);
  padding: 2.6rem 2.4rem 2.8rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.lx-station-num {
  font-family: var(--lx-mono);
  font-weight: 300;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lx-laton);
}
.lx-station h3 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: 1.7rem;
  line-height: 1.2;
}
.lx-station-tag {
  font-family: var(--lx-mono);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: var(--lx-fg-muted);
}
.lx-station p:not(.lx-station-tag) { opacity: 0.82; line-height: 1.7; }
.lx-station-cta {
  border: 0;
  background: none;
  justify-content: center;
  align-items: flex-start;
}

/* ---------- Split (modelo de socio / quién no) ---------- */
.lx-split {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: 4.5rem;
  align-items: start;
}
.lx-split .lx-h2 { max-width: 17ch; }

/* ---------- Señales ---------- */
.lx-signals {
  list-style: none;
  margin-top: 3.2rem;
  max-width: 780px;
}
.lx-signals li {
  font-family: var(--lx-serif);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.25rem, 2.4vw, 1.7rem);
  line-height: 1.45;
  padding: 1.5rem 0 1.5rem 1.8rem;
  border-left: 1px solid var(--lx-line);
  transition: border-color 0.4s var(--lx-ease), padding-left 0.4s var(--lx-ease);
}
.lx-signals li:hover { border-left-color: var(--lx-laton); padding-left: 2.2rem; }

/* ---------- Invitación contenida ---------- */
.lx-invite {
  padding: clamp(8rem, 16vh, 13rem) 0;
  border-top: 1px solid var(--lx-line-soft);
}
.lx-invite-title {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height: 1.2;
  max-width: 20ch;
}
.lx-invite-body { margin-top: 1.8rem; max-width: 56ch; }

/* ---------- Footer ---------- */
.lx-footer {
  border-top: 1px solid var(--lx-line-soft);
  padding: 5rem 0 2.5rem;
  position: relative;
  z-index: 1;
}
.lx-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 4rem;
}
.lx-footer-tagline {
  margin-top: 1.2rem;
  font-family: var(--lx-serif);
  font-style: italic;
  font-weight: 300;
  font-size: 1.1rem;
  color: var(--lx-fg);
  opacity: 0.75;
  max-width: 30ch;
}
.lx-footer-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}
.lx-footer-cols h4 {
  font-family: var(--lx-mono);
  font-weight: 400;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lx-fg-muted);
  margin-bottom: 1.1rem;
}
.lx-footer-cols a {
  display: block;
  font-size: 0.92rem;
  color: var(--lx-fg);
  opacity: 0.8;
  padding: 0.28rem 0;
  transition: opacity 0.2s, color 0.2s;
}
.lx-footer-cols a:hover { opacity: 1; color: var(--lx-laton); }
.lx-footer-quote {
  margin: 4.5rem 0 0;
  font-family: var(--lx-serif);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  line-height: 1.5;
  color: var(--lx-fg);
  opacity: 0.65;
  max-width: 44ch;
}
.lx-footer-base {
  margin-top: 3.5rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--lx-line-soft);
  display: flex;
  justify-content: space-between;
  font-family: var(--lx-mono);
  font-weight: 300;
  font-size: 0.75rem;
  color: var(--lx-fg-muted);
}

/* ---------- Páginas interiores ---------- */
.lx-page-hero {
  padding: calc(var(--lx-nav-h) + clamp(5rem, 12vh, 9rem)) 0 clamp(4rem, 8vh, 6rem);
}

/* Método: estaciones completas */
.lx-stations { padding-bottom: clamp(4rem, 8vh, 7rem); }
.lx-station-full {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 3rem;
  padding: 3.4rem 0;
  border-top: 1px solid var(--lx-line-soft);
}
.lx-station-full:last-child { border-bottom: 1px solid var(--lx-line-soft); }
.lx-station-side {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.lx-station-full h2 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin-bottom: 1.1rem;
}
.lx-station-purpose {
  margin-top: 1.4rem;
  font-family: var(--lx-serif);
  font-style: italic;
  font-weight: 300;
  font-size: 1.12rem;
  line-height: 1.55;
  color: var(--lx-laton);
  max-width: 48ch;
}

/* Infraestructura: capas */
.lx-layers { padding-bottom: clamp(4rem, 8vh, 7rem); }
.lx-layer {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 2.5rem;
  padding: 3rem 0;
  border-top: 1px solid var(--lx-line-soft);
  align-items: baseline;
}
.lx-layer:last-child { border-bottom: 1px solid var(--lx-line-soft); }
.lx-layer-num {
  font-family: var(--lx-mono);
  font-weight: 300;
  font-size: 1.6rem;
  color: var(--lx-laton);
}
.lx-layer h2 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(1.45rem, 2.6vw, 1.9rem);
  line-height: 1.28;
  margin-bottom: 0.9rem;
  max-width: 26ch;
}

/* Filosofía: manifiesto */
.lx-manifesto {
  padding: calc(var(--lx-nav-h) + clamp(5rem, 12vh, 9rem)) 0 clamp(5rem, 10vh, 8rem);
}
.lx-manifesto-text {
  margin-top: 1rem;
  max-width: 820px;
}
.lx-manifesto-text p {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(1.4rem, 2.8vw, 2.1rem);
  line-height: 1.45;
}
.lx-manifesto-text p + p { margin-top: 2.4rem; }
.lx-manifesto-close em {
  font-style: italic;
  font-weight: 300;
  color: var(--lx-sello);
}

/* Filosofía: valores */
.lx-values { padding: clamp(5rem, 10vh, 8rem) 0; border-top: 1px solid var(--lx-line-soft); }
.lx-values-grid {
  margin-top: 3.5rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--lx-line-soft);
}
.lx-value {
  padding: 2.4rem 2.5rem 2.6rem 0;
  border-bottom: 1px solid var(--lx-line-soft);
}
.lx-value:nth-child(odd) { border-right: 1px solid var(--lx-line-soft); }
.lx-value:nth-child(even) { padding-left: 2.5rem; padding-right: 0; }
.lx-value h3 {
  font-family: var(--lx-serif);
  font-weight: 500;
  font-size: 1.3rem;
  margin-bottom: 0.7rem;
}
.lx-value p { font-size: 0.98rem; line-height: 1.7; opacity: 0.8; }

/* Filosofía: voz */
.lx-voice { padding: clamp(5rem, 10vh, 8rem) 0; border-top: 1px solid var(--lx-line-soft); }
.lx-voice-grid {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3rem;
  max-width: 720px;
}
.lx-voice-col h3 {
  font-family: var(--lx-mono);
  font-weight: 400;
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--lx-fg-muted);
  margin-bottom: 1.2rem;
}
.lx-voice-col ul { list-style: none; }
.lx-voice-col li {
  font-family: var(--lx-serif);
  font-size: 1.3rem;
  padding: 0.45rem 0;
}
.lx-voice-col-not li {
  color: var(--lx-fg-muted);
  text-decoration: line-through;
  text-decoration-color: rgba(140, 42, 31, 0.55);
  text-decoration-thickness: 1px;
}

/* Perfil: dimensiones */
.lx-dims { padding-bottom: clamp(4rem, 8vh, 6rem); }
.lx-dims-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--lx-line-soft);
  border-left: 1px solid var(--lx-line-soft);
}
.lx-dim {
  border-right: 1px solid var(--lx-line-soft);
  border-bottom: 1px solid var(--lx-line-soft);
  padding: 2.2rem 2rem 2.5rem;
}
.lx-dim h3 {
  font-family: var(--lx-mono);
  font-weight: 400;
  font-size: 0.75rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--lx-laton);
  margin-bottom: 1rem;
}
body.lx-paper .lx-dim h3 { color: #8a6a24; } /* latón oscurecido para AA sobre marfil */
.lx-dim p { font-size: 0.98rem; line-height: 1.7; opacity: 0.85; }

.lx-whonot { padding: clamp(5rem, 10vh, 8rem) 0; }
.lx-no-list { list-style: none; margin-top: 1.8rem; }
.lx-no-list li {
  padding: 0.85rem 0 0.85rem 1.5rem;
  border-left: 1px solid rgba(140, 42, 31, 0.4);
  font-size: 1.02rem;
  opacity: 0.85;
}
.lx-no-list li + li { margin-top: 0.4rem; }

.lx-moment { padding: clamp(4rem, 8vh, 7rem) 0 clamp(5rem, 10vh, 8rem); border-top: 1px solid var(--lx-line-soft); }
.lx-signals-paper li { border-left-color: var(--lx-line); }

/* ---------- Diagnóstico: formulario ---------- */
.lx-diag { padding: calc(var(--lx-nav-h) + clamp(4rem, 10vh, 7rem)) 0 clamp(6rem, 12vh, 9rem); }
.lx-diag-grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  gap: 5rem;
  align-items: start;
}
.lx-diag-copy .lx-h1 { margin-bottom: 1.6rem; }
.lx-diag-quote { padding-top: 2.5rem; }

.lx-form {
  background: #faf7ee;
  border: 1px solid var(--lx-line);
  border-radius: var(--lx-radius);
  padding: 2.6rem 2.4rem 2.8rem;
}
.lx-field { margin-bottom: 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
.lx-field label {
  font-family: var(--lx-mono);
  font-weight: 400;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lx-tinta);
}
.lx-field input,
.lx-field select,
.lx-field textarea {
  font-family: var(--lx-sans);
  font-size: 1rem;
  color: var(--lx-tinta);
  background: var(--lx-marfil);
  border: 1px solid var(--lx-line);
  border-radius: var(--lx-radius);
  padding: 0.8rem 0.95rem;
  width: 100%;
  transition: border-color 0.25s;
}
.lx-field textarea { resize: vertical; }
.lx-field input::placeholder,
.lx-field textarea::placeholder { color: rgba(15, 26, 46, 0.45); }
.lx-field input:focus,
.lx-field select:focus,
.lx-field textarea:focus {
  outline: 2px solid var(--lx-laton);
  outline-offset: 1px;
  border-color: var(--lx-laton);
}
.lx-field.has-error input { border-color: var(--lx-sello); }
.lx-field-help { font-size: 0.82rem; color: rgba(15, 26, 46, 0.55); }
.lx-field-error { font-size: 0.85rem; color: var(--lx-sello); }
.lx-form-error {
  margin: 0 0 1.2rem;
  font-size: 0.9rem;
  color: var(--lx-sello);
  border-left: 2px solid var(--lx-sello);
  padding-left: 0.9rem;
}
.lx-btn-submit { width: 100%; text-align: center; }
.lx-btn-submit[disabled] { opacity: 0.55; cursor: wait; }
.lx-form-note {
  margin-top: 1.2rem;
  font-size: 0.82rem;
  color: rgba(15, 26, 46, 0.55);
  text-align: center;
}
.lx-hp {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.lx-form-done { padding: 2rem 0; }
.lx-form-done .lx-h2 { margin-bottom: 1.2rem; }

/* ---------- Otros servicios: catálogo ---------- */
.lx-srv-list { padding-bottom: clamp(4rem, 8vh, 7rem); }
.lx-srv-card {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 3rem;
  padding: 3.2rem 0;
  border-top: 1px solid var(--lx-line-soft);
  align-items: start;
}
.lx-srv-card:last-child { border-bottom: 1px solid var(--lx-line-soft); }
.lx-srv-media {
  border: 1px solid var(--lx-line-soft);
  border-radius: var(--lx-radius);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--lx-tinta-3, #0b1322);
}
.lx-srv-media video,
.lx-srv-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lx-srv-media-empty { width: 100%; height: 100%; background: var(--lx-line-soft); }
.lx-srv-body h2 {
  font-family: var(--lx-serif);
  font-weight: 400;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  margin-bottom: 0.9rem;
}
.lx-srv-precio {
  font-family: var(--lx-mono);
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  color: var(--lx-laton);
  margin-top: 1.1rem;
}
body.lx-paper .lx-srv-precio { color: #8a6a24; }
.lx-srv-gallery { margin-top: 1.4rem; }
.lx-srv-gallery .lx-gallery-item { flex: 0 0 min(220px, 60vw); }
.lx-srv-actions {
  margin-top: 1.8rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}
.lx-cart-add.is-added { border-color: var(--lx-laton); color: var(--lx-laton); }

/* ---------- Carrito de consulta ---------- */
.lx-cart-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border: 1px solid var(--lx-line);
  border-radius: 50%;
  color: var(--lx-fg-muted);
  transition: color 0.25s, border-color 0.25s;
}
.lx-cart-btn:hover { color: var(--lx-fg); border-color: var(--lx-fg-muted); }
.lx-cart-badge {
  position: absolute;
  top: -5px; right: -5px;
  min-width: 16px;
  height: 16px;
  padding: 0 3px;
  border-radius: 999px;
  background: var(--lx-laton);
  color: var(--lx-tinta);
  font-family: var(--lx-mono);
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}
.lx-cart {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(11, 19, 34, 0.55);
  display: flex;
  justify-content: flex-end;
}
.lx-cart[hidden] { display: none; }
.lx-cart-panel {
  width: min(420px, 100vw);
  height: 100%;
  background: var(--lx-marfil);
  color: var(--lx-tinta);
  padding: 1.8rem 1.8rem 2.2rem;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}
.lx-cart-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.4rem; }
.lx-cart-head h3 { font-family: var(--lx-serif); font-weight: 500; font-size: 1.3rem; }
.lx-cart-close { color: var(--lx-tinta); opacity: 0.6; padding: 4px; }
.lx-cart-close:hover { opacity: 1; }
.lx-cart-items { display: flex; flex-direction: column; gap: 0.9rem; }
.lx-cart-items[hidden] { display: none; }
.lx-cart-item {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.8rem 0;
  border-bottom: 1px solid var(--lx-line);
}
.lx-cart-item-name { flex: 1; font-size: 0.92rem; }
.lx-cart-item-precio { font-family: var(--lx-mono); font-size: 0.8rem; color: rgba(15, 26, 46, 0.6); white-space: nowrap; }
.lx-cart-item-del { color: var(--lx-sello); opacity: 0.7; padding: 4px; }
.lx-cart-item-del:hover { opacity: 1; }
.lx-cart-empty { font-size: 0.9rem; color: rgba(15, 26, 46, 0.55); margin-top: 1rem; }
.lx-cart-total { font-size: 0.95rem; margin: 1.4rem 0 1rem; }
.lx-cart-form { margin-top: 0.5rem; display: flex; flex-direction: column; gap: 1rem; }
.lx-cart-form[hidden] { display: none; }
.lx-cart-form .lx-field label {
  font-family: var(--lx-mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--lx-tinta); display: block; margin-bottom: 0.4rem;
}
.lx-cart-form input, .lx-cart-form textarea {
  width: 100%; font-family: var(--lx-sans); font-size: 0.95rem; color: var(--lx-tinta);
  background: #faf7ee; border: 1px solid var(--lx-line); border-radius: var(--lx-radius); padding: 0.7rem 0.85rem;
}
.lx-cart-done { padding: 1.5rem 0; }
.lx-cart-done h4 { font-family: var(--lx-serif); font-size: 1.3rem; margin-bottom: 0.8rem; }

/* ---------- Animación: estados iniciales (solo con JS + motion permitida) ---------- */
@media (prefers-reduced-motion: no-preference) {
  html.lx-js .lx-reveal {
    opacity: 0;
    transform: translateY(26px);
  }
  html.lx-js .lx-words .w { opacity: 0.13; }
  /* .lx-line-in no necesita estado inicial: los crea el JS y GSAP los coloca */
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .lx-scene { display: none; }
  .lx-bg video { display: none; }
  body.lx-night { background: var(--lx-tinta); }
}

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
  .lx-menu { display: none; }
  .lx-access { display: none; }
  .lx-cta-nav { display: none; }
  .lx-nav-actions { margin-left: auto; }
  .lx-burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    width: 40px; height: 40px;
    align-items: center;
  }
  .lx-burger span {
    display: block;
    width: 22px; height: 1.5px;
    background: var(--lx-fg);
    transition: transform 0.3s var(--lx-ease), opacity 0.3s;
  }
  .lx-burger[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .lx-burger[aria-expanded="true"] span:last-child  { transform: translateY(-3.5px) rotate(-45deg); }
  .lx-nav { background: rgba(15, 26, 46, 0.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
  body.lx-paper .lx-nav { background: rgba(241, 236, 221, 0.94); }
}

@media (max-width: 860px) {
  .lx-act { padding: 5rem 0; }
  .lx-act-grid,
  .lx-split,
  .lx-diag-grid,
  .lx-footer-top { grid-template-columns: 1fr; gap: 2.5rem; }
  .lx-ledger-row,
  .lx-arch-item,
  .lx-station-full,
  .lx-layer { grid-template-columns: 1fr; gap: 0.8rem; }
  .lx-values-grid,
  .lx-voice-grid,
  .lx-dims-grid { grid-template-columns: 1fr; }
  .lx-value:nth-child(odd) { border-right: 0; }
  .lx-value:nth-child(even) { padding-left: 0; }
  .lx-value { padding-right: 0; }
  .lx-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lx-pull { padding-top: 0; }
  .lx-method-pin {
    min-height: 0;
    padding: 4rem 0;
  }
  .lx-method-track {
    flex-direction: column;
    width: 100%;
    padding: 0 24px;
  }
  .lx-station { width: 100%; }
  .lx-hero { min-height: 92dvh; }
  .lx-hero-ctas .lx-btn { width: 100%; text-align: center; }
  .lx-srv-card { grid-template-columns: 1fr; gap: 1.4rem; }
  .lx-srv-actions .lx-btn { flex: 1; text-align: center; }
  .lx-cart-panel { width: 100vw; }
}
