/*
1. Google Fonts
2. Variabili globali (:root)
3. Fondamenta (html, body)
4. Tipografia (titoli, paragrafi, link)
5. Componenti (navbar, section, bottoni) 
6. Colori e background
7. Sizing
8. Form
9. Altri layout (griglie e contenitori)
10. 10 Animazioni
*/


/* 1) Fonts */
    
@import url('https://fonts.googleapis.com/css2?family=Funnel+Display:wght@300..800&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');

/* 2) Variabili */

:root {
    --primary-color: #000000;
    --background-color: #fff;  
    --background-color-2:#F6F5F5;
    --pop-color: #FDE900;
    --link-hover-color:#000000;
    --custom-green:#093A2E;
    --custom-aquamarine:#3FB6C2;
    --custom-yellow:#FCE300;
    --custom-teal:#003D57;
    --custom-radius:0px;
    --custom-gray: #E8E5E0;
    --custom-gray-2: #CFC6C0;
    --btn-radius:19px 19px 19px 19px;
    --btn-padding: 0.5rem 1rem;
    --section-padding: 120px;    
    --main-font: 'Raleway', sans-serif;
    --alt-font: 'Funnel Display', sans-serif;
    --letter-spacing: 0.285em;  
    --border-color:#00000026;
}


/* 3) Fondamenta (html, body) */

html {
    font-size: 16px; /* Base del rem */
    line-height: 29px;
    scroll-behavior: smooth;
    color:  var(--primary-color);
}

body {
    background-color: var(--background-color); 
    color: #333;
    font-size: 1rem;
    font-family: var(--main-font);
    line-height: 1.9;
}


/* 4) Tipografia (titoli, paragrafi, link) */

.alt-font{
    font-family: var(--alt-font);
}

h1, h3, h4, h5, h6 {
    line-height: 1.2;
    color: var(--primary-color);
    font-family:var(--alt-font);
}

h1 {
    font-size: 5rem;
    line-height: 1;
    letter-spacing: -0.25rem;
}

h2 {
    font-size: 5rem;
    font-weight: 700;
    line-height: 1;
    color:var(--primary-color);
    font-family:var(--alt-font);
}

h3 {
    font-size: 2.5rem;
    font-weight: 700;
    font-family:var(--alt-font);
}

h4 {
    font-size: 2rem;
}

h6{
    color:var(--primary-color);
    letter-spacing: var(--letter-spacing);
}

p {
    margin-bottom: 0;
    line-height: 1.9;
}

a {
    color: var(--primary-color);
    text-decoration: none;
}

a:hover {
    text-decoration: none;
}

.text-xxxl{
    font-size: 20em;
    line-height: 1.1;
}

.text-xxl{
    font-size: 10em;
    line-height: 1.1;
}

.text-xl-2{
    font-size:4.5rem;
    line-height: 1.2
}

.text-xl{
    font-size: 3rem;
    line-height: 1.1;
}

.text-lg{
    font-size: 2.3rem;
    line-height: 1.1;
}

.text-md{
    font-size: 1.5rem;
    line-height: 1.4;
}

.text-sm{
    font-size: 0.8rem;
    line-height: 1.9;
}

.text-xs{
    font-size: 0.6rem;
    line-height: 1.9;
}

.bold{
    font-weight: 700;
}

.regular{
    font-weight: 400;
}

.medium{
    font-weight: 500;
}

.italic{
    font-style: italic;
}

.text-stroke{
    color: transparent;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: var(--pop-color);
}

.text-stroke-white{
    color: transparent;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #fff;
}

.text-shadow{
    color: #fff;
    text-shadow:
        3px 3px 0 var(--pop-color),
        -3px 3px 0 var(--pop-color),
        -3px -3px 0 var(--pop-color),
        3px -3px 0 var(--pop-color);
}

.text-underline{
    text-decoration: underline;
}

.letter-spacing{
    letter-spacing: var(--letter-spacing);
}

/* 5) Componenti (bottoni, moduli, ecc.) */

body {
    background-color: var(--background-color);
    color: var(--primary-color);
}

.nav-item{
    font-size: 13px;
    line-height: 1.5;
}

.nav-item p{
    margin-top:auto;
    margin-bottom:auto;
}

.first-navbar .navbar-main .nav-item .nav-link{
    text-transform: uppercase;
    letter-spacing: 4px;
    text-wrap-mode: wrap;
    width: min-content;
}

