:root :where(.ugc-section) {
    --_clr-drawer-text: var(--clr-drawer-text, white);
    --_clr-drawer-bg: var(--clr-drawer-bg, rgba(0 0 0 / .5));
    --_clr-header-text: var(--clr-header-text, var(--dark-blue));

    --_padding-drawer: var(--padding-drawer, 0.75rem);
    --_height-drawer-closed: var(--height-drawer-closed, 2.5rem);
    --_height-section-swiper: var(--height-section-swiper, 450px)
}

.ugc-section {
    padding: var(--side-padding);
    gap: var(--gutter);
    padding-block: 3rem;
    display: grid;
}

.ugc-section__header {
    color: var(--_clr-header-text);
    font-family: var(--header-font);
    text-transform: uppercase;
    font-size: var(--section-header-size);
    font-weight: var(--section-header-weight);
    line-height: var(--section-header-height);
    text-align: center;
}

.ugc-section__button {
    width: fit-content;
    margin: auto;
}

.ugc-section__swiper {
    --cols: 1;

    margin: auto;
    max-width: min(1650px, 100%);
    aspect-ratio: calc(var(--cols) * 4) / 6;

    @media(min-width: 512px) {--cols: 2;}
    @media(min-width: 960px) {--cols: 3;}
    @media(min-width: 1050px) {--cols: 4;}

}

.ugc-section__swiper-wrapper {
    height: 100%;
}

.ugc-section__swiper-slide {
    width: auto;
    max-width: fit-content;
}

.ugc-section__controls {
    justify-self: end;
    display: flex;
    gap: var(--gutter);
}

.ugc-entry__nav {
    border-radius: 100%;
    aspect-ratio: 1;
    color: white;
    background-color: rgba(0 0 0 / .5);
    padding: 1rem;
    display: inline;
    cursor: pointer;

    &.swiper-button-disabled {
        opacity: .5;
    }

    &.swiper-button-lock {
        opacity: 0;
    }

    &:hover {
        background-color: rgba(0 0 0 / 0.8);
    }
}

.ugc-entry {
    position: relative;
    background-color: black;
    border-radius: var(--radius-card);
    height: 100%;

    overflow: clip;

    display: grid;
    grid-template-areas: 'stack';

    > * {
        grid-area: stack;
    }

    @media (max-width: 512px) {
        aspect-ratio: unset;
    }
}
.ugc-entry__media {
    overflow: hidden;
}

.ugc-entry__media > :is(img, video){
    object-fit: cover;
    border-radius: var(--radius-card);
}

.ugc-entry__media--primary > :is(img, video) {
    height: 100%;
    width: 100%;

    :is(.ugc-entry--horizontal) & {
        object-fit: contain;
    }
}

.ugc-entry__media--active > :is(img, video) {
    border: 2px solid white;
}

.ugc-dialog__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 100%;
    height: 100%;
    gap: var(--gutter);
}

.ugc-dialog__content {
    display: flex;
    flex-direction: column;
}


.ugc-dialog__gallery {
    display: grid;
    grid-template-columns: 3fr 1fr;
    gap: var(--gutter);

    .ugc-entry__media {
        border-radius: var(--radius-card);
    }

    .ugc-entry__media--other > :is(video, img) {
        aspect-ratio: 1;
    }


}

.ugc-dialog__gallery--single {
    display: flex;
}


.ugc-entry__drawer {

    display: flex;
    flex-direction: column;
    align-self: end;
    height: fit-content;

    .ugc-entry__button {
        color: var(--_clr-drawer-text);
        background: none;
        padding: 0;

        font-family: var(--header-font);
        font-size: 1.25rem;
        display: block;
        margin: auto;
    }
}

