﻿.video-wrap {
    position: relative;
    width: 100vw;
    height: 100vh;
    max-width: 600px;
    aspect-ratio: 9/16;
    overflow: hidden;
}

    .video-bg {
        /*    inset: 0;*/
        position: absolute;
        object-position: center;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.video-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-end;
    align-self: flex-end;
    gap: 0.5rem;
    padding: 0 2rem 5rem;
}
.MyLoginBtn {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: var(--br_r) !important;
    background-color: var(--yellow)!important;
}
    .MyLoginBtn:hover, .MyLoginBtn:active {
        background-color: #ffdb00 !important;
    }
    .bubble-bottom {
        --size: 15rem;
        --bubble: #f6fafc;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 0 auto .5rem;
        width: var(--size);
        background: var(--bubble);
        border-radius: var(--br_r);
        position: relative;
    }

    .bubble-bottom:after {
        content: '';
        position: absolute;
        bottom: 1px;
        left: 50%;
        width: 0;
        height: 0;
        border: calc(var(--size) * 0.025) solid transparent;
        border-top-color: var(--bubble);
        border-bottom: 0;
        margin-left: calc(var(--size) * 0.025 * -1);
        margin-bottom: calc(var(--size) * 0.025 * -1);
    }
/*상품박스 설명*/
.ProdBox {
    height: 500px;
}

    .ProdBox .ProdBox_Tit {
        width: 96%;
    }
        /*상품설명높이 - 상품명 3줄, 설명 2줄 기준*/
        .ProdBox .ProdBox_Tit .ProdName {
            min-height: 110px;
        }
            /*hover 시 상품 이름 효과*/
            .ProdBox .ProdBox_Tit .ProdName a.mud-link:hover {
                transition: opacity 100ms cubic-bezier(0, 0, 0.2, 1) 0ms;
                opacity: 0.7
            }
        /*상품설명*/
        .ProdBox .ProdBox_Tit .MyDescription {
            max-height: 33px;
        }
        /*가격 줄 긋기*/
        .ProdBox .ProdBox_Tit .PriceLine, .PriceLine {
            text-decoration-line: line-through;
        }

.MyToolBar{
   max-width:600px;
   margin:0 auto;
   border-bottom:1px solid #efefef;
}
/*미니아이콘*/
.mini-icon {
    padding: 3px 8px;
    border-radius: 4px;
    border-radius: 6px;
    line-height:.8!important;
    overflow: hidden;
}
/*텍스트오버 쩜쩜쩜*/
.txt-over {
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    white-space: nowrap;
}
/*텍스트오버라인 쩜쩜쩜*/
[class*="text_over_line"] {
    /*word-break: break-word;    word-break: keep-all; */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}
.text_over_line_1 {    -webkit-line-clamp: 1;}
.text_over_line_2 {    -webkit-line-clamp: 2;}
.text_over_line_3 {    -webkit-line-clamp: 3;}
.text_over_line_4 {    -webkit-line-clamp: 4;}

