/*

 Theme Name:   GeneratePress Child

 Theme URI:    https://generatepress.com

 Description:  Default GeneratePress child theme

 Author:       Tom Usborne

 Author URI:   https://tomusborne.com

 Template:     generatepress

 Version:      0.1

*/



/* FUENTE */



@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Noto+Serif+JP:wght@200..900&display=swap');

/* VARIABLES POR DEFECTO */



:root {

    --c-negro: #000;

    --c-blanco: #FFFFFF;

    --c-primario: #221910;

    --c-secundario: #FFFBF7;
    --c-secundario-light:#ededed; 

    --c-grisclaro: #EFEFEF;

    --c-gris: #f9f9f9;

}



/* OUTLINE */


*:focus { 
  outline: 0px solid orange;
 }

::selection {
  background-color: #8d694656; 
  color: var(--c-primario-dark); 
}

html {
  scroll-behavior: smooth;
}

.zindex0 {
  color: var(--c-negro);
}

.zindex1 {
  z-index:1;
}

.alinear-centro {
  text-align: center;
}

/* Estilos comunes */

body {
  font-family: 'DM Sans', sans-serif;
  color: var(--c-primario);
  font-size: 1.125rem;
  line-height: 1.6875rem;
  font-weight: 300;
}

h1, h2, h3 {
  font-family: 'Noto Serif JP', serif;
  font-weight: 300;
}

h1 {
  font-size: 86px;
}

.subtit-home {
  text-transform: uppercase;
  font-weight: 200;
  font-size: 30px;
  letter-spacing: 0.095em;
  padding-top: 10px;
  margin-bottom: 15px;
}

h2 {
  font-size: 58px;
}

h3 {
  font-size: 42px;
}

h1.tit-subpage {
  font-size: 60px;
}

h3.interior {
  font-size: 29px;
}

/* 
Subtitulo con línea

Ejemplo de uso: 

<span class="subtitulo-decorativo">Esto e sun título</span>

*/

.subtitulo-decorativo {
  font-family: 'Noto Serif JP', sans-serif;
  font-weight: 300;
  font-size: 18px;  
  position: relative;
  display: inline-block;

}

.subtitulo-decorativo::after {
  content: '';
  position: absolute;
  top: 50%;
  left: calc(100% + 15px);
  transform: translateY(-50%);
  width: 150px;
  height: 1px;
  background: var(--c-primario); /* valor por defecto */
}

/* Línea blanca */
.subtitulo-decorativo.line-white::after {
  background: var(--c-secundario);
}

/* Línea negra */
.subtitulo-decorativo.line-black::after {
  background: var(--c-primario);
}

@media (max-width: 500px) {

  .subtitulo-decorativo::after {
    display: none;
  }
}

/* Otros estilos de texto */

p {
  margin-bottom: 1.1em;
}

.cita {
  font-size: 35px;
  line-height: 3rem;
}

.text-light {
  color: var(--c-secundario);
}

a {
  opacity: 1;
  text-decoration: none;
  transition: all 0.4s ease !important;
  color: inherit !important;
}

a:hover {
  opacity: 0.8;
}



.main-navigation .main-nav ul li[class*="current-menu-"] > a {

  color: var(--c-primario);

  font-weight: 700;

}

/* Responsive estilos generales */

@media (max-width: 768px) {

   h1 {
    font-size: 45px;
  }

  h2 {
    font-size: 30px;
  }

  h3 {
    font-size: 22px;
  }

  
  .cita {
    font-size: 25px;
    line-height: 1.8rem;
  }


  h1.tit-subpage {
  font-size: 35px;
}

h3.interior {
  font-size: 22px;
}

.movil-centro {
  text-align: center !important;
}
}

/* CLICKABLE */



.home .clickable {
  .vce-col-content {
    transition:  background-color 0.5s ease;
  }
  
}

.home .clickable:hover {
  .vce-col-content {
    background-color: #b493741e;
  }

}


/* MARGEN PANTALLAS PANORÁMICAS */

@media (min-width: 1800px) {
  .entry-content > .vce-row-container > .vce-row:not(.full-width)  {
    padding-inline: 25% !important;
  }
  .textwidget.custom-html-widget  {
    padding-inline: 10% !important;
  }

}

/* Lista especial */

ul.lista-especial {
  list-style: none; /* Quitar los puntos por defecto */
  padding-left: 0 !important; /* Eliminar sangría predeterminada */
  margin-left: 0;
}

ul.lista-especial li {
  position: relative;
  padding-left: 2em; /* Espacio para el icono */
  margin-bottom: 0.25em; /* Espacio entre elementos */
}

ul.lista-especial li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.15em;
  width: 1em;
  height: 1em;
  background-image: url("/wp-content/uploads/2025/09/asterisco.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.vce-col-content {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.vce-col-content .vce-button--style-basic-container {
  margin-top: auto; /* empuja el botón al fondo */
}

/**/
.flecha-ancla {

  cursor: pointer;
  transform: translateY(0px);
  transition: transform 0.5s ease-in-out;
  animation: subirBajar 1.5s ease-in-out infinite;
  width: 20px;
  margin-inline: auto;
  position: absolute;
  bottom: -70%;
  left: 0;
  right: 0;
}

.flecha-ancla:hover {
  transform: translateY(15px);
}

@keyframes subirBajar {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(15px);
  }
}

.datos-contacto {
  font-family:   'Noto Serif JP', serif;
  font-size: 20px;
}

/* CONTACTO */

.mapa {
  filter: grayscale(100%) sepia(4%) brightness(0.95) contrast(1.07); 
  cursor: pointer;
}

 
.vce-google-maps-inner iframe {
  opacity: 0.6;
  transition: opacity 0.8s ease;
}

.vce-google-maps-inner:hover iframe {
  opacity: 1;
}

/* Servicios */


.star-h3 h3 {
  position: relative;
  padding-left: calc(0.7em + 0.5em);
  padding-top: 30px;
}

.star-h3 h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(50% + 20px);
  transform: translateY(-50%);
  width:  0.7em;
  height: 0.7em;
  background-image: url("/wp-content/uploads/2025/09/asterisco.png");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  
}

h3.vce-faq-toggle-title-text {
    position: relative;
    font-size: 25px;
    padding-left: 20px;
}

.vce-faq-toggle-text-block {
    padding-left: 57px !important;
    padding-bottom: 25px;
    padding-top: 20px;
}