/*

 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

*/



body {

  font-family: var(--font-body);

  font-size: var(--body);

  font-weight: var(--font-weight-300);

  line-height: var(--line-spacing-24);

  letter-spacing: var(--l-spacing-0-34);

}



.elementor-widget-text-editor>p:last-child {

  margin-bottom: 0;

}



a {

  color: var(--c-primario);

  text-decoration: none;

}

 

a,

a:hover {

  transition: all 0.4s ease !important;

}



.dest {

  color: var(--c-azul);

}



.f-thin,

.f-thin .elementor-heading-title {

  font-weight: var(--font-weight-100);

}



.f-light,

.f-light .elementor-heading-title {

  font-weight: var(--font-weight-300) !important;

}



.f-medium,

.f-medium .elementor-heading-title {

  font-weight: var(--font-weight-500) !important;

}



.upper,

.upper * {

  text-transform: uppercase;

}



.strong-300 strong {

  font-weight: var(--font-weight-300) !important;

}



/* Encabezados */



.tit .elementor-heading-title {

  letter-spacing: var(--l-spacing-1);

  font-weight: var(--font-weight-100);

}



.tit-xl .elementor-heading-title {

  font-size: var(--font-size-120);

}



.tit-l .elementor-heading-title {

  font-size: var(--font-size-100);

}



.tit-m .elementor-heading-title {

  font-size: var(--font-size-70);

}



.tit-s .elementor-heading-title {

  font-size: var(--font-size-44);

}



.tit-xs .elementor-heading-title {

  font-size: var(--font-size-20);

}



.tit-row h2 {

  display: flex;

  flex-direction: column;

}



.tit-row h2>.row-2 {

  padding-left: 165px;

}



.tit-row h2>.dest {

  font-size: 5.813rem;

  font-weight: 100;

  letter-spacing: 1.86px;

  line-height: 1em;

}



/* Line-Height */



.line-h-xl .elementor-heading-title,

.line-h-xl p {

  line-height: var(--line-spacing-105);

}



.line-h-l .elementor-heading-title,

.line-h-l p {

  line-height: var(--line-spacing-70);

}



.line-h-m .elementor-heading-title,

.line-h-m p {

  line-height: var(--line-spacing-45);

}



.line-h-s .elementor-heading-title,

.line-h-s p {

  line-height: var(--line-spacing-24);

}



.line-h-xs .elementor-heading-title,

.line-h-xs p {

  line-height: var(--line-spacing-23);

}



.line-h-xxs .elementor-heading-title,

.line-h-xxs p {

  line-height: var(--line-spacing-20);

}



/* Letter-Spacing */



.l-spacing-xl .elementor-heading-title,

.l-spacing-xl p {

  letter-spacing: var(--l-spacing-2-4);

}



.l-spacing-l .elementor-heading-title,

.l-spacing-l p {

  letter-spacing: var(--l-spacing-2);

}



.l-spacing-m .elementor-heading-title,

.l-spacing-m p {

  letter-spacing: var(--l-spacing-1-4);

}



.l-spacing-s .elementor-heading-title,

.l-spacing-s p {

  letter-spacing: var(--l-spacing-1);

}



.l-spacing-xs .elementor-heading-title,

.l-spacing-xs p {

  letter-spacing: var(--l-spacing-0-88);

}



.l-spacing-xxs .elementor-heading-title,

.l-spacing-xxs p {

  letter-spacing: var(--l-spacing-0-32);

}



.tit .elementor-heading-title strong {

  font-weight: var(--font-weight-500);

}



.tit-flex .elementor-heading-title {

  display: flex;

  flex-direction: column;

  align-items: stretch;

  line-height: 0.9em;

}



.tit-flex.tit-sbet .elementor-heading-title {

  justify-content: space-between;

  align-items: stretch;

  line-height: 0.9em;

}



/* BOTONES */



.btn-norm a,

.btn-norm button {

  background-color: var(--c-azul) !important;

  color: var(--c-blanco) !important;

  font-family: var(--body) !important;

  font-size: var(--body);

  text-transform: uppercase;

  font-weight: var(--font-weight-500);

  letter-spacing: var(--l-spacing-1);

  line-height: 1em;

  border-radius: 0;

  padding: 15px 30px;

  transition: var(--all-transition);

}



.btn-norm a:hover,

.btn-norm button:hover {

  background-color: var(--c-blanco) !important;

  color: var(--c-negro) !important;

}