.nav-link{
    font-size: 12px;
    padding-right: calc(var(--bs-navbar-nav-link-padding-x)*2)!important;
    padding-left: calc(var(--bs-navbar-nav-link-padding-x)*2)!important;
}

.navbar-container{
    border-bottom: 1px solid color(srgb 1 1 1 / 0.5);
}

.navbar .logo img{
    max-width: 250px;
}

navbar-nav-scroll{
    --bs-scroll-height: 90vh;
}

.navbar-light .nav-item a{
    color:var(--primary-color);
}

.navbar.scroll-observer.scrolled{
    border-bottom: transparent;
}

.navbar {
    transition: background-color 0.3s ease-in-out;
    padding-top:30px;
    padding-bottom:30px;
}

.navbar.first-navbar.scroll-observer.scrolled {
    background-color: #fff !important; 
    transition: all 0.3s ease-in-out;
}

.navbar.first-navbar.scroll-observer {
    background-color: #fff !important; 
    transition: all 0.3s ease-in-out;
}

.navbar.second-navbar.scroll-observer.scrolled {
    transition: all 0.3s ease-in-out;
    margin-top:0;    
}

.navbar.second-navbar.scroll-observer { 
    transition: all 0.3s ease-in-out;
}

.menu-istituzionale .current-menu-item{
    position: relative;
}

.menu-istituzionale .current-menu-item a{
    position: relative;
}

.menu-istituzionale .current-menu-item::before{
    content: '';
    border-radius: 100%;
    height:30px;
    width:30px;
    position:absolute;
    top:50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--pop-color);
}

ul.dropdown-menu {
    background-color: transparent;
    border: transparent;
    background-color: #FFFFFF!important;
    padding: 1rem;
}

.dropdown-menu[data-bs-popper]{
    top: 80%;
}

.dropdown-item.active, .dropdown-item:active, .dropdown-item:focus, .dropdown-item:hover {
   background-color: transparent;  
}

.dropdown-menu li{
    background-color: #FFFFFF!important;
    border-bottom:  1px solid black;
    padding: var(--bs-dropdown-item-padding-y) 0em!important;
}

.dropdown-menu li a{
    text-transform: uppercase;
    font-weight: 700;
    font-size: 11px;
    line-height: 1.3;
}

.dropdown-item{
    text-wrap: auto;
    padding: 0;
    position: relative;
}

.dropdown-menu .current-menu-item .dropdown-item::before {
    content: '';
    border-radius: 100%;
    height: 20px;
    width: 20px;
    position: absolute;
    top: 5%;
    left: -7%;
/*    transform: translate(-50%, -50%);*/
    background-color: var(--pop-color);
}

.nav-item{
    display: flex;
    flex-direction: column;
}

.has-icon::before{
    content: '';
    margin-right: calc(var(--bs-navbar-nav-link-padding-x)* 2) !important;
    margin-left: calc(var(--bs-navbar-nav-link-padding-x)* 2) !important;
    height:15px;
    width:15px;
    background-position: 0% 100%;
    background-size: contain;
    background-repeat: no-repeat;
}

.has-icon.coperture-industriali::before{
   background-image: url(/wp-content/themes/groma/assets/img/coperture-industriali.svg);
}

.has-icon.facciate-industriali::before{
   background-image: url(/wp-content/themes/groma/assets/img/facciate-industriali.svg);
}

.has-icon.riqualificazione-ambientale::before{
   background-image: url(/wp-content/themes/groma/assets/img/riqualificazione-ambientale.svg);
}

.has-icon.servizi::before{
   background-image: url(/wp-content/themes/groma/assets/img/servizi.svg);
}

.navbar-toggler, .navbar-toggler:focus, .navbar-toggler:focus-within {
    border: unset;
    box-shadow: none;
}

.circle-icon{
    width: 25px;
    height: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var( --pop-color);
    border-radius: 100%;
}

.circle-icon-sm{
    width: 20px;
    height: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var( --pop-color);
    border-radius: 100%;
}

.circle-icon .fa-arrow-down{
    align-items: end;
}

ul.service-nav li {
    display: flex;
    align-items: center;
}

ul.service-nav li .nav-icon{
    opacity: 0;
    aspect-ratio: 1 / 1!important;
    width: 25px;
    height: 25px;
    display: flex;
    justify-content: end;
    align-items: center;
    background-color: var( --pop-color);
    filter: grayscale(0.8);
    border-radius: 100%;
    transition: all 0.3s ease-in-out;
    margin-right: 1em;
}

