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

/* Custom CSS styles for the child theme */
/* -------------------------------------------------------------------------------- */
/* ! 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);}

/* -------------------------------------------------------------------------------- */
/* ! Menu item */
/* -------------------------------------------------------------------------------- */
nav ul li a{
  border:0px solid #121212;
}
nav ul li.current-menu-item a{
  border: 1px solid #121212;
}
body.has-navbar-trasparente:not(.is-scrolled) header.header:not(.navbar2) ul.menu > li.current-menu-item > a {
  border: 1px solid #fff;
}
body.is-scrolled .container-header {
  box-shadow: 1px 0px 40px -32px #181818;
}

/* -------------------------------------------------------------------------------- */
/* ! 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); }

/* -------------------------------------------------------------------------------- */
/* ! HELPERS */
/* -------------------------------------------------------------------------------- */
/* @ TITOLI */
h1, h2, h3, h4, h5, .has-large-font-size, .has-extra-extra-large-font-size, p, ul, ol, li, a{
  hyphens: none !important;        /* disattiva i trattini automatici */
  word-break: keep-all !important; /* non spezzare mai le parole */
  overflow-wrap: normal !important;
}

/* @ Blocchi di gutenberg */
.wp-block-spacer {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* @ Testi */
h1, h2, h3, h4, h5, p {
  hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  word-break: normal;
}
.text-center {
  text-align: center;
}

/* @ Padding */
.paddingColSx {
  padding: 0 120px 0 0;
}
.paddingColSxStrong {
  padding: 0 180px 0 0;
}
.paddingColDx {
  padding: 0 0 0 80px;
}

@media (max-width: 768px) {
  .paddingColSx,
  .paddingColSxStrong,
  .paddingColDx  {
    padding: 0;
  }
} /* Fine query */

/* @ ELEMENTI GRAFICI */
.frecciaSx,
.frecciaDx {
  position: relative;
}
.frecciaSx:before {
  position: absolute;
  content: url(https://bernicontract.it/wp-content/uploads/2025/10/Freccia.svg);
  bottom: -30px;
  left: 0;
  width: 60px;
}
.frecciaDx:before {
  position: absolute;
  content: url(https://bernicontract.it/wp-content/uploads/2025/10/Freccia.svg);
  bottom: -50px;
  right: 0;
  width: 60px;
  transform: rotate(90deg);
}

@media (max-width: 768px) {
  .frecciaSx:before {
    left: unset;
    width: 50px;
    right: 15px;
    transform: rotate(90deg);
  }
  .frecciaDx:before{
    bottom: -100px;
    right: 0;
    width: 50px;
    transform: rotate(180deg);
  }
} /* Fine query */

/* -------------------------------------------------------------------------------- */
/* ! HERO */
/* -------------------------------------------------------------------------------- */
/* @ Hero solo titolo */
.containerTitoloHero {
  width: 100%;
  text-align: left;
  padding-left: 5% !important;
}
.containerTitoloHero h1 {
  font-size: clamp(4rem, 7vw, 10rem) !important;
}

body.tax-tipologia .hero-title{
  background: #fff !important;
  display: flex;
  align-items: center;
  justify-content: start;
  color: #333;
  position: relative;
  margin-top: 105px;
  height: 60dvh;
}

@media (max-width: 768px) {
  .containerTitoloHero{
    padding-left: unset !important;
  }
  .containerTitoloHero h1 {
    padding:0;
  }
} /* Fine query */

/* -------------------------------------------------------------------------------- */
/* ! PAGINE */
/* -------------------------------------------------------------------------------- */
/* @ Footer */
.col-flex:first-of-type{
  flex:2;
}
#footer-widget .col-flex p {
  margin-bottom:5px;
}
#footer-widget h2 {
  font-size: 2rem;
  margin-bottom: 0 !important;
}
.footer-bar {
  padding: 0 20px;
}
#footer-widget .col-flex p, #footer-widget .col-flex a, #footer-widget .col-flex li {
  font-size: .95rem;
  font-weight: 300;
}
/* @ single project */
body.single-project section.hero{
  margin-bottom: 100px;
}
body.single-project .wp-block-gallery figure.wp-block-image img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
body.single-project main {
  padding-bottom: 0;
}
#moodboard .wp-block-columns {
  justify-content: center;
}
body.single-project .hero-image .container {
  flex-direction: column;
}
body.single-project .hero-image .container .hero-luogo {
  color: #fff;
  font-size: 2rem;
}
body.single-project section.hero.hero-image:before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: '';
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgb(0 0 0 / 40%) 50%, rgba(0, 0, 0, 0) 100%);
}

