.elementor-2699 .elementor-element.elementor-element-85b480f{--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-2699 .elementor-element.elementor-element-c39d802{--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-2699 .elementor-element.elementor-element-345f66e{--display:flex;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-2699 .elementor-element.elementor-element-345f66e.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-2699 .elementor-element.elementor-element-7729830{width:var( --container-widget-width, 9.216% );max-width:9.216%;--container-widget-width:9.216%;--container-widget-flex-grow:0;}.elementor-2699 .elementor-element.elementor-element-7729830.elementor-element{--flex-grow:0;--flex-shrink:0;}.elementor-2699 .elementor-element.elementor-element-bcf63ff{--display:flex;}.elementor-2699 .elementor-element.elementor-element-bcf63ff.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-2699 .elementor-element.elementor-element-9c4d630{--display:flex;--align-items:flex-end;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );}.elementor-2699 .elementor-element.elementor-element-59bee44{--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-2699 .elementor-element.elementor-element-6fd311a{--display:flex;--justify-content:center;--z-index:2;}.elementor-2699 .elementor-element.elementor-element-60ba947{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--padding-top:70px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2699 .elementor-element.elementor-element-c667332{--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-2699 .elementor-element.elementor-element-a690df0{--display:flex;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-2699 .elementor-element.elementor-element-88fb1d8{--display:flex;--padding-top:45px;--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-2699 .elementor-element.elementor-element-8d4eab7 .elementor-heading-title{font-family:"Artemus", Sans-serif;font-size:40px;font-weight:600;color:#FFFFFF;}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-2699 .elementor-element.elementor-element-0eac6a9{margin:-3px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 0px;font-family:"Artemus", Sans-serif;font-size:15px;font-weight:400;color:#FFFFFF;}.elementor-2699 .elementor-element.elementor-element-f6937f0 .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 10px 10px 10px;}.elementor-2699 .elementor-element.elementor-element-f6937f0{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-2699 .elementor-element.elementor-element-d2c495a{--display:flex;}@media(max-width:767px){.elementor-2699 .elementor-element.elementor-element-9c4d630{--margin-top:-85px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}}@media(min-width:768px){.elementor-2699 .elementor-element.elementor-element-345f66e{--width:15%;}.elementor-2699 .elementor-element.elementor-element-bcf63ff{--width:70%;}.elementor-2699 .elementor-element.elementor-element-9c4d630{--width:15%;}.elementor-2699 .elementor-element.elementor-element-6fd311a{--width:5%;}.elementor-2699 .elementor-element.elementor-element-d2c495a{--width:5%;}}/* Start custom CSS for button, class: .elementor-element-7729830 *//* ============================================
   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-e5807bb *//* ============================================
   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-37d5ee0 *//* ============================================
   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-f6937f0 *//* ============================================
   BOTÓN CONTACTO – Borde sci-fi fijo + texto según tema
   (widget Button de Elementor con clase: boton-contact)
   ============================================ */

/* Wrapper del widget */
.boton-contact {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0; /* el padding real lo lleva el <a> interno */
  border-radius: 999px;
  border: 2px solid transparent !important;
  background: transparent !important;
  z-index: 0;
}

/* Estilos base del <a> de Elementor */
.boton-contact .elementor-button,
.boton-contact .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-contact .elementor-button-text,
.boton-contact .elementor-button-icon,
.boton-contact .elementor-button-icon i,
.boton-contact .elementor-button-icon svg {
  color: inherit !important;
  fill: inherit !important;
}

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

/* LIGHT MODE → texto negro */
html[data-theme="light"] .boton-contact .elementor-button,
html[data-theme="light"] .boton-contact .elementor-button-link {
  color: #111111 !important;
}

html[data-theme="light"] .boton-contact .elementor-button-text,
html[data-theme="light"] .boton-contact .elementor-button-icon,
html[data-theme="light"] .boton-contact .elementor-button-icon i,
html[data-theme="light"] .boton-contact .elementor-button-icon svg {
  color: #111111 !important;
  fill: #111111 !important;
}


/* ============================
   Borde sci-fi (DARK) – degradado eléctrico con blanco
   ============================ */
.boton-contact::before {
  content: "";
  position: absolute;
  inset: -1px;
  padding: 1px;
  border-radius: 999px;

  /* Haz de luz: dark -> azul -> blanco -> azul -> dark */
  background: linear-gradient(
    120deg,
    rgba(5, 8, 24, 1) 0%,     /* casi negro */
    #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: 1;
  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;
}

/* LIGHT THEME – degradado suave con blanco también */
html[data-theme="light"] .boton-contact::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%;
}

/* Animación del borde */
@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 */