ul.service-nav li.active .nav-icon{
    opacity: 1;
    filter: grayscale(0);
    transition: all 0.3s ease-in-out;
}

ul.service-nav li.active a{
    font-weight: 700;
}

ul.service-nav li:hover .nav-icon{
    opacity: 0.3;
    filter: grayscale(0.8);
    transition: all 0.3s ease-in-out;
}

ul.custom-list, .custom-list ul{
    padding-left: 0rem;
    list-style: none;
}

.custom-list li, .custom-list ul li {
    margin-bottom: 1rem;
    background: url(/wp-content/themes/groma/assets/img/custom-list.svg) no-repeat left 20%;
    background-size: 0.7rem;
    padding: 0px 0 3px 24px;
    font-size: 1rem;
}

ul.custom-list-right-white, .custom-list-right-white ul{
    padding-left: 0rem;
    list-style: none;
}

.custom-list-right-white li, .custom-list-right-white ul li {
    margin-bottom: 1rem;
    background: url(/wp-content/themes/groma/assets/img/custom-list-right-white.svg) no-repeat left 40%;
    background-size: 0.7rem;
    padding: 0px 0 3px 24px;
    font-size: 1rem;
}

#footer ul{
    list-style-type: none;
}

#footer ul li a, #footer, #footer p, #footer a{
    font-size: 15px;
}

.bg-dark ul li a, .bg-dark, .bg-dark p, .bg-dark a{
    color: #fff;
}

.bg-dark ul li a:hover, .bg-dark a:hover{
    color: var(--pop-color);
}
.bg-dark-blue{
    background-color: #051525;
}
.bg-blue{
    background-color: #2E4E6A;
}
.bg-teal{
    background-color:var(--custom-teal);
}
.bg-blue ul li a:hover, .bg-blue a:hover{
    color: #fff;
}
.bg-squared{
    background-image: url("/wp-content/themes/groma/assets/img/bg-squared.svg");
    background-repeat: repeat;
    background-size: contain;
}
.bg-red{
    background-image: url("/wp-content/themes/groma/assets/img/bg-red.jpg");
    background-repeat: no-repeat;
    background-size: cover;
}
.bg-red, .bg-red h3, .bg-red h4{
    color: #fff;
}

.bg-red img{
    filter: invert(1);
}

.bg-custom-gray{   
    background-color: var(--custom-gray);
}
.bg-custom-gray-2{   
    background-color: var(--custom-gray-2);
}

.mask {
    /* Da ricordare: dare position-relative al contenitore e anche al testo che si vuole vada sopra all'overlay */
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background-attachment: fixed;
}

section, .section-padding{
    padding-top:var(--section-padding);
    padding-bottom:var(--section-padding);
}

section.half-section, .half-section{
    padding-top:calc(var(--section-padding)/2);
    padding-bottom:calc(var(--section-padding)/2);
}

.px-4rem{
    padding-right:4rem;
    padding-left:4rem;
}

.custom-button, .custom-button-transparent {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    border-radius: var(--btn-radius);
    cursor: pointer;
    transform: translateY(0);
    transition: all 0.3s ease-in-out;
    padding: var(--btn-padding);
}

.custom-button {
    background-color: var(--pop-color);
    color: var(--primary-color);
    border: none;
}

.custom-button-transparent {
    background-color: transparent;
    color: #fff;
    border: 1px solid #fff; 
}

.custom-button i, .custom-button-transparent i, .custom-link i{
    font-size: 1.5rem;
}

.custom-button i{
    color:var(--primary-color);
}

.custom-button-transparent i{
    color:#fff;
}

.custom-button:hover, .custom-button-transparent:hover {
    transform: translateY(0.10rem);
    transition: all 0.3s ease-in-out;
    background-color:var(--primary-color);
    color: white;  
    border-color:var(--primary-color);
}

.custom-button:hover i, .custom-button-transparent:hover i {
    color:var(--pop-color);  
}

.custom-link{
    color:var(--pop-color);
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--primary-color);
}

.custom-link i{
    color:var(--primary-color);
    transform: translateY(0) translateX(0);
    transition: all 0.3s ease-in-out;
}

.custom-link:hover i{
    transform: translateY(-0.10rem) translateX(0.10rem);
    transition: all 0.3s ease-in-out;
}

ul.no-style-list{
    list-style: none;
    padding-left: 0px;
}

.custom-spacing{ letter-spacing: var(--letter-spacing)}

/* 6) Colori e background */

.home-hero{
        background-position: center;
    }

