/**
 * Theme Name: Vanguard360 V.2025 Child
 * Theme URI: https://360smartweb.it
 * Description: Child theme for the Vanguard parent theme.
 * Author: Massimiliano
 * Author URI: https://360smartweb.it
 * Template: vanguard360-2025
 * Version: 1.0.0
 * Text Domain: vanguard360-child
 */

/* Custom CSS styles for the child theme */
/* -------------------------------------------------- */
/* ! THEME STYLE */
/* -------------------------------------------------- */
body {
  background: var(--colore_bg_sito, #f9f8f7);
}
body main a{
  color:var(--color1, #343434) !important;
}

/* @ Titoli nelle hero */
body main .col-100 article h1.hero-title,
body main .col-100 article .wp-block-cover h1 {
  /* font-family: "Playfair Display", serif; */
  font-family: "Italiana", sans-serif;
  font-weight: 500;
}
main{
    letter-spacing: 1px;
}
body header a.lang-switch {
  display: flex;
}
body.page-template-menu-trasparente header a.lang-switch {
  color: #fff !important;
}
body header a.lang-switch,
body.is-scrolled header a.lang-switch {
  color: #010101 !important;
}
a.lang-switch img {
  width: 25px;
  margin-right: 10px;
}



@media (max-width: 768px) {  
  /* HAMBURGER  */
  body.page-template-menu-trasparente button.toggle-navbar .hamburger-inner span.hamburger,
  body.page-template-menu-trasparente button.toggle-navbar .hamburger-inner span.hamburger:before,
  body.page-template-menu-trasparente button.toggle-navbar .hamburger-inner span.hamburger:after {
    background-color: #fff;
  }
  /* ORDINE ELEMENTI */
  a.logo-visual{
    order:1;
  }
  nav{
    order:2;
  }
  a.lang-switch {
    order:3;
    min-width: 85px;
    z-index: 99;
  }
  button.toggle-navbar{
    order:4;
  }

  /* Language switch – colore scuro quando menu mobile aperto */
  body header.navOpen .lang-switch,
  body.page-template-menu-trasparente header.navOpen a.lang-switch {
      color: #010101 !important;
  }

} /* Fine query */





/* -------------------------------------------------- */
/* ! HELPERS */
/* -------------------------------------------------- */
/* @ FONTS */
.playfair {
  font-family: "Playfair Display", serif;
  font-weight: 500;
}

/* @ Testi */
.text-center {
    text-align:center;
}

/* @ Spaziature */
.paddingXBox {
  padding:100px 75px;
}

/* -------------------------------------------------- */
/* ! NAVBAR */
/* -------------------------------------------------- */

/* @ Header */
body.home .hero {
  margin-top: 0;
}
/* @ Menu item */
ul.menu li a {
    padding: 10px 25px;
    text-transform: uppercase;
    font-weight: 300;
    font-size:0.75rem;
}
/* @ LOGO */
a.logo-visual.custom-logo {
  align-items: center;
  display: inline-flex;
}
a.custom-logo img,
a.logo-text img {
    max-width: 150px;
    height:auto;
    transition: all .3s cubic-bezier(.215, .61, .355, 1);
}

/* @media (max-width: 1452px) {
  ul.menu li a {
    padding: 10px 25px;
  }
} */


@media (max-width: 1385px) {
  ul.menu li a {
    padding: 10px 15px;
  }
} /* Fine query */

@media (max-width: 1051px) {
  ul.menu li a {
    padding: 10px;
    color: #010101 !important;
  }
} /* Fine query */

/* @ Social */
body header.navbar3 .socialIcons ul li {
  border: 1px solid #fff;
}
body header.navbar3 .socialIcons ul li a svg path {
    fill:#fff;
    color:#fff;
}
body.scrolled header.navbar3 .socialIcons ul li, 
body.scrolled header.navbar3.navbarTransparent .socialIcons ul li{
  border: 1px solid #111;
}
body.scrolled header.navbar3 .socialIcons ul li a svg path, 
body.scrolled header.navbar3.navbarTransparent .socialIcons ul li a svg path {
    fill:#111;
    color:#111; 
}
body.single header.navbarTransparent.navbar3 .socialIcons ul li {
  border: 1px solid var(--color3);
  background-color: transparent;
}

/* -------------------------------------------------- */
/* ! Pagine */
/* -------------------------------------------------- */
/* @ Homepage */
.appartamentiVacanzaInToscana .wp-block-cover {
  position: relative;
  transition: all .3s cubic-bezier(.215, .61, .355, 1);
}
.appartamentiVacanzaInToscana .wp-block-cover img{
  transform: scale(1);
  transition: all .3s cubic-bezier(.215, .61, .355, 1);
}
.appartamentiVacanzaInToscana .wp-block-cover:hover img{
  transform: scale(1.25);
}
.appartamentiVacanzaInToscana .wp-block-cover .wp-block-cover__inner-container{
  height: 100%;
  width: 100%;
  position: absolute;
  bottom: 0;
  left: 0;
}
.appartamentiVacanzaInToscana .wp-block-cover .wp-block-cover__inner-container p{
  height: 100%;
  position: absolute;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.appartamentiVacanzaInToscana .wp-block-cover .wp-block-cover__inner-container p a {
  color: #fff !important;
  text-decoration: none;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 40px;
}

/* @ single-appartamenti.php */
.hero-featured {
    min-height: 82vh;
    width: 100%;
    display: flex;
    align-items: center;       /* centro verticale */
    justify-content: center;   /* centro orizzontale */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: relative;
}

/* opzionale: overlay scuro */
.hero-featured::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 65%);
    z-index: 1;
}

.hero-featured .hero-title {
    position: relative;
    z-index: 2;
    margin: 0;
    text-align: center;
    color: #fff;
    font-size: clamp(2rem, 3vw, 3rem) !important;
}
.servizi-appartamento {
    list-style: none;
    padding: 0;
    margin: 20px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.servizio-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 1rem;
}

.servizio-item i {
    font-size: 1.4rem;
    color: #afafaf; /* personalizzabile */
}

.iconaServizioAppartamento img {
  max-width: 20px;
  margin-left:10px;
}

@media (max-width: 768px) {
  .hero-featured {
    min-height: 50vh;
  }  
} /* Fine query */



.single-appartamenti .custom-pagination {
    display: flex;
    justify-content: center;
    gap: 12px;
}

.single-appartamenti .custom-pagination button {
    background: none;
    border: 0;
    padding: 20px 0;
    cursor: pointer;
}

.single-appartamenti .custom-pagination .dot {
    width: 25px;
    height: 2px;
    border-radius: 0;
    background: #fff;
    display: block;
    transition: all .3s ease;
}

.single-appartamenti .custom-pagination button.is-active .dot {
    background: #999;
    transform: scale(1.3);
}


/* # Icone */
.servizi-appartamento {
  list-style: none;
  padding: 0;
  margin: 20px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
  justify-content: center;
  text-transform: capitalize;
}
ul.servizi-appartamento li {
  display: flex;
  flex-direction: column;
}
h2.titoloDotazioni {
  font-weight: 300;
  color: var(--color2, #010101);
  font-size: clamp(1.5rem, 3vw, 1.75rem) !important;
  text-align: center;
}

@media (max-width: 768px) {
  .servizi-appartamento {
    gap: 0;
  }
  .servizio-item {
    gap: 0;
    font-size: .75rem;
    max-width: 25%;
    padding: 8px;
    width: 100%;
  }
} /* Fine query */

/* # camere, bagni e posti letto */
.listaPosti {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.listaPosti .listaPosti__icona {
  margin: 0 5px;
}
.listaPosti .listaPosti__icona i {
  color: var(--color1, #555);
}



/* # APPARTAMENTO SLIDER */
.appartamento-slider {
    height: 60vh;
    overflow: hidden;
    position: relative;
}
.appartamento-slider:after {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.05) 30%);
  content: '';
}

/* Splide struttura */
.appartamento-slider .splide__track,
.appartamento-slider .splide__list,
.appartamento-slider .splide__slide {
    height: 100%;
}

/* Contenitore slide */
.appartamento-slider .splide__slide {
    display: flex;
}

/* Immagini full-bleed */
.appartamento-slider .splide__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;          /* riempie sx/dx */
    object-position: center;    /* centra il focus */
    display: block;
}

/* FRECCE SLIDER – < e > */

.appartamento-slider .splide__arrow {
  background: transparent;
  border: none;
  width: 50px;
  height: 50px;
  padding: 0;
  font-size: 32px;
  font-weight: 300;
  color: #fff;
  opacity: 1;
  font-weight: 200;
  background: #00000015;
  border-radius: 0;
}

.appartamento-slider .splide__arrow svg {
    display: none; /* NASCONDE le icone di default */
}

.appartamento-slider .splide__arrow--prev::before {
    content: "<";
}

.appartamento-slider .splide__arrow--next::before {
    content: ">";
}

/* Hover elegante */
.appartamento-slider .splide__arrow:hover {
    opacity: 0.6;
}

ul.custom-pagination {
  color: #fefefe !important;
  z-index: 999999999;
  position: absolute;
  bottom: 20px;
  list-style: none !important;
  display: flex;
  left: 0;
  width: 100%;
  justify-content: center;
}
/* ul.custom-pagination li{
  color: #fefefe !important;
  margin: 0 15px;
} */
ul.custom-pagination li button{
  color: #fefefe !important;
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: transparent;
  padding: 10px 13px;
}
.custom-paginationArchiveAppartamenti li button.is-active {
  border-bottom: 1px solid #fff;
}

@media (max-width: 992px) {
  ul.custom-pagination {
      padding-left: 0 !important;
    }
    ul.custom-pagination li button {
      padding: 5px 10px !important;
    }
    .slide-title {
      text-align: center !important;
    }
}



/* # Altro da Guzzardi */
.footerAppartamento__wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3 / 2;
}

