/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
/* Hallmark · macrostructure: Service Field Notes + HORECA process stage · theme: custom industrial blue · enrichment: E8 Photographic · nav: N5 dropdown · footer: Ft5 compact signature · contrast: pass (46–50) · honest: pass (56) · chrome: pass (57) · tokens: pass (58) · mobile: pass (36, 59, 61–69) */

html,
body {
  overflow-x: clip;
}

.container {
  box-sizing: border-box;
}

.hero__rail,
.ticker-band {
  width: 100%;
  max-width: 100vw;
  overflow: hidden !important;
  contain: inline-size paint;
}

.mat-table-wrap {
  max-width: 100%;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain;
}

#qPanel:not(.open) {
  visibility: hidden !important;
}

h1,
h2,
h3,
.hero__title,
.section__title {
  min-width: 0;
  overflow-wrap: anywhere;
}

.prod-hero,
.contact-hero,
.srv-hero,
.ck-hero,
.fab-hero,
.maq-hero,
.pe-hero {
  min-height: 72vh !important;
  padding-block-start: 9rem !important;
  padding-block-end: 12rem !important;
}

/* Hero photography: one strong, truthful visual per page. */
.ck-hero__bg {
  background-image: url("../img/hero/hero-cocinas-industriales-v2.webp?v=20260815-1") !important;
  opacity: 0.82 !important;
}

.maq-hero__bg {
  background-image: url("../img/servicios/fabricacion-cnc.png?v=20260815-1") !important;
  opacity: 0.48 !important;
}

.pe-hero__bg {
  background-image: url("../img/hero/hero-proyectos-especiales-v2.webp?v=20260815-1") !important;
  opacity: 0.82 !important;
}

.prod-hero,
.contact-hero,
.srv-hero {
  isolation: isolate;
  background-color: var(--ti-ink) !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

.prod-hero {
  background-image: linear-gradient(90deg,var(--ti-ink-94),var(--ti-ink-64) 48%,var(--ti-ink-30)),url("../img/hero/hero-productos-v2.webp?v=20260815-1") !important;
}

.contact-hero {
  background-image: linear-gradient(90deg,var(--ti-ink-94),var(--ti-ink-64) 48%,var(--ti-ink-30)),url("../img/hero/hero-contacto-v2.webp?v=20260815-1") !important;
}

.srv-hero {
  background-image: linear-gradient(90deg, var(--ti-ink-94), var(--ti-ink-58)), url("../img/servicios/instalacion-profesional.png?v=20260815-1") !important;
}

/* Keep hero photography clean: particles appear only on light sections. */
.hero__grid-tex,
.page-hero::before,
.prod-hero::before,
.contact-hero::before,
.srv-hero::before,
.fab-hero::before,
.maq-hero__grid,
.pe-hero__grid,
.ck-hero__grid {
  display: none !important;
}

.fab-hero .hero-video-bg {
  opacity: 0.58 !important;
}

.fab-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg, var(--ti-ink-92), var(--ti-ink-42));
}

.prod-glow,
.ch-glow,
.srv-glow,
.ck-orb,
.maq-orb,
.pe-orb,
.fab-glow,
.hero__glow {
  display: none !important;
}

.maq-hero h1 span,
.srv-hero h1 span {
  color: var(--ti-blue-bright) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}

.pe-hero h1 {
  line-height: 1.03 !important;
}

/* Virtual store: requested cover and optically centered play glyph. */
.store-virtual .vr-preview {
  background-image: linear-gradient(var(--ti-ink-30), var(--ti-ink-56)), url("../img/hero/tienda-todo-inoxidable.jpg?v=20260815-1") !important;
  background-position: center !important;
  background-size: cover !important;
  opacity: 0.72 !important;
}

.store-virtual .vr-play {
  display: grid !important;
  place-items: center !important;
}

.store-virtual .vr-play svg {
  display: block;
  margin: 0 !important;
  transform: none !important;
}

/* Product navigation dropdown. */
.ti-product-menu {
  position: relative;
  display: flex;
  align-items: center;
}