a {
    color: var(--primary-color);
}

a:hover {
    color: var(--link-hover-color);
}

.border-bottom, .border-top, .border-left, .border-right{
    border-color: var(--border-color)!important;
    border-bottom-width: 1px!important;
}

.color-primary{
    color:var(--primary-color);
}

.color-secondary{
    color:var(--primary-color);
}

.color-pop{
    color:var(--pop-color);
}

.color-white{
    color: #fff;
}

.bg-dark{
    background-color:var(--primary-color)!important;
}

.bg-secondary{
    background-color:var(--background-color-2)!important;
}

.bg-pop{
    background-color:var(--pop-color);
}

.bg-green{
    background-color: var(--custom-green);
}

.bg-aquamarine{
    background-color:var(--custom-aquamarine);
}

.bg-yellow{
    background-color:var(--custom-yellow);
}

.alt-bg{
    background-color: var(--background-color-2);
}

.text-bg-dark {
    color: #fff !important;
    background-color: #0B2430 !important;
}

opacity-5{ opacity:0.5}


.parallax { position: relative !important; background-size: cover !important; overflow: hidden; background-attachment: fixed !important; transition-duration: 0s; -moz-transition-duration: 0s; -webkit-transition-duration: 0s; -o-transition-duration: 0s; }

.parallax-fix { background-attachment: fixed !important; background-position: center center; background-repeat: no-repeat; background-size: cover !important; overflow: hidden; position: relative; transition-duration: 0.2s; transition-timing-function: ease-in; }

.filter-invert{filter: invert(1);}


/* 7) Sizing */

.min-vh-30{
    min-height:30vh;
}

.min-vh-50{
    min-height:50vh;
}

.min-vh-75{
    min-height:75vh;
}

.min-vh-100{
    min-height:100vh;
}

.min-vw-30{
    min-width:30vw;
}

.min-vw-50{
    min-width:50vw;
}

.min-vw-100{
    min-width:100vw;
}

.vw-30{
    width:30vw;
}

.vw-50{
    width:50vw;
}

.vw-75{
    width:75vw;
}

.vw-100{
    width:100vw;
}


/* 8 Form di contatto */

.custom-form{
    width: 100%;
    border-bottom: 1px solid var(--primary-color);
    margin-bottom:0.75rem;
}

.custom-form input, .custom-form optgroup, .custom-form select, .custom-form textarea {
    margin: 0;
    border: transparent;
    font-family:var(--alt-font);
    font-size: inherit;
    line-height: inherit;
    width: 100%;
}

.custom-form .wpcf7-text::placeholder, .custom-form  .wpcf7-textarea::placeholder, .custom-form  .wpcf7-select{
    font-weight:500;
    color: black;
}

.custom-form input:focus-visible, .custom-form optgroup:focus-visible, .custom-form select:focus-visible, .custom-form textarea:focus-visible {
    outline: unset;
}

.custom-submit{
    font-size: 30px;
    font-family: var(--main-font);
    letter-spacing: 10.5px;
    text-transform: uppercase;
    background-color: transparent;
    border: transparent;
    font-weight: 700;
}

.custom-form p{
    border: unset;
    line-height: 4.5;
}

.wpcf7-list-item {
    margin: 0 0 0 0; 
}

.wpcf7-spinner{
    display: none;
}

.file-input{
    padding-bottom: 0.75rem;
}

/* 8.5 Form di contatto LANDING */

.landing-form .wpcf7{
    max-width: inherit!important;
}

.landing-form .custom-form{
    width: 100%;
    border-bottom: 1px solid white!important;
    margin-bottom:0.75rem;
}

.landing-form .custom-form input, .landing-form .custom-form optgroup, .landing-form .custom-form select, .landing-form .custom-form textarea {
    margin: 0;
    border: transparent;
    font-family:var(--alt-font);
    font-size: inherit;
    line-height: inherit;
    background:transparent!important;
    max-width: -webkit-fill-available;
}

.landing-form .custom-form .wpcf7-text::placeholder, .landing-form .custom-form  .wpcf7-textarea::placeholder, .landing-form .custom-form  .wpcf7-select{
    font-weight:500;
    color: white!important;
}

.landing-form .custom-form input:focus-visible, .landing-form .custom-form optgroup:focus-visible, .landing-form .custom-form select:focus-visible, .landing-form .custom-form textarea:focus-visible {
    outline: unset;
}

