.elementor-2273 .elementor-element.elementor-element-4b08c4e{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2273 .elementor-element.elementor-element-aa85c75{--display:flex;--min-height:67px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:0px 26px;--row-gap:0px;--column-gap:26px;--padding-top:7px;--padding-bottom:7px;--padding-left:24px;--padding-right:7px;}.elementor-2273 .elementor-element.elementor-element-763112e{width:var( --container-widget-width, 222px );max-width:222px;--container-widget-width:222px;--container-widget-flex-grow:0;text-align:start;}.elementor-2273 .elementor-element.elementor-element-763112e img{width:178px;}.elementor-2273 .elementor-element.elementor-element-a7dffba{width:auto;max-width:auto;--e-nav-menu-horizontal-menu-item-margin:calc( 2px / 2 );}.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu .elementor-item{font-family:"Poppins", Sans-serif;font-size:14px;font-weight:500;letter-spacing:0.1px;}.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu--main .elementor-item{color:rgba(255,255,255,0.78);fill:rgba(255,255,255,0.78);padding-left:15px;padding-right:15px;padding-top:10px;padding-bottom:10px;}.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu--main .elementor-item:hover,
					.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu--main .elementor-item:focus{color:rgba(255,255,255,0.78);fill:rgba(255,255,255,0.78);}.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#FFFFFF;}.elementor-2273 .elementor-element.elementor-element-a7dffba .elementor-nav-menu--main:not(.elementor-nav-menu--layout-horizontal) .elementor-nav-menu > li:not(:last-child){margin-bottom:2px;}.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button{background-color:rgba(0,0,0,0);font-family:"Poppins", Sans-serif;font-size:14px;font-weight:600;letter-spacing:0.1px;fill:#FFFFFF;color:#FFFFFF;border-radius:999px 999px 999px 999px;padding:0px 22px 0px 18px;}.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:hover, .elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:focus{background-color:rgba(0,0,0,0);color:#14140F;}.elementor-2273 .elementor-element.elementor-element-fd2007a{width:auto;max-width:auto;}.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button-content-wrapper{flex-direction:row;}.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button .elementor-button-content-wrapper{gap:9px;}.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:hover svg, .elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:focus svg{fill:#14140F;}.elementor-2273 .elementor-element.elementor-element-ac003fd{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2273 .elementor-element.elementor-element-c3f7f9a{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:0px 18px;--row-gap:0px;--column-gap:18px;--padding-top:11px;--padding-bottom:11px;--padding-left:20px;--padding-right:11px;}.elementor-2273 .elementor-element.elementor-element-3c6fcea{width:auto;max-width:auto;text-align:start;}.elementor-2273 .elementor-element.elementor-element-b53c131{width:auto;max-width:auto;--nav-menu-icon-size:19px;}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-menu-toggle{margin-left:auto;background-color:rgba(255,255,255,0.07);border-width:1px;border-radius:14px;}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a, .elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-menu-toggle{color:rgba(255,255,255,0.86);fill:rgba(255,255,255,0.86);}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a:hover,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a:focus,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a.highlighted,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-menu-toggle:hover,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-menu-toggle:focus{color:#DAA520;}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a:hover,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a:focus,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a.highlighted{background-color:rgba(255,255,255,0.05);}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a.elementor-item-active{color:#DAA520;background-color:rgba(218,165,32,0.10);}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown .elementor-item, .elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:"Poppins", Sans-serif;font-size:19px;font-weight:500;letter-spacing:-0.2px;}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown a{padding-left:22px;padding-right:22px;padding-top:21px;padding-bottom:21px;}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--dropdown li:not(:last-child){border-style:solid;border-color:rgba(255,255,255,0.09);border-bottom-width:1px;}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-nav-menu__container.elementor-nav-menu--dropdown{margin-top:14px !important;}.elementor-2273 .elementor-element.elementor-element-b53c131 div.elementor-menu-toggle{color:rgba(255,255,255,0.92);}.elementor-2273 .elementor-element.elementor-element-b53c131 div.elementor-menu-toggle svg{fill:rgba(255,255,255,0.92);}.elementor-2273 .elementor-element.elementor-element-b53c131 div.elementor-menu-toggle:hover, .elementor-2273 .elementor-element.elementor-element-b53c131 div.elementor-menu-toggle:focus{color:#DAA520;}.elementor-2273 .elementor-element.elementor-element-b53c131 div.elementor-menu-toggle:hover svg, .elementor-2273 .elementor-element.elementor-element-b53c131 div.elementor-menu-toggle:focus svg{fill:#DAA520;}.elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-menu-toggle:hover, .elementor-2273 .elementor-element.elementor-element-b53c131 .elementor-menu-toggle:focus{background-color:rgba(255,255,255,0.12);}.elementor-2273 .elementor-element.elementor-element-973844b{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2273 .elementor-element.elementor-element-a6b8949{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:center;--gap:0px 14px;--row-gap:0px;--column-gap:14px;--padding-top:9px;--padding-bottom:9px;--padding-left:16px;--padding-right:9px;}.elementor-2273 .elementor-element.elementor-element-ea618d0{width:auto;max-width:auto;text-align:start;}.elementor-2273 .elementor-element.elementor-element-e63d4b0{width:auto;max-width:auto;--nav-menu-icon-size:18px;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-menu-toggle{margin-left:auto;background-color:rgba(255,255,255,0.07);border-width:1px;border-radius:13px;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a, .elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-menu-toggle{color:rgba(255,255,255,0.86);fill:rgba(255,255,255,0.86);}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a:hover,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a:focus,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a.highlighted,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-menu-toggle:hover,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-menu-toggle:focus{color:#DAA520;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a:hover,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a:focus,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a.elementor-item-active,
					.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a.highlighted{background-color:rgba(255,255,255,0.05);}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a.elementor-item-active{color:#DAA520;background-color:rgba(218,165,32,0.10);}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown .elementor-item, .elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown  .elementor-sub-item{font-family:"Poppins", Sans-serif;font-size:17px;font-weight:500;letter-spacing:-0.2px;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown a{padding-left:18px;padding-right:18px;padding-top:18px;padding-bottom:18px;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--dropdown li:not(:last-child){border-style:solid;border-color:rgba(255,255,255,0.09);border-bottom-width:1px;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu--main > .elementor-nav-menu > li > .elementor-nav-menu--dropdown, .elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-nav-menu__container.elementor-nav-menu--dropdown{margin-top:12px !important;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 div.elementor-menu-toggle{color:rgba(255,255,255,0.92);}.elementor-2273 .elementor-element.elementor-element-e63d4b0 div.elementor-menu-toggle svg{fill:rgba(255,255,255,0.92);}.elementor-2273 .elementor-element.elementor-element-e63d4b0 div.elementor-menu-toggle:hover, .elementor-2273 .elementor-element.elementor-element-e63d4b0 div.elementor-menu-toggle:focus{color:#DAA520;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 div.elementor-menu-toggle:hover svg, .elementor-2273 .elementor-element.elementor-element-e63d4b0 div.elementor-menu-toggle:focus svg{fill:#DAA520;}.elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-menu-toggle:hover, .elementor-2273 .elementor-element.elementor-element-e63d4b0 .elementor-menu-toggle:focus{background-color:rgba(255,255,255,0.12);}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS for image, class: .elementor-element-763112e *//* Centrado optico del menu. Con space-between el menu queda en el punto
   medio entre el borde derecho de la caja del logo y el borde izquierdo del
   CTA. Padding de la barra: 24px izquierda / 7px derecha; CTA liquid glass:
   222px. Para que ese punto medio coincida con el centro de la barra, la caja
   del logo debe medir 222 - (24 - 7) = 205px. Se sobrescribe la variable que
   usa la hoja del header (--sa-logo-w); la imagen conserva 178px por el ajuste
   nativo de anchura del widget. Medido: 178px -> -13,5px; 222px -> +8,5px. */
.elementor-2273 .elementor-element.elementor-element-763112e{ --sa-logo-w: 205px; }/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-fd2007a *//* CTA del header - variante F: "filo que se llena".
   En reposo es SOLO un anillo dorado; al pasar el raton se rellena de oro y el
   texto se invierte a tinta.

   POR QUE NO ES CRISTAL: la barra .sa-bar YA es cristal, y apilar una
   superficie translucida clara sobre otra hunde la legibilidad. Ademas, aqui
   dentro el `backdrop-filter` del boton es INERTE: al vivir dentro de un
   elemento que ya tiene uno, queda atrapado en su backdrop root y no desenfoca
   nada (mismo efecto ya medido en el panel movil). Cualquier "boton de cristal"
   dentro de esta barra seria en realidad un gradiente plano.

   OJO - NO USAR ::after EN ESTE BOTON. Medido en produccion: un `::after` con
   `content:""`, `position:absolute`, `inset:0`, tamano 224x44 y `opacity:1`
   computados correctamente NO LLEGA A PINTARSE (probado tambien con z-index 0
   y 1). El `::before` si pinta, y el `background` del propio boton tambien. Por
   eso el anillo vive en ::before y el relleno es el `background-color` del
   boton, no una capa aparte.

   El anillo es un DEGRADADO recortado con mask-composite, no un `border` de
   color plano: mas luminoso arriba y apagado abajo, para que atrape la luz como
   el filo superior de la propia barra. El volumen del relleno lo dan dos
   sombras interiores (arriba luz, abajo sombra), que ademas SI transicionan.

   Contraste del texto: 18,8:1 sobre tinta y 8:1 sobre foto en reposo; en hover,
   tinta sobre oro, 8,2:1. Cumple AA con holgura en los dos estados.

   Centrado: `inline-flex` dentro de un wrapper flex. En `inline-block` el hueco
   de linea base subia el boton ~3,5px respecto al centro de la barra. */

.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button-wrapper{
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  min-height: 44px;
  padding: 0 24px 0 20px;
  border: 0;
  border-radius: 999px;
  background-color: transparent;
  background-image: none;
  color: #FFFFFF;
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .1px;
  line-height: 1;
  white-space: nowrap;
  box-shadow: none;
  transition:
    background-color .3s ease,
    color .3s ease,
    box-shadow .3s ease,
    transform .2s cubic-bezier(.2,.7,.3,1);
}

/* EL ANILLO. `padding:1px` + mask-composite deja solo el borde de 1px. */
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button::before{
  content: "";
  position: absolute;
  inset: 0;
  width: auto; height: auto;
  border-radius: inherit;
  padding: 1px;
  z-index: 1;
  pointer-events: none;
  opacity: 1;
  background: linear-gradient(180deg, rgba(247,217,126,.95) 0%, rgba(218,165,32,.55) 45%, rgba(218,165,32,.30) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  transition: opacity .3s ease;
}

.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button-content-wrapper{
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 9px;
}
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button-icon{ display: inline-flex; line-height: 0; }
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button-icon svg{
  width: 14px; height: 14px;
  fill: #DAA520;
  transition: fill .3s ease;
}
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button-text{ line-height: 1; }

/* HOVER / FOCO: se llena de oro, el texto se invierte y el anillo se apaga.
   Las dos sombras interiores dan el volumen que antes iba en el gradiente. */
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:hover,
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:focus-visible{
  color: #14140F;
  background-color: #DAA520;
  transform: translateY(-1px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.62),
    inset 0 -14px 20px -12px rgba(110,74,0,.55),
    0 12px 28px -12px rgba(218,165,32,.8);
}
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:hover::before,
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:focus-visible::before{ opacity: 0; }
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:hover .elementor-button-icon svg,
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:focus-visible .elementor-button-icon svg{ fill: #5A430A; }

/* Respuesta en pointer-down, sin rebote (curva critica). */
.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:active{ transform: scale(.97); }

.elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:focus-visible{
  outline: 2px solid #FFFFFF;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce){
  .elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button,
  .elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button::before,
  .elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button-icon svg{ transition: none; }
  .elementor-2273 .elementor-element.elementor-element-fd2007a .elementor-button:hover{ transform: none; }
}/* End custom CSS */
/* Start custom CSS *//* =========================================================================
   SteelArk — Header IA v2 — plantilla de header del Theme Builder (ID 2273)
   -------------------------------------------------------------------------
   Origen: pagina laboratorio 2042 ("Cristal y acero"). Copia de referencia
   comentada en SteelArk-AI/docs/design/header-ia-v2/page-custom-css.css.

   Tres headers independientes sobre el MISMO menu real de WordPress
   ("Menu Header IA v2", slug menu-header-ia-v2):

     .sa-hdr-desk   solo escritorio  (>=1025)
     .sa-hdr-tab    solo tablet      (768-1024)
     .sa-hdr-mob    solo movil       (<=767)

   La visibilidad la resuelve Elementor de forma nativa (hide_desktop /
   hide_tablet / hide_mobile). Aqui solo va el lenguaje visual.

   ALCANCE: todos los .elementor-2273es cuelgan de .sa-hdr, .sa-bar, .sa-nav,
   .sa-navm, .sa-cta o .sa-logo. Esta hoja se carga con la plantilla en todo
   el sitio; ninguna regla toca elementos fuera del header.

   SIN JAVASCRIPT PROPIO salvo el widget HTML del submenu (animacion de altura
   con Web Animations API). La apertura/cierre del menu la hace el widget
   nav-menu de Elementor Pro; el escalonado y el cambio de densidad del
   cristal son animaciones CSS.

   Breakpoints del kit: movil <=767 / tablet 768-1024 / desktop >=1025.
   ========================================================================= */

/* ---------- 1. Tokens ---------- */
:root{
  --sa-gold:      #DAA520;
  --sa-gold-hi:   #EBBB3E;

  /* Cristal: en reposo es muy translucido; al hacer scroll se densifica */
  --sa-glass:     rgba(16,16,19,.16);
  --sa-glass-deep:rgba(10,10,13,.94);

  --sa-hair:      rgba(255,255,255,.11);
  --sa-hair-top:  rgba(255,255,255,.16);

  --sa-txt:       rgba(255,255,255,.78);
  --sa-txt-hi:    #FFFFFF;

  --sa-ease:      cubic-bezier(.2,.7,.3,1);
}

/* ---------- 2. Envoltorio fijo ----------
   El envoltorio ocupa todo el ancho pero NO captura clicks: solo la barra
   los recibe. Asi el header no bloquea el contenido que queda debajo. */
.sa-hdr{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9990;
  pointer-events: none;
}
.sa-hdr-desk{ padding: 20px 26px 0; }
.sa-hdr-tab { padding: 16px 22px 0; }
.sa-hdr-mob { padding: 12px 14px 0; }

/* ---------- 3. La barra de cristal ---------- */
.sa-bar{
  pointer-events: auto;
  width: 100%;
  position: relative;
  background: var(--sa-glass);
  -webkit-backdrop-filter: blur(32px) saturate(188%) brightness(.75);
          backdrop-filter: blur(32px) saturate(188%) brightness(.75);
  border: 1px solid var(--sa-hair);
  box-shadow:
    0 22px 48px -22px rgba(0,0,0,.75),
    inset 0 1px 0 var(--sa-hair-top);
  transition: background-color .4s var(--sa-ease), border-color .4s var(--sa-ease);
}
/* Header de PC: mas transparente y con mas desenfoque que el resto, y un
   radio intermedio entre la pastilla y el rectangulo (20px sobre 67px de
   alto). Material tipo Apple: poca opacidad, mucho blur y saturacion alta
   para que el fondo se lea a traves con color. */
.sa-bar-desk{
  max-width: 1180px;
  margin: 0 auto;
  border-radius: 20px;
  background: rgba(20,20,26,.03);
  -webkit-backdrop-filter: blur(46px) saturate(195%) brightness(.72);
          backdrop-filter: blur(46px) saturate(195%) brightness(.72);
}
.sa-bar-tab { border-radius: 22px; }
.sa-bar-mob {
  border-radius: 18px;
  /* Movil: la barra mas translucida de las tres. Aqui el backdrop-filter si
     se aplica porque la barra no esta anidada dentro de otro. */
  background: rgba(18,18,24,.05);
  -webkit-backdrop-filter: blur(38px) saturate(195%) brightness(.78);
          backdrop-filter: blur(38px) saturate(195%) brightness(.78);
}

/* Filo iluminado superior: es lo que da la sensacion de vidrio real.
   Se recorta al radio de la barra con inset lateral. */
.sa-bar::before{
  content: "";
  position: absolute;
  top: 0; left: 12%; right: 12%;
  width: auto; height: 1px;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);
}

/* Si el navegador no soporta backdrop-filter, el cristal se vuelve solido:
   la legibilidad manda sobre el efecto. */
@supports not ((-webkit-backdrop-filter: blur(2px)) or (backdrop-filter: blur(2px))){
  /* Sin backdrop-filter no hay brightness() que garantice el contraste, asi
     que el cristal pasa a solido. La legibilidad manda sobre el efecto. */
  .sa-bar{ background: rgba(11,11,14,.94); }
  .sa-bar-desk{ background: rgba(11,11,14,.92); }
  .sa-bar-mob { background: rgba(11,11,14,.92); }
}

/* ---------- 4. Logo ----------
   Media 2051: logo SteelArk en DORADO Y BLANCO, derivado del original
   conservando el dorado y pasando a blanco las partes oscuras. Ya viene
   recortado a su caja util (353x88), asi que no hace falta recorte por CSS:
   basta con fijar el ancho. Para cambiar el tamano, toca --sa-logo-w. */
.sa-logo{ --sa-logo-w: 178px; }
.sa-hdr .elementor-element.sa-logo{
  width: var(--sa-logo-w);
  min-width: var(--sa-logo-w);
  flex: 0 0 auto;
}
/* El enlace en inline-block deja un hueco de linea base de ~7px que
   descentraba el logo 4px. En block desaparece. */
.sa-hdr .sa-logo a{ display: block; }
.sa-hdr .sa-logo img{
  display: block;
  width: 100%;
  height: auto;
  transition: opacity .3s var(--sa-ease);
}
.sa-logo:hover img{ opacity: .82; }
.sa-hdr-tab .sa-logo{ --sa-logo-w: 162px; }
.sa-hdr-mob .sa-logo{ --sa-logo-w: 136px; }

/* ---------- 5. Menu de escritorio ----------
   PETICION EXPRESA: los elementos del menu NO cambian al pasar el raton.
   Ni pastilla, ni borde redondeado, ni cambio de color. Por eso el widget
   lleva pointer:none y el color de hover igual al de reposo, y aqui no hay
   ninguna regla :hover. Solo se conserva el foco de teclado, que es un
   requisito de accesibilidad y no se dispara con el raton. */
/* Estado activo: filete dorado corto bajo el elemento. */
.sa-nav .elementor-nav-menu--main .elementor-item-active{ position: relative; }
.sa-nav .elementor-nav-menu--main .elementor-item-active::after{
  content: "";
  position: absolute;
  left: 50%; bottom: 3px;
  width: 16px; height: 2px;
  margin-left: -8px;
  border-radius: 2px;
  background: var(--sa-gold);
}
.sa-nav .elementor-item:focus-visible{
  outline: 2px solid var(--sa-gold);
  outline-offset: 2px;
  border-radius: 8px;
}

/* Centrado optico del menu: en vez de posicionarlo en absoluto (Elementor
   pisa el transform de los widgets), se igualan los dos lados. Dandole al
   CTA el mismo ancho minimo que el logo, el space-between centra el menu
   solo. Desviacion medida: 9px sobre 1180. */
.sa-hdr-desk .sa-nav{ flex: 0 0 auto; }
.sa-hdr-desk .elementor-element.sa-cta{ min-width: 178px; }
.sa-hdr-desk .sa-cta .elementor-button-wrapper{ text-align: right; }

/* ---------- 6. CTA ---------- */
.sa-cta .elementor-button{
  min-height: 44px;
  position: relative;
  overflow: hidden;
  transition: transform .25s var(--sa-ease), box-shadow .25s var(--sa-ease);
  box-shadow: 0 8px 20px -10px rgba(218,165,32,.9);
}
.sa-cta .elementor-button > *{ position: relative; z-index: 1; }
.sa-cta .elementor-button::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(100deg, transparent 24%, rgba(255,255,255,.42) 50%, transparent 76%);
  transform: translateX(-140%);
  transition: transform .8s var(--sa-ease);
}
.sa-cta .elementor-button:hover::after{ transform: translateX(140%); }
.sa-cta .elementor-button:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 30px -12px rgba(218,165,32,.85);
}
.sa-cta .elementor-button:focus-visible{
  outline: 2px solid #FFFFFF;
  outline-offset: 3px;
}

/* --- Submenu del menu horizontal (escritorio) ---
   El menu tiene un item con hijos ("Sistema"). Elementor sirve ese desplegable
   con su estilo de fabrica: fondo BLANCO (#fff) y texto gris (#33373d), medido
   en banco de pruebas. Sobre un header de cristal oscuro es un rectangulo
   blanco. Aqui se le da el lenguaje del header.

   La apertura la hace SmartMenus con `display:block` en linea, que es lo que
   deja ver el submenu aunque el ajuste `dropdown: none` del widget lo declare
   oculto por hoja. */
.sa-hdr .sa-bar .sa-nav .elementor-nav-menu--main .elementor-nav-menu ul.sub-menu{
  /* El ancho NO se declara aqui. SmartMenus lo escribe en linea
     (`width:auto; min-width:10em; max-width:20em`, verificado en banco de
     pruebas) y el estilo en linea gana a esta hoja: cualquier `min-width` que
     se pusiera seria una regla muerta, y forzarla con !important solo para
     ensanchar el panel no compensa. Con `white-space: nowrap` en los enlaces
     el panel se ajusta al texto mas largo, que es el comportamiento correcto.
     Tampoco se separa del item padre: SmartMenus escribe `top`, `margin-top` y
     `margin-left` en linea, y Elementor ademas fija `top:100%!important` en el
     layout horizontal. El panel cuelga pegado a la barra, que es lo habitual
     en un desplegable y evita el hueco que rompe el hover al bajar el raton. */
  padding: 6px 0;
  background: var(--sa-glass-deep);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 14px;
  box-shadow: 0 26px 60px -24px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.16);
  overflow: hidden;
}
/* Elementor mete un `border-left: 16px solid transparent` en los enlaces de
   subnivel (`.elementor-nav-menu ul ul a`) que descuadra el sangrado. */