/*백드롭블러*/
.bg_blur {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
/*구글아이콘*/
.mud-icon-root.fa-light{font-weight:300!important}
.material-symbols-rounded {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48
}
.material-symbols-sharp {
    font-family: 'Material Symbols Rounded';
    font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 48
}
/*아이콘채우기버튼*/
.FillBtn .material-symbols-rounded,
.mud-tab .material-symbols-rounded {
    font-variation-settings: 'FILL' 0;
    transition: all 300ms cubic-bezier(0, 0, 0.2, 1) 0ms;
}
.FillBtn:hover .material-symbols-rounded,
.FillBtn.active .material-symbols-rounded,
.mud-tab.mud-tab-active .material-symbols-rounded,
.mud-tab:hover .material-symbols-rounded {
    font-variation-settings: 'FILL' 1;
}
    .mud-tab.mud-tab-active {
        background-color: #594ae212;
    }
    /*기본버튼 오버 이펙트*/
    .hover {
        background-color: var(--point);
        position: relative !important;
        overflow: hidden;
        min-width: fit-content !important;
    }

        .hover:hover {
            background-color: #0b4fc7 !important;
            transform: translateY(-1px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
        }

        .hover:active {
            transform: translateY(0px);
            box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
        }
    /*흰버튼*/
    .WhiteBtn {
        background-color: var(--mud-palette-white) !important;
        /*폰트색상은 버튼에 클래스로 직접지정*/
    }

        .WhiteBtn:hover,
        .WhiteBtn.active {
            --mud-ripple-color: var(--mud-palette-primary) !important;
        }
    /*기본버튼 배경 이펙트*/
    .hoverEffect {
        position: relative !important;
        overflow: hidden;
        min-width: fit-content !important;
    }

        .hoverEffect:after {
            background: var(--white);
            content: "";
            height: 155px;
            left: -130%;
            opacity: 0.2;
            position: absolute;
            top: -50px;
            transform: rotate(35deg);
            transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
            width: 50px;
        }

        .hoverEffect:hover:after {
            left: 130%;
            transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
        }

    div.MyTextHover .mud-button:hover, div.MyTextHover .mud-button.active,
    button.MyTextHover:hover, button.MyTextHover:active,
    a p.MyTextHover:hover, a p.MyTextHover:active,
    a.MyTextHover:hover, a.MyTextHover:active {
        color: var(--mud-palette-tertiary-darken) !important;
        --mud-ripple-color: var(--mud-palette-tertiary) !important;
        background-color: var(--mud-palette-tertiary-hover) !important;
        transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
    }
    /* Gradient Buttons */
    .gradient-btn {
        background-size: 200% 200%;
        animation: gradientShift 3s ease-in-out infinite;
        border: none;
        color: #ffffff;
        font-weight: 700;
        text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    }

        .gradient-btn:hover {
            transform: translateY(-3px) scale(1.05);
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
        }

 
    /* 샵대문 */
    .FrontDoorWrap {
        position: relative;
        aspect-ratio: 2 / 1;
        overflow: hidden;
    }
        /* MudImage가 컨테이너 높이를 꽉 채우게 */
        .FrontDoorWrap .FrontDoorImg {
            width: 100%;
            height: 100%;
            display: block;
        }
        /* 텍스트/버튼 플로팅 */
        .FrontDoorWrap .FrontDoorOverlay {
            position: absolute;
            left: 0;
            top: 0;
            padding: 1rem;
            z-index: 2;
        }
    /*일정안내*/
    .Schedule .DayCard {
        position: relative;
        overflow: visible;
        padding: 1rem 1.25rem .65rem;
        border-radius: var(--br_l);
    }

        .Schedule .DayCard .mini-icon {
            border-radius: var(--br_c);
            width: fit-content;
            position: absolute;
            left: 50%;
            top: 0;
            transform: translate(-50%, -50%);
            z-index: 2;
            white-space: nowrap;
            max-width: none;
            padding: 6px 10px !important;
            font-size: 11px;
        }

        .Schedule .DayCard::before {
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            z-index: 1;
            pointer-events: none;
        }
    /*라이브입장섹션*/
    #LiveEntrance {
        background: #f6fafc;
        background: linear-gradient(90deg, #f6fafc 0%, #f8f6ff 100%);
    }

        #LiveEntrance .LiveEntranceGrid .photoBox {
            position: relative;
            aspect-ratio: 4 / 5;
            overflow: hidden;
        }

            #LiveEntrance .LiveEntranceGrid .photoBox .photo {
                width: 100%;
                height: 100%;
                display: block;
            }

            #LiveEntrance .LiveEntranceGrid .photoBox .LiveOverlay {
                position: absolute;
                left: 1.5rem;
                right: auto;
                bottom: .5rem;
                padding:0 .5rem 0 0;
                z-index: 2;
                background-color:rgb(0, 0, 0, 0.50);
            }

    .photo {
        aspect-ratio: 4 / 5;
    }
    /*.photo2 {
    aspect-ratio: 9 / 16;
    max-height:345px;
}*/
    /* 숏폼 리스트 - 포토프레임*/
    .photoframe {
        aspect-ratio: 4 / 5;
        width: 100%;
        max-width: 400px;
        overflow: hidden;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        text-decoration: none;
        color: inherit;
        transition: transform .15s ease, filter .15s ease;
    }        
        /* 배경용 이미지 레이어 */
        .photoframe.blur-bg::before {
            content: "";
            position: absolute;
            inset: 0;
            background-image: var(--bg);
            background-size: cover;
            background-position: center;
            filter: blur(4px);
            opacity: .8;
            transform: scale(1.05);
        }

        .photoframe.blur-bg::after {
            content: "";
            position: absolute;
            inset: 0;
            background: rgba(0,0,0,.6);
        }
        /*리스트 이미지*/
        .photoframe > img {
            position: relative;
            z-index: 1;
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center;
            display: block;
            transition: transform .2s ease;
            transform: scale(1);
        }
        /* 중앙 플레이 배지(장식) */
        .photoframe .play-badge {
            --badge: 3.75rem;
            width: var(--badge);
            height: var(--badge);
            border-radius: 9999px;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            z-index: 3;
            border: 1px solid rgba(255,255,255,.22);
            background: rgba(0,0,0,.45);
            backdrop-filter: blur(6px);
            display: grid;
            place-items: center;
            pointer-events: none;
            transition: transform .15s ease, background .15s ease, border-color .15s ease;
            box-shadow: none;
        }

            .photoframe .play-badge::before {
                content: "";
                position: absolute;
                inset: 0;
                border-radius: inherit;
                box-shadow: none; /* 기본 */
                transition: box-shadow .2s ease;
                pointer-events: none;
            }
        /* 삼각형 플레이 아이콘 */
        .photoframe .play-icon {
            --triHalfH: calc(var(--badge) * 0.16); /* 위/아래 각각 */
            --triW: calc(var(--badge) * 0.26); /* 왼쪽 border(가로) */
            width: 0;
            height: 0;
            border-top: var(--triHalfH) solid transparent;
            border-bottom: var(--triHalfH) solid transparent;
            border-left: var(--triW) solid rgba(255,255,255,.92);
            transform: translateX(calc(var(--badge) * 0.03));
        }
        /*  a에  hover/focus 시  */
        .photoframe:hover.blur-bg::before,
        .photoframe:focus-visible.blur-bg::before {
            filter: blur(8px);
            opacity: .75;
        }
        /* hover/focus 시 중앙 이미지 살짝 확대 */
        .photoframe:hover > img,
        .photoframe:focus-visible > img {
            transform: scale(1.025);
        }

        .photoframe:hover.blur-bg::after,
        .photoframe:focus-visible.blur-bg::after {
            background: rgba(0,0,0,.25);
        }
        /*  배지/아이콘도 같이 활성화 */
        .photoframe:hover .play-badge,
        .photoframe:focus-visible .play-badge {
            background: rgba(255,255,255,.10);
            border-color: rgba(255,255,255,.35);
            filter: brightness(1.05);
        }

            .photoframe:hover .play-badge::before,
            .photoframe:focus-visible .play-badge::before {
                box-shadow: 0 3px 10px rgba(0,0,0,.45);
            }
        /* 키보드 접근성 포커스 링 */
        .photoframe:focus-visible {
            outline: 2px solid rgba(255,255,255,.55);
            outline-offset: 3px;
        }
    /*후기*/
    /* 후기 프레임: 4:5 고정 + 배경 blur + 전면 이미지는 contain */
    .reviewframe {
        aspect-ratio: 4 / 5;
        width: 100%;
        max-width: 400px; /* 필요하면 */
        background: #222;
        overflow: hidden;
        position: relative;
        display: block; /* a 태그 */
        text-decoration: none;
        color: inherit;
    }
        /* 배경용 이미지 레이어(blur) */
        .reviewframe.blur-bg::before {
            content: "";
            position: absolute;
            inset: 0;
            background-image: var(--bg);
            background-size: cover; /* 배경은 꽉 */
            background-position: center;
            filter: blur(4px);
            opacity: .8;
            transform: scale(1.06);
            transition: filter .2s ease, opacity .2s ease;
        }
        /* 배경 어둡게(전체) */
        .reviewframe.blur-bg::after {
            content: "";
            position: absolute;
            inset: 0;
            background: rgba(0,0,0,.35);
            transition: background .2s ease;
        }
        /* 전면 이미지: 고객 이미지 비율 제각각 -> 전체 보이게 */
        .reviewframe > img {
            position: relative;
            z-index: 1;
            width: 100%;
            height: 100%;
            object-fit: contain; /* 잘림 없이 전체 노출 */
            object-position: center;
            display: block;
            transition: transform .2s ease;
        }
        /* 텍스트 오버레이(사진 위) */
        .reviewframe .review-overlay {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 3;
            padding: .75rem .85rem;
            color: #fff;
            /* 반투명 블랙 패널 */
            background: rgba(0,0,0,.45);
            /* 살짝 유리 느낌(지원되는 브라우저에서만) */
            backdrop-filter: blur(4px);
            display: flex;
            flex-direction: column;
            gap: .35rem;
            min-height: 120px;
        }

            .reviewframe .review-overlay p {
                line-height: 1.2;
            }
        /* 후기 본문 줄수 제한(미리보기) */
        .reviewframe .review-clamp {
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 4; /* 2~5로 조절 */
            overflow: hidden;
            margin-top: 0.3rem;
        }
        /* hover: 움직임 없이 살짝 강조 (원하면 유지/삭제) */
        .reviewframe:hover.blur-bg::before {
            filter: blur(8px);
            opacity: .75;
        }

        .reviewframe:hover.blur-bg::after {
            background: rgba(0,0,0,.25);
        }

        .reviewframe:hover > img {
            transform: scale(1.02); /* 아주 살짝만 */
        }
    /* 1:1 이미지 리뷰 */
    .reviewphoto {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        max-width: 400px;
        border-radius: 18px;
        overflow: hidden;
        aspect-ratio: 1 / 1;
    }

        .reviewphoto > img {
            width: 100%;
            aspect-ratio: 1 / 1;
            transform: scale(1);
            transition: transform 550ms cubic-bezier(0.19, 1, 0.22, 1);
        }

        .reviewphoto:hover > img {
            transform: scale(1.02);
        }
