/* GENERALE */
body { font-family: var(--font-sans-serif); font-size: 1rem; font-weight: 400; line-height: 1.75rem; color: rgb(var(--text)); }
body:not(.home)::before { content: ""; z-index: -1; position: absolute; top: 0; left: 50%; transform: translatex(-50%); width: 100%; max-width: 1440px; height: 100%; display: block; }

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { font-family: var(--font-headings); font-weight: 600; }
h1, .h1 { font-size: 28px; line-height: 32px; letter-spacing: -1.2px; }
h2, .h2 { font-size: 24px; line-height: 28px; letter-spacing: -0.62px; }
h3, .h3 { font-size: 20px; line-height: 24px; letter-spacing: -0.28px; }
h4, .h4 { font-size: 18px; line-height: 22px; letter-spacing: 0; }
h5, .h5 { font-size: 16px; line-height: 20px; letter-spacing: 0; }
h6, .h6 { font-size: 14px; line-height: 18px; letter-spacing: 0; }

input[type=radio] { width: 1.5rem; height: 1.5rem; }
input[type=checkbox] { width: 1.5rem; height: 1.5rem; }

main { display:block; }
/*main { width:100%; overflow:hidden; }*/

.select2.select2-container { max-width:100%; height:3.75rem; font-size:1rem; line-height: 1.75rem; overflow: hidden; border:1px solid rgb(var(--gray-2)); border-radius:8px; }
.select2.select2-container .selection { height:100%; width:100%; display: inline-block; }
.select2.select2-container .select2-selection { height:100%; width:100%; display: inline-block; padding:1rem; font-weight:bold; color:rgb(var(--black)); background-color: rgb(var(--gray-background)); border:0; }
.select2.select2-container--disabled .select2-selection span { opacity:0.5; font-weight: normal; }
.select2.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; right: 0.5rem; transform: translateY(-50%); }
.select2.select2-container--default .select2-results__option[aria-disabled=true] { display: none; }

/* helpers */
.text-center { text-align:center; }
.text-left { text-align:left; }
.text-right { text-align:right; }
.text-color-accent { color:rgb(var(--accent)); }
.text-color-accent-dark { color:rgb(var(--accent-dark)); }
/* animations */
.elementor-location-header > section.navigation-logo { z-index:999; }
/* .elementor-location-header > section { transition: all .5s; } */
body:not(.mobile) .elementor-location-header > section .color-logo { display:none; }
body:not(.mobile) .elementor-location-header > section.elementor-sticky--effects .white-logo { display:none; }
body:not(.mobile) .elementor-location-header > section.elementor-sticky--effects .color-logo { display:inline-block; }
body.mobile .elementor-location-header > section .color-logo-mobile { display:none; }
body.mobile .elementor-location-header > section.elementor-sticky--effects .white-logo-mobile { display:none; }
body.mobile .elementor-location-header > section.elementor-sticky--effects .color-logo-mobile { display:inline-block; }
.elementor-location-header > section.elementor-sticky--effects { background-color:rgb(var(--white)); }
body.mobile .elementor-location-header > section.elementor-sticky--effects .website-search-toggle,
.elementor-location-header > section.elementor-sticky--effects .side-menu-toggle,
.elementor-location-header > section.elementor-sticky--effects nav a { color:rgb(var(--accent-dark)) !important; }
.elementor-location-header > section.elementor-sticky--effects .lang-switcher li span { color:rgb(var(--black)) !important; }

body:not(.elementor-preview) .enter-onscroll:is(h1,h2,h3,h4,h5,h6) { display:block; flex-wrap:wrap; column-gap:0.65rem; }
body:not(.elementor-preview) .enter-onscroll:not(h1,h2,h3,h4,h5,h6) { opacity: 0; transform: translateY(2vh); visibility: hidden; transition: opacity 0.6s ease-out, transform 1.2s ease-out; will-change: opacity, visibility; }
body:not(.elementor-preview) .enter-onscroll.scrolled-in { opacity: 1; transform: translateY(0); visibility: visible; }
body:not(.elementor-preview) .fadein-onscroll { opacity: 0; visibility: hidden; transition: opacity 0.6s ease-out; will-change: opacity, visibility; }
body:not(.elementor-preview) .fadein-onscroll.scrolled-in { opacity: 1; visibility: visible; }

