/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*
    Add your custom styles here
*/



/* ------------------- Efecto revelado Scroll Home ----------------- */

#bajar {
  animation: bajar 2s cubic-bezier(.77,0,.18,1) infinite !important;
}
@keyframes bajar {
  0%   { clip-path: inset(0 0 100% 0); }  /* oculta */
  50%  { clip-path: inset(0 0 0 0); }     /* aparece desde arriba */
  100% { clip-path: inset(100% 0 0 0); }  /* desaparece hacia abajo */
}


/*  ---------------Efecto revelado 3 imágenes Story Home --------------- */

[id^="revelar"] {
  animation: revelar-esquina linear both !important;
  animation-timeline: view() !important;
  animation-range: entry 10% cover 60% !important;
}
@keyframes revelar-esquina {
  from { clip-path: inset(calc(100% - 100px) 0 0 calc(100% - 100px)); }
  to   { clip-path: inset(0 0 0 0); }
}

/* Navegadores sin soporte: la imagen se muestra sin efecto */
@supports not (animation-timeline: view()) {
  [id^="revelar"] { animation: none !important; }
}


/*  --------------- Desvelado imágenes Efecto cortina de arriba-abajo (varias páginas) --------------- */

[id^="cortina"] {
  animation: cortina-bajar linear both !important;
  animation-timeline: view() !important;
  animation-range: entry 10% cover 60% !important;
}
@keyframes cortina-bajar {
  from { clip-path: inset(0 0 100% 0); }
  to   { clip-path: inset(0 0 0 0); }
}

/* Navegadores sin soporte: la imagen se muestra sin efecto */
@supports not (animation-timeline: view()) {
  [id^="cortina"] { animation: none !important; }
}


/*  ---------------Efecto Imágenes pestañas Home - blowup desde el centro --------------- */

[id^="blowup"] {
  clip-path: inset(max(30%, calc(50% - 100px)) max(30%, calc(50% - 70px)));
}
#pestanas-home.visible [id^="blowup"] {
  animation: blowup-centro 1.6s cubic-bezier(.77,0,.18,1) both !important;
}
#pestanas-home.visible #blowup-1 {
  animation-delay: .3s !important;   /* retardo solo para la primera */
}
#pestanas-home.salida [id^="blowup"] {
  animation: blowup-encoger 1s cubic-bezier(.77,0,.18,1) both !important;
}
@keyframes blowup-centro {
  from { clip-path: inset(max(30%, calc(50% - 100px)) max(30%, calc(50% - 70px))); }
  to   { clip-path: inset(0); }
}
@keyframes blowup-encoger {
  from { clip-path: inset(0); }
  to   { clip-path: inset(max(30%, calc(50% - 100px)) max(30%, calc(50% - 70px))); }
}

/* En el editor, imagen completa */
.elementor-editor-active [id^="blowup"] { clip-path: none; }



/* ---------------------- Pestañas Home en mobile ---------------------- */


.tab-titulo-movil { display: none; }

@media (max-width: 767px) {
  /* Oculta la fila de títulos */
  .tabs-movil-abiertas .e-tabs-menu-base {
    display: none !important;
  }

  /* Muestra todos los contenidos, uno debajo de otro */
  .tabs-movil-abiertas [role="tabpanel"],
  .tabs-movil-abiertas [role="tabpanel"][hidden] {
    display: flex !important;
    flex-direction: column;
  }

  .tabs-movil-abiertas .tab-titulo-movil {
    display: flex;
  }
}

/* Mobile: cada imagen espera a entrar en pantalla */
@media (max-width: 767px) {
  #pestanas-home.visible [id^="blowup"]:not(.img-visible) {
    animation: none !important;
  }
}


/* ---- Títulos Pestañas desplegadas en mobile ----- */

