/* ---MAIN STYLES--- */

.main_section {
    position: relative;
    height: 100vh;
    padding: 5vw;
}

.main_section video {
    opacity: .5;
}

.main_section .main_box {
    position: relative;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    z-index: 1;
}

.main_section h1,
.main_section p {
    color: white;
    width: 50%;
}

@media(max-width: 996px) {
    .main_section {
        padding: 10vw;
    }
    .main_section .main_box {
        height: 100%;
        flex-direction: column;
        justify-content: flex-end;
        align-items: flex-start;
        gap: 5vw;
        z-index: 1;
    }
    .main_section h1,
    .main_section p {
        width: 100%;
    }
}


/* ---ABOUT STYLES--- */

.about_section {
    display: flex;
    flex-direction: column;
    gap: 2vw;
    padding: 5vw;
}

.about_section .title_box h2 {
    width: 50%;
}

.about_section .about_box {
    display: grid;
    grid-template-columns: 47% 50%;
    gap: 3%;
}

.about_section .slider_item {
    position: relative;
    height: 40vw;
    pointer-events: none;
    user-select: none;
}

.about_section .content_box {
    display: flex;
    flex-direction: column;
    gap: 2vw;
}

.about_section .video_box {
    position: relative;
    height: 25vw;
    cursor: pointer;
}

.about_section .button_box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6vw;
    height: 6vw;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    background: #ffffff80;
    backdrop-filter: blur(.25vw);
    -webkit-backdrop-filter: blur(.25vw);
    transition: .5s;
}

.about_section .video_box:hover .button_box {
    transform: translate(-50%, -50%) scale(.9);
    background: #ffffff50;
}

.about_section .button_box i {
    color: white;
    font-size: 3vw;
}

@media(max-width: 996px) {
    .about_section {
        gap: 5vw;
        padding: 10vw;
    }
    .about_section .title_box h2 {
        width: 100%;
    }
    .about_section .about_box {
        grid-template-columns: 100%;
        gap: 5vw;
    }
    .about_section .slider_item {
        height: 80vw;
    }
    .about_section .content_box {
        gap: 5vw;
    }
    .about_section .video_box {
        height: 50vw;
        order: 2;
    }
    .about_section .button_box {
        width: 15vw;
        height: 15vw;
        backdrop-filter: blur(1vw);
        -webkit-backdrop-filter: blur(1vw);
    }
    .about_section .button_box i {
        font-size: 6vw;
    }
}


/* ---LIGHTBOX STYLES--- */

.lightbox_section.active {
    opacity: 1;
    pointer-events: inherit;
}

.lightbox_section {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 99;
    opacity: 0;
    pointer-events: none;
    transition: .25s;
}

.lightbox_section iframe {
    position: relative;
    width: 80vw;
    height: 45vw;
    z-index: 1;
}

.lightbox_section .backdrop {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #00000090;
    backdrop-filter: blur(.25vw);
    cursor: pointer;
}


/* ---CUSTOM STYLES--- */

.custom_section {
    padding: 5vw;
}

.custom_section .custom_box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3vw;
}

.custom_section .info_box {
    align-items: center;
    text-align: center;
}

.custom_section .cards-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1vw;
}

.custom_section .card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.5vw;
    padding: 2vw;
    background: #222222;
    cursor: pointer;
    transition: .5s;
}

.custom_section .card:hover {
    background: #303030;
}

.custom_section .card .number {
    display: none;
}

.custom_section .card h2 {
    font-size: 1.25vw;
}

.custom_section .card svg {
    width: 2vw;
}

.custom_section .card .button_box {
    position: absolute;
    top: 50%;
    right: -2vw;
    transform: translate(0, -50%);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 3vw;
    height: 3vw;
    border-radius: 50%;
    background: #303030;
    transition: .5s;
    z-index: 1;
}

.custom_section .card:hover .button_box {
    transform: translate(0, -50%) scale(1.25);
}