.animated-title { overflow: hidden; display: inline-table; position: relative; }

img.image-animation-zoom { transition: transform .7s ease; }
img.image-animation-zoom:hover { transform: scale(1.02); }
.background-image-animation-zoom { transition: all .7s; }
div:hover .background-image-animation-zoom { background-size: 102%; }

.onload-animation-overlay .onload-animation-logo { --svg: url(../img/logo-inim-w.svg); -webkit-mask: var(--svg); mask: var(--svg); background: rgb(255 255 255); display: inline-block; width: 102px; height: 48px; overflow: hidden; position:relative; }
.onload-animation-overlay .onload-animation-logo::before { content:""; background-color:rgb(var(--accent)); width:100%; height:100%; max-height:0; transition: max-height 1.5s ease-out; display: block; position:absolute; bottom:0; left:0; }
.onload-animation-overlay .onload-animation-logo.is-visible::before { max-height: 100%; }

.spinner { width:1rem; height:1rem; position: absolute; left: 50%; top: 50%; margin-left: -.5rem; margin-top: -.5rem; z-index: 19 !important; animation: loading-bar-spinner 750ms linear infinite; }
.spinner .spinner-icon { width: 100%; height: 100%; border: solid 2px transparent; border-top-color: rgb(var(--accent)); border-left-color: rgb(var(--accent)); border-radius: 50%; }
@keyframes loading-bar-spinner {
  0%   { transform: rotate(0deg);   transform: rotate(0deg); }
  100% { transform: rotate(360deg); transform: rotate(360deg); }
}

/* COMPONENTI PER ELEMENTOR */
/* generale - componenti */
.inim-component { display:block; }
/*.inim-component.boxed-component { max-width:var(--content-width); margin:0 auto; padding:2rem 0; }*/

.elementor > div { margin:0; padding:0 var(--margin-mobile-portrait); }
.inim-component.zero-margin .inim-component-wrapper { margin:0; margin-right: calc(var(--margin-mobile-portrait) * -1); margin-left: calc(var(--margin-mobile-portrait) * -1); }

@media (min-width: 600px) {
    .elementor > div { padding-right:var(--margin-mobile-landscape); padding-left:var(--margin-mobile-landscape); }
    .inim-component.zero-margin .inim-component-wrapper { margin-right: calc(var(--margin-mobile-landscape) * -1); margin-left: calc(var(--margin-mobile-landscape) * -1); }
}
@media (min-width: 840px) {
    .elementor > div { padding-right:var(--margin-tablet); padding-left:var(--margin-tablet); }
    .inim-component.zero-margin .inim-component-wrapper { margin-right: calc(var(--margin-tablet) * -1); margin-left: calc(var(--margin-tablet) * -1); }
}
@media (min-width: 1200px) {
    .elementor > div { padding-right:var(--margin-desktop); padding-left:var(--margin-desktop); }
    .inim-component.zero-margin .inim-component-wrapper { margin-right: calc(var(--margin-desktop) * -1); margin-left: calc(var(--margin-desktop) * -1); }
}

/*.inim-component .inim-component-wrapper { margin:0; padding:2rem 1rem; }

@media (min-width: 600px) {
    .inim-component .inim-component-wrapper { padding-right:1.5rem; padding-left:1.5rem; }
}
@media (min-width: 840px) {
    .inim-component .inim-component-wrapper { padding-right:2rem; padding-left:2rem; }
}
@media (min-width: 1200px) {
    .inim-component .inim-component-wrapper { padding-right:3rem; padding-left:3rem; }
}
.inim-component.zero-margin .inim-component-wrapper { margin:0; padding:0; }*/

/* generale - elementi */
.inim-tablet-view { display:none; }
.inim-desktop-view { display:none; }
.inim-mobile-view { display:inline-block; }