.ti-product-menu__toggle {
  width: 32px;
  height: 44px;
  margin-left: -0.45rem;
  border: 0;
  background: transparent;
  color: currentColor;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.ti-product-menu__toggle svg {
  width: 14px;
  transition: transform var(--ti-fast) var(--ti-ease);
}

.ti-product-menu.is-open .ti-product-menu__toggle svg {
  transform: rotate(180deg);
}

.ti-product-menu__panel {
  position: absolute;
  top: calc(100% + 0.8rem);
  left: 50%;
  width: min(340px, 88vw);
  padding: var(--ti-space-2);
  border: 1px solid var(--ti-line-dark);
  border-radius: var(--ti-radius-md);
  background: var(--ti-ink-97);
  box-shadow: var(--ti-shadow-md);
  backdrop-filter: blur(18px);
  transform: translate(-50%, 10px);
  opacity: 0;
  visibility: hidden;
  transition: transform var(--ti-fast) var(--ti-ease), opacity var(--ti-fast) var(--ti-ease), visibility var(--ti-fast);
  z-index: 1200;
}

.nav.is-scrolled .ti-product-menu__panel {
  background: var(--ti-white-98);
  border-color: var(--ti-line);
}

.ti-product-menu.is-open .ti-product-menu__panel,
.ti-product-menu:focus-within .ti-product-menu__panel {
  transform: translate(-50%, 0);
  opacity: 1;
  visibility: visible;
}

.ti-product-menu__panel a {
  min-height: 44px;
  padding: 0.7rem 0.85rem;
  border-radius: var(--ti-radius-sm);
  display: flex;
  align-items: center;
  gap: var(--ti-space-2);
  color: var(--ti-white);
  font-size: 0.84rem;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--ti-fast), background var(--ti-fast), transform var(--ti-fast);
}

.ti-product-menu__panel a:active,
.ti-product-menu__toggle:active,
.lum360-signature:active {
  transform: translateY(1px);
}

.nav.is-scrolled .ti-product-menu__panel a {
  color: var(--ti-text);
}

.ti-product-menu__panel a::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ti-blue-bright);
  flex: 0 0 auto;
}

.ti-product-menu__panel a:hover,
.ti-product-menu__panel a:focus-visible {
  color: var(--ti-blue-bright);
  background: var(--ti-blue-glass);
  transform: translateX(3px);
  outline: 0;
}

.ti-mobile-products {
  width: min(100%, 360px);
  border-top: 1px solid var(--ti-line-dark);
  border-bottom: 1px solid var(--ti-line-dark);
}

.ti-mobile-products summary {
  min-height: 52px;
  display: grid;
  place-items: center;
  color: inherit;
  font-weight: 700;
  cursor: pointer;
}

.ti-mobile-products__links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--ti-space-1);
  padding: 0 0 var(--ti-space-3);
}

.ti-mobile-products__links a {
  min-height: 44px;
  display: grid;
  place-items: center;
  border-radius: var(--ti-radius-sm);
  border: 1px solid var(--ti-line);
  background: var(--ti-blue-pale);
  color: var(--ti-text);
  font-size: 0.76rem;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
}

/* Generated machine photography. */
.machine-panel .mc-card,
.proceso-grid .proceso-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--ti-white) !important;
  border-color: var(--ti-line-dark) !important;
  box-shadow: var(--ti-shadow-md);
}

.machine-panel .mc-card::before,
.proceso-grid .proceso-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--ti-card-image);
  background-position: center;
  background-size: cover;
  transform: scale(1.02);
  transition: transform var(--ti-medium) var(--ti-ease);
}

.machine-panel .mc-card::after,
.proceso-grid .proceso-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, var(--ti-ink-46), var(--ti-ink-94));
}

.machine-panel .mc-card:hover::before,
.proceso-grid .proceso-card:hover::before {
  transform: scale(1.07);
}