.reviewMore, .reviewbest {
    position: relative;
}
    /*베스트리뷰*/
    .reviewbest::after {
        content: "BEST";
        position: absolute;
        top: .5rem;
        left: .5rem;
        background-image: linear-gradient(var(--grd-direction-rb), var(--grd-primary));
        font-size: 12px;
        line-height: 1;
        font-weight: 600;
        color: #fff;
        padding: 4px 7px;
        border-radius: var(--br_c);
        z-index: 5;
    }
    
    .reviewMore span {
        z-index: 2;
        position: absolute;
        display: flex;
        place-items: center;
    }
    /* 플로팅 액션 */
    .FloatingActions {
        position: fixed;
        right: calc(50% - 300px + 16px);
        bottom: 16px;
        z-index: 1300; /* AppBar/Drawer 위로 오게 */
        display: flex;
        flex-direction: column;
        gap: 5px;
        filter: drop-shadow(2px 4px 4px hsl(0deg 0% 0% / 0.25));
        transition: right 550ms cubic-bezier(0.19, 1, 0.22, 1);
    }
@media(max-width: 600px){
    .FloatingActions {
        right:16px;
    }
} 
.FloatingActions .FloatingBtn {
    padding: 2px !important;
    background-image: linear-gradient(to bottom, rgb(255, 255, 255, 0.45), rgb(255, 255, 255, 0.30), rgb(255, 255, 255, 0.45));
}
        /* 아이콘 위 / 텍스트 아래 강제 */
        .FloatingActions .FloatingBtn .mud-button-label {
            display: flex !important;
            flex-direction: column !important;
            align-items: center !important;
            justify-content: center !important;
            gap: 4px !important;
            width: 100%;
            font-weight: 200;
        }
    /* p 기본 마진 때문에 틀어지는 거 방지 */
    .FloatingActions p {
        margin: 2px 0 !important;
        line-height: 1.1;
    }
    /* fallback (모든 브라우저) 스퀘클 */
    .mud-button-root.squircle, img.squircle, .mud-link.squircle, a.squircle {
        border-radius: 18px;
        overflow: hidden;
        clip-path: url(#SquircleClip-3); /*스퀘클*/
        aspect-ratio: 1 / 1;
    }
    /*팔로우 Follow US*/
    .SnsGrid .mud-link.squircle {
        background-image: linear-gradient(to bottom, #efefef, #fefefe, #efefef);
    }

        .SnsGrid .mud-link.squircle > img {
            width: 90%;
            max-width: 130px;
            transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
        }

        .SnsGrid .mud-link.squircle:hover > img.squircle {
            width: 100%
        }
    /*푸터*/
    .mud-grid.MyFooter > .mud-grid-item {
        font-size: 0.8rem !important;
        line-height: 1;
    }

    .mud-grid.MyFooter .mud-grid-item-xs-9 {
        font-weight: 500;
    }
.MyShortformDialog .mud-dialog-content {padding :0!important}
/*게시판동영상*/
.MyVideoWrap {
    width: 100%;
}

.MyVideoWrapM {
    width: 100%!important;
    margin: 0 auto;
}
/*게시판동영상 쇼츠*/

iframe.ql-video {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
    aspect-ratio: 9 / 16;
    /*aspect-ratio: 16 / 9;*/
}
/*게시판동영상 쇼츠 PC일때 맥스 높이*/
iframe.ql-videoM {
    max-height: 80vh;
}

.MyVideoCard {
    width: 100%;
    height: 100%;
    overflow: hidden;
    box-sizing: border-box !important
}

.MyVideoCardMedia {
    aspect-ratio: 16 / 9;
    width: 100%;
    margin-top: -1px;
    border-radius: var(--mud-default-borderradius);
}

    .MyVideoCardMedia img {
        height: inherit;
    }

.MyVideoCard .txt-over-line {
    min-height: 32px;
    word-break: normal;
}