/* # gallery */
/* GALLERY GUTENBERG (nuovo markup con figure annidate) */
.wp-block-gallery.has-nested-images > .wp-block-image {
  display: none !important;              /* nasconde tutto di base */
}

.wp-block-gallery.has-nested-images > .wp-block-image.is-visible {
  display: block !important;             /* mostra solo gli elementi “svelati” dal JS */
}

/* (facoltativo) se il tema usa layout flex, assicurati che gli elementi visibili mantengano lo spazio corretto */
/*.wp-block-gallery.is-layout-flex.has-nested-images > .wp-block-image.is-visible {
   niente width fissa: Gutenberg gestisce le colonne; lasciamo fluire 
}
   */

/* stile del bottone */
.gallery-loadmore-wrap { margin-top: 1rem; text-align: center; }
.gallery-loadmore {
  padding: .6rem 1rem;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
}

/* @ Pagina Il contract Il metodo */
.balloon {
  background: #121212;
  color: #fff !important;
  width: auto;
  max-width: fit-content;
  max-width: max-content;
  padding: 15px 50px;
  border-radius: 50px;
}
.has-extra-extra-large-font-size {
  line-height: clamp(4rem,5.5vw,6.25rem) !important;
}

/* @ pagina progetti */
.project-card {
  margin-bottom: 35px;
}
.project-card .project-body {
  margin: 20px 0 30px 0;
}
.project-card .project-body h3.project-title{
  margin-bottom: 10px !important;
}
.project-card figure.project-media img{
  aspect-ratio: 5 / 4;
  object-fit: cover;
}
/* # select per ajax */
form.portfolio-filter {
  width: 100vw;
  padding-top: 0;
  padding-bottom: 0;
  padding-left:calc(5% + 10px);
  padding-right:calc(5% + 10px);
  margin-bottom: 50px;
}
.filtro-tipologia{
  margin-bottom: 50px;
  padding-left:4%;
  padding-right:4%;
}

form.portfolio-filter select#filter-tipologia,
select#filtro-tipologia {
  background: #121212;
  color: #fff;
  padding: 10px 30px;
  border: 1px solid #121212;
  border-radius: 5px;
}

/* -------------------------------------------------------------------------------- */
/* ! FORM */
/* -------------------------------------------------------------------------------- */
.wpcf7-form-control-wrap {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
}
.wpcf7-form-control-wrap input:not([type="checkbox"]),
.wpcf7-form-control-wrap textarea {
  width: 100%;
  padding: 12px;
  border-radius: 10px;
  border: 1px solid #121212;
  background: #121212;
  color: #fff;
}
select.wpcf7-form-control.wpcf7-select {
  background: #121212;
  color: #fff;
  padding: 10px 30px;
  border-radius: 10px;
  width: 100%;
}
#formDiContatto.grid .col-50 .grid .col-50.smart p {
  margin-bottom: 0;
}

input.wpcf7-form-control.wpcf7-submit.has-spinner {
  background: #121212;
  color: #fff;
  padding: 15px 30px;
  max-width: 200px;
  border: 1px solid #121212;
  margin-top: 30px;
  text-align: center;
  width: 100%;
}
body:not(.page-id-261) .colonnaBtn p{
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}
body.page-id-261 .colonnaBtn p{
  display: flex;
  justify-content: left;
  flex-direction: column;
  align-items: flex-start;
}

@media (max-width: 768px) {
  #formDiContatto,
  #formDiContatto .col-50,
  #formDiContatto .col-50 .grid,
  #formDiContatto .col-50 .grid .col-50,
  #formDiContatto .col-50 .grid .col-100 {padding:0px;}  
} /* Fine query */

/* -------------------------------------------------------------------------------- */
/* ! GUTENBERG */
/* -------------------------------------------------------------------------------- */
body main.grid {padding-bottom:0;}


@media (min-width: 993px) {
  .colServizi {
    padding: 0 10%;
  }  
} /* Fine query */

@media (max-width: 992px) {
  .colServizi {
    padding: 0;
    margin-top:2rem !important;
  }  
} /* Fine query */


/* -------------------------------------------------- */
/* ! SR ONLY */
/* -------------------------------------------------- */
fieldset {
  border: 0px solid #fff;
  background: #fefefe;
}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* -------------------------------------------------- */
/* ! COMPLIANZ */
/* -------------------------------------------------- */
ul#menu-complianz {
  display: flex;
  flex-direction: column;
}
ul#menu-complianz li {
  padding: 0;
}
ul#menu-complianz li a {
  padding: 3px 0;
  display: inline-flex;
}