#panel-corte .mc-card:nth-child(1) { --ti-card-image: url("../img/maquinas/corte-laser-co2-v2.webp?v=20260815-2"); }
#panel-corte .mc-card:nth-child(2) { --ti-card-image: url("../img/maquinas/corte-plasma-hd-v2.webp?v=20260815-2"); }
#panel-corte .mc-card:nth-child(3) { --ti-card-image: url("../img/maquinas/cizalla-hidraulica-v2.webp?v=20260815-2"); }
#panel-soldadura .mc-card:nth-child(1) { --ti-card-image: url("../img/maquinas/soldadura-tig-v2.webp?v=20260815-2"); }
#panel-soldadura .mc-card:nth-child(2) { --ti-card-image: url("../img/maquinas/soldadura-mig-v2.webp?v=20260815-2"); }
#panel-soldadura .mc-card:nth-child(3) { --ti-card-image: url("../img/maquinas/soldadura-blanda-v2.webp?v=20260815-2"); }
#panel-maquinado .mc-card:nth-child(1) { --ti-card-image: url("../img/maquinas/cnc-5-ejes-v2.webp?v=20260815-2"); }
#panel-maquinado .mc-card:nth-child(2) { --ti-card-image: url("../img/maquinas/torno-cnc-v2.webp?v=20260815-2"); }
#panel-maquinado .mc-card:nth-child(3) { --ti-card-image: url("../img/maquinas/fresadora-v2.webp?v=20260815-2"); }
#panel-doblado .mc-card:nth-child(1) { --ti-card-image: url("../img/maquinas/dobladora-cnc-v2.webp?v=20260815-2"); }
#panel-doblado .mc-card:nth-child(2) { --ti-card-image: url("../img/maquinas/dobladora-tubo-v2.webp?v=20260815-2"); }
#panel-doblado .mc-card:nth-child(3) { --ti-card-image: url("../img/maquinas/roladora-v2.webp?v=20260815-2"); }
#panel-pulido .mc-card:nth-child(1) { --ti-card-image: url("../img/maquinas/pulido-espejo-v2.webp?v=20260815-2"); }
#panel-pulido .mc-card:nth-child(2) { --ti-card-image: url("../img/maquinas/acabado-satin-v2.webp?v=20260815-2"); }
#panel-pulido .mc-card:nth-child(3) { --ti-card-image: url("../img/maquinas/granallado-arenado-v2.webp?v=20260815-2"); }

.proceso-grid .proceso-card:nth-child(1) { --ti-card-image: url("../img/procesos/diseno-cad.webp?v=20260815-1"); }
.proceso-grid .proceso-card:nth-child(2) { --ti-card-image: url("../img/procesos/fabricacion.webp?v=20260815-1"); }
.proceso-grid .proceso-card:nth-child(3) { --ti-card-image: url("../img/procesos/instalacion.webp?v=20260815-1"); }
.proceso-grid .proceso-card:nth-child(4) { --ti-card-image: url("../img/procesos/mantenimiento.webp?v=20260815-1"); }

.machine-panel .mc-card p,
.machine-panel .mc-card li,
.proceso-grid .proceso-text,
.machine-panel .mc-card__tag,
.proceso-grid .proceso-num,
.proceso-grid .proceso-title {
  color: var(--ti-white) !important;
  text-shadow: 0 2px 12px var(--ti-ink-64);
}

.machine-panel .mc-card h3,
.machine-panel .mc-spec {
  color: var(--ti-white) !important;
  text-shadow: 0 2px 12px var(--ti-ink-64);
}

.machine-panel .mc-spec {
  border-color: var(--ti-line-dark) !important;
  background: var(--ti-ink-58) !important;
  backdrop-filter: blur(8px);
}

.machine-panel .mc-specs { border-top-color: var(--ti-line-dark) !important; }

.machine-panel .mc-card__icon,
.proceso-grid .proceso-icon {
  color: var(--ti-blue-bright) !important;
  border-color: var(--ti-blue-line) !important;
  background: var(--ti-ink-58) !important;
  backdrop-filter: blur(10px);
}

/* Keep the machine photography in one continuous layer, never as a cropped strip. */
#panel-soldadura .mc-card,
#panel-maquinado .mc-card,
#panel-doblado .mc-card {
  background: linear-gradient(180deg, rgba(2, 22, 48, 0.5) 0%, rgba(2, 18, 39, 0.82) 100%), var(--ti-card-image) center / cover no-repeat !important;
}

#panel-soldadura .mc-card::before,
#panel-maquinado .mc-card::before,
#panel-doblado .mc-card::before {
  display: none;
}

#panel-soldadura .mc-card::after,
#panel-maquinado .mc-card::after,
#panel-doblado .mc-card::after {
  z-index: 0;
  background: transparent;
}