.custom_section .card .button_box i {
    color: white;
    font-size: 1vw;
}

.custom_section .swipe_box {
    display: none;
}

@media (max-width: 768px) {
    .custom_section {
        padding: 10vw;
        overflow: hidden;
    }
    .custom_section .custom_box {
        gap: 5vw;
    }
    .custom_section .media_box {
        width: 100%;
    }
    .custom_section .cards-grid {
        display: block;
    }
    .custom_section .card {
        align-items: center;
        gap: 5vw;
        text-align: center;
        padding: 20vw 5vw;
    }
    .custom_section .card .number {
        display: block;
        position: absolute;
        top: 5vw;
        left: 5vw;
        color: var(--gray);
        font-size: 3.5vw;
    }
    .custom_section .card h2 {
        font-size: 4vw;
    }
    .custom_section .card svg {
        width: 10vw;
    }
    .custom_section .card .button_box {
        display: none;
    }
    .custom_section .swipe_box {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 3vw;
        padding-bottom: 5vw;
    }
    .custom_section .swipe_bar {
        position: relative;
        width: 15vw;
        height: 7vw;
        border: .5vw solid #303030;
        border-radius: 10vw;
    }
    .custom_section .circle {
        width: 5vw;
        height: 5vw;
        border-radius: 5vw;
        position: absolute;
        top: 50%;
        left: 1vw;
        transform: translate(0, -50%);
        background: #303030;
        animation: circle_move 1.5s reverse ease-in-out infinite;
    }
    @keyframes circle_move {
        0% {
            left: 1vw;
            opacity: 0;
        }
        25% {
            left: 1vw;
            opacity: 1;
        }
        50% {
            opacity: 1;
        }
        100% {
            left: 8vw;
            opacity: 0;
        }
    }
    .custom_section .swipe_box span {
        color: #303030;
        font-size: 3.5vw;
        font-weight: 500;
    }
}


/* ---PRODUCTS STYLES--- */

.products_section {
    display: flex;
    flex-direction: column;
    gap: 10vw;
    padding: 5vw 0;
}

@media(max-width: 996px) {
    .products_section {
        gap: 20vw;
        padding: 10vw 0;
    }
}


/* ---WEDDING STYLES--- */

.products_section .weddings_box {
    display: flex;
    flex-direction: column;
    gap: 3vw;
}

.products_section .weddings_box .info_box {
    padding: 0 5vw;
}

.products_section .weddings_box .title_box h2 {
    width: 50%;
}

.products_section .weddings_box .content_box {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.products_section .weddings_box .media_box {
    pointer-events: none;
    user-select: none;
}

@media(max-width: 996px) {
    .products_section .weddings_box {
        gap: 10vw;
    }
    .products_section .weddings_box .info_box {
        padding: 0 10vw;
    }
    .products_section .weddings_box .title_box h2 {
        width: 100%;
    }
    .products_section .weddings_box .content_box {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 5vw;
    }
}


/* ---COLLECTION STYLES--- */

.products_section .collections_box {
    display: grid;
    grid-template-columns: 55% 42%;
    gap: 3%;
    padding: 0 5vw;
}

.products_section .content_box {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.products_section .collections_box .title_box h2 {
    width: 70%;
}

.products_section .collections_box .content_collection {
    display: flex;
    align-items: center;
    gap: 4vw;
}

.products_section .collections_box .counter_box {
    display: flex;
    align-items: center;
    gap: .25vw;
}

.products_section .collections_box .counter_box .current {
    color: var(--olive);
    font-size: 1.25vw;
    font-weight: 500;
    text-wrap: nowrap;
}

.products_section .collections_box .counter_box .total {
    color: var(--olive);
    font-size: 1vw;
    text-wrap: nowrap;
    opacity: .5;
}

.products_section .collections_box .headding_box {
    display: flex;
    flex-direction: column;
}

.products_section .collections_box .headding_box {
    position: relative;
}

.products_section .collections_box .headding_box .number {
    font-family: "Poppins", sans-serif;
    font-size: 6vw;
    font-weight: bold;
    line-height: 1;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: .1vw var(--gold);
    transform: translate(-1vw, 2.5vw);
    opacity: .2;
}

.products_section .collections_box .headding_box h2 {
    font-size: 1.5vw;
}

.products_section .collections_box .extra_box {
    display: flex;
    flex-direction: column;
    gap: 3vw;
}

.products_section .collections_box .nav_box {
    display: flex;
    gap: 2vw;
    user-select: none;
}

.products_section .collections_box .nav_box svg {
    cursor: pointer;
    width: 2vw;
    transition: .25s;
}

.products_section .collections_box .nav_box svg:hover {
    opacity: .5;
}

.products_section .collections_box .thumbnails_box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: flex-end;
    gap: 1.5vw;
}

.products_section .collections_box .images_box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1vw;
}