.sa-hdr .sa-bar .sa-nav ul.sub-menu a.elementor-sub-item{
  position: relative;
  border-left: 0;
  display: flex;
  align-items: center;
  padding: 11px 20px 11px 26px;
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .1px;
  line-height: 1.35;
  white-space: nowrap;
  color: rgba(255,255,255,.78);
  background-color: transparent;
  transition: color .25s var(--sa-ease), background-color .25s var(--sa-ease), padding-left .28s var(--sa-ease);
}
.sa-hdr .sa-bar .sa-nav ul.sub-menu a.elementor-sub-item::before{
  content: "";
  position: absolute;
  left: 12px; top: 50%;
  width: 0; height: 1px;
  margin-top: -.5px;
  background: var(--sa-gold);
  transition: width .28s var(--sa-ease);
}
.sa-hdr .sa-bar .sa-nav ul.sub-menu a.elementor-sub-item:hover,
.sa-hdr .sa-bar .sa-nav ul.sub-menu a.elementor-sub-item.highlighted,
.sa-hdr .sa-bar .sa-nav ul.sub-menu a.elementor-sub-item.elementor-item-active{
  color: var(--sa-gold);
  background-color: rgba(255,255,255,.05);
  padding-left: 34px;
}
.sa-hdr .sa-bar .sa-nav ul.sub-menu a.elementor-sub-item:hover::before{ width: 10px; }
.sa-hdr .sa-bar .sa-nav ul.sub-menu a.elementor-sub-item:focus-visible{
  outline: 2px solid var(--sa-gold);
  outline-offset: -3px;
}
/* Indicador del item con hijos en la barra de escritorio. */
.sa-hdr .sa-bar .sa-nav .elementor-nav-menu--main .sub-arrow{
  display: inline-flex;
  align-items: center;
  margin: 0 0 0 6px;
  padding: 0;
  font-size: 9px;
  color: rgba(255,255,255,.55);
  transition: transform .3s var(--sa-ease), color .25s var(--sa-ease);
}
.sa-hdr .sa-bar .sa-nav .elementor-nav-menu--main a.highlighted .sub-arrow,
.sa-hdr .sa-bar .sa-nav .elementor-nav-menu--main a[aria-expanded="true"] .sub-arrow{
  transform: rotate(180deg);
  color: var(--sa-gold);
}
.sa-hdr .sa-bar .sa-nav .elementor-nav-menu--main a.elementor-item.highlighted{
  background-color: transparent;
  color: var(--sa-txt-hi);
}