/* OVERLAY */
.footerAppartamento__wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  height: calc(100%);
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.75) 0%,
    rgba(0, 0, 0, 0) 50%
  );
  z-index: 2;
  pointer-events: none;
}

/* IMMAGINE */
img.footerAppartamento__imgServiziAppartamenti {
  width: 100%;
  object-fit: cover;
  height: 100%;
  position: relative;
  z-index: 1;
  transition: transform .3s ease;
}

/* HOVER */
.footerAppartamento__wrap:hover img.footerAppartamento__imgServiziAppartamenti,
.footerAppartamento__wrap a h3:hover img.footerAppartamento__imgServiziAppartamenti,
.footerAppartamento .col-33:hover .footerAppartamento__imgServiziAppartamenti {
  transform: scale(1.25);
}

/* TAG A */
.footerAppartamento .col-33 a{
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  z-index: 3;
}

/* TITOLO */
.footerAppartamento__titolo {
  position: absolute;
  bottom: 20px;
  left: 0;
  width: 100%;
  text-align: center;
  font-weight: 300;
  font-size: clamp(1.2rem, 3vw, 1.35rem);
  color: #fff !important;
  margin: 0;
  z-index: 3;
}

/* @ Archive Appartamenti */
h1.titoloArchiveAppartamenti {
  font-size: 2.5rem !important;
  line-height: 2.5rem !important;
  margin-bottom: 1.75rem !important;
  font-weight: 300 !important;
  text-align: center;
}
h2.titoloArchiveAppartamenti {
  font-style: normal;
  font-weight: 300;
  color:var(--color1);
  padding-top:10vh;
}
.appartamenti-archive-slider {
    position: relative;
}