.products_section .collections_box .image_item {
    position: relative;
    height: 12vw;
}

.products_section .collections_box .media_item {
    position: relative;
    height: 50vw;
}

@media(max-width: 996px) {
    .products_section .collections_box {
        grid-template-columns: 100%;
        gap: 5vw;
        padding: 0 10vw;
    }
    .products_section .content_box {
        justify-content: flex-start;
        gap: 10vw;
    }
    .products_section .collections_box .title_box h2 {
        width: 100%;
    }
    .products_section .collections_box .content_collection {
        gap: 5vw;
    }
    .products_section .collections_box .counter_box .current {
        font-size: 4vw;
    }
    .products_section .collections_box .counter_box .total {
        font-size: 3.5vw;
    }
    .products_section .collections_box .headding_box {
        display: flex;
        flex-direction: column;
    }
    .products_section .collections_box .headding_box {
        position: relative;
    }
    .products_section .collections_box .headding_box .number {
        font-size: 20vw;
        -webkit-text-stroke: .5vw var(--gold);
        transform: translate(-5vw, 7vw);
    }
    .products_section .collections_box .headding_box h2 {
        font-size: 4vw;
    }
    .products_section .collections_box .extra_box {
        gap: 10vw;
    }
    .products_section .collections_box .nav_box {
        gap: 5vw;
    }
    .products_section .collections_box .nav_box svg {
        width: 8vw;
    }
    .products_section .collections_box .thumbnails_box {
        grid-template-columns: 1fr;
        gap: 5vw;
    }
    .products_section .collections_box .images_box {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 5vw;
    }
    .products_section .collections_box .image_item {
        position: relative;
        height: 35vw;
    }
    .products_section .collections_box .media_item {
        height: 110vw;
    }
}


/* ---TESTIMONIALS STYLES--- */

.testimonials_section {
    padding: 5vw;
}

.testimonials_section .testimonials_box {
    display: grid;
    grid-template-columns: 28% 69%;
    gap: 3%;
}

.testimonials_section .content_box {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.testimonials_section .nav_box {
    display: flex;
    gap: 2vw;
    user-select: none;
}

.testimonials_section .nav_box svg {
    cursor: pointer;
    width: 2vw;
    transition: .25s;
}

.testimonials_section .nav_box svg:hover {
    opacity: .5;
}

.testimonials_section .slider_item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1.5vw;
    padding: 2vw;
    background: #222222;
    cursor: pointer;
    transition: .5s;
}

.testimonials_section .slider_item:hover {
    background: #303030;
}

.testimonials_section .slider_item li {
    color: white;
    font-family: "Marcellus", serif;
    font-weight: 400;
    margin-left: 1vw;
}