/* =========================================================================
   7. TABLET + MOVIL: hamburguesa y panel
   Mismo lenguaje visual en los dos, solo cambian medidas.
   ========================================================================= */

/* --- Boton hamburguesa: cuadrado de cristal --- */
.sa-navm .elementor-menu-toggle{
  width: 46px; height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--sa-hair);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
  transition: background-color .3s var(--sa-ease), border-color .3s var(--sa-ease);
}
.sa-hdr-mob .sa-navm .elementor-menu-toggle{ width: 44px; height: 44px; }
.sa-navm .elementor-menu-toggle:focus-visible{
  outline: 2px solid var(--sa-gold);
  outline-offset: 2px;
}
/* Hamburguesa -> X: el widget ya intercambia los iconos; aqui se suaviza */
.sa-navm .elementor-menu-toggle i{
  transition: transform .38s var(--sa-ease), opacity .28s var(--sa-ease);
}
.sa-navm .elementor-menu-toggle[aria-expanded="true"]{
  border-color: rgba(218,165,32,.45);
}
.sa-navm .elementor-menu-toggle[aria-expanded="true"] .elementor-menu-toggle__icon--close{
  transform: rotate(90deg);
}

/* --- El panel ---
   Elementor lo deja en flujo (position:static) cuando "Full Width" esta
   activo, lo que inflaba la barra y desbordaba el ancho. Con full_width
   desactivado se posiciona aqui: .sa-navm pasa a static para que el
   offsetParent sea .sa-bar, y el panel ocupa exactamente el ancho de la
   barra, 12px por debajo. Especificidad (0,4,0) para ganarle a las reglas
   que Elementor genera por widget. */