.slide-appartamento {
    display: block;
    position: relative;
    height: 60vh;
    color: #fff;
    text-decoration: none;
}

.slide-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}
.appartamenti-archive-slider.splide {
    visibility:visible;
}
.splide__slide {
    width: 100%;
}
.slide-title {
    position: absolute;
    bottom: calc(50% - 50px);
    left: 50%;
    font-size: 2rem;
    z-index: 2;
    transform: translate(-50%, -50%);
    font-weight: 200;
    font-size: clamp(1.5rem, 4vw, 1.8rem);
    padding: 7px 15px;
    border: 1px solid transparent;
    transition: all .3s cubic-bezier(.215, .61, .355, 1);
    background-color: transparent;
    color:#fff !important;
}
a.slide-appartamento:hover .slide-title {
  color: #fff;
  border: 1px solid #fff;
  background-color: #00000015;
}

.custom-pagination {
    display: flex;
    gap: 20px;
    margin-top: 30px;
    flex-wrap: wrap;
}

.custom-pagination button {
    background: none;
    border: 0;
    cursor: pointer;
    font-weight: 200;
}

.splide__slide--archive-appartamenti:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #00000060;
  content: '';
  display: flex;
  z-index: 2;
}

.splide__slide--archive-appartamenti {
  position: relative;
}
p.punsanteCTA {
  text-align: center;
}

p.punsanteCTA a.btnCTA {
  display: inline-flex;
  border: 1px solid #333;
  padding: 15px 35px;
  background: transparent;
  color: var(--color1);
  transition: all .3s cubic-bezier(.215, .61, .355, 1);
}
p.punsanteCTA a.btnCTA:hover {
  background-color: var(--color2);
  color:#fff !important;
  border: 1px solid var(--color2);
}

/* @ CONTATTI */
.wpcf7 form .grid .col-100.fieldAtt p span.wpcf7-form-control-wrap {
  display: flex;
  flex-direction: column;
}
.wpcf7 form .grid .col-100.fieldAtt p label {
  color:#444;
}
.wpcf7 form .grid .col-100.fieldAtt p span input {
  width: 100%;
  border: 1px solid #999;
  background: #fff;
  border-radius: 6px;
  height: 40px;
  padding: 10px 20px;
  line-height: 20px;
}
.wpcf7 form .grid .col-100.fieldAtt p span textarea {
  width: 100%;
  border: 1px solid #999;
  background: #fff;
  border-radius: 6px;
  padding: 10px 20px;
}

/* # CF7 – Privacy checkbox inline */
.privacy-field p {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin: 0;
}

.privacy-field input[type="checkbox"] {
    margin: 0;
    flex-shrink: 0;
}

