.scrollTop {
    position: fixed;
    left: 0;
    bottom: 0;
    background-color: var(--bordeaux);
    padding: 0;
    height: 64px;
    width: 64px;
    line-height: 64px;
    text-align: center;
    opacity: 0;
    z-index: 1300 !important;
    pointer-events: none;
    transition: .3s linear opacity;
}
.scrollTop a, .scrollTop i {
    font-size: 30px;
    line-height: 65px !important;
}
.scrollTop:hover {
    background-color: var(--light-grey);
    transition: .3s linear all;
}
.scrollTop.is-visible {
    opacity: 1;
    pointer-events: auto;
}
.iubenda-tp-btn[data-tp-float][data-tp-float=bottom-right] {
    left: 5px !important;
    bottom: 5px !important;
    max-width: 34px !important;
    border-radius: 0 !important;
}

/* COLORS */

.text-bordeaux {
    color: var(--bordeaux);
}
.bg-bordeaux {
    background-color: var(--bordeaux) !important;
}
.text-grey {
    color: var(--light-grey);
}
.text-medium-grey {
    color: var(--medium-grey);
}
.btn.active  {
    background-color: #a6000d !important;
}
#scroll-line {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0%;
    height: 2px;
    background-color: #a6000d;
    z-index: 1001;
    transition: width 0.1s ease-out; 
    will-change: width;
}
.btn {
    position: relative;
    overflow: hidden;
    transition: .3s linear all;
    z-index: 1;
}
.btn span {
    position: relative; 
    z-index: 2;
}
.btn::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background-color: #777777;
    transform: scaleX(0);
    transform-origin: left;
    z-index: -1;
    transition: transform .3s linear;
}
.btn:hover::after {
    transform: scaleX(1);
}
.btn:hover {
    background-color: #777777 !important;
    color: #f1f1f1 !important;
}
a {
    color: var(--bordeaux);
}
.dark-semitransparent {
    background-color: rgba(0,0,0,.45);
}

/* TYPOGRAPHY */

ul {
    list-style-type: square;
}
.oswald {
    font-family: var(--oswald);
}
.google {
    font-family: var(--google-sans);
}

/* FILTERS */

.filtered-image img {
    filter:hue-rotate(0);
    transition: .3s linear all;
}
.filtered-image:hover img {
    filter:hue-rotate(1) !important;
    transition: .3s linear all;
}
.slogan-section {
    isolation: isolate;
    mix-blend-mode: difference;
}
 .slogan-section h2 {
    mix-blend-mode: difference;
}

/* STIKY INNER TEXTS */

.sticky-top.bg-light:not(.navbar) {
    top: 83px;
    transition: 0.3s linear all;
    background-color: #f1f1f1;
}
.my-sticky-header.sticky-top {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 83px !important;
    z-index: 1000 !important;
}
/* .sticky-top.bg-light.is-stuck:not(.sticky-top-lower) {
    background-color: #f1f1f1 !important;
} */
.sticky-top.bg-light h2 {
    color: var(--bs-dark);
    transition: 0.3s linear all;
}
.sticky-top.bg-light.is-stuck h2 {
    color: var(--bordeaux) !important;
}
.sticky-top-lower {
    top: 83px !important;
    margin-right: 0 !important;
}

/* HEADLINE TEXTS */

.slab-container {
    container-type: inline-size;
    width: 100%;
}
.slab-text {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 0;
    text-transform: uppercase;
    font-weight: 900;
    line-height: 1;
    gap: 0.5cqw;
}
.slab-line {
    display: block;
    width: 100%;
    white-space: nowrap; /* Keeps words on one line */
}
.line-1, .line-3 { font-size: 12cqw; }
.line-2 { font-size: 30cqw; }
.line-4 { font-size: 22cqw; }

/* HOME SECTION */