.sa-hdr .sa-navm{ position: static; }
/* OJO — `nav.` NO es decorativo. Elementor marca con la MISMA clase
   `elementor-nav-menu--dropdown` dos elementos distintos: el <nav> del panel
   y CADA <ul class="sub-menu"> de un item con hijos. Sin acotar a `nav.`,
   todo el tratamiento del panel (position:absolute, top, left/right, fondo,
   borde, radio y sombra) caia tambien sobre el submenu: al ser absoluto
   dejaba de ocupar sitio en el flujo y se dibujaba ENCIMA de las filas
   siguientes. Medido en banco de pruebas: el .elementor-2273 sin `nav.` coincidia
   con 2 elementos (NAV y UL.sub-menu) en lugar de 1. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown{
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  right: 0;
  width: auto;
  max-width: none;
  /* OJO: el panel NO puede confiar en backdrop-filter. Al vivir dentro de
     .sa-bar, que ya tiene uno, queda dentro de su backdrop root y Safari iOS
     no llega a desenfocar lo que hay detras (comprobado en iPhone real: el
     texto del fondo se leia nitido a traves del panel). Por eso el fondo es
     opaco por si mismo y el desenfoque solo suma donde si funciona.
     El halo dorado superior da temperatura sin ensuciar la lectura. */
  background:
    radial-gradient(130% 62% at 50% 0%, rgba(218,165,32,.10) 0%, rgba(218,165,32,0) 62%),
    var(--sa-glass-deep);
  /* SIN backdrop-filter a proposito: con el fondo al 94% el desenfoque no se
     aprecia, en Safari iOS no llegaba a aplicarse por estar anidado dentro
     de .sa-bar, y obligaba al navegador a re-rasterizar el backdrop al
     terminar la animacion, que es otra fuente de saltos. */
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 22px;
  box-shadow:
    0 34px 80px -28px rgba(0,0,0,.9),
    inset 0 1px 0 rgba(255,255,255,.20);
  overflow: hidden;
}
@supports not ((-webkit-backdrop-filter: blur(2px)) or (backdrop-filter: blur(2px))){
  .sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown{ background: rgba(9,9,12,.97); }
}
/* --- Las filas ---
   Numeradas con el mismo lenguaje de acotado que Home IA v2 y Contacto IA v2:
   indice dorado 01-05 a la izquierda, filete lateral que crece al pasar por
   encima y flecha que entra por la derecha. El contador es CSS puro.
   NOTA: la flecha se escribe con el caracter literal, no con la secuencia de
   escape CSS, porque el escape se pierde al pasar por herramientas. */