.inim-badge { display: inline-block; padding:0 .5rem; line-height: 1.75rem; font-size:0.875rem; font-weight: 600; background: rgb(var(--accent)); color:rgb(var(--white)); border-radius: 4px;}
.inim-columns { display:flex; flex-wrap: wrap; gap:1rem; }
.inim-label { display:block; margin-bottom:1rem; font-family:var(--font-headings); font-size:0.75rem; font-weight:bold; line-height:0.875rem; letter-spacing:0.7px; text-transform:uppercase; color:rgb(var(--gray-1)); }

.inim-link { display:block; margin-top:1rem; }
.inim-link > a { font-family:var(--font-headings); font-size:0.875rem; font-weight:bold; line-height:0.875rem; letter-spacing:0.84px; text-transform:uppercase; color:rgb(var(--black)); display:flex; align-items:center; gap:1rem; }
.inim-link > a > i { flex: 0 0 auto; width:24px; height:24px; background:rgb(var(--accent)); border:4px solid rgb(var(--accent)); border-radius:50%; color:rgb(var(--white)); display: flex; align-items: center; justify-content: center; font-size:1rem; transition: .25s ease-in all; }
.inim-link > a:hover > i { padding-top:3px; padding-left:3px; }
.inim-link.large > a > i { width:42px; height:42px; font-size:1.5rem; }
.inim-link.large > a:hover > i { padding-top:6px; padding-left:6px; }

.inim-button { display: flex; justify-content: center; align-items: center; line-height:0.875rem; padding: 0.75rem 1.5rem; gap: .5rem; border:2px solid rgb(var(--accent)); border-radius: 24px; background-color: rgb(var(--accent)); transition: all .2s ease-out; text-decoration:none; }
.inim-button span { font-family:var(--font-headings); font-size:0.875rem; font-weight:bold; letter-spacing:0.84px; text-transform:uppercase; color:rgb(var(--white)); }
.inim-button i { color:rgb(var(--white)); }
.inim-button.mini { padding: 0.25rem 0.5rem; line-height:0.75rem; }
.inim-button.mini span { text-transform:uppercase; font-size:0.7rem; }
.inim-button.small { padding: 0.5rem 1rem; }
.inim-button.small span { text-transform:none; }
.inim-button.large { padding: 1rem 2rem; }
.inim-button.large span { font-size:1rem; }
.inim-button.fit-content { max-width: fit-content; }
.inim-button:hover, .inim-button:active { background-color: rgb(var(--accent-dark)); border-color: rgb(var(--accent-dark)); }
.inim-button.outline { background-color: transparent; }
.inim-button.outline span, .inim-button.outline i { color: rgb(var(--accent)); }
.inim-button.outline:hover, .inim-button.outline:active { background-color: rgb(var(--accent-light)); border-color: rgb(var(--accent-light)); }
.inim-button.disabled { opacity:0.5; }

.ii-round-icon { width:2.5rem; height:2.5rem; border-radius:50%; display: flex; align-items: center; justify-content: center; background:rgb(var(--accent)); color:rgb(var(--white)); }