#bg-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(1.1) contrast(1.1) saturate(1.1);
}
.content-layer {
    position: absolute; 
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.main-title.text-light {
    color: #ffffff;
    font-size: clamp(2rem, 10vw, 5rem);
    text-shadow: 0 2px 6px rgba(0,0,0,.7);
    letter-spacing: 2px;
}
.main-title.text-dark {
    color: #ffffff;
    font-size: clamp(2rem, 10vw, 4rem);
    text-shadow: none;
    letter-spacing: 2px;
}
.main-title span {
    display: block;
    color: #ffffff;
    font-size: clamp(1.2rem, 3vw, 3rem);
    font-weight: 400;
    text-shadow: 0 2px 4px rgba(0,0,0,.7);
    margin-top: 0.5rem;
    letter-spacing: unset;
}
.large-logo {
    filter: drop-shadow(0 0 6px rgba(0,0,0,.7));
}
section:not(#home) {
    position: relative;
    z-index: 10;
}

/* NAVBAR + OFFCANVAS */

#offcanvasMenu {
    height: 100vh !important;
}
#offcanvasMenu .offcanvas-body {
    height: 100%;
    overflow: hidden;
}
#offcanvasMenu .menu-grid {
    display: grid;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 5px;
    gap: 5px;
    grid-template-columns: 1fr;
    grid-template-rows: repeat(6, 1fr);
}
@media (min-width: 768px) {
    #offcanvasMenu .menu-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: repeat(3, 1fr);
    }
}
@media (min-width: 992px) {
    #offcanvasMenu .menu-grid {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(2, 1fr);
    }
}
#offcanvasMenu .menu-col {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: #f1f1f1;
    text-decoration: none;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
#offcanvasMenu .menu-col::after {
    content: '';
    position: absolute;
    inset: 0;
    /* background-color: rgba(255, 255, 255, .5); */
    opacity: .3;
    z-index: 2;
    transition: opacity .5s ease;
    pointer-events: none;
}
#offcanvasMenu .menu-col * {
    position: relative;
    z-index: 3;
}
#offcanvasMenu .menu-label {
    position: relative;
    z-index: 10;
    color: #ffffff;
    font-size: 2.2rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 5px;
    pointer-events: none;
    transition: transform 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
}
#offcanvasMenu .menu-col:hover::after {
    opacity: 0.7;
}
#offcanvasMenu .menu-col:hover .menu-label {
    transform: scale(2.8);
    mix-blend-mode: difference;
}
.btn-close-custom {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    width: 60px;
    height: 60px;
    background-color: rgba(139, 0, 0, .8);
    border: none;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    cursor: pointer;
    transition: background-color 0.3s ease;
}
.btn-close-custom:hover {
    background-color: rgba(0, 0, 0, .9);
    transition: background-color 0.3s ease;
}

/* PARALLAX VIDEO + CENTERED BUTTONS */

.parallax-video {
    overflow: hidden;
    position: relative;
    line-height: 0; 
}
.section-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* CONTATTI STYLES */

#map-contatti {
    position: relative !important;
    margin: 0 auto;
    width: 100%;
    height: 60vh;
}
@media (min-width: 992px) {
    #map-contatti {
        height: 100%;
        min-height: 100%;
    }
}
.leaflet-popup-content-wrapper {
    border-radius: 0;
}
.leaflet-touch .leaflet-control-attribution, .leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar {
    box-shadow: none;
}
.leaflet-bottom.leaflet-right {
    display: none;
}
.leaflet-popup-content {
    margin: 13px 19px;
    line-height: 1.4;
    font-family: Roboto, sans-serif;
    text-align: center;
    color: black;
    align-items: center;
    justify-content: center;
    display: flex;
    flex-direction: column;
}

/* SIMPLE SCROLBAR */

.scrolling-section {
    height: calc(100vh - 135px);
    overflow-y: auto;
}
.simplebar-scrollbar::before {
    background-color: #ff0000;
    border-radius: 0;
    opacity: 1;
}
.simplebar-scrollbar.simplebar-visible::before {
    background-color: #cc0000;
    opacity: 1;

}
.simplebar-track.simplebar-vertical {
    background-color: transparent;
}

/* MEDIA */

@media (max-width: 1199px) {
    .slab-text { 
        gap: 5px; 
        text-align: left;
    }
    .slab-line { 
        font-size: 12vw !important; 
    }
}
@media (min-width: 992px) {
    .display-lg-2 {
        font-size: 4rem; 
        font-weight: 700;
    }
}
@media (width <= 650px){
    body {
        overscroll-behavior-y: none;
    }
    nav.navbar.sticky-lg-top.sticky-top.bg-light {
        position: sticky !important;
        width: 100% !important;
        top: 10px !important;
    }
    .navbar-brand {
        flex-direction: column !important;
    }
    .my-sticky-header.sticky-top {
        top: 95px !important;
    }
    #contatti .col-lg-6.col-12.order-lg-last.order-first.d-flex.flex-column.justify-content-between.min-vh-100.p-0 {
        min-height: unset !important;
    }
}