/* El contador numera SOLO las filas de primer nivel. Antes el `counter-reset`
   caia sobre todos los `ul` —incluido el `ul.sub-menu`, que reiniciaba la
   cuenta en 01— y el `counter-increment` sobre todos los `li`, de modo que los
   cuatro hijos de "Sistema" consumian numero y la serie principal saltaba de
   02 a 07. Acotado con `>` a la lista de primer nivel. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown > ul{ counter-reset: sa-mi; }
.sa-navm nav.elementor-nav-menu--dropdown > ul > li{ counter-increment: sa-mi; }
.sa-navm .elementor-nav-menu--dropdown li{ position: relative; }

/* Filete dorado lateral que crece de dentro hacia fuera */
.sa-navm nav.elementor-nav-menu--dropdown > ul > li::before{
  content: "";
  position: absolute;
  /* Medidas fijas, no porcentajes. El `li` de un item con hijos crece hasta
     contener todo el submenu: con `top/bottom: 14%` el filete se saltaba la
     fila padre entera y arrancaba ya dentro de los hijos (medido: 66px de
     margen en un `li` de 470px). Con 8px sirve igual a la fila suelta y al
     bloque desplegado. */
  left: 0; top: 8px; bottom: 8px;
  width: 2px;
  background: var(--sa-gold);
  transform: scaleY(0);
  transition: transform .32s var(--sa-ease);
  pointer-events: none;
}
.sa-navm nav.elementor-nav-menu--dropdown > ul > li:hover::before{ transform: scaleY(1); }