.landing-form .custom-submit{
    font-size: 30px;
    font-family: var(--main-font);
    letter-spacing: 10.5px;
    text-transform: uppercase;
    background-color: transparent;
    border: transparent;
    font-weight: 700;
    color: white;
}

.landing-form .custom-form p{
    border: unset;
    line-height: 2.5;
    color: white;
}

.landing-form .custom-form a{
    color: white;
}

.landing-form .wpcf7-list-item {
    margin: 0 0 0 0; 
}

.landing-form .wpcf7-spinner{
    display: none;
}

.landing-form .file-input{
    padding-bottom: 0.75rem;
}

.landing-form .wpcf7-list-item-label, .landing-form .wpcf7-list-item-label a{
    color: white;
}

/* 9) Altri layout (contenitori, parti grafiche)*/

.card{
    border-radius: 0 var( --custom-radius) var( --custom-radius) 0;
    min-height: 300px;
    position: relative;
    transform: translateY(0);
    box-shadow: 0 0 0 rgba(0,0,0,0);
    transition: all 0.3s ease-in-out;
}

.card:hover{
    transform: translateY(-0.15rem);
    box-shadow: 0 0.15rem 16px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease-in-out;
}

.card .icon{
    position: absolute;
    height: 50px;
    width:50px;
    object-fit: contain;
    right:10%;
    bottom:10%;
}

.custom-radius{
    border-radius: 0 var( --custom-radius) var( --custom-radius) 0;
}

.punto{
    width: 25px;
    height: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var( --pop-color);
    border-radius: 100%;
}
.punto-sm{
    width: 15px;
    height: 15px;
    background-color: var( --pop-color);
    border-radius: 100%;
}

.servizio p{
    line-height: 1.3;
}

/* 10) Animazioni */

.text-running-right {
    overflow: hidden;
    width: 100%;
    white-space: nowrap;
    position: relative;
}

.text-running-right p {
    font-size: 5rem;
    font-family: var(--alt-font);
    display: flex;
    gap: 2rem; 
    width: max-content;
    animation: moveText 10s linear infinite;
}

/* 11) Filtri Isotope */


.filters-button-group .button {
      display: inline-block;
      padding: 5px 18px;
      margin-bottom: 10px;
      background: transparent;
      border: none;
      color: var(--primary-color);
      font-family: sans-serif;
      font-size: 13px;
      text-shadow: 0 1px white;
      cursor: pointer;
}

.remove-filter{
    color: var(--primary-color);
    font-family: var(--main-font);
    letter-spacing: var(--letter-spacing);
    text-transform: uppercase;
    font-weight: 700;
}

.filters-button-group .parent-filter button {
    color: var(--primary-color);
    font-family: var(--main-font);
    letter-spacing: var(--letter-spacing);
    text-transform: uppercase;
    font-weight: 700;
}

.filters-button-group .child-filter button {
    color: var(--primary-color);
    font-family: var(--main-font);
    text-transform: uppercase;
    font-weight: 400;
}

.filters-button-group .parent-filter .button {
     width:370px;
}

.filters-button-group .button:hover {
    background-color: var(--background-color-2);
}

.remove-filter.button:hover {
    background-color: var(--background-color-2)!important;
}

.filters-button-group .button.is-checked, .filters-button-group .button.highlighted{
    background-color: var(--pop-color);
}

.filters-button-group .remove-filter.is-checked, .filters-button-group{
    background-color: transparent;
}

.filters-button-group .parent-filter .button.is-checked {
    color: var(--primary-color);
}

.filters-button-group .child-filter .button.is-checked {
    border-bottom: 1px solid black;
    background-color:transparent;
}

.filters-button-group .button:active .filters-button-group .button:focus-visible {
    border: none;
    outline: none;
}

.button-group:after {
  content: '';
  display: block;
  clear: both;
}

.button-group .button {
  float: left;
  border-radius: 0;
  margin-left: 0;
  margin-right: 1px;
}

/* clear fix */
.grid:after {
  content: '';
  display: block;
  clear: both;
}

.isotope-item {
    flex: 0 0 auto;
    width: 33.33333333%;
    padding:1em;
}

.isotope-item > * {
  margin: 0;
  padding: 0;
}
    
.child-filter{
    display: none;
}

.child-filter.active {
    display: flex;
    height: auto; /* Permette l'espansione automatica */
    padding-top: 10px; /* Distanza superiore per l'effetto di espansione */
    padding-bottom: 10px; /* Distanza inferiore per l'effetto di espansione */
}


@keyframes moveText {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}