#panel-soldadura .mc-card > *,
#panel-maquinado .mc-card > *,
#panel-doblado .mc-card > * {
  position: relative;
  z-index: 1;
}

/* Four special-project steps: blue overlay that preserves the project photography. */
.proceso-grid .proceso-card::after {
  background: linear-gradient(160deg, rgba(1, 37, 79, 0.62), rgba(2, 20, 47, 0.78)) !important;
}

/* Proposal-inspired brand particles, restricted to verified light surfaces. */
.ti-particle-host {
  position: relative;
  isolation: isolate;
}

.ti-particle-host > :not(.ti-particles) {
  position: relative;
  z-index: 1;
}

.ti-particles {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
}

.ti-particle {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--size);
  aspect-ratio: 1;
  border: 1px solid rgba(96, 170, 255, 0.32);
  border-radius: 50%;
  background: rgba(0, 102, 204, 0.72);
  box-shadow: 0 0 calc(var(--size) * 2.8) rgba(0, 102, 204, 0.32);
  opacity: var(--opacity);
  will-change: transform, opacity;
  animation:
    ti-particle-drift var(--duration) cubic-bezier(0.45, 0.05, 0.25, 1) var(--delay) infinite alternate,
    ti-particle-breathe var(--pulse) ease-in-out var(--delay) infinite alternate;
}

.ti-particle:nth-child(4n) {
  background: rgba(96, 170, 255, 0.42);
  box-shadow: 0 0 calc(var(--size) * 4) rgba(0, 102, 204, 0.2);
}

.ti-particle:nth-child(7n) {
  background: transparent;
  border-color: rgba(0, 83, 155, 0.48);
}

@keyframes ti-particle-drift {
  0% { transform: translate3d(0, 0, 0) scale(0.88); }
  33% { transform: translate3d(var(--x-mid), var(--y-mid), 0) scale(1.04); }
  68% { transform: translate3d(var(--x-far), var(--y-far), 0) scale(0.94); }
  100% { transform: translate3d(var(--x-end), var(--y-end), 0) scale(1.08); }
}

@keyframes ti-particle-breathe {
  from { opacity: calc(var(--opacity) * 0.58); filter: saturate(0.9); }
  to { opacity: var(--opacity); filter: saturate(1.2); }
}

.hero .ti-particles,
.page-hero .ti-particles,
.privacy-hero .ti-particles,
.prod-hero .ti-particles,
.contact-hero .ti-particles,
.srv-hero .ti-particles,
.ck-hero .ti-particles,
.fab-hero .ti-particles,
.maq-hero .ti-particles,
.pe-hero .ti-particles {
  display: none !important;
}

/* Industrial kitchens: one image per process stage, with legible white copy. */
.process-grid .process-card {
  --ti-kitchen-image: none;
  min-height: 22rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  isolation: isolate;
  background: linear-gradient(165deg, rgba(1, 36, 77, 0.6) 0%, rgba(2, 19, 43, 0.82) 100%), var(--ti-kitchen-image) center / cover no-repeat !important;
  color: var(--white);
}

.process-grid .process-card:hover {
  background-color: var(--gray-900) !important;
}

.process-grid .process-card:nth-child(1) { --ti-kitchen-image: url("../img/procesos/cocinas-planeacion.png?v=20260817-1"); }
.process-grid .process-card:nth-child(2) { --ti-kitchen-image: url("../img/procesos/cocinas-diseno.png?v=20260817-1"); }
.process-grid .process-card:nth-child(3) { --ti-kitchen-image: url("../img/procesos/cocinas-equipamiento.png?v=20260817-1"); }
.process-grid .process-card:nth-child(4) { --ti-kitchen-image: url("../img/procesos/cocinas-instalaciones.png?v=20260817-1"); }
.process-grid .process-card:nth-child(5) { --ti-kitchen-image: url("../img/procesos/cocinas-capacitacion.png?v=20260817-1"); }
.process-grid .process-card:nth-child(6) { --ti-kitchen-image: url("../img/procesos/cocinas-mantenimiento.png?v=20260817-1"); }

.process-grid .process-card::after {
  z-index: 0;
  background: rgba(96, 170, 255, 0.88) !important;
}