.sa-hdr .sa-bar .sa-navm .elementor-nav-menu--dropdown a.elementor-item{
  position: relative;
  padding-left: 66px;
  transition: color .25s var(--sa-ease), background-color .25s var(--sa-ease), padding-left .32s var(--sa-ease);
}
.sa-hdr-mob .sa-bar .sa-navm .elementor-nav-menu--dropdown a.elementor-item{ padding-left: 58px; }
.sa-hdr .sa-bar .sa-navm .elementor-nav-menu--dropdown a.elementor-item:hover{ padding-left: 74px; }
.sa-hdr-mob .sa-bar .sa-navm .elementor-nav-menu--dropdown a.elementor-item:hover{ padding-left: 66px; }

/* Indice 01-05 */
/* OJO: Elementor usa .elementor-item::before para sus efectos de puntero y
   lo deja en opacity:0. Sin este opacity:1 el numero existe pero no se ve. */
.sa-hdr .sa-bar .sa-navm .elementor-nav-menu--dropdown a.elementor-item::before{
  content: counter(sa-mi, decimal-leading-zero);
  opacity: 1;
  position: absolute;
  left: 26px; top: 50%;
  transform: translateY(-50%);
  font-family: "Poppins", sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.6px;
  font-variant-numeric: tabular-nums;
  color: rgba(218,165,32,.52);
  transition: color .28s var(--sa-ease);
}
.sa-hdr-mob .sa-navm .elementor-nav-menu--dropdown a.elementor-item::before{ left: 22px; font-size: 10.5px; }
.sa-navm .elementor-nav-menu--dropdown a.elementor-item:hover::before{ color: var(--sa-gold); }

/* Flecha que entra por la derecha */
.sa-navm .elementor-nav-menu--dropdown a.elementor-item::after{
  content: "→";
  position: absolute;
  right: 24px; top: 50%;
  transform: translate(-8px,-50%);
  opacity: 0;
  color: var(--sa-gold);
  transition: opacity .28s var(--sa-ease), transform .28s var(--sa-ease);
}
.sa-navm .elementor-nav-menu--dropdown a.elementor-item:hover::after{
  opacity: 1;
  transform: translate(0,-50%);
}
/* El ultimo elemento no necesita filete inferior */
.sa-navm nav.elementor-nav-menu--dropdown > ul > li:last-child > a.elementor-item{ border-bottom: 0 !important; }

/* --- El submenu, en flujo (acordeon) ---
   El menu tiene un item con hijos ("Sistema"). En un panel tactil el submenu
   debe EMPUJAR las filas siguientes, no flotar sobre ellas.

   `position: static` no es cosmetico: SmartMenus —el script que abre y cierra
   los subniveles— decide su modo con
       isCollapsible: function(){ return "static" == this.$firstSub.css("position") }
   (leido en jquery.smartmenus.min.js servido por el sitio). Mientras el
   submenu computaba `absolute` devolvia `false` y lo trataba como un desplegable
   flotante de escritorio. Con `static` entra en modo acordeon y lo abre y
   cierra con altura, que es el comportamiento correcto aqui. */
.sa-hdr .sa-bar .sa-navm ul.sub-menu{
  position: static;
  top: auto; left: auto; right: auto;
  width: auto; max-width: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  background: rgba(255,255,255,.028);
  /* SIN filete propio a proposito. El filete dorado del `li` padre ya recorre
     todo el bloque —fila + hijos— porque el submenu vive dentro de ese `li`.
     Con los dos se veian dos rayas paralelas a distinta altura. */
  margin: 0;
}

/* Las filas del submenu usan `a.elementor-sub-item`, no `a.elementor-item`:
   son otra clase, asi que no heredan nada del bloque de arriba. */