.btn-inv a:hover,

.btn-inv button:hover {

  background-color: var(--c-negro-trans) !important;

}



.btn-trans a {

  background-color: transparent !important;

  padding: 0;

}



.btn-trans a .elementor-button-content-wrapper {

  align-items: center;

}



.btn-trans a:hover {

  background-color: transparent !important;

  color: var(--c-azul) !important;

}



.btn-trans a svg {

  width: 22px;

}



.btn-trans a svg line {

  stroke-width: 3px;

  transition: var(--all-transition);

}



.btn-trans a:hover svg line {

  stroke: var(--c-azul);

}



/* BLOQUE ICONOS */



.ico-hover svg * {

  transition: var(--all-transition);

}



.ico-hover:hover svg .fill-azul,

.icon-fill svg .fill-azul {

  fill: var(--c-azul);

  stroke: none;

}



.ico-hover:hover svg .fill-negro,

.icon-fill svg .fill-negro {

  fill: var(--c-gris);

  stroke: none;

}



.ico-hover:hover svg .fill-blanco,

.icon-fill svg .fill-blanco {

  fill: var(--c-blanco);

  stroke: none;

}



.ico-hover:hover svg .fill-gris,

.icon-fill svg .fill-gris {

  fill: #666666;

  stroke: none;

}



.ico-arrow-azul svg path {

  stroke: var(--c-azul);

}



/* SEPARADOR + */



.separator {

  display: flex;

  flex-direction: row-reverse;

  column-gap: 5px;

  width: 100%;

  justify-content: space-between;

}



.separator .plus {

  font-family: var(--font-body);

  font-weight: var(--font-weight-300);

  font-size: var(--font-size-20);

  text-align: center;

}



.separator .plus:nth-child(7) {

  color: var(--c-azul);

}



/* FORMULARIO DE CONTACTO */



.form-reserva .let-peq {

  margin-top: 20px;

  font-size: 0.563rem;

  line-height: 12px;

  letter-spacing: 0.18px;

}



.form-reserva .acceptance label {

  display: flex;

  align-items: center;

  column-gap: 5px;

}



.form-reserva .acceptance span {

  font-size: 0.563rem;

  line-height: 12px;

  letter-spacing: 0.18px;

  text-transform: uppercase;

}



/* PAGINAS CON FONDO BLANCO */



/*ID: 19 = Servicios */



body.bg_white {

  background-color: var(--c-blanco);

  color: var(--c-negro);

}



/* POP UP RESERVAS CITA */



.hur54b {

  padding: 20px !important;

}



.Xfsokf {

  right: 35px !important;

}



/* GRID PERSONALIZADO */



.custom_grid {

  display: grid;

  grid-template-columns: repeat(3, 1fr);

  grid-template-rows: repeat(5, 1fr);

  grid-column-gap: 30px;

  grid-row-gap: 30px;

}



.custom_grid>.grid-item:first-child {

  grid-area: 1 / 1 / 3 / 3;

}



.custom_grid>.grid-item:last-child {

  grid-area: 4 / 2 / 6 / 4;

}



.grid-item {

  min-height: 400px;

  opacity: 0;

  transform: translateY(20px);

  transition: opacity 0.3s, transform 0.3s;

  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}



.grid-item.show {

  opacity: 1;

  transform: translateY(0);

  transition: opacity 0.3s, transform 0.3s;

}



.custom_grid>.grid-item a {

  padding: 50px;

  height: 100%;

  display: flex;

  flex-direction: column;

  justify-content: center;

  align-items: center;

  text-align: center;

  text-decoration: none;

}



.custom_grid>.grid-item a>* {

  transition: var(--all-transition);

}



.custom_grid>.grid-item:nth-child(1n) a {

  background-color: rgba(0, 145, 223, 0.8);

  color: var(--c-blanco);

}



.custom_grid>.grid-item:nth-child(2n) a {

  background-color: rgba(0, 0, 0, 0.8);

  color: var(--c-blanco);

}



.custom_grid>.grid-item:nth-child(3n) a {

  background-color: rgba(255, 255, 255, 0.8);

  color: var(--c-negro);

}


.custom_grid>.grid-item a h3 {
  font-size: 1.1rem;
  letter-spacing: 0.75px;
  text-transform: uppercase;
}