.process-grid .process-card > * {
  position: relative;
  z-index: 1;
}

.process-grid .process-num,
.process-grid .process-title,
.process-grid .process-text {
  color: var(--white) !important;
  text-shadow: 0 2px 12px rgba(0, 16, 38, 0.75);
}

.process-grid .process-num {
  color: rgba(255, 255, 255, 0.38) !important;
}

.process-grid .process-icon {
  background: rgba(1, 23, 53, 0.54) !important;
  border: 1px solid rgba(145, 205, 255, 0.62);
  color: var(--white) !important;
  backdrop-filter: blur(8px);
}

.showroom-visual {
  min-width: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--r-xl);
  background: rgba(255, 255, 255, 0.04);
  box-shadow: 0 24px 60px rgba(0, 12, 30, 0.28);
}

.showroom-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.showroom-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 3rem;
  align-items: center;
}

@media (max-width: 640px) {
  .process-grid .process-card { min-height: 19rem; }
  .ti-particles { opacity: 0.82; }
  .showroom-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ti-particle { animation: none; }
}

/* Pointer depth applied only to media-bearing containers. */
.ti-depth-host {
  --ti-rx: 0deg;
  --ti-ry: 0deg;
  position: relative;
  transform-style: preserve-3d;
  perspective: 1000px;
}

.ti-depth-host > img,
.ti-depth-host > picture,
.ti-depth-host > video,
.ti-depth-host .ti-depth-media {
  transform: rotateX(var(--ti-rx)) rotateY(var(--ti-ry)) scale(1.015);
  transform-origin: center;
  transition: transform var(--ti-fast) var(--ti-ease);
  will-change: transform;
}

/* Cart: aligned beneath the navigation, clear of chat and quote panels. */
#qToggle.ti-cart-float {
  position: fixed !important;
  inset: 5.2rem 1.25rem auto auto !important;
  z-index: 1250;
  min-width: 112px;
  min-height: 48px;
  padding: 0.65rem 0.95rem !important;
  border: 1px solid var(--ti-line-dark) !important;
  border-radius: var(--ti-radius-pill) !important;
  background: var(--ti-ink) !important;
  color: var(--ti-white) !important;
  box-shadow: var(--ti-shadow-md) !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-family: var(--ti-font-display);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  line-height: 1;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
  transition: transform var(--ti-fast) var(--ti-ease), background-color var(--ti-fast), box-shadow var(--ti-fast);
}

#qToggle.ti-cart-float:hover { background: var(--ti-blue) !important; transform: translateY(-2px); }
#qToggle.ti-cart-float:active { transform: translateY(0); }
#qToggle.ti-cart-float:focus-visible { outline: 3px solid var(--ti-blue-bright); outline-offset: 3px; }
#qToggle.ti-cart-float:disabled { opacity: 0.55; cursor: not-allowed; }
#qToggle.ti-cart-float .ti-cart-icon { width: 21px; height: 21px; flex: 0 0 auto; }
body.ti-quote-open #qToggle.ti-cart-float,
body.ti-quote-open .ti-chat { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }

/* HORECA: a photographic process stage instead of a generic two-column block. */
.horeca-showcase {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--ti-white);
  background: linear-gradient(90deg,var(--ti-ink-97),var(--ti-ink-78)),url("../img/proyectos/cocina-01.jpg?v=20260815-2") center/cover no-repeat;
}

.horeca-showcase::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(var(--ti-blue-grid-soft) 1px,transparent 1px),linear-gradient(90deg,var(--ti-blue-grid-soft) 1px,transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: linear-gradient(90deg,transparent,var(--ti-ink));
  mask-image: linear-gradient(90deg,transparent,var(--ti-ink));
}