.privacy-field label {
    margin: 0;
    display: inline;
    line-height: 1.4;
}
.privacy-field label span.wpcf7-list-item {
  margin-left: 0;
}
/* # Pulsante Invia */
input.wpcf7-form-control.wpcf7-submit.has-spinner {
  appearance: none;
  -webkit-appearance: none;
  background: var(--color3, #333);
  color: #181818;
  border: 1px solid #181818;
  padding: 12px 30px;
}

/* -------------------------------------------------- */
/* ! ANIMAZIONI */
/* -------------------------------------------------- */
/* @ Animazioni GSAP */
.text-reveal{transform: translateY(1rem);clip-path:polygon(0 0, 100% 0, 100% 0, 0 0);}
.fade-in {opacity:0;transform: translateY(1rem);}
.fade-up {opacity:0;transform: translateY(5rem);}

/* @ ANIMAZIONI CSS */
.slide-up {opacity:0;overflow:hidden;transform:translateY(-200px);transition: all 1s cubic-bezier(.215, .61, .355, 1);}
.in-page .slide-up {opacity:1;transform:translateY(0px);}

.slide-down {opacity:0;overflow:hidden;transform:translateY(200px);transition: all .6s cubic-bezier(.215, .61, .355, 1);}
.in-page .slide-down {opacity:1;transform:translateY(0px);}

.slide-left {opacity:0;overflow:hidden;transform:translateX(-200px);transition: all 1s cubic-bezier(.215, .61, .355, 1);}
.in-page .slide-left {opacity:1;transform:translateX(0px);}

.slide-right {opacity:0;overflow:hidden;transform:translateX(200px);transition: all 1s cubic-bezier(.215, .61, .355, 1);}
.in-page .slide-right {opacity:1;transform:translateX(0px);}

.zoom-in {opacity:0;overflow:hidden;transform:scale(.4);}
.in-page .zoom-in {opacity:1;transform:scale(1);animation: zoom .75s 1 cubic-bezier(0, 0.95, 0.49, 0.98);}

@keyframes zoom{

	0% {opacity:1;transform: scale(.4);}
	60%{transform: scale(1.1);}
	100% {transform: scale(1);}

}

/* # Animazioni più carine */
.fadeUp {transition-property:opacity,transform;overflow:hidden;opacity:0;transition-delay: .4s;transform: translate3d(0,100px,0);transition: all .4s cubic-bezier(.215, .61, .355, 1);}
.in-page .fadeUp {opacity:1;transform: translateZ(0);}
.fadeDown {transition-property:opacity,transform;overflow:hidden;opacity:0;transition-delay: .4s;transform: translate3d(0,-100px,0);transition: all .4s cubic-bezier(.215, .61, .355, 1);}
.in-page .fadeDown {opacity:1;transform: translateZ(0);}
.fadeLeft {transition-property:opacity,transform;overflow:hidden;opacity:0;transition-delay: .4s;transform: translate3d(-100px,0,0);transition: all .4s cubic-bezier(.215, .61, .355, 1);}
.in-page .fadeLeft {opacity:1;transform: translateZ(0);}
.fadeRight {transition-property:opacity,transform;overflow:hidden;opacity:0;transition-delay: .4s;transform: translate3d(100px,0,0);transition: all .4s cubic-bezier(.215, .61, .355, 1);}
.in-page .fadeRight {opacity:1;transform: translateZ(0);}


/* # FIX Navbar da TAB */
/* Stato base: chiuso */
.menu .sub-menu { display: none; }

/* Aperto quando il LI ha la classe */
.menu .menu-item.is-open > .sub-menu { display: block; }

/* Pulsante freccina */
.submenu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: .5rem;
    border: 0;
    background: transparent;
    padding: .25rem;
    line-height: 1;
    cursor: pointer;
    max-width: 44px;
    position: absolute;
    right: 25px;
    width: 44px;
    height: 50px;
    border: 1px solid red;
}
li.menu-item > ul.sub-menu > li.menu-item-has-children .submenu-toggle {
    right: 0px;
    width: 44px;
    height: 40px;
    border: 1px solid blue;
    top: 0;
}

/* Nascondi freccina su desktop, la lasciamo solo per mobile/tablet */
@media (min-width: 992px) {
  .submenu-toggle { display: none; }
}

/* (opzionale) icona caret minimale */
.submenu-toggle::after {
  content: "▾";
  font-size: .8rem;
  transform: rotate(0deg);
  transition: transform .2s ease;
}
.menu-item.is-open > .submenu-toggle::after { transform: rotate(180deg); }

/* -------------------------------------------------- */
/* ! Footer */
/* -------------------------------------------------- */
#footer-widget .listaFooter {
  list-style-type: none;
  text-align: center;
  padding: 0;
}

@media (max-width: 768px) {
  #footer-widget .wp-block-group {
    text-align: center;
  }
} /* Fine query */