.custom_grid>.grid-item a h3::after {

  content: "";

  display: block;

  max-width: 55px;

  width: 100%;

  margin: 15px auto;

  border-block-start: 2px dotted;

}



.custom_grid>.grid-item a p {

  letter-spacing: initial !important;

}



.custom_grid>.grid-item a:hover {

  background-color: transparent;

}



.custom_grid>.grid-item a:hover>* {

  opacity: 0;

}



/* Portada */



.custom-shortcode-grid .custom_grid {

  display: flex;

}



.custom-shortcode-grid .custom_grid>.grid-item {

  flex: 1 0 auto;

}



.custom-shortcode-grid .custom_grid>.grid-item a {

  background-color: rgba(38, 127, 235, 0.9) !important;

  color: var(--c-blanco) !important;

}



.custom-shortcode-grid .custom_grid>.grid-item a:hover {

  background-color: transparent !important;

}



.custom-shortcode-grid .custom_grid>.grid-item h3 {

  font-size: 0.938rem;

  line-height: 16px;

  letter-spacing: 0.75px;

  text-transform: uppercase;

}



.custom-shortcode-grid .custom_grid>.grid-item h3 {

  font-size: 0.75rem;

  line-height: 16px;

  letter-spacing: 0.75px;

  text-transform: uppercase;

}



.custom-shortcode-grid .custom_grid>.grid-item .tit-category {

  font-size: 0.938rem;

  line-height: 16px;

  letter-spacing: 0.6px;

}



.custom-shortcode-grid .btn-load-more-projects {

  display: none;

}



/* NAVEGACIÓN POST */



.navegacion_proyectos {

  display: flex;

  flex-direction: column;

  justify-content: center;

  align-items: center;

  row-gap: 50px;

}



.navegacion_proyectos::after {

  content: "";

  display: block;

  max-width: 28px;

  width: 100%;

  border-block-start: 5px dotted var(--c-negro)

}



.navegacion_proyectos .nav-links {

  display: flex;

  align-items: center;

  justify-content: center;

  column-gap: 30px;

}



.navegacion_proyectos .nav-links a {

  text-transform: uppercase;

  font-weight: var(--font-weight-500);

  color: var(--c-gris);

  display: flex;

  align-items: center;

  column-gap: 10px;

  letter-spacing: var(--l-spacing-1);

}



.navegacion_proyectos .nav-links a:hover {

  color: var(--c-azul);

}



.navegacion_proyectos .nav-links a svg path {

  transition: var(--all-transition);

}



.navegacion_proyectos .nav-links a:hover svg path {

  stroke: var(--c-azul);

}



.navegacion_proyectos .nav-links .nav-previous a svg {

  transform: rotate(180deg);

}



/* ---------- INFORMACION LEGAL ---------- */



#politica-cookies table,

#politica-cookies table * {

  border-color: var(--c-blanco);

}





/* ---------- RESPONSIVE ---------- */



@media screen and (max-width: 1080px) {



  .tit-row h2 > .dest {

    font-size: 4rem; /* ≈64 px */

    letter-spacing: 1.3px;

  }



  /* BLOQUE ICONOS */



  .ico-hover svg.fill .fill-azul {

    fill: var(--c-azul);

  }



  .ico-hover svg.fill .fill-negro {

    fill: var(--c-gris);

  }



  .ico-hover svg.fill .fill-blanco {

    fill: var(--c-blanco);

  }



  .ico-hover svg.fill .fill-gris {

    fill: #666666;

  }



  /* GRID PERSONALIZADO */



  .grid-item {

    min-height: 300px;

  }



  .custom_grid>.grid-item a {

    padding: 50px 20px;

  }



}



@media screen and (max-width: 600px) {



  /* .elementor-heading-title br {

    display: none !important;

  } */

   

  .tit-row h2>.row-2 {

    padding-left: 0;

  }



  .tit-row h2 > .dest {

    font-size: 2.875rem; /* ≈46 px */

    letter-spacing: 1px;

  }



  .tit-flex.tit-sbet .elementor-heading-title span:not(.dest) {

    font-size: 56% !important;

    margin-top: 0 !important;

  }



  /* GRID PERSONALIZADO */



  .custom_grid {

    display: flex;

    flex-wrap: wrap;

  }



  .custom_grid .grid-item {

    width: 100%;

  }



  /* ---------- INFORMACION LEGAL ---------- */



  #politica-cookies table {

    display: block;

    overflow: scroll;

  }





}