.horeca-showcase .section__header { max-width: 760px; }
.horeca-showcase .section__header h2,
.horeca-showcase .process-step__title { color: var(--ti-white); }
.horeca-showcase .section__header p,
.horeca-showcase .process-step__text { color: var(--ti-white-72); }
.horeca-showcase .label,
.horeca-showcase .text-blue { color: var(--ti-blue-bright) !important; }
.horeca-showcase .divider { background: var(--ti-blue-bright); }
.horeca-showcase .process-steps { gap: 0.65rem; }
.horeca-showcase .process-step { grid-template-columns: 52px minmax(0,1fr); gap: 0.85rem; }
.horeca-showcase .process-step::after { display: none; }
.horeca-showcase .process-step__num {
  width: 52px;
  height: 52px;
  border: 1px solid var(--ti-blue-line);
  background: var(--ti-blue-glass);
  color: var(--ti-blue-bright);
  backdrop-filter: blur(10px);
}
.horeca-showcase .process-step__body {
  min-height: 104px;
  padding: 1.1rem 1.2rem;
  border: 1px solid var(--ti-line-dark);
  border-radius: var(--ti-radius-md);
  background: var(--ti-ink-58);
  backdrop-filter: blur(12px);
  box-shadow: inset 0 1px 0 var(--ti-white-06);
  transition: transform var(--ti-fast) var(--ti-ease),border-color var(--ti-fast),background-color var(--ti-fast);
}
.horeca-showcase .process-step:hover .process-step__body { transform: translateX(6px); border-color: var(--ti-blue-line); background: var(--ti-ink-78); }
.horeca-showcase .reveal-right > div > .feature-card {
  min-height: 310px;
  padding: 2rem !important;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border: 1px solid var(--ti-line-dark) !important;
  background: linear-gradient(180deg,var(--ti-ink-30),var(--ti-ink-94)),url("../img/productos/mesa-tipo-isla.jpg?v=20260815-2") center/cover no-repeat !important;
  box-shadow: var(--ti-shadow-md);
  transition: transform var(--ti-medium) var(--ti-ease),box-shadow var(--ti-medium);
}
.horeca-showcase .reveal-right > div > .feature-card:hover { transform: translateY(-5px); box-shadow: var(--ti-shadow-blue); }
.horeca-showcase .info-card {
  border-color: var(--ti-line-dark);
  background: var(--ti-ink-58);
  backdrop-filter: blur(10px);
  transition: transform var(--ti-fast) var(--ti-ease),background-color var(--ti-fast);
}
.horeca-showcase .info-card:hover { transform: translateY(-3px); background: var(--ti-blue-glass); }
.horeca-showcase .info-card > div { color: var(--ti-white-72) !important; }
.horeca-showcase .info-card > div:first-child,
.horeca-showcase .info-card > div:last-child { color: var(--ti-blue-bright) !important; }