.weglot-dropdown { color:rgb(var(--white)); }
/* generale - struttura */
.elementor-section.elementor-section-boxed:not(.elementor-inner-section) > .elementor-container { max-width:none !important; }
.elementor-section.elementor-inner-section > div { max-width:var(--content-width); margin:0 auto; padding:0 1rem; }
.elementor-section.elementor-inner-section .elementor-container { gap:2rem; }
.elementor-section.elementor-inner-section .inim-component.boxed-component .inim-component-wrapper { margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
.elementor-field-type-radio .elementor-field-subgroup,
.elementor-field-type-acceptance .elementor-field-subgroup { gap:0.5rem; }
.elementor-field-type-radio .elementor-field-subgroup .elementor-field-option,
.elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option { display: flex; gap: 0.5rem; align-items: center; }
/* generale - layout head/foot */
.elementor-location-header > section > div nav { font-family:var(--font-headings); font-size:0.875rem; letter-spacing:0.06em; font-weight:bold; line-height:0.875rem; text-transform:uppercase; }
.elementor-location-header > section > div { padding-right: 1rem; padding-left: 1rem; }
/*body.home .elementor-location-header { position: absolute; display: block; width: 100%; z-index:900; }*/
.elementor-location-footer .elementor-section.elementor-inner-section { margin:0 auto; font-family:var(--font-headings); }
.elementor-location-footer .elementor-section.elementor-inner-section .elementor-container { gap:0; }
body.mobile .elementor-location-header > section:not(:first-child) nav { width: 100%; overflow-x: scroll; }
body.mobile .elementor-location-header > section:not(:first-child) nav ul { display: flex; flex-wrap: nowrap; }

/* inverted color */
.inverted-color * { color:rgb(var(--white)) }
.inverted-color .inim-link > a { color:rgb(var(--white)); }
/* .inverted-color .inim-link > a > i { background-color:rgb(var(--white)); border-color:rgb(var(--white)); color:rgb(var(--accent)); } */
.inverted-color .inim-button { background-color:rgb(var(--white))}
.inverted-color .inim-button span, .inim-component.inverted-color .inim-button i { color:rgb(var(--accent))}

/* language switcher */
.lang-switcher li { display: block; transition-duration: .5s; }
.lang-switcher li * { font-family:var(--font-headings); font-size:0.75rem; font-weight:bold; line-height:1.5rem; text-transform: uppercase; }
body.home .lang-switcher li span { color:rgb(var(--white)); }
.lang-switcher li span i { font-size:1rem; margin-left:0.25rem }
.lang-switcher li:hover { cursor: pointer; }
.lang-switcher ul { margin:0; padding:0; }
.lang-switcher ul li ul { visibility: hidden; opacity: 0; position: absolute; z-index:100; transition: all 0.5s ease; left: 0; display: none; }
.lang-switcher ul li.open-menu-lang > ul { visibility: visible; opacity: 1; display: block; }
.lang-switcher ul li ul li { clear: both; width: 100%; }

.country-selector { background: transparent !important; font-family:var(--font-headings); font-size:0.75rem; font-weight:bold; line-height:1.5rem; text-transform: uppercase; }
/*.country-selector.weglot-dropdown ul { background: transparent !important; }*/
.country-selector.weglot-dropdown .wgcurrent, .country-selector.weglot-dropdown ul { border:none !important; }
.country-selector.weglot-dropdown .wgcurrent a, .country-selector.weglot-dropdown .wgcurrent span { padding-right:35px !important; }
.country-selector.weglot-dropdown .wgcurrent:after { top:15px !important;width: 12px !important;}
.country-selector.weglot-dropdown a, .country-selector.weglot-dropdown span { height:30px !important; line-height:30px !important; }

/* pagina ricerca */
body.search #content .page-content { margin:0 auto; padding-left:1rem; padding-right:1rem;  }
#search-title { text-align: center; margin:0 0 2rem; }
#search-filter form { display: flex; align-items: center; gap:2rem; flex-direction: column; }
#search-filter form > div { flex:1 1; width: 100%; }
#search-filter .filter-text { position:relative; }
#search-filter .filter-text input { box-sizing: border-box; display:block; border:1px solid rgb(var(--gray-2)); border-radius:100px; color:rgb(var(--black)); background-color: rgb(var(--gray-background)); width:100%; padding:1rem; }
#search-filter .filter-text button { position:absolute; right:1rem; top:50%; margin-top:-0.7rem; z-index:99; border:0; background-color: transparent; }
#search-filter .filter-select { display:flex; gap:1rem; width: 12rem; flex: 0 1 auto; }
#search-filter .filter-select .select2.select2-container { font-size:0.875rem; width:100% !important; }
#search-results { margin:2rem 0; }
#search-results ul { margin:0; padding:0; list-style: none;}
#search-results li { margin:0 0 1rem; padding-bottom:1rem; border-bottom:1px solid rgb(var(--gray-2)); }
#search-results label { color:rgb(var(--gray-1)); text-transform: uppercase; font-size:0.75rem; font-family: var(--font-headings); font-weight: bold; line-height: 0.875rem; }
#search-results h2 { font-size:1.625rem; line-height: 2rem; margin: 0 0 0.5rem; }
#search-results h2 a { color:rgb(var(--black)); text-decoration: none; }
#search-results h2 mark { background-color: transparent; color:rgb(var(--gray-1)); }
#search-results p { font-size:0.875rem; line-height: 0.875rem; font-weight: 600; }
#search-results p i { font-size:1.5rem; }

.elementor-widget-search search form .e-search-input { width:95%; }

/* pagina 404 */
#not-found-title { text-align: center; margin:0 auto 2rem; padding-left:1rem; padding-right:1rem; }
#not-found-action { display:flex; gap:2rem; margin-top:2rem; flex-direction: column; }
#not-found-action > div { flex:1 0 30%; }
#not-found-action > form { flex:1 0 70%; }
#not-found-action > form div { position:relative; width:100%; }
#not-found-action > form input { box-sizing: border-box; display:block; border:1px solid rgb(var(--black)); width:100%; padding:0.5rem 1rem; }
#not-found-action > form button { position:absolute; right:1rem; top:50%; margin-top:-0.7rem; z-index:99; border:0; background-color: transparent; }

/* lavora con noi */
.elementor-field-group-consenso { background: rgb(var(--white)); padding: 1.5rem !important; border: 1px solid rgb(var(--gray-2)); border-radius: 8px; margin: 10px 5px; }

@media (min-width: 768px) {
    /* generale */
    .inim-component .inim-columns { gap:1.5rem; }
    .inim-mobile-view { display:none; }
    .inim-desktop-view { display:none; }
    .inim-tablet-view { display:inline-block; }
}

@media (min-width: 992px) {
    /* base */
    body { font-size: 1rem; line-height: 1.75rem; }
    h1, .h1 { font-size: 36px; line-height: 40px; letter-spacing: -1.2px; }
    h2, .h2 { font-size: 28px; line-height: 32px; letter-spacing: -0.62px; }
    h3, .h3 { font-size: 24px; line-height: 28px; letter-spacing: -0.28px; }
    h4, .h4 { font-size: 20px; line-height: 24px; letter-spacing: 0; }
    h5, .h5 { font-size: 18px; line-height: 22px; letter-spacing: 0; }
    h6, .h6 { font-size: 16px; line-height: 20px; letter-spacing: 0; }
    .select2.select2-container { max-width:15rem; }
    /* generale */
    .inim-component .inim-label { font-size:1rem; letter-spacing:1px; }
/*    .inim-component.boxed-component .inim-component-wrapper { margin:0 0 0 5rem; padding:2rem 5rem 2rem 0; }*/
/*    main .elementor-section.elementor-inner-section > div { padding-left:5rem; padding-right:5rem; }*/
    main .elementor-section.elementor-inner-section > div > .elementor-column { border-radius: 20px; overflow: hidden; }
    main .elementor-section.elementor-inner-section .inim-component.boxed-component .inim-component-wrapper { padding-left:0; padding-right:0; margin-right:0; margin-left:0; }
    .inim-link.large > a { font-size:1.125rem; line-height: 2rem; letter-spacing: 0.9px;}
    .inim-mobile-view { display:none; }
    .inim-tablet-view { display:none; }
    .inim-desktop-view { display:inline-block; }
    /* pagina ricerca */
    body.search #content .page-content { max-width: var(--content-width); margin:3.5rem 12rem; }
    #search-title { margin:0 0 3.5rem; }
    #search-filter form { flex-direction: row; }
    #search-filter form > div { flex:1 1 30%; width: auto; }
    /* pagina 404 */
    #not-found-title { max-width: 52rem; margin-top:5rem; margin-bottom:5rem; }
    #not-found-action { margin-top:5rem; flex-direction: row; }
}