@media (max-width: 767px) {
  .tabs-movil-abiertas .tab-titulo-movil {
    font-family: NeueHaasDisplay, sans-serif;
    font-weight: 900;
    font-size: 1.4em;
    text-transform: uppercase;
    letter-spacing: 0;
    color: #233ABB;             
    margin: 0 0 16px;
    padding-bottom: 4px;
    border-bottom: 2px solid #233ABB;
	align-self: flex-start;  /* línea solo del ancho del texto */
  }

  /* Espacio entre un bloque y el siguiente */
  .tabs-movil-abiertas [role="tabpanel"] + [role="tabpanel"] {
    margin-top: 60px;
  }
} 



/* ------------------- Botón redondelito: dentro de un contenedor .btn-ext ----------------- */

.btn-ext .elementor-button {
  width: auto !important;
  display: inline-flex !important;
  box-sizing: border-box;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
}

.btn-ext .elementor-button-content-wrapper {
  display: flex !important;
  flex-direction: row-reverse !important;
  align-items: stretch !important;
  width: 100%;
  gap: 6px !important;
  transition: gap 0.3s ease;
}

.btn-ext .elementor-button-text {
  flex: 1 1 auto;
  white-space: nowrap;
  overflow: hidden;
  display: flex !important;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 0 24px !important;
  background-color: var(--e-global-color-primary, #2E3192) !important;
  color: #fff !important;
  border-radius: 50px !important;
  box-sizing: border-box;
  transition: border-radius 0.3s ease;
}

.btn-ext .elementor-button-icon {
  flex: 0 0 44px !important;
  width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  border-radius: 50% !important;
  background-color: #233ABB !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  transition: background-color 0.3s ease, border-radius 0.3s ease;
}

/* Flecha inicial: arriba a la derecha */
.btn-ext .elementor-button-icon svg {
  width: 18px;
  height: 18px;
  fill: #fff;
  display: block;
  transform: rotate(-45deg);
  transition: transform 0.3s ease;
}

/* ===== Hover ===== */

.btn-ext .elementor-button:hover .elementor-button-content-wrapper {
  gap: 0 !important;
}

.btn-ext .elementor-button:hover .elementor-button-icon {
  border-radius: 0 50px 50px 0 !important;
  background-color: var(--e-global-color-primary, #2E3192) !important;
}

.btn-ext .elementor-button:hover .elementor-button-text {
  border-radius: 50px 0 0 50px !important;
  padding: 0 27.5px !important;
}

/* Flecha en hover: derecha-centro */
.btn-ext .elementor-button:hover .elementor-button-icon svg {
  transform: rotate(0deg);
}


/* ------------------- Botón redondelito (colores invertidos): dentro de un contenedor .btn-ext-blanc ----------------- */

.btn-ext-blanc .elementor-button {
  width: auto !important;
  display: inline-flex !important;
  box-sizing: border-box;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 !important;
}

.btn-ext-blanc .elementor-button-content-wrapper {
  display: flex !important;
  flex-direction: row-reverse !important;
  align-items: stretch !important;
  width: 100%;
  gap: 6px !important;
  transition: gap 0.3s ease;
}

.btn-ext-blanc .elementor-button-text {
  flex: 1 1 auto;
  white-space: nowrap;
  overflow: hidden;
  display: flex !important;
  align-items: center;
  justify-content: center;
  height: 44px;
  padding: 0 24px !important;
  background-color: #fff !important;
  color: var(--e-global-color-primary, #2E3192)!important;
  border-radius: 50px !important;
  box-sizing: border-box;
  transition: border-radius 0.3s ease;
}

.btn-ext-blanc .elementor-button-icon {
  flex: 0 0 44px !important;
  width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
  border-radius: 50% !important;
  background-color: #fff !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  transition: background-color 0.3s ease, border-radius 0.3s ease;
}

/* Flecha inicial: arriba a la derecha */
.btn-ext-blanc .elementor-button-icon svg {
  width: 18px;
  height: 18px;
  fill: #233ABB;
  display: block;
  transform: rotate(-45deg);
  transition: transform 0.3s ease, fill 0.3s ease;
}

/* ===== Hover ===== */

.btn-ext-blanc .elementor-button:hover .elementor-button-content-wrapper {
  gap: 0 !important;
}

.btn-ext-blanc .elementor-button:hover .elementor-button-icon {
  border-radius: 0 50px 50px 0 !important;
  background-color: #fff !important;
}

.btn-ext-blanc .elementor-button:hover .elementor-button-text {
  border-radius: 50px 0 0 50px !important;
  padding: 0 27.5px !important;
}

/* Flecha en hover: derecha-centro */
.btn-ext-blanc .elementor-button:hover .elementor-button-icon svg {
  transform: rotate(0deg);
  fill: var(--e-global-color-primary, #2E3192);
}



/* ---------- Botón subrayado (sin contorno) + flecha que gira a derecha ------------------ */

.btn-flecha-gira svg {
  display: block;
  transform-origin: 50% 50%;
  transform: rotate(-45deg);
  transition: transform 0.3s ease;
}

.btn-flecha-gira:hover svg {
  transform: rotate(0deg);
}


/* --------------- Superíndice dentro de los botones .btn-ext y .btn-ext-blanc ------------ */

.btn-ext .elementor-button-text sup,
.btn-ext-blanc .elementor-button-text sup {
  position: relative;
  top: -0.5em;
  font-size: 0.6em;
  line-height: 1;
  margin-left: 1px;
}

/* --------------- Texto Subrayado en toda la web ----------------- */
* {
  text-underline-offset: 4px !important;
  text-decoration-thickness: 1px !important;
}


/* --------------- Formulario contacto - desplegable "Tipo de proyecto" --------------- */

#form-field-tipo {
  font-family: "NeueHaasDisplay", sans-serif;
  font-size: 2vw;
  font-weight: 600;
  color: #233ABB;
  letter-spacing: 0;
  line-height: 1;
  height: auto;
  padding-top: 0;
  padding-bottom: 4px;
  -webkit-appearance: none;
  appearance: none;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}



/* --------------- Formulario contacto - textarea "Mensaje" --------------- */

#form-field-mensaje {
  font-family: "NeueHaasDisplay", sans-serif;
  font-size: 0.9vw;
  letter-spacing: 0;
  font-weight: 600;
  line-height: 1;
  color: #233ABB;
}
#form-field-mensaje::placeholder {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: #233ABB;
  opacity: 64%;
}

/* --------------- Formulario contacto - Checkbox privacidad --------------- */

.elementor-891 .elementor-element.elementor-element-ac10215 .elementor-field-group-privacidad .elementor-field-subgroup label {
  font-size: 0.8vw !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
}

/* --------------- Formulario contacto - Tablet --------------- */
@media (max-width: 1024px) {
  #form-field-tipo    { font-size: 2.8vw; }
  #form-field-mensaje { font-size: 1.9vw; line-height: 1.2; }

  .elementor-891 .elementor-element.elementor-element-ac10215 .elementor-field-group-privacidad .elementor-field-subgroup label {
    font-size: 1.8vw !important;
  }
}

/* --------------- Formulario contacto - Móvil --------------- */
@media (max-width: 767px) {
  #form-field-tipo    { font-size: 5vw ; }
  #form-field-mensaje { font-size: 3.6vw; line-height: 1.3; }

  .elementor-891 .elementor-element.elementor-element-ac10215 .elementor-field-group-privacidad .elementor-field-subgroup label {
    font-size: 3.6vw !important;
  }
}



/* --------------- Efecto Menú "Empieza aquí" ON HOVER  --------------- */

#empieza *,
#empieza svg * {
  transition: color 0.3s, fill 0.3s;
}

#empieza:hover *:not(#elem-3, #elem-3 *) {
  color: #F79824 !important;
}

#empieza:hover svg * {
  fill: #F79824 !important;
}