/* One shared footer presentation for every route. */
.footer { padding: clamp(3.5rem,6vw,5rem) 0 1.75rem !important; }
.footer__grid {
  display: grid !important;
  grid-template-columns: minmax(0,1.45fr) minmax(150px,.8fr) minmax(190px,1fr) minmax(220px,1.2fr) !important;
  align-items: start;
  gap: clamp(1.75rem,4vw,3.5rem) !important;
  margin-bottom: 2.75rem !important;
}
.footer__brand-link { display: inline-flex; align-items: center; margin-bottom: 1rem; }
.footer__logo-img { display: block; width: min(250px,100%); height: auto; object-fit: contain; }
.footer__brand-desc { max-width: 34ch !important; margin-top: 0 !important; }
.footer__certs { margin-top: 1.2rem; }
.footer__location { display: grid; gap: 0.3rem; margin-bottom: 1rem; color: var(--ti-white-60); font-size: 0.8rem; line-height: 1.55; }
.footer__location strong { color: var(--ti-white-72); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.footer__bottom {
  width: 100%;
  padding-top: 1.4rem !important;
  border-top: 1px solid var(--ti-line-dark) !important;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto auto;
  align-items: center;
  gap: 1.25rem !important;
}
.footer__privacy { color: var(--ti-white-48); text-decoration: none; white-space: nowrap; }
.footer__privacy:hover,.footer__privacy:focus-visible { color: var(--ti-white); }
.footer__privacy:focus-visible { outline: 2px solid var(--ti-blue-bright); outline-offset: 3px; }

/* Cursor is progressive enhancement: native pointer remains until JS initializes. */
.ti-cursor {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 10000;
  pointer-events: none;
  opacity: 0;
  border-radius: 50%;
  will-change: transform;
  transition: opacity var(--ti-fast),background-color var(--ti-fast),box-shadow var(--ti-fast);
}
.ti-cursor.is-visible { opacity: 1; }
.ti-cursor.is-ui { opacity: 0; }
.ti-cursor--core { width: 7px; height: 7px; background: var(--ti-cursor-core); box-shadow: 0 0 0 1px var(--ti-cursor-edge),0 0 15px var(--ti-cursor-glow); }
.ti-cursor--halo { width: 30px; height: 30px; border: 1px solid var(--ti-cursor-edge); background: var(--ti-blue-glass); box-shadow: 0 0 20px var(--ti-cursor-glow),inset 0 0 12px var(--ti-blue-shadow); }
.ti-cursor--halo.is-pressed { background: var(--ti-blue-shadow-strong); box-shadow: 0 0 28px var(--ti-cursor-glow),inset 0 0 18px var(--ti-blue-shadow-strong); }
.ti-cursor-ready body { cursor: none; }
.ti-cursor-ready a,.ti-cursor-ready button,.ti-cursor-ready label,.ti-cursor-ready [role="button"],.ti-cursor-ready .pc,.ti-cursor-ready .mat-card,.ti-cursor-ready .product-card,.ti-cursor-ready .sel-btn,.ti-cursor-ready .m-tab { cursor: pointer; }
.ti-cursor-ready input,.ti-cursor-ready textarea,.ti-cursor-ready select,.ti-cursor-ready #qPanel,.ti-cursor-ready .qp { cursor: auto; }
.ti-cursor-ready .ti-chat,.ti-cursor-ready .ti-chat * { cursor: none !important; }

/* LUM360 signature: solid gold, with a controlled line glint. */
.ti-lum-credit {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: auto;
  color: var(--ti-white-48);
  font-size: 0.76rem;
}

.lum360-signature {
  position: relative;
  display: inline-block;
  padding: 0.25rem 0;
  color: var(--ti-gold) !important;
  font-family: var(--ti-font-display);
  font-weight: 850;
  letter-spacing: 0.16em;
  text-decoration: none;
  text-shadow: 0 0 20px var(--ti-gold-glow);
}

.lum360-signature::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--ti-gold-soft);
  transform: scaleX(0.18);
  transform-origin: left;
  animation: ti-lum-glint 4.8s var(--ti-ease) infinite;
}

@keyframes ti-lum-glint {
  0%, 58%, 100% { transform: scaleX(0.18); opacity: 0.45; }
  72% { transform: scaleX(1); opacity: 1; }
}

/* Privacy document. */
.privacy-hero {
  position: relative;
  min-height: 62vh;
  padding: 9rem 0 12rem;
  display: flex;
  align-items: end;
  overflow: hidden;
  color: var(--ti-white);
  background: linear-gradient(90deg, var(--ti-ink-96), var(--ti-ink-56)), url("../img/hero/fabrica-01.jpg?v=20260815-1") center/cover no-repeat;
}

.privacy-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(var(--ti-blue-grid-soft) 1px, transparent 1px), linear-gradient(90deg, var(--ti-blue-grid-soft) 1px, transparent 1px);
  background-size: 64px 64px;
}

.privacy-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 850px;
}

