body .btn-outline-dark {
    --bs-btn-hover-bg: var(--mgh-color-1);
    --bs-btn-color: var(--mgh-color-1);
}
body .dropdown-menu {
    --bs-dropdown-link-active-bg: var(--mgh-color-2);
    --bs-dropdown-link-hover-bg: #eee;
}
.btn,
a,
a:before,
a:after,
button,
#section-servizi .card-img-overlay,
#section-progetti .card-img-overlay,
.custom-tran,
.custom-tran-all * {
    -webkit-transition: all 0.3s cubic-bezier(0.28, 0.44, 0.49, 1);
    transition: all 0.3s cubic-bezier(0.28, 0.44, 0.49, 1);
}
@media (min-width: 1400px) {
    .container.container-xxl-maxed {
        max-width: 1720px;
    }
}
#main {
    margin-top: 0;
}
section header .section-title,
section hgroup .section-title {
    position: relative;
    margin: 0 0 50px;
    font-size: 25px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
}
section header .section-title:not(.noline):after,
section hgroup .section-title:not(.noline):after {
    content: '';
    position: absolute;
    bottom: -16px;
    left: -33.7%;
    display: block;
    width: 50%;
    height: 2px;
    overflow: hidden;
    background: var(--mgh-color-2);
}
section header .section-title.right:after,
section hgroup .section-title.right:after {
    right: -50%;
    left: auto;
    width: 120%;
}
section header.hgroup .section-title {
    margin-bottom: 30px;
}
section header.hgroup .section-subtitle {
    margin-bottom: 50px;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.2;
}
#section-page,
.section-page,
.section{
    padding: 50px 0;
}
#section-page a {
    text-decoration: underline;
}
#section-page a:hover {
    opacity: .6;
}
.section .custom-subcontent{
    margin-bottom: 20px;
    font-size: 20px;
    font-weight: 700;
}
/*ACCORDION*/
.accordion {
    --bs-accordion-active-bg: #fff;
    --bs-accordion-border-width: 0;
    --bs-accordion-btn-padding-x: 40px;
    --bs-accordion-btn-padding-y: 30px;
    --bs-accordion-body-padding-x: 40px;
    --bs-accordion-body-padding-y: 30px;
}
.accordion .accordion-item {
    border: 1px solid rgba(0, 49, 83, .3);
    border-radius: 0 !important;
}
.accordion > .accordion-item:not(:last-child) {
    margin-bottom: 20px;
}
.accordion-button {
    font-size: 20px;
    font-weight: 700;
}
.accordion-body {
    padding-top: 0;
}
/*SWIPER*/
.swiper .swiper-custom-pagination-wrapper .swiper-pagination:not(.swiper-pagination-bullets-dynamic) {
    position: relative;
    top: 20px;
    right: 0;
    bottom: 0;
    left: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    margin: 0 16px;
    transform: none;
    column-gap: 3px;
}
.swiper .swiper-pagination .swiper-pagination-bullet {
    width: 16px;
    height: 16px;
    background: var(--mgh-color-1);
}
button.btn-loadmore {
    position: relative;
    display: inline-flex;
    justify-content: center;
    width: 180px;
    padding: 8px 20px;
    border-color: var(--mgh-color-1);
    border-radius: 30px;
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
}
button.btn-loadmore svg {
    opacity: 0;
    position: absolute;
    right: 15px;
    display: none;
    -webkit-transition: all 0.3s cubic-bezier(0.28, 0.44, 0.49, 1);
    transition: all 0.3s cubic-bezier(0.28, 0.44, 0.49, 1);
    -webkit-animation: 2s linear infinite spinner-border;
    animation: 2s linear infinite spinner-border;
}
button.btn-loadmore.loading {
    justify-content: flex-start;
    width: 195px;
    pointer-events: none;
}
button.btn-loadmore.loading svg {
    opacity: 1;
    display: inline-block;
}
@media (min-width: 576px) {
    button.btn-loadmore {
        font-size: 18px;
    }
}
@media (min-width: 768px) {
    section header .section-title,
    section hgroup .section-title {
        margin: 0 0 70px;
        font-size: 38px;
    }
    section header.hgroup .section-subtitle {
        font-size: 30px;
    }
    #section-hero:not(.hero-split) header:not(.hgroup) .section-title{
        margin:0;
    }
    .section .custom-subcontent {
        font-size: 29px;
    }
}
@media (min-width: 992px) {
    section header .section-title,
    section hgroup .section-title {
        font-size: 45px;
    }
}
/*BUTTON*/
a.btn-custom-1 {
    position: relative;
    display: inline-flex;
    align-items: flex-start;
    margin: 30px auto 0 0;
    padding: 0 30px 5px 0;
    background: none;
    border: none;
    border-bottom: 2px solid var(--mgh-color-1);
    border-radius: 0;
    font-size: 15px;
    font-weight: 400;
    color: var(--mgh-color-1);
    text-transform: uppercase;
}
a.btn-custom-1:after {
    content: '';
    position: absolute;
    top: 4px;
    right: 0;
    width: 12px;
    height: 12px;
    overflow: hidden;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="11.996" height="12" viewBox="0 0 11.996 12"><path id="arrow-up-right" d="M41.2,96H42.1v10.733H40.307V99.052L32,107.366l-.634.634L30.1,106.733l.634-.634,8.311-8.311H31.363V96H41.2Z" transform="translate(-30.1 -96)" fill="%23003153"/></svg>');
    background-repeat: no-repeat;
    background-size: contain;
}
a.btn-custom-1:hover:after {
    transform: rotate(45deg);
}
/*TIMELINE*/
.timeline {
    position: relative;
    margin: 0;
    padding: 0;
    list-style: none;
    --progress-height: 0px;
}
.timeline::before,
.timeline::after {
    content: "";
    position: absolute;
    top: 0;
    left: 10px;
    width: 3px;
    margin-left: -3px;
}
.timeline::before {
    z-index: 3;
    height: var(--progress-height);
    background-color: var(--mgh-color-2);
    transition: height 0.5s ease-out;
}
.timeline::after {
    bottom: 0;
    z-index: 2;
    height: 95%;
    background-color: #eee;
}
.timeline .timeline-item {
    position: relative;
    z-index: 4;
    margin-bottom: 3rem;
    padding-left: 50px;
}
.timeline .timeline-item-inner {
    position: relative;
}
.timeline > .timeline-item .timeline-item-inner {
    opacity: .2;
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.timeline > .timeline-item:first-child .timeline-item-inner {
    opacity: 1 !important;
}
.timeline .timeline-item:after {
    content: "";
    position: absolute;
    top: 0;
    left: 2px;
    display: block;
    width: 13px;
    height: 13px;
    background-color: var(--mgh-color-2);
    border-radius: 50%;
}
.timeline .timeline-item .title {
    margin-bottom: 6px;
    font-size: 1.25rem;
    font-weight: 700;
}
.timeline.timeline-counter {
    counter-reset: timeline-counter;
}
.timeline.timeline-counter .timeline-item {
    padding-top: 10px;
    padding-left: 130px;
    counter-increment: timeline-counter;
}
.timeline.timeline-counter .timeline-item:not(:last-child) {
    margin-bottom: 100px;
}
.timeline.timeline-counter::before,
.timeline.timeline-counter::after {
    left: 53px;
}
.timeline.timeline-counter .timeline-item:after {
    content: counter(timeline-counter, decimal-leading-zero);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 100px;
    background: #fff;
    border: 2px solid #eee;
    font-size: 20px;
    font-weight: 700;
    transition: border 0.5s ease-out;
}
.timeline.timeline-counter .timeline-item.active:after {
    border-color: var(--mgh-color-2);
}
/*PAGINATION*/
nav.navigation.pagination,
nav.navigation.pagination-top,
nav.navigation.pagination-bottom {
    display: flex;
    justify-content: center;
}
nav.navigation.pagination-top {
    margin-bottom: 50px;
}
nav.navigation.pagination .nav-links .page-numbers,
nav.navigation.pagination-top .nav-links .page-numbers,
nav.navigation.pagination-bottom .nav-links .page-numbers {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 50px;
    height: 50px;
    margin: 0 5px;
    background: #fff;
    border: 2px solid #fff;
    color: var(--mgh-color-1);
}
nav.navigation.pagination .nav-links a.page-numbers.next,
nav.navigation.pagination .nav-links a.page-numbers.prev,
nav.navigation.pagination-top .nav-links a.page-numbers.next,
nav.navigation.pagination-top .nav-links a.page-numbers.prev,
nav.navigation.pagination-bottom .nav-links a.page-numbers.next,
nav.navigation.pagination-bottom .nav-links a.page-numbers.prev {
    width: auto;
    padding: 0 30px;
}
nav.navigation.pagination .nav-links a.page-numbers:hover,
nav.navigation.pagination-top .nav-links a.page-numbers:hover,
nav.navigation.pagination-bottom .nav-links a.page-numbers:hover {
    border-color: var(--mgh-color-1);
}
nav.navigation.pagination .nav-links .page-numbers.current,
nav.navigation.pagination-top .nav-links .page-numbers.current,
nav.navigation.pagination-bottom .nav-links .page-numbers.current {
    background: var(--mgh-color-1);
    border-color: var(--mgh-color-1);
    color: #fff;
}
/*BREADCRUMBS*/
section.hero .breadcrumbs {
    display: flex;
    justify-content: center;
    font-size: 14px;
    text-align: center;
    gap: 5px;
}
section.hero.hero-split .breadcrumbs {
    position: absolute;
    bottom: 0;
    left: 0;
    justify-content: flex-start;
    padding: 15px 15px 15px 12px;
    background: #fff;
    text-align: left;
}
section.hero.hero-split .breadcrumbs,
section.hero.hero-split .breadcrumbs a {
    color: #666;
}
section.hero .breadcrumbs a:hover {
    color: #fff;
    text-decoration: underline;
}
section.hero.hero-split .breadcrumbs a:hover {
    color: var(--mgh-color-1);
}
section.hero .breadcrumbs span.current-item {
    display: inline-block;
    max-width: 150px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
section.hero .breadcrumbs .sep {
    opacity: .8;
    position: relative;
    top: 7px;
    font-size: 7px;
    color: #fff;
}
section.hero.hero-split .breadcrumbs .sep {
    color: var(--mgh-color-1);
}
@media (max-width: 575px) {
    section.hero.hero-split .breadcrumbs {
        left: 5px;
        padding: 7px 15px 4px 12px;
        font-size: 12px;
        line-height: 1.2;
    }
    section.hero.hero-split .breadcrumbs .sep {
        top: 3px;
    }
    section.hero:not(.hero-split) .breadcrumbs {
        position: relative;
        top: 24px;
    }
}
/*IUBENDA*/
@media (max-width: 575px) {
    body #iubenda-cs-banner .iubenda-banner-content #iubenda-cs-paragraph {
        height: 110px !important;
        overflow: auto !important;
        padding-right: 5px !important;
    }
}
@media (min-width: 768px) {
    #section-page,
    .section-page,
    .section{
        padding: 70px 0;
    }
}
@media (min-width: 992px) {
    section.hero.hero-split .breadcrumbs span.current-item {
        max-width: 200px;
    }
}
@media (min-width: 1200px) {
    section.hero.hero-split .breadcrumbs span.current-item {
        max-width: 300px;
    }
}
/*SCROLL-DOWN ICON*/
.scroll-down-icon {
    width: 100px;
    height: 130px;
}
.line-center {
    opacity: 1;
    position: absolute;
    left: 50%;
    width: 3px;
    height: 0px;
    margin-top: 25px;
    background: #fff;
    animation: vertical_line_growth 4s cubic-bezier(.215, .61, .355, 1) infinite;
}
.line-center span {
    position: absolute;
    bottom: -35px;
    left: -50px;
    display: block;
    width: 100px;
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    color: #fff;
    text-transform: uppercase;
}
@keyframes vertical_line_growth {
    0% {
        height: 0;
        opacity: 0;
    }
    20% {
        height: 0;
        opacity: 0;
    }
    40% {
        height: 0;
        opacity: 1;
    }
    60% {
        height: 60px;
        opacity: 1;
    }
    80% {
        height: 60px;
        opacity: 1;
    }
    100% {
        height: 60px;
        opacity: 0;
    }
}
/*VEGAS*/
.vegas-content-scrollable{
    display:flex;
    flex-direction:column;
    justify-content: center;
}
.vegas-animation-customkenburns {
    animation: customkenburns ease-out;
}

@keyframes customkenburns {
    0% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}