.elementor-2358 .elementor-element.elementor-element-fc08170{--display:flex;--min-height:100vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-2358 .elementor-element.elementor-element-36264e2{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-2358 .elementor-element.elementor-element-1d19c7a{--display:flex;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-2358 .elementor-element.elementor-element-1d19c7a.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-2358 .elementor-element.elementor-element-171cf07{width:var( --container-widget-width, 9.216% );max-width:9.216%;--container-widget-width:9.216%;--container-widget-flex-grow:0;}.elementor-2358 .elementor-element.elementor-element-171cf07.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-2358 .elementor-element.elementor-element-b52f8f7{--display:flex;}.elementor-2358 .elementor-element.elementor-element-b52f8f7.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-2358 .elementor-element.elementor-element-48ce2c1{--display:flex;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-2358 .elementor-element.elementor-element-a49ff2a{--display:flex;--min-height:83vh;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-2358 .elementor-element.elementor-element-ae8fed6{--display:flex;--justify-content:center;--z-index:2;}.elementor-2358 .elementor-element.elementor-element-a483d7d{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-2358 .elementor-element.elementor-element-225e27f{width:100%;max-width:100%;text-align:left;}.elementor-2358 .elementor-element.elementor-element-225e27f .elementor-heading-title{font-family:"Artemus", Sans-serif;font-size:29px;font-weight:600;-webkit-text-stroke-width:1px;stroke-width:1px;-webkit-text-stroke-color:var( --e-global-color-b4bc153 );stroke:var( --e-global-color-b4bc153 );color:#01010100;}.elementor-2358 .elementor-element.elementor-element-dd80c91 > .jet-listing-grid > .jet-listing-grid__items{--columns:5;}.elementor-2358 .elementor-element.elementor-element-a194d1a .elementor-button{background-color:#61CE7000;font-family:"Artemus", Sans-serif;font-size:12px;font-weight:400;letter-spacing:5.2px;border-style:none;border-radius:12px 12px 12px 12px;padding:10px 25px 10px 25px;}.elementor-2358 .elementor-element.elementor-element-a194d1a{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2358 .elementor-element.elementor-element-2aeca60{--display:flex;}@media(max-width:767px){.elementor-2358 .elementor-element.elementor-element-48ce2c1{--margin-top:-100px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-2358 .elementor-element.elementor-element-a483d7d{--margin-top:-100px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-2358 .elementor-element.elementor-element-225e27f{text-align:center;}.elementor-2358 .elementor-element.elementor-element-dd80c91 > .jet-listing-grid > .jet-listing-grid__items{--columns:2;}}@media(min-width:768px){.elementor-2358 .elementor-element.elementor-element-1d19c7a{--width:15%;}.elementor-2358 .elementor-element.elementor-element-b52f8f7{--width:70%;}.elementor-2358 .elementor-element.elementor-element-48ce2c1{--width:15%;}.elementor-2358 .elementor-element.elementor-element-ae8fed6{--width:5%;}.elementor-2358 .elementor-element.elementor-element-2aeca60{--width:5%;}}/* Start custom CSS for button, class: .elementor-element-171cf07 *//* ============================================
   HAMBURGER TVT – Elementor Button
   Widget Button con clase: hamburger-btn
   ============================================ */

/* Wrapper del widget */
.hamburger-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Botón interno de Elementor */
.hamburger-btn .elementor-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto !important;
  height: 34px !important;
  padding: 0 22px !important;
  border-radius: 999px;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  cursor: pointer;
}

/* Ocultamos texto / icono nativo */
.hamburger-btn .elementor-button-text,
.hamburger-btn .elementor-button-icon {
  font-size: 0;
  opacity: 0;
  visibility: hidden;
}

/* ===== LÍNEAS DEL HAMBURGUESA ===== */
.hamburger-btn .elementor-button::before,
.hamburger-btn .elementor-button::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 22px;
  height: 2px;
  border-radius: 999px;
  background-color: #ffffff;
  transform-origin: center;
  transition:
    transform 0.22s ease,
    opacity 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease;
}

/* superior + central (con box-shadow) */
.hamburger-btn .elementor-button::before {
  top: 50%;
  transform: translate(-50%, -6px);
  box-shadow: 0 6px 0 #ffffff;
}

/* inferior */
.hamburger-btn .elementor-button::after {
  top: 50%;
  transform: translate(-50%, 6px);
}

/* Light mode: líneas negras */
html[data-theme="light"] .hamburger-btn .elementor-button::before,
html[data-theme="light"] .hamburger-btn .elementor-button::after {
  background-color: #111111;
}
html[data-theme="light"] .hamburger-btn .elementor-button::before {
  box-shadow: 0 6px 0 #111111;
}

/* ===== ESTADO OPEN (X limpia) ===== */
.hamburger-btn.is-open .elementor-button::before {
  transform: translate(-50%, 0) rotate(45deg);
  box-shadow: none;
}

.hamburger-btn.is-open .elementor-button::after {
  transform: translate(-50%, 0) rotate(-45deg);
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-bba1bc0 *//* ============================================
   THEME SWITCH — con borde sci-fi como el hamburguer
   ============================================ */

.theme-switch {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  outline: none;
  transition: border-color 0.25s ease;
  z-index: 0; /* obligatorio para el aro */
}

/* matar estilos de Elementor */
.theme-switch:hover,
.theme-switch:focus,
.theme-switch:active {
  background: transparent !important;
  box-shadow: none;
}

/* ICONOS SVG MINIMAL */
.theme-icon {
  width: 14px;
  height: 14px;
  display: inline-block;
  mask-size: contain;
  mask-repeat: no-repeat;
  background-color: #ffffff;
}

/* dark → iconos blancos */
html[data-theme="dark"] .theme-icon,
html:not([data-theme]) .theme-icon {
  background-color: #ffffff;
}

/* light → iconos negros */
html[data-theme="light"] .theme-icon {
  background-color: #111111;
}

/* luna */
.theme-icon--moon {
  mask-image: url("data:image/svg+xml,%3Csvg fill='none' stroke='%23000' stroke-width='2' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79Z'/%3E%3C/svg%3E");
}

/* sol */
.theme-icon--sun {
  mask-image: url("data:image/svg+xml,%3Csvg fill='none' stroke='%23000' stroke-width='2' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cpath d='M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42'/%3E%3C/svg%3E");
}

/* TRACK */
.theme-track {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  overflow: hidden;
  flex-shrink: 0;
}

/* track light */
html[data-theme="light"] .theme-track {
  background: rgba(0, 0, 0, 0.12);
}

/* THUMB */
.theme-thumb {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background-color: #ffffff;
  transition: all 0.25s ease;
  z-index: 2;
  display: block;
  opacity: 1;
}

/* thumb en light */
html[data-theme="light"] .theme-thumb {
  transform: translateX(18px);
  background-color: #111111;
}

/* ============================================
   BORDE SCI-FI ANIMADO 1PX (mismo estilo que .boton-contact)
   ============================================ */

.theme-switch::before {
  content: "";
  position: absolute;
  inset: -1px;       /* borde de 1px hacia afuera */
  padding: 1px;      /* grosor visible */
  border-radius: inherit;

  /* Haz de luz: dark -> azul -> blanco -> azul -> dark */
  background: linear-gradient(
    120deg,
    rgba(5, 8, 24, 1) 0%,
    #151540 15%,
    #1f35ff 32%,
    #ffffff 50%,          /* pulso blanco al centro */
    #1f35ff 68%,
    #151540 85%,
    rgba(5, 8, 24, 1) 100%
  );

  background-size: 260% 260%;
  background-position: 0% 50%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, background-position 0.3s linear;

  /* recorte para dejar solo el borde */
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;

  z-index: -1;
}

/* Variante Light – degradado suave con blanco */
html[data-theme="light"] .theme-switch::before {
  background: linear-gradient(
    120deg,
    rgba(240, 242, 255, 1) 0%,
    #d8ddff 15%,
    #7c88ff 32%,
    #ffffff 50%,         /* flash blanco central */
    #7c88ff 68%,
    #d8ddff 85%,
    rgba(240, 242, 255, 1) 100%
  );
  background-size: 260% 260%;
  background-position: 0% 50%;
}

/* activar animación sci-fi solo en hover/focus */
.theme-switch:hover::before,
.theme-switch:focus-visible::before {
  opacity: 1;
  animation: neonBorderMove 2.4s linear infinite;
}

/* Animación compartida con el resto de bordes neon */
@keyframes neonBorderMove {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-b021631 *//* ============================================
   TVT – Navegación lateral por puntos
   ============================================ */

/* Contenedor lateral fijo */
.tvt-dots-nav {

  z-index: 40;
  pointer-events: none;    /* los clics solo en los enlaces */
}

.tvt-dots-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Cada punto (enlace) */
.tvt-dots-list a {
  position: relative;
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid #ffffff;
  background: transparent;
  pointer-events: auto;        /* reactivamos clic en el link */
  cursor: pointer;
  transition:
    border-color 0.25s ease,
    transform 0.2s ease;
}

/* Tema light: borde oscuro */
html[data-theme="light"] .tvt-dots-list a {
  border-color: #111111;
}

/* Efecto de "pequeño trazo" base: dejamos el círculo hueco
   y usamos ::before solo para el relleno activo/hover */
.tvt-dots-list a::before {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background-color: #ffffff;
  transform: scale(0);
  opacity: 0;
  transition:
    transform 0.22s ease,
    opacity 0.22s ease;
}

/* Light: relleno oscuro */
html[data-theme="light"] .tvt-dots-list a::before {
  background-color: #111111;
}

/* Punto ACTIVO (por URL) = círculo relleno */
.tvt-dots-list a.is-active::before {
  transform: scale(1);
  opacity: 1;
}

/* Hover: ligero zoom y relleno suave,
   pero si no es la página activa, el relleno vuelve al salir */
.tvt-dots-list a:hover {
  transform: scale(1.15);
}
.tvt-dots-list a:hover::before {
  transform: scale(1);
  opacity: 0.75;
}

/* ============================================
   Tooltip de texto (títulos) en hover
   ============================================ */

.tvt-dots-list a::after {
  content: attr(data-label);
  position: absolute;
  left: 20px;              /* separación hacia la derecha */
  top: 50%;
  transform: translateY(-50%) translateX(4px);
  font-family: "Artemus", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
  color: #ffffff;
  text-shadow: 0 0 6px rgba(0, 0, 0, 0.85);
}

/* Light: texto oscuro con ligera sombra clara */
html[data-theme="light"] .tvt-dots-list a::after {
  color: #111111;
  text-shadow: 0 0 4px rgba(255, 255, 255, 0.65);
}

/* Mostrar tooltip en hover (fade + slide suave) */
.tvt-dots-list a:hover::after {
  opacity: 1;
  transform: translateY(-50%) translateX(10px);
}

/* Responsive: ocúltalo en móviles si estorba */
@media (max-width: 768px) {
  .tvt-dots-nav {
    display: none;
  }
}

/* Mostrar tooltip de forma programada (animación al cargar) */
.tvt-dots-list a.show-label::after {
  opacity: 1;
  transform: translateY(-50%) translateX(10px);
}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-a194d1a *//* ============================================
   BOTÓN CONTACTO 2 – Borde sci-fi fijo + texto según tema
   (widget Button de Elementor con clase: boton-contact2)
   ============================================ */

/* Wrapper del widget */
.boton-contact2 {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  border: 2px solid transparent !important;
  background: transparent !important;
  z-index: 0;
}

/* Estilos base del <a> */
.boton-contact2 .elementor-button,
.boton-contact2 .elementor-button-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 28px;
  border-radius: 999px;
  background: transparent !important;
  border: none !important;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none !important;
  box-shadow: none !important;
  color: #ffffff !important; /* TEXTO DARK */
}

/* hijos dentro del botón toman el color */
.boton-contact2 .elementor-button-text,
.boton-contact2 .elementor-button-icon,
.boton-contact2 .elementor-button-icon i,
.boton-contact2 .elementor-button-icon svg {
  color: inherit !important;
  fill: inherit !important;
}

/* DARK – texto blanco */
.boton-contact2 .elementor-button,
.boton-contact2 .elementor-button:hover,
.boton-contact2 .elementor-button:focus,
.boton-contact2 .elementor-button:active,
.boton-contact2 .elementor-button-link {
  color: #ffffff !important;
}

/* LIGHT – texto negro */
html[data-theme="light"] .boton-contact2 .elementor-button,
html[data-theme="light"] .boton-contact2 .elementor-button-link,
html[data-theme="light"] .boton-contact2 .elementor-button-text,
html[data-theme="light"] .boton-contact2 .elementor-button-icon,
html[data-theme="light"] .boton-contact2 .elementor-button-icon i,
html[data-theme="light"] .boton-contact2 .elementor-button-icon svg {
  color: #111111 !important;
  fill: #111111 !important;
}

/* ============================================================
   BORDE SCI-FI (DARK) – degradado eléctrico + flash blanco
   ============================================================ */
.boton-contact2::before {
  content: "";
  position: absolute;
  inset: -1px;
  padding: 1px;
  border-radius: 999px;

  background: linear-gradient(
    120deg,
    rgba(5, 8, 24, 1) 0%,
    #151540 15%,
    #1f35ff 32%,
    #ffffff 50%,       /* pulso blanco */
    #1f35ff 68%,
    #151540 85%,
    rgba(5, 8, 24, 1) 100%
  );

  background-size: 260% 260%;
  background-position: 0% 50%;
  pointer-events: none;

  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;

  z-index: -1;
  animation: neonBorderMove 2.4s linear infinite;
}

/* ============================================================
   BORDE SCI-FI (LIGHT) – degradado pastel + flash blanco
   ============================================================ */
html[data-theme="light"] .boton-contact2::before {
  background: linear-gradient(
    120deg,
    rgba(240, 242, 255, 1) 0%,
    #d8ddff 15%,
    #7c88ff 32%,
    #ffffff 50%,       /* flash blanco */
    #7c88ff 68%,
    #d8ddff 85%,
    rgba(240, 242, 255, 1) 100%
  );
  background-size: 260% 260%;
  background-position: 0% 50%;
}

/* Animación (si no existe ya en tu CSS global) */
@keyframes neonBorderMove {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Artemus';
	font-style: normal;
	font-weight: bold;
	font-display: auto;
	src: url('https://thevolktone.com/wp-content/uploads/2025/11/Artemus.ttf') format('truetype');
}
/* End Custom Fonts CSS */