.privacy-hero h1 {
  max-width: 800px;
  margin: 0 0 var(--ti-space-3);
  color: var(--ti-white);
  font-size: clamp(2.6rem, 6vw, 5.5rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
}

.privacy-hero p {
  max-width: 690px;
  color: var(--ti-white-72);
  font-size: clamp(1rem, 1.8vw, 1.2rem);
  line-height: 1.7;
}

.privacy-layout {
  display: grid;
  grid-template-columns: minmax(210px, 0.32fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 6rem);
  padding-block: clamp(4rem, 9vw, 8rem);
}

.privacy-nav {
  position: sticky;
  top: 7rem;
  align-self: start;
  padding: var(--ti-space-4);
  border: 1px solid var(--ti-line);
  border-radius: var(--ti-radius-md);
  background: var(--ti-panel);
  box-shadow: var(--ti-shadow-sm);
}

.privacy-nav strong {
  display: block;
  margin-bottom: var(--ti-space-2);
  color: var(--ti-text);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.privacy-nav a {
  min-height: 42px;
  display: flex;
  align-items: center;
  border-top: 1px solid var(--ti-line);
  color: var(--ti-text-soft);
  font-size: 0.87rem;
  text-decoration: none;
}

.privacy-nav a:hover,
.privacy-nav a:focus-visible {
  color: var(--ti-blue);
  outline: 0;
}

.privacy-nav a:active {
  color: var(--ti-ink);
  transform: translateY(1px);
}

.privacy-doc {
  max-width: 820px;
}

.privacy-doc section {
  scroll-margin-top: 7rem;
  padding: 0 0 clamp(2.75rem, 6vw, 4.5rem);
  margin-bottom: clamp(2.75rem, 6vw, 4.5rem);
  border-bottom: 1px solid var(--ti-line);
}

.privacy-doc h2 {
  margin-bottom: var(--ti-space-3);
  color: var(--ti-text);
  font-size: clamp(1.6rem, 3vw, 2.35rem);
  line-height: 1.12;
}

.privacy-doc p,
.privacy-doc li {
  color: var(--ti-text-soft);
  font-size: 1rem;
  line-height: 1.82;
}

.privacy-doc ul {
  padding-left: 1.25rem;
}

.privacy-callout {
  padding: clamp(1.25rem, 4vw, 2rem);
  border-left: 4px solid var(--ti-blue);
  border-radius: 0 var(--ti-radius-md) var(--ti-radius-md) 0;
  background: var(--ti-blue-pale);
}

@media (max-width: 980px) {
  .container {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    padding-inline: 1.25rem !important;
  }
  .grid-2,
  .grid-3,
  .grid-4,
  .process-grid,
  .machine-grid,
  .privacy-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .process-steps,
  .privacy-nav,
  .privacy-doc,
  .privacy-doc section {
    min-width: 0;
    max-width: 100%;
  }
  .ck-hero__actions .btn {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .nav__overlay > .nav__link {
    font-size: clamp(1.2rem, 5.5vw, 1.65rem) !important;
    white-space: nowrap;
  }
  .ti-product-menu { display: none; }
  .privacy-layout { grid-template-columns: 1fr; }
  .privacy-nav { position: static; }
  .footer__bottom { gap: var(--ti-space-3); }
  .footer__grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important; }
  .footer__bottom { grid-template-columns: minmax(0,1fr) auto !important; }
  .ti-lum-credit { margin-left: 0; }
}

@media (max-width: 640px) {
  #qToggle.ti-cart-float { inset: 4.75rem 0.75rem auto auto !important; min-width: 48px; width: 48px; height: 48px; padding: 0 !important; }
  #qToggle.ti-cart-float .ti-cart-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .footer__grid,.footer__bottom { grid-template-columns: minmax(0,1fr) !important; }
  .footer__bottom { align-items: start; }
  .horeca-showcase .process-step { grid-template-columns: 44px minmax(0,1fr); }
  .horeca-showcase .process-step__num { width: 44px; height: 44px; }
  .horeca-showcase .process-step__body { min-height: 0; padding: 1rem; }
  .prod-hero,
  .contact-hero,
  .srv-hero,
  .ck-hero,
  .fab-hero,
  .maq-hero,
  .pe-hero {
    min-height: auto !important;
    padding-block-start: 7rem !important;
    padding-block-end: 9.25rem !important;
  }
  .prod-hero,
  .contact-hero,
  .srv-hero {
    background-position: 64% center !important;
  }
  .ti-mobile-products__links { grid-template-columns: 1fr; }
  .privacy-hero { min-height: 54vh; padding-top: 8rem; }
  .privacy-hero h1 { line-height: 1.02; }
}

@media (prefers-reduced-motion: reduce) {
  .ti-product-menu__toggle svg,
  .ti-product-menu__panel,
  .ti-product-menu__panel a {
    transition: none !important;
  }
  .ti-depth-host > img,
  .ti-depth-host > picture,
  .ti-depth-host > video,
  .ti-depth-host .ti-depth-media {
    transform: none !important;
    transition: none !important;
  }
  .lum360-signature::after { animation: none; transform: scaleX(1); }
  .machine-panel .mc-card::before,
  .proceso-grid .proceso-card::before { transition: none; }
  .horeca-showcase .process-step__body,
  .horeca-showcase .feature-card,
  .horeca-showcase .info-card,
  .ti-cursor { transition: none !important; }
}