.ugc-section {
    .ugc-entry__header {
        font-size: var(--accent-header-size);
        line-height: var(--accent-header-height);
        color: var(--_clr-drawer-text);
    }
    .ugc-entry__testimonial, .ugc-entry__testimonial-content > p {
        color: var(--_clr-drawer-text);
        font-size: 1rem;
    }

    .ugc-entry__position {
        font-family: var(--header-font);
        font-size: 1.25rem;
        line-height: 1;
    }

    .ugc-entry__read-more {
        font-family: inherit;
        font-size: inherit;
        font-weight: inherit;
        line-height: inherit;
    }
}

.ugc-dialog {
    --height: 600px;
    --clr-dialog-bg: var(--clr-charcoal);
    --clr-dialog-text: var(--clr-white);

    &::part(closeButton) {
        font-family: var(--body-font);
        
    }

    .ugc-entry__header {
        font-size: var(--section-header-size);
        line-height: var(--section-header-height);
        font-family: var(--header-font);
        border-bottom: 2px solid white;
    }

    .ugc-entry__position {
        margin-block-start: 12px;
        margin-block-end: 1em;
    }

    .ugc-entry__response-header {
        font-size: 1.25rem;
    }

    
    .ugc-entry__testimonial-content {
        padding-right: 1.25rem;
    }

    .ctab {
        margin-right: 1.25rem;
    }
    .ugc-entry__response {
        margin-right: .5rem;
        padding: 1.25rem;
    }


}




.ugc-dialog__nav {
    position: absolute;

    z-index: 1;
    text-align: center;
    width: 100%;
    background-color: rgba(0 0 0 / .5);
    transition: opacity .2s ease-in-out;

    &.swiper-button-disabled {
        opacity: 0;
    }

    > i {
        margin: auto;
        width: 30px;
        height: 30px;
    }

    .swiper-horizontal > & {

        width: min-content;
        display: grid;
        place-content: center;
        > i {
            transform: rotate(-90deg);
        }
    }
}

.ugc-dialog__nav--prev {
    top: 0;

    .swiper-horizontal > & {
        bottom: 0;
        left: 0;
    }
}

.ugc-dialog__nav--next {
    bottom: 0;

    .swiper-horizontal > & {
        top: 0;
        right: 0;
    }
}

.ugc-dialog__gallery-img {
    user-select: none;
    
}

.ugc-entry__play {
    background-color: rgba(0 0 0 / .5);   
    color: white;
    
    align-self: center;
    justify-self: center;
    height: 4rem;
    width: 4rem;
    border-radius: 100%;
    padding: 0;
    position: absolute;
    inset: 0;

    &:hover {
        background-color: rgba(0 0 0 / .5);   
    }

    &:disabled {
        display: none;
    }

    .icon-chevron {
        margin: auto;
        height: 30px;
        width: 30px;
    }
}

.ugc-entry__response {
    background-color: white;
    padding: 0.5rem;
    border-radius: var(--radius-card);
    margin-block-start: 1.5rem;
}

.ugc-entry__open {
    background: none;
    outline: none;
    border: none;
    padding: 0;

    fl-drawer[open] & {
        transform: scaleY(-1);
    }

    &:is(:hover, :focus-visible, :focus) {
        outline: none;
        border: none;
        background: none;
    }

    .icon-chevron {
        rotate: 90deg;
        width: 30px;
        height: 30px;
    }
}

.ugc-dialog {

    &[data-orientation="vertical"] { /* default desktop width */
        .ugc-dialog__content {
            overflow: auto;
        }
        .ugc-dialog__scroll {
            overflow: auto;
        }
    }

    &[data-orientation="horizontal"] { /* mobile width / landscape images */
        --height: fit-content;

        .ugc-dialog__grid {
            grid-template-columns: 1fr;
            grid-template-rows: none;
            overflow: auto;
        }
    
        .ugc-dialog__gallery {
            grid-template-columns: 1fr;
        }

        .ugc-dialog__gallery-options {
            width: 100%;
        }

        .ugc-dialog__gallery-img {
            width: 120px;
        }
    }


}