.testimonials_section .details_box {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.testimonials_section .stars_box i {
    color: var(--gold);
    font-size: .8vw;
}

.testimonials_section .details_box span {
    color: var(--gray);
    font-size: .8vw;
    opacity: .5;
}

@media(max-width: 996px) {
    .testimonials_section {
        padding: 10vw;
    }
    .testimonials_section .testimonials_box {
        grid-template-columns: 100%;
        gap: 10vw;
    }
    .testimonials_section .content_box {
        justify-content: flex-start;
        gap: 10vw;
    }
    .testimonials_section .nav_box {
        gap: 5vw;
    }
    .testimonials_section .nav_box svg {
        width: 8vw;
    }
    .testimonials_section .slider_item {
        gap: 5vw;
        padding: 5vw;
    }
    .testimonials_section .slider_item li {
        margin-left: 3vw;
    }
    .testimonials_section .stars_box i {
        font-size: 2.5vw;
    }
    .testimonials_section .details_box span {
        font-size: 2.5vw;
    }
}


/* ---LOCAL STYLES--- */

.local_section {
    padding: 5vw;
}

.local_section .local_box {
    display: grid;
    grid-template-columns: 42% 55%;
    gap: 3%;
}

.local_section #map_box {
    width: 100%;
    height: 100%;
    margin-top: 1vw;
    background: #111;
}

.local_section .mapboxgl-marker path {
    fill: var(--gold);
}

.local_section .mapboxgl-popup-anchor-top .mapboxgl-popup-tip,
.local_section .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {
    border-bottom-color: var(--dark);
    border-top-color: var(--dark);
}

.local_section .mapboxgl-popup-content {
    padding: 1.5vw;
    background: var(--dark);
}

.local_section .mapboxgl-popup-content .popup_box {
    display: flex;
    flex-direction: column;
    color: white;
}

.local_section .mapboxgl-popup-content .popup_box:hover {
    color: var(--gold);
}

.local_section .mapboxgl-popup-content .popup_box:focus-visible {
    outline: none;
}

.local_section .mapboxgl-popup-content button {
    top: .25vw;
    right: .25vw;
    color: white;
    font-size: 1.5vw;
}

.local_section .media_box {
    position: relative;
}

.local_section .target_box {
    position: absolute;
    top: 2vw;
    left: 2vw;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .5vw;
    padding: 1.5vw;
    background: #1b1b1bac;
    backdrop-filter: blur(.25vw);
    -webkit-backdrop-filter: blur(.25vw);
    z-index: 2;
}

.local_section .target_box:hover {
    transform: scale(1.02);
    background: #303030ac;
}

.local_section .target_box i {
    color: white;
    font-size: 1.5vw;
}

.local_section .text_box {
    display: flex;
    flex-direction: column;
    gap: .5vw;
    color: white;
}

.local_section .text_box span {
    font-size: 1vw;
}

.local_section .text_box span:last-child {
    opacity: .4;
}

.local_section .slider_item {
    position: relative;
    height: 50vw;
}

@media(max-width: 996px) {
    .local_section {
        padding: 10vw;
    }
    .local_section .local_box {
        grid-template-columns: 100%;
        gap: 10vw;
    }
    .local_section .info_box {
        order: 2;
    }
    .local_section #map_box {
        height: 70vw;
        margin-top: 6vw;
    }
    .local_section .mapboxgl-popup-content {
        padding: 3vw;
    }
    .local_section .mapboxgl-popup-content button {
        top: 1vw;
        right: 1vw;
        font-size: 3vw;
    }
    .local_section .target_box {
        top: 5vw;
        left: 5vw;
        gap: 1.5vw;
        padding: 3vw;
        backdrop-filter: blur(1vw);
        -webkit-backdrop-filter: blur(1vw);
    }
    .local_section .target_box i {
        font-size: 3vw;
    }
    .local_section .text_box {
        gap: 1.5vw;
    }
    .local_section .text_box span {
        font-size: 3vw;
    }
    .local_section .slider_item {
        position: relative;
        height: 80vw;
    }
}