.sa-hdr .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item{
  position: relative;
  display: flex;
  align-items: center;
  padding: 14px 24px 14px 44px;
  font-family: "Poppins", sans-serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -.1px;
  color: rgba(255,255,255,.72);
  border-bottom: 1px solid rgba(255,255,255,.06);
  transition: color .25s var(--sa-ease), padding-left .3s var(--sa-ease), background-color .25s var(--sa-ease);
}
.sa-hdr-mob .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item{ padding-left: 38px; font-size: 14.5px; }
.sa-hdr .sa-bar .sa-navm ul.sub-menu li:last-child a.elementor-sub-item{ border-bottom: 0; }

/* Marca de nivel: un guion corto en lugar del indice numerado. El numero es
   del primer nivel y repetirlo aqui romperia la lectura de la serie. */
.sa-hdr .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item::before{
  content: "";
  position: absolute;
  left: 20px; top: 50%;
  width: 12px; height: 1px;
  margin-top: -.5px;
  background: rgba(218,165,32,.55);
  transition: width .3s var(--sa-ease), background-color .25s var(--sa-ease);
}
.sa-hdr-mob .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item::before{ left: 16px; width: 10px; }
.sa-hdr .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item:hover{
  color: var(--sa-gold);
  background-color: rgba(255,255,255,.04);
  padding-left: 52px;
}
.sa-hdr-mob .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item:hover{ padding-left: 46px; }
.sa-hdr .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item:hover::before{
  width: 20px;
  background: var(--sa-gold);
}
.sa-navm ul.sub-menu a.elementor-sub-item:focus-visible{
  outline: 2px solid var(--sa-gold);
  outline-offset: -3px;
}

/* --- Fluidez al abrir y cerrar el submenu ---
   La altura del bloque la anima SmartMenus con jQuery (slideDown/slideUp, en
   torno a 200ms) escribiendo `height` en linea fotograma a fotograma: ni una
   `transition` ni una `animation` de esta hoja pueden intervenir en ESE
   movimiento, porque el estilo en linea gana siempre.
   Lo que si se puede es acompanarlo. Las filas hijas llevan su propio
   fundido con desplazamiento, escalonado al abrir para que el bloque se
   construya en cascada en vez de aparecer entero de golpe.

   Se usa `transition` y NO `animation` a proposito: la animacion solo se
   dispara al entrar en el estado, mientras que la transicion recorre el
   camino en los DOS sentidos, que es justo lo que hace que el cierre
   tampoco se vea seco. */
.sa-hdr .sa-bar .sa-navm ul.sub-menu > li{
  opacity: 0;
  transform: translate3d(0,-8px,0);
  transition: opacity .34s var(--sa-ease), transform .34s var(--sa-ease);
}
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a[aria-expanded="true"]) > ul.sub-menu > li{
  opacity: 1;
  transform: none;
}
/* El escalonado vive SOLO en el estado abierto. Al cerrarse, el .elementor-2273 deja
   de aplicar, los retardos desaparecen y las cuatro filas se apagan juntas
   mientras el bloque colapsa: si salieran tambien escalonadas, la ultima
   seguiria visible cuando el hueco ya se ha cerrado. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a[aria-expanded="true"]) > ul.sub-menu > li:nth-child(1){ transition-delay: .04s; }
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a[aria-expanded="true"]) > ul.sub-menu > li:nth-child(2){ transition-delay: .09s; }
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a[aria-expanded="true"]) > ul.sub-menu > li:nth-child(3){ transition-delay: .14s; }
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a[aria-expanded="true"]) > ul.sub-menu > li:nth-child(4){ transition-delay: .19s; }
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a[aria-expanded="true"]) > ul.sub-menu > li:nth-child(5){ transition-delay: .24s; }

/* --- El indicador del item con hijos ---
   La flecha la inyecta SmartMenus dentro del propio enlace. Se coloca a la
   derecha y gira al abrirse, para que la fila diga si esta desplegada. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown .sub-arrow{
  position: absolute;
  right: 22px; top: 50%;
  transform: translateY(-50%);
  margin: 0;
  padding: 0;
  width: 22px; height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.62);
  font-size: 13px;
  transition: transform .34s var(--sa-ease), color .25s var(--sa-ease);
}
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.highlighted .sub-arrow,
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a[aria-expanded="true"] .sub-arrow{
  transform: translateY(-50%) rotate(180deg);
  color: var(--sa-gold);
}
/* OJO — Elementor pinta el item activo/abierto con un gris azulado propio:
     .elementor-nav-menu--dropdown .elementor-item.highlighted,
     .elementor-nav-menu--dropdown .elementor-item:hover,
     .elementor-sub-item:hover  ->  background-color:#3f444b; color:#fff
   (leido en widget-nav-menu.min.css servido por el sitio). El ajuste del panel
   cubre el `hover`, pero NO el estado `highlighted`, que es el que marca la
   fila mientras su submenu esta desplegado: en banco de pruebas la fila
   "Sistema" salia sobre una banda gris azulada ajena a la paleta. Se anula
   aqui, tanto en el primer nivel como en los hijos. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.elementor-item.highlighted,
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.elementor-item:focus,
.sa-hdr .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item.highlighted,
.sa-hdr .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item.elementor-item-active,
.sa-hdr .sa-bar .sa-navm ul.sub-menu a.elementor-sub-item:focus{
  background-color: transparent;
}

/* La fila padre, mientras su submenu esta abierto, se marca en oro. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.elementor-item.highlighted,
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.elementor-item[aria-expanded="true"]{
  color: var(--sa-gold);
}
.sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a.highlighted)::before,
.sa-navm nav.elementor-nav-menu--dropdown > ul > li:has(> a[aria-expanded="true"])::before{
  transform: scaleY(1);
}
/* La flecha desplaza el texto para que no se solapen en titulos largos. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.elementor-item:has(.sub-arrow){
  padding-right: 54px;
}
/* UN SOLO indicador por fila.
   La fila con hijos ya se explica con su chevron: la flecha "->" de "ir a esta
   pagina" no le corresponde, y ademas caia en la misma coordenada (right: 24px
   frente a los 22px del chevron) y con el mismo centrado vertical. En tactil el
   hover se queda fijo despues del toque, asi que los dos iconos se dibujaban
   uno encima del otro. Aqui se retira el ::after solo en las filas con hijos;
   las demas conservan su flecha. */
.sa-hdr .sa-bar .sa-navm nav.elementor-nav-menu--dropdown a.elementor-item:has(.sub-arrow)::after{
  content: none;
}

/* --- Entrada escalonada, sin JavaScript ---
   El widget marca el toggle con aria-expanded="true" y el panel es su
   hermano inmediato, asi que se puede enganchar el escalonado a ese estado. */
@keyframes sa-item-in{
  from{ opacity: 0; transform: translate3d(0,-10px,0); }
  to  { opacity: 1; transform: none; }
}
/* OJO: Elementor abre el panel con una transicion CSS propia de
   `max-height` a 1000vmax, y lleva `transform` en esa misma lista
   (transition-property: max-height, transform; 0.3s).
   Si esta animacion tocaba transform, al terminar el panel volvia a
   asentarse -bajaba los 8px del translateY y crecia el 1,5% del scale- y se
   veia un salto. Por eso aqui SOLO se anima la opacidad, y en menos tiempo
   que la transicion de Elementor para que todo acabe junto. */
@keyframes sa-panel-in{
  from{ opacity: 0; }
  to  { opacity: 1; }
}
@media (prefers-reduced-motion: no-preference){
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown{
    animation: sa-panel-in .26s var(--sa-ease) both;
  }
  /* `> ul > li`: solo las filas de primer nivel. Sin acotar, los cuatro hijos
     de "Sistema" tambien entraban en el escalonado con `both`, es decir con
     opacidad 0 retenida hasta su turno, aunque estuviesen dentro de un
     submenu todavia plegado. */
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown > ul > li{
    animation: sa-item-in .38s var(--sa-ease) both;
  }
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown > ul > li:nth-child(1){ animation-delay: .04s; }
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown > ul > li:nth-child(2){ animation-delay: .09s; }
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown > ul > li:nth-child(3){ animation-delay: .14s; }
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown > ul > li:nth-child(4){ animation-delay: .19s; }
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown > ul > li:nth-child(5){ animation-delay: .24s; }
}

/* =========================================================================
   8. Densidad del cristal segun el scroll (CSS puro)
   Arriba del todo el header es casi invisible; al bajar se densifica para
   no perder legibilidad sobre el contenido. Sin JavaScript.
   ========================================================================= */
@keyframes sa-bar-dense{
  from{ background-color: rgba(16,16,19,.06); border-color: rgba(255,255,255,.07); }
  to  { background-color: rgba(11,11,14,.55); border-color: rgba(255,255,255,.13); }
}
/* Ahora la legibilidad NO depende de la opacidad del fondo sino de
   brightness(.42) dentro del backdrop-filter, que oscurece lo que se ve a
   traves. Sobre blanco puro deja el fondo en 107 de luminancia: texto blanco
   a 5,3:1, por encima de AA. Por eso la curva de densidad puede ser casi
   simbolica y el cristal quedar practicamente invisible. */
@keyframes sa-bar-dense-mob{
  from{ background-color: rgba(18,18,24,.04); border-color: rgba(255,255,255,.06); }
  to  { background-color: rgba(12,12,16,.42); border-color: rgba(255,255,255,.12); }
}
@keyframes sa-bar-dense-desk{
  from{ background-color: rgba(20,20,26,.03); border-color: rgba(255,255,255,.06); }
  to  { background-color: rgba(14,14,18,.50); border-color: rgba(255,255,255,.12); }
}
@media (prefers-reduced-motion: no-preference){
  @supports (animation-timeline: scroll()){
    .sa-bar{
      animation: sa-bar-dense linear both;
      animation-timeline: scroll(root block);
      animation-range: 0 150px;
    }
    .sa-bar-desk{ animation-name: sa-bar-dense-desk; }
    .sa-bar-mob { animation-name: sa-bar-dense-mob; }
  }
}

/* ---------- 9. Movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce){
  /* OJO: `.sa-navm ul.sub-menu > li` va aqui SIN condicionar al panel abierto.
     Su estado de reposo es `opacity: 0` —lo necesita el fundido de apertura—,
     asi que si aqui no se forzara a 1, con movimiento reducido el submenu se
     desplegaria vacio: el bloque abriria su altura y dentro no se veria nada. */
  .sa-bar,
  .sa-navm ul.sub-menu > li,
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown,
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown li,
  .sa-navm .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu--dropdown > ul > li{
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .sa-bar{ background-color: rgba(11,11,14,.55); }
  .sa-bar-desk{ background-color: rgba(14,14,18,.50); }
  .sa-bar-mob { background-color: rgba(12,12,16,.42); }
  .sa-cta .elementor-button,
  .sa-cta .elementor-button::after,
  .sa-navm .elementor-menu-toggle i,
  .sa-navm .elementor-nav-menu--dropdown li::before,
  .sa-navm .elementor-nav-menu--dropdown a.elementor-item,
  .sa-navm .elementor-nav-menu--dropdown a.elementor-item::before,
  .sa-navm .elementor-nav-menu--dropdown a.elementor-item::after,
  .sa-navm ul.sub-menu > li,
  .sa-logo img{ transition: none !important; }
  .sa-cta .elementor-button:hover{ transform: none !important; }
}/* End custom CSS */