*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f4f4f5;font-family:Arial,'Malgun Gothic',sans-serif;color:#222}button,input,textarea,select{font-family:inherit}button{cursor:pointer}.app-shell{max-width:520px;min-height:100vh;margin:0 auto;background:#fff;position:relative;box-shadow:0 0 20px rgba(0,0,0,.06)}.shop-header{padding:20px 18px 14px;background:linear-gradient(180deg,#fff 0%,#fff7f0 100%)}.shop-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.shop-label{margin:0 0 5px;color:#ff5a00;font-weight:700;font-size:13px}.shop-header h1{margin:0;font-size:26px;letter-spacing:-.5px}.shop-desc{margin:8px 0 0;color:#666;font-size:14px;line-height:1.4}.login-btn{border:1px solid #ddd;background:#fff;border-radius:18px;padding:8px 12px;font-size:13px;white-space:nowrap}.notice-box{margin-top:16px;background:#fff;border:1px solid #ffe0c2;border-radius:12px;padding:12px 13px;display:flex;gap:8px;align-items:center}.notice-box b{color:#ff5a00;font-size:14px}.notice-box span{font-size:13px;color:#555}.category-tabs{position:sticky;top:0;z-index:10;background:#fff;display:flex;gap:8px;overflow-x:auto;padding:12px 14px;border-bottom:1px solid #eee;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tabs a{display:block;color:#555;text-decoration:none;white-space:nowrap;border:1px solid #e5e5e5;background:#fff;border-radius:999px;padding:8px 13px;font-size:14px}.category-tabs a.active{background:#111827;color:#fff;border-color:#111827;font-weight:700}.menu-area{padding:12px 14px 100px}.menu-section{scroll-margin-top:60px;margin-bottom:24px}.menu-section h2{font-size:18px;margin:14px 2px 12px}.menu-card{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid #eee;position:relative}.menu-info{flex:1;min-width:0}.menu-info h3{margin:0 0 7px;font-size:17px;letter-spacing:-.3px}.menu-info p{margin:0 0 9px;color:#777;font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.menu-info strong{display:block;font-size:16px;margin-bottom:11px}.add-cart-btn{border:0;background:#ff5a00;color:#fff;border-radius:8px;padding:7px 12px;font-size:14px;font-weight:700}.menu-img{width:105px;height:105px;border-radius:12px;overflow:hidden;background:#f3f4f6;flex-shrink:0}.menu-img img{width:100%;height:100%;object-fit:cover;display:block}.no-img{height:100%;display:flex;align-items:center;justify-content:center;color:#aaa;font-size:12px}.soldout{opacity:.55}.soldout-badge{display:inline-block;background:#555;color:#fff;border-radius:8px;padding:6px 10px;font-size:13px}.cart-bar{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);width:calc(100% - 28px);max-width:492px;background:#111827;color:#fff;border-radius:14px;padding:13px 14px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 8px 25px rgba(0,0,0,.22);z-index:20}.cart-bar b{display:block;font-size:14px}.cart-bar span{font-size:13px;color:#d1d5db}.cart-bar button{border:0;background:#ff5a00;color:#fff;border-radius:10px;padding:10px 14px;font-weight:700}.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%) translateY(10px);background:rgba(0,0,0,.82);color:#fff;padding:10px 14px;border-radius:999px;font-size:14px;opacity:0;transition:.25s;z-index:30}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.page-header{height:54px;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid #eee;position:sticky;top:0;background:#fff;z-index:10}.page-header button{border:0;background:none;font-size:34px;line-height:1}.page-header h1{font-size:18px;margin:0}.cart-page,.order-page{padding:16px 14px 100px}.cart-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #eee}.cart-thumb{width:72px;height:72px;border-radius:10px;background:#f3f4f6;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#aaa;font-size:12px}.cart-thumb img{width:100%;height:100%;object-fit:cover}.cart-info{flex:1}.cart-info h3{margin:0 0 6px;font-size:16px}.cart-info strong{display:block;margin-bottom:8px}.qty-box{display:flex;align-items:center;gap:8px}.qty-box button{border:1px solid #ddd;background:#fff;border-radius:7px;width:30px;height:30px}.qty-box .remove{width:auto;padding:0 8px;color:#777}.cart-summary{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:520px;background:#fff;border-top:1px solid #eee;padding:13px 14px calc(13px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center}.cart-summary span{display:block;color:#777;font-size:13px}.cart-summary strong{font-size:20px}.cart-summary button,.full-submit{border:0;background:#ff5a00;color:#fff;border-radius:10px;padding:13px 18px;font-weight:700;font-size:15px}.empty-box{background:#f9fafb;border:1px dashed #ddd;border-radius:12px;padding:30px;text-align:center;color:#777}.form-card{background:#fff;border:1px solid #eee;border-radius:14px;padding:16px;margin-bottom:14px}.form-card h2{margin:0 0 14px;font-size:17px}.form-card label{display:block;margin:12px 0 6px;font-weight:700;font-size:14px}.form-card input,.form-card textarea{width:100%;border:1px solid #ddd;border-radius:10px;padding:12px;font-size:15px}.form-card textarea{min-height:90px;resize:vertical}.order-item,.order-total{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #eee;font-size:14px}.order-total{border-bottom:0;padding-top:16px;font-size:16px}.full-submit{width:100%;height:52px;font-size:16px}.complete-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.complete-icon{width:70px;height:70px;border-radius:50%;background:#ff5a00;color:#fff;display:flex;align-items:center;justify-content:center;font-size:42px;margin-bottom:22px}.complete-page h1{font-size:24px;margin:0 0 20px}.complete-page p{color:#777;margin:0 0 6px}.complete-page strong{font-size:20px;margin-bottom:30px}.complete-page button{border:0;background:#111827;color:#fff;border-radius:10px;padding:13px 28px;font-size:15px}@media(min-width:900px){body{background:#e5e7eb}.app-shell{margin:30px auto;border-radius:18px;overflow:hidden;min-height:calc(100vh - 60px)}.cart-bar{bottom:30px}



}

/* v009 메뉴 이미지 박스 여백 제거 + 꽉차게 표시 */
.menu-card .menu-img,
.menu-card button.menu-img{
    width:105px;
    height:105px;
    min-width:105px;
    max-width:105px;
    padding:0 !important;
    margin:0;
    border:0;
    outline:0;
    border-radius:12px;
    overflow:hidden;
    background:#f3f4f6;
    flex-shrink:0;
    display:block;
    line-height:0;
    appearance:none;
    -webkit-appearance:none;
}

.menu-card .menu-img img,
.menu-card button.menu-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    margin:0;
    padding:0;
    border:0;
}

.menu-card button.menu-img.has-image{
    cursor:zoom-in;
    position:relative;
}

.menu-card button.menu-img.has-image::after{
    content:'확대';
    position:absolute;
    right:5px;
    bottom:5px;
    background:rgba(0,0,0,.62);
    color:#fff;
    font-size:11px;
    line-height:1.2;
    padding:3px 6px;
    border-radius:999px;
}

/* v011 장바구니 카테고리/전체삭제 */
.cart-top-actions{
    display:flex;
    justify-content:flex-end;
    margin-bottom:10px;
}
.cart-clear-btn{
    border:1px solid #ddd;
    background:#fff;
    color:#555;
    border-radius:999px;
    padding:8px 12px;
    font-size:13px;
    font-weight:700;
}
.cart-category{
    display:inline-block;
    margin-bottom:5px;
    background:#fff7ed;
    color:#ea580c;
    border:1px solid #fed7aa;
    border-radius:999px;
    padding:4px 8px;
    font-size:12px;
    font-weight:700;
}
.cart-category.empty{
    background:#f3f4f6;
    color:#888;
    border-color:#e5e7eb;
}



/* v027 메인 상단/카테고리/하단탭/메뉴카드 재정리 */
:root{
    --v27-brand:#ff5a00;
    --v27-brand2:#ff7a1a;
    --v27-ink:#111827;
    --v27-muted:#697386;
    --v27-line:#edf0f4;
    --v27-soft:#fff7ed;
}

/* 상단: 공간 줄이고 고급스럽게 */
.shop-header.compact{
    position:relative;
    padding:9px 10px 8px!important;
    background:
        linear-gradient(135deg,#fff 0%,#fff8f1 56%,#fff1e7 100%)!important;
    color:#111827!important;
    border-bottom:1px solid #f1e8df;
}
.shop-header.compact::after{
    content:'';
    position:absolute;
    left:10px;
    right:10px;
    bottom:0;
    height:2px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--v27-brand),rgba(255,90,0,0));
}
.compact-shop-line{
    align-items:center!important;
    gap:8px!important;
}
.compact-shop-title .shop-label{
    margin:0 0 1px!important;
    color:var(--v27-brand)!important;
    font-size:10px!important;
    font-weight:900!important;
    letter-spacing:.02em;
}
.compact-shop-title h1{
    color:var(--v27-ink)!important;
    font-size:20px!important;
    font-weight:950!important;
    line-height:1.05!important;
    letter-spacing:-.8px!important;
}
.compact-shop-title .shop-desc{
    margin-top:2px!important;
    color:#6b7280!important;
    font-size:11px!important;
    line-height:1.2!important;
}
.login-btn.compact-login{
    height:30px!important;
    padding:0 10px!important;
    font-size:12px!important;
    border-radius:999px!important;
    background:#111827!important;
    color:#fff!important;
    border:0!important;
    box-shadow:0 6px 14px rgba(17,24,39,.16);
}
.compact-status-row{
    margin-top:6px!important;
    gap:5px!important;
    min-height:22px;
}
.status-chip{
    height:22px!important;
    padding:0 8px!important;
    font-size:11px!important;
    border-radius:999px!important;
}
.status-chip.ok{
    background:#fff!important;
    color:var(--v27-brand)!important;
    border:1px solid #ffd4bf!important;
    box-shadow:none!important;
}
.status-chip.stop{
    background:#f3f4f6!important;
    color:#4b5563!important;
}
.status-note{
    color:#7a8494!important;
    font-size:11px!important;
}
.shop-info-toggle.compact-info{
    margin-top:6px!important;
    height:30px!important;
    padding:0 10px!important;
    border-radius:10px!important;
    background:#fff!important;
    border:1px solid #f1e7dd!important;
    color:#444!important;
    font-size:12px!important;
    box-shadow:0 4px 10px rgba(15,23,42,.035);
}
.shop-info-toggle.compact-info span{
    color:var(--v27-brand)!important;
}
.shop-info-panel{
    margin-top:7px!important;
}

/* 카테고리: 어르신도 보이게, 하지만 높이는 절약 */
.category-tabs.category-wrap{
    position:sticky!important;
    top:0!important;
    z-index:20!important;
    display:flex!important;
    flex-wrap:wrap!important;
    gap:5px!important;
    align-items:center!important;
    padding:7px 8px!important;
    background:rgba(255,255,255,.97)!important;
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--v27-line)!important;
    box-shadow:0 8px 20px rgba(15,23,42,.06)!important;
}
.category-tabs.category-wrap::before{
    content:'분류';
    display:inline-flex;
    align-items:center;
    height:26px;
    padding:0 8px;
    border-radius:999px;
    background:#111827;
    color:#fff;
    font-size:11px;
    font-weight:900;
    letter-spacing:-.2px;
}
.category-tabs.category-wrap a{
    min-height:26px!important;
    padding:0 8px!important;
    font-size:11px!important;
    line-height:1!important;
    border-radius:999px!important;
    border:1px solid #e8ebf0!important;
    background:#fff!important;
    color:#555f70!important;
    box-shadow:0 2px 8px rgba(15,23,42,.035);
}
.category-tabs.category-wrap a.active{
    background:linear-gradient(135deg,var(--v27-brand),var(--v27-brand2))!important;
    border-color:transparent!important;
    color:#fff!important;
    box-shadow:0 5px 12px rgba(255,90,0,.18);
}

/* 메뉴 영역: 모바일에서 더 많은 상품이 보이게 압축 */
.menu-area{
    padding:7px 6px 150px!important;
    background:linear-gradient(180deg,#fff 0%,#fbfbfc 100%)!important;
}
.menu-section{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
    margin-bottom:16px!important;
    scroll-margin-top:84px!important;
}
.menu-section h2{
    margin:6px 3px 1px!important;
    font-size:14px!important;
    line-height:1.2!important;
    letter-spacing:-.45px!important;
}
.menu-section h2::before{
    width:4px!important;
    height:14px!important;
}
.menu-card{
    border-radius:12px!important;
    border:1px solid #edf0f4!important;
    box-shadow:0 4px 12px rgba(15,23,42,.05)!important;
}
.menu-card .menu-img,
.menu-card button.menu-img{
    height:60px!important;
}
.menu-info{
    padding:6px 5px 6px!important;
}
.menu-info h3{
    margin:0 0 3px!important;
    font-size:12px!important;
    line-height:1.15!important;
    min-height:28px!important;
    letter-spacing:-.45px!important;
}
.menu-info strong{
    margin:0 0 5px!important;
    font-size:12px!important;
    line-height:1!important;
}
.menu-actions{
    gap:3px!important;
}
.add-cart-btn{
    min-height:24px!important;
    height:24px!important;
    border-radius:7px!important;
    padding:0 5px!important;
    font-size:11px!important;
    font-weight:900!important;
}
.favorite-btn{
    min-width:24px!important;
    min-height:24px!important;
    height:24px!important;
    border-radius:7px!important;
    padding:0!important;
}
.favorite-btn::before{
    font-size:13px!important;
}
.soldout-badge{
    height:24px!important;
    padding:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:11px!important;
    border-radius:7px!important;
}
.menu-card .no-img{
    font-size:10px!important;
}

/* 하단탭: 눈에 잘 띄는 프리미엄형 */
.bottom-tab{
    height:76px!important;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;
    background:rgba(255,255,255,.98)!important;
    border-top:1px solid #e5e8ee!important;
    box-shadow:0 -12px 32px rgba(17,24,39,.16)!important;
    gap:4px!important;
}
.bottom-tab a,
.bottom-tab button{
    border-radius:16px!important;
    font-size:11px!important;
    font-weight:900!important;
    color:#6b7280!important;
    gap:2px!important;
    height:58px!important;
}
.bottom-tab .tab-icon{
    font-size:22px!important;
    margin-bottom:1px!important;
}
.bottom-tab .active{
    background:linear-gradient(180deg,#fff2e9,#fff7f2)!important;
    color:var(--v27-brand)!important;
    border:1px solid #ffd8c5!important;
    box-shadow:0 5px 14px rgba(255,90,0,.12);
}
.bottom-tab .active::before{
    display:none!important;
}
.cart-bar{
    bottom:90px!important;
    max-width:calc(100% - 14px)!important;
    border-radius:16px!important;
}
.toast{
    bottom:168px!important;
}

/* PC: 5열 유지, 더 고급스럽게 */
@media(min-width:900px){
    .shop-header.compact{
        padding:14px 22px 12px!important;
    }
    .compact-shop-title h1{
        font-size:26px!important;
    }
    .compact-shop-title .shop-desc{
        font-size:13px!important;
    }
    .category-tabs.category-wrap{
        padding:11px 20px!important;
        gap:8px!important;
    }
    .category-tabs.category-wrap a,
    .category-tabs.category-wrap::before{
        height:32px!important;
        min-height:32px!important;
        padding:0 12px!important;
        font-size:13px!important;
    }
    .menu-area{
        padding:18px 20px 170px!important;
    }
    .menu-section{
        grid-template-columns:repeat(5,minmax(0,1fr))!important;
        gap:13px!important;
        margin-bottom:28px!important;
    }
    .menu-section h2{
        font-size:19px!important;
        margin:10px 2px 0!important;
    }
    .menu-card{
        border-radius:18px!important;
    }
    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:132px!important;
    }
    .menu-info{
        padding:10px 10px 11px!important;
    }
    .menu-info h3{
        font-size:15px!important;
        min-height:38px!important;
        line-height:1.25!important;
    }
    .menu-info strong{
        font-size:15px!important;
        margin-bottom:9px!important;
    }
    .add-cart-btn{
        min-height:34px!important;
        height:34px!important;
        font-size:13px!important;
        border-radius:10px!important;
    }
    .favorite-btn{
        min-width:34px!important;
        min-height:34px!important;
        height:34px!important;
        border-radius:10px!important;
    }
    .favorite-btn::before{
        font-size:17px!important;
    }
    .bottom-tab{
        height:78px!important;
        max-width:1180px!important;
        bottom:36px!important;
        border-radius:0 0 26px 26px!important;
        padding-left:160px!important;
        padding-right:160px!important;
    }
    .bottom-tab a,
    .bottom-tab button{
        height:60px!important;
        font-size:12px!important;
    }
    .cart-bar{
        max-width:1120px!important;
        bottom:122px!important;
    }
}

/* 아주 작은 모바일에서도 3열 유지 */
@media(max-width:360px){
    .compact-shop-title h1{
        font-size:18px!important;
    }
    .compact-shop-title .shop-desc{
        display:none!important;
    }
    .status-note{
        display:none!important;
    }
    .category-tabs.category-wrap a{
        font-size:10px!important;
        padding:0 7px!important;
    }
    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:54px!important;
    }
    .menu-info h3{
        font-size:11px!important;
        min-height:26px!important;
    }
    .menu-info strong{
        font-size:11px!important;
    }
}



/* v028 모바일 가독성/상단/카테고리/카드 정렬 튜닝 */
@media(max-width:899px){
    /* 상단 오른쪽 빈 공간 보완 */
    .shop-header.compact{
        padding:10px 10px 8px!important;
    }
    .compact-shop-line{
        align-items:center!important;
    }
    .compact-shop-title{
        flex:1!important;
    }
    .compact-shop-title h1{
        font-size:21px!important;
    }
    .compact-shop-title .shop-label{
        font-size:11px!important;
    }
    .compact-shop-title .shop-desc{
        display:none!important;
    }
    .login-btn.compact-login{
        height:34px!important;
        min-width:76px!important;
        padding:0 12px!important;
        font-size:13px!important;
        background:linear-gradient(135deg,#111827,#374151)!important;
    }
    .compact-status-row{
        margin-top:7px!important;
        justify-content:space-between!important;
    }
    .status-chip{
        height:25px!important;
        padding:0 10px!important;
        font-size:12px!important;
    }
    .status-note{
        font-size:12px!important;
        max-width:190px!important;
        overflow:hidden!important;
        text-overflow:ellipsis!important;
        white-space:nowrap!important;
    }

    /* 카테고리 더 강조 */
    .category-tabs.category-wrap{
        gap:6px!important;
        padding:9px 8px!important;
        box-shadow:0 8px 22px rgba(15,23,42,.08)!important;
    }
    .category-tabs.category-wrap::before{
        height:30px!important;
        padding:0 10px!important;
        font-size:12px!important;
        background:linear-gradient(135deg,#111827,#374151)!important;
    }
    .category-tabs.category-wrap a{
        min-height:30px!important;
        height:30px!important;
        padding:0 10px!important;
        font-size:12px!important;
        font-weight:800!important;
        color:#374151!important;
        border-color:#dfe3ea!important;
    }
    .category-tabs.category-wrap a.active{
        color:#fff!important;
        font-weight:900!important;
    }

    /* 카드 내부 중앙정렬 및 여백 축소 */
    .menu-section{
        gap:6px!important;
    }
    .menu-section h2{
        font-size:15px!important;
        margin:8px 4px 2px!important;
    }
    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:58px!important;
    }
    .menu-info{
        padding:6px 5px 6px!important;
        text-align:center!important;
    }
    .menu-info h3{
        text-align:center!important;
        font-size:13px!important;
        line-height:1.15!important;
        min-height:29px!important;
        margin:0 0 1px!important;
        display:-webkit-box!important;
        -webkit-line-clamp:2!important;
        -webkit-box-orient:vertical!important;
        overflow:hidden!important;
        word-break:keep-all!important;
    }
    .menu-info strong{
        display:block!important;
        text-align:center!important;
        font-size:13px!important;
        line-height:1.05!important;
        margin:0 0 5px!important;
    }
    .menu-actions{
        justify-content:center!important;
        gap:4px!important;
    }
    .add-cart-btn{
        font-size:12px!important;
        height:25px!important;
        min-height:25px!important;
        padding:0 7px!important;
    }
    .favorite-btn{
        width:25px!important;
        min-width:25px!important;
        height:25px!important;
        min-height:25px!important;
    }
    .favorite-btn::before{
        font-size:14px!important;
    }

    /* 하단탭 폰트도 살짝 강화 */
    .bottom-tab a,
    .bottom-tab button{
        font-size:12px!important;
    }
    .bottom-tab .tab-icon{
        font-size:23px!important;
    }
}

/* 아주 작은 모바일 */
@media(max-width:360px){
    .compact-shop-title h1{
        font-size:19px!important;
    }
    .login-btn.compact-login{
        min-width:68px!important;
        font-size:12px!important;
    }
    .status-note{
        display:none!important;
    }
    .category-tabs.category-wrap a{
        font-size:11px!important;
        padding:0 8px!important;
    }
    .menu-info h3{
        font-size:12px!important;
        min-height:28px!important;
    }
    .menu-info strong{
        font-size:12px!important;
    }
    .add-cart-btn{
        font-size:11px!important;
        padding:0 6px!important;
    }
}



/* v029 상단 균형형 프리미엄 헤더 + 메뉴명/가격 간격 재정리 */

/* 전체 메뉴 카드: 모바일/PC 공통 중앙정렬 */
.menu-card .menu-info{
    text-align:center!important;
}
.menu-card .menu-info h3{
    text-align:center!important;
    min-height:0!important;
    height:auto!important;
    margin:0 0 2px!important;
    line-height:1.18!important;
}
.menu-card .menu-info strong{
    display:block!important;
    text-align:center!important;
    margin:0 0 6px!important;
    line-height:1.05!important;
}

/* 모바일 */
@media(max-width:899px){
    .shop-header.compact{
        position:relative;
        padding:9px 9px 8px!important;
        background:
            radial-gradient(circle at 10% 10%,rgba(255,116,44,.08),transparent 32%),
            linear-gradient(135deg,#fff 0%,#fffaf6 54%,#fff2e8 100%)!important;
        border-bottom:1px solid #f2e8df!important;
    }

    .compact-shop-line{
        display:grid!important;
        grid-template-columns:56px minmax(0,1fr) 72px!important;
        align-items:center!important;
        gap:7px!important;
        min-height:52px!important;
        width:100%!important;
    }

    /* 왼쪽 균형용 오늘 배지 */
    .compact-shop-line::before{
        content:'오늘';
        width:46px;
        height:46px;
        border-radius:15px;
        display:flex;
        align-items:center;
        justify-content:center;
        justify-self:start;
        background:linear-gradient(145deg,#ff6a00,#ff8a32);
        color:#fff;
        font-size:12px;
        font-weight:900;
        letter-spacing:-.2px;
        box-shadow:0 7px 16px rgba(255,90,0,.22);
    }

    .compact-shop-title{
        grid-column:2!important;
        min-width:0!important;
        text-align:center!important;
    }
    .compact-shop-title .shop-label{
        margin:0 0 2px!important;
        font-size:11px!important;
        line-height:1!important;
        color:#e85a10!important;
        font-weight:900!important;
        letter-spacing:-.2px!important;
        text-align:center!important;
    }
    .compact-shop-title h1{
        margin:0!important;
        font-size:21px!important;
        line-height:1.05!important;
        letter-spacing:-.8px!important;
        color:#111827!important;
        font-weight:950!important;
        text-align:center!important;
        white-space:nowrap!important;
        overflow:hidden!important;
        text-overflow:ellipsis!important;
    }
    .compact-shop-title .shop-desc{
        display:none!important;
    }

    .login-btn.compact-login{
        grid-column:3!important;
        justify-self:end!important;
        width:68px!important;
        min-width:68px!important;
        height:36px!important;
        padding:0!important;
        border-radius:12px!important;
        background:linear-gradient(145deg,#111827,#303846)!important;
        color:#fff!important;
        font-size:12px!important;
        font-weight:900!important;
        box-shadow:0 7px 15px rgba(17,24,39,.16)!important;
    }

    .compact-status-row{
        margin-top:7px!important;
        display:flex!important;
        align-items:center!important;
        justify-content:center!important;
        gap:6px!important;
        min-height:25px!important;
    }
    .status-chip{
        height:25px!important;
        padding:0 10px!important;
        font-size:12px!important;
        font-weight:900!important;
        border-radius:999px!important;
        box-shadow:0 3px 8px rgba(255,90,0,.06)!important;
    }
    .status-note{
        font-size:12px!important;
        color:#7a8494!important;
        max-width:200px!important;
        white-space:nowrap!important;
        overflow:hidden!important;
        text-overflow:ellipsis!important;
    }

    /* 카테고리 강조 */
    .category-tabs.category-wrap{
        gap:7px!important;
        padding:10px 8px!important;
        border-bottom:1px solid #e8ebf0!important;
        box-shadow:0 8px 22px rgba(15,23,42,.09)!important;
    }
    .category-tabs.category-wrap::before{
        height:32px!important;
        min-height:32px!important;
        padding:0 11px!important;
        font-size:13px!important;
        border-radius:999px!important;
        background:linear-gradient(145deg,#111827,#394150)!important;
    }
    .category-tabs.category-wrap a{
        height:32px!important;
        min-height:32px!important;
        padding:0 11px!important;
        font-size:13px!important;
        font-weight:850!important;
        color:#374151!important;
        border-color:#dce1e8!important;
        border-radius:999px!important;
    }

    /* 모바일 카드 더 촘촘하게 */
    .menu-card .menu-info{
        padding:5px 4px 6px!important;
    }
    .menu-card .menu-info h3{
        font-size:13px!important;
        min-height:0!important;
        margin:0 0 2px!important;
        line-height:1.18!important;
        display:block!important;
        overflow:visible!important;
        -webkit-line-clamp:unset!important;
        -webkit-box-orient:unset!important;
    }
    .menu-card .menu-info strong{
        font-size:13px!important;
        margin:0 0 5px!important;
        line-height:1!important;
    }
    .menu-card .menu-actions{
        justify-content:center!important;
        gap:4px!important;
    }
}

/* 작은 모바일 */
@media(max-width:360px){
    .compact-shop-line{
        grid-template-columns:48px minmax(0,1fr) 62px!important;
        gap:5px!important;
    }
    .compact-shop-line::before{
        width:40px!important;
        height:40px!important;
        border-radius:13px!important;
        font-size:11px!important;
    }
    .compact-shop-title .shop-label{
        font-size:10px!important;
    }
    .compact-shop-title h1{
        font-size:18px!important;
    }
    .login-btn.compact-login{
        width:60px!important;
        min-width:60px!important;
        height:34px!important;
        font-size:11px!important;
    }
    .status-note{
        display:none!important;
    }
    .category-tabs.category-wrap a{
        font-size:12px!important;
        padding:0 9px!important;
    }
    .menu-card .menu-info h3,
    .menu-card .menu-info strong{
        font-size:12px!important;
    }
}

/* PC: 반찬명/가격 중앙정렬 및 간격 축소 */
@media(min-width:900px){
    .menu-card .menu-info{
        text-align:center!important;
    }
    .menu-card .menu-info h3{
        text-align:center!important;
        min-height:0!important;
        height:auto!important;
        margin:0 0 4px!important;
        line-height:1.22!important;
    }
    .menu-card .menu-info strong{
        text-align:center!important;
        margin:0 0 8px!important;
        line-height:1!important;
    }
    .menu-card .menu-actions{
        justify-content:center!important;
    }
}



/* v030 매장 안내 카드 리팩토링 */
.store-guide-card{
    width:100%!important;
    display:grid!important;
    grid-template-columns:56px minmax(0,1fr) 28px!important;
    align-items:center!important;
    gap:10px!important;
    min-height:68px!important;
    height:auto!important;
    margin-top:8px!important;
    padding:7px 9px!important;
    border:1px solid #eee2d7!important;
    border-radius:16px!important;
    background:
        linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,248,242,.98))!important;
    box-shadow:0 7px 18px rgba(27,36,49,.07)!important;
    text-align:left!important;
    color:#1f2937!important;
    overflow:hidden!important;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease!important;
}
.store-guide-card:active{
    transform:scale(.992)!important;
}
.store-guide-card.open{
    border-color:#ffd1b8!important;
    box-shadow:0 9px 22px rgba(255,90,0,.10)!important;
}
.store-guide-thumb{
    width:56px!important;
    height:54px!important;
    border-radius:12px!important;
    overflow:hidden!important;
    background:linear-gradient(145deg,#fff1e8,#ffe0cc)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-shadow:inset 0 0 0 1px rgba(255,90,0,.06)!important;
}
.store-guide-thumb img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    display:block!important;
}
.store-guide-placeholder{
    font-size:23px!important;
    line-height:1!important;
}
.store-guide-copy{
    min-width:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:3px!important;
}
.store-guide-copy strong{
    font-size:14px!important;
    line-height:1.15!important;
    color:#20242c!important;
    font-weight:950!important;
    letter-spacing:-.35px!important;
}
.store-guide-copy small{
    display:block!important;
    color:#7b8492!important;
    font-size:11px!important;
    line-height:1.25!important;
    font-weight:650!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
.store-guide-arrow{
    width:28px!important;
    height:28px!important;
    border-radius:50%!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    justify-self:end!important;
    background:#fff!important;
    border:1px solid #f0e3d8!important;
    color:#f26a21!important;
    font-size:22px!important;
    line-height:1!important;
    font-weight:700!important;
    transition:transform .18s ease!important;
    box-shadow:0 3px 8px rgba(27,36,49,.05)!important;
}
.store-guide-card.open .store-guide-arrow{
    transform:rotate(180deg)!important;
}

/* 상세 매장정보 패널도 카드와 연결되게 */
.shop-info-panel{
    margin-top:7px!important;
    padding:10px!important;
    border:1px solid #eee6df!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 8px 20px rgba(27,36,49,.055)!important;
}
.shop-info-img{
    margin-bottom:10px!important;
}
.shop-info-img button{
    border-radius:14px!important;
    overflow:hidden!important;
}
.shop-info-img img{
    border-radius:14px!important;
}
.shop-info-img-hint{
    font-size:11px!important;
    background:rgba(17,24,39,.72)!important;
}
.shop-info-row{
    padding:9px 2px!important;
}
.shop-info-row b{
    color:#4b5563!important;
}

/* 모바일 */
@media(max-width:899px){
    .store-guide-card{
        grid-template-columns:54px minmax(0,1fr) 28px!important;
        min-height:66px!important;
        padding:6px 8px!important;
        gap:9px!important;
        border-radius:15px!important;
    }
    .store-guide-thumb{
        width:54px!important;
        height:52px!important;
        border-radius:11px!important;
    }
    .store-guide-copy strong{
        font-size:14px!important;
    }
    .store-guide-copy small{
        font-size:12px!important;
    }
}

/* 작은 모바일 */
@media(max-width:360px){
    .store-guide-card{
        grid-template-columns:48px minmax(0,1fr) 26px!important;
        gap:7px!important;
    }
    .store-guide-thumb{
        width:48px!important;
        height:48px!important;
    }
    .store-guide-copy strong{
        font-size:13px!important;
    }
    .store-guide-copy small{
        font-size:11px!important;
    }
}

/* PC */
@media(min-width:900px){
    .store-guide-card{
        grid-template-columns:70px minmax(0,1fr) 34px!important;
        min-height:82px!important;
        padding:8px 10px!important;
        border-radius:18px!important;
    }
    .store-guide-thumb{
        width:70px!important;
        height:64px!important;
        border-radius:14px!important;
    }
    .store-guide-copy strong{
        font-size:16px!important;
    }
    .store-guide-copy small{
        font-size:13px!important;
    }
    .store-guide-arrow{
        width:32px!important;
        height:32px!important;
        font-size:24px!important;
    }
}



/* v031 상단 로그인/내정보 버튼 */
.header-member-link{
    text-decoration:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    white-space:nowrap!important;
    cursor:pointer!important;
}
.header-member-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:13px!important;
    line-height:1!important;
}
@media(max-width:899px){
    .header-member-link{
        width:72px!important;
        min-width:72px!important;
    }
}
@media(max-width:360px){
    .header-member-link{
        width:62px!important;
        min-width:62px!important;
        gap:3px!important;
    }
    .header-member-icon{
        font-size:12px!important;
    }
}


/* v038 찜 버튼 문자 표시 안전 규칙 */
.favorite-btn{
    width:auto!important;
    min-width:42px!important;
    font-size:11px!important;
    line-height:1!important;
    white-space:nowrap!important;
    visibility:visible!important;
    opacity:1!important;
    text-indent:0!important;
}
.favorite-btn::before,
.favorite-btn.active::before{
    content:none!important;
    display:none!important;
}
@media(max-width:899px){
    .favorite-btn{
        min-width:40px!important;
        font-size:11px!important;
    }
}
@media(max-width:360px){
    .favorite-btn{
        min-width:37px!important;
        font-size:10px!important;
    }
}
@media(min-width:900px){
    .favorite-btn{
        min-width:58px!important;
        font-size:13px!important;
    }
}




/* v039 메인 장바구니 바 자동 축소 */
.cart-bar{
    transition:
        width .22s ease,
        max-width .22s ease,
        left .22s ease,
        transform .22s ease,
        padding .22s ease,
        border-radius .22s ease,
        box-shadow .22s ease!important;
}

.cart-bar-summary{
    min-width:0;
    display:flex;
    align-items:center;
    gap:8px;
}

.cart-bar-mini-icon{
    display:none;
    flex:0 0 auto;
    font-size:17px;
    line-height:1;
}

.cart-bar-copy{
    min-width:0;
}

.cart-bar-copy b{
    display:block;
    font-size:14px;
    line-height:1.15;
}

.cart-bar-copy span{
    display:block;
    margin-top:2px;
    color:#d1d5db;
    font-size:13px;
    line-height:1.15;
}

.cart-bar-link{
    min-width:126px;
    min-height:42px;
    padding:0 13px!important;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.cart-bar-link em{
    font-style:normal;
    font-size:21px;
    line-height:1;
}

/* 모바일에서 스크롤 시 왼쪽 작은 알약형으로 축소 */
@media(max-width:899px){
    .cart-bar.is-collapsed{
        left:8px!important;
        width:auto!important;
        max-width:calc(100% - 16px)!important;
        min-width:132px!important;
        transform:none!important;
        padding:8px 11px!important;
        border-radius:999px!important;
        cursor:pointer!important;
        box-shadow:0 8px 20px rgba(17,24,39,.22)!important;
    }

    .cart-bar.is-collapsed .cart-bar-summary{
        gap:6px;
    }

    .cart-bar.is-collapsed .cart-bar-mini-icon{
        display:inline-flex;
    }

    .cart-bar.is-collapsed .cart-bar-copy{
        display:flex;
        align-items:center;
        gap:4px;
        white-space:nowrap;
    }

    .cart-bar.is-collapsed .cart-bar-copy b,
    .cart-bar.is-collapsed .cart-bar-copy span{
        display:inline;
        margin:0;
        font-size:12px;
        line-height:1;
    }

    .cart-bar.is-collapsed .cart-bar-copy b::after{
        content:' ·';
        margin-left:1px;
    }

    .cart-bar.is-collapsed .cart-bar-link{
        display:none!important;
    }
}

/* 아주 작은 화면 */
@media(max-width:360px){
    .cart-bar.is-collapsed{
        left:6px!important;
        min-width:124px!important;
        padding:7px 9px!important;
    }

    .cart-bar.is-collapsed .cart-bar-copy b,
    .cart-bar.is-collapsed .cart-bar-copy span{
        font-size:11px;
    }
}

/* PC에서는 기존 큰 장바구니 바 유지 */
@media(min-width:900px){
    .cart-bar.is-collapsed{
        left:50%!important;
        width:calc(100% - 28px)!important;
        max-width:1120px!important;
        transform:translateX(-50%)!important;
    }
}




/* v040 모바일 축소형 장바구니 강조 */
@media(max-width:899px){
    .cart-bar.is-collapsed{
        left:10px!important;
        width:auto!important;
        max-width:calc(100% - 20px)!important;
        min-width:178px!important;
        min-height:52px!important;
        transform:none!important;
        padding:8px 14px 8px 9px!important;
        border:2px solid rgba(255,255,255,.96)!important;
        border-radius:18px!important;
        background:linear-gradient(135deg,#ff5a00 0%,#ff7a1a 100%)!important;
        color:#fff!important;
        cursor:pointer!important;
        box-shadow:
            0 10px 28px rgba(255,90,0,.34),
            0 3px 10px rgba(17,24,39,.22)!important;
        animation:cartBarNoticePulse 2.8s ease-in-out infinite;
    }

    .cart-bar.is-collapsed .cart-bar-summary{
        width:100%;
        gap:9px!important;
    }

    .cart-bar.is-collapsed .cart-bar-mini-icon{
        width:34px;
        height:34px;
        flex:0 0 34px;
        display:inline-flex!important;
        align-items:center;
        justify-content:center;
        border-radius:11px;
        background:rgba(255,255,255,.96);
        box-shadow:0 4px 10px rgba(126,47,0,.18);
        font-size:18px;
        line-height:1;
    }

    .cart-bar.is-collapsed .cart-bar-copy{
        min-width:0;
        display:grid!important;
        grid-template-columns:auto auto;
        grid-template-areas:
            "label label"
            "count total";
        align-items:center;
        justify-content:start;
        column-gap:4px;
        row-gap:2px;
        white-space:nowrap;
    }

    .cart-bar.is-collapsed .cart-bar-copy::before{
        content:'장바구니';
        grid-area:label;
        display:block;
        color:#fff!important;
        font-size:12px;
        line-height:1;
        font-weight:950;
        letter-spacing:-.25px;
    }

    .cart-bar.is-collapsed .cart-bar-copy b{
        grid-area:count;
        display:inline!important;
        margin:0!important;
        color:#fff!important;
        font-size:13px!important;
        line-height:1!important;
        font-weight:950!important;
    }

    .cart-bar.is-collapsed .cart-bar-copy b::after{
        content:' ·';
        margin-left:1px;
        color:rgba(255,255,255,.85);
    }

    .cart-bar.is-collapsed .cart-bar-copy span{
        grid-area:total;
        display:inline!important;
        margin:0!important;
        color:#fff!important;
        font-size:13px!important;
        line-height:1!important;
        font-weight:900!important;
    }

    .cart-bar.is-collapsed .cart-bar-link{
        display:none!important;
    }
}

@keyframes cartBarNoticePulse{
    0%,100%{
        transform:translateY(0);
        box-shadow:
            0 10px 28px rgba(255,90,0,.32),
            0 3px 10px rgba(17,24,39,.20);
    }
    50%{
        transform:translateY(-2px);
        box-shadow:
            0 14px 34px rgba(255,90,0,.46),
            0 5px 14px rgba(17,24,39,.24);
    }
}

@media(max-width:360px){
    .cart-bar.is-collapsed{
        left:7px!important;
        min-width:164px!important;
        min-height:49px!important;
        padding:7px 11px 7px 8px!important;
    }

    .cart-bar.is-collapsed .cart-bar-mini-icon{
        width:31px;
        height:31px;
        flex-basis:31px;
        font-size:16px;
    }

    .cart-bar.is-collapsed .cart-bar-copy::before{
        font-size:11px;
    }

    .cart-bar.is-collapsed .cart-bar-copy b,
    .cart-bar.is-collapsed .cart-bar-copy span{
        font-size:12px!important;
    }
}

/* 움직임 최소화 설정 사용자 배려 */
@media(prefers-reduced-motion:reduce){
    .cart-bar.is-collapsed{
        animation:none!important;
    }
}




/* v041 모바일 축소형 장바구니 네이비/차콜 컬러 */
@media(max-width:899px){
    .cart-bar.is-collapsed{
        background:linear-gradient(135deg,#111827 0%,#1f2937 100%)!important;
        border:2px solid rgba(255,255,255,.92)!important;
        color:#fff!important;
        box-shadow:
            0 12px 30px rgba(17,24,39,.38),
            0 3px 10px rgba(17,24,39,.24)!important;
        animation:cartBarNavyPulse 2.8s ease-in-out infinite!important;
    }

    .cart-bar.is-collapsed .cart-bar-mini-icon{
        background:linear-gradient(145deg,#ff5a00,#ff7a1a)!important;
        color:#fff!important;
        box-shadow:0 5px 12px rgba(255,90,0,.30)!important;
    }

    .cart-bar.is-collapsed .cart-bar-copy::before{
        color:#fff!important;
    }

    .cart-bar.is-collapsed .cart-bar-copy b{
        color:#fff!important;
    }

    .cart-bar.is-collapsed .cart-bar-copy b::after{
        color:rgba(255,255,255,.78)!important;
    }

    .cart-bar.is-collapsed .cart-bar-copy span{
        color:#ffb382!important;
    }
}

@keyframes cartBarNavyPulse{
    0%,100%{
        transform:translateY(0);
        box-shadow:
            0 12px 30px rgba(17,24,39,.36),
            0 3px 10px rgba(17,24,39,.22);
    }
    50%{
        transform:translateY(-2px);
        box-shadow:
            0 16px 36px rgba(17,24,39,.48),
            0 5px 14px rgba(17,24,39,.28);
    }
}

@media(prefers-reduced-motion:reduce){
    .cart-bar.is-collapsed{
        animation:none!important;
    }
}




/* =========================================================
   v064 사용자 메뉴 상세설명 팝업
   모바일: 바텀시트 / PC: 중앙 모달
   ========================================================= */

.menu-detail-trigger{
    border:0;
    margin:0;
    padding:0;
    background:transparent;
    color:inherit;
    font:inherit;
    text-align:left;
}

.menu-detail-title{
    width:100%;
    display:block;
}

.menu-detail-title h3,
.menu-detail-price strong{
    cursor:pointer;
}

.menu-detail-price{
    display:block;
}

.menu-detail-hint{
    display:inline-flex;
    align-items:center;
    margin:-2px 0 6px;
    color:#ff5a00;
    font-size:9px;
    line-height:1;
    font-weight:900;
    cursor:pointer;
}

.menu-detail-trigger:focus-visible{
    outline:2px solid rgba(255,90,0,.42);
    outline-offset:2px;
    border-radius:5px;
}

.search-detail-trigger{
    width:100%;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    text-align:left;
}

.search-detail-trigger h3{
    margin:0 0 4px;
    font-size:15px;
}

.search-detail-trigger strong{
    display:inline-block;
    margin:0 6px 7px 0;
    font-size:14px;
}

.search-detail-trigger>span{
    color:#ff5a00;
    font-size:11px;
    font-weight:900;
}

.menu-detail-modal{
    position:fixed;
    inset:0;
    z-index:10020;
    display:none;
    align-items:flex-end;
    justify-content:center;
}

.menu-detail-modal.open{
    display:flex;
}

.menu-detail-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.56);
    backdrop-filter:blur(2px);
}

.menu-detail-sheet{
    position:relative;
    z-index:1;
    width:100%;
    max-width:520px;
    max-height:min(82vh,720px);
    overflow-y:auto;
    padding:10px 14px calc(18px + env(safe-area-inset-bottom));
    border-radius:22px 22px 0 0;
    background:#fff;
    box-shadow:0 -18px 50px rgba(15,23,42,.22);
    animation:menuDetailSheetUp .22s ease-out;
}

@keyframes menuDetailSheetUp{
    from{transform:translateY(28px);opacity:.2}
    to{transform:translateY(0);opacity:1}
}

.menu-detail-handle{
    width:42px;
    height:4px;
    margin:0 auto 10px;
    border-radius:999px;
    background:#d1d5db;
}

.menu-detail-close{
    position:absolute;
    top:11px;
    right:12px;
    z-index:2;
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:#f3f4f6;
    color:#374151;
    font-size:22px;
    line-height:1;
    font-weight:500;
}

.menu-detail-hero{
    display:grid;
    grid-template-columns:100px minmax(0,1fr);
    gap:12px;
    align-items:center;
    padding:8px 34px 14px 0;
    border-bottom:1px solid #eef0f3;
}

.menu-detail-image{
    width:100px;
    height:100px;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:#f3f4f6;
}

.menu-detail-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.menu-detail-no-image{
    width:100%;
    height:100%;
    display:none;
    align-items:center;
    justify-content:center;
    color:#98a2b3;
    font-size:11px;
    font-weight:800;
}

.menu-detail-head-copy{
    min-width:0;
}

.menu-detail-category{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:0 7px;
    border:1px solid #fed7aa;
    border-radius:999px;
    background:#fff7ed;
    color:#ea580c;
    font-size:10px;
    font-weight:900;
}

.menu-detail-head-copy h2{
    margin:6px 0 5px;
    color:#111827;
    font-size:20px;
    line-height:1.25;
    font-weight:950;
    letter-spacing:-.5px;
    word-break:keep-all;
}

.menu-detail-price-text{
    display:block;
    color:#111827;
    font-size:18px;
    font-weight:950;
}

.menu-detail-stock{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    margin-top:7px;
    padding:0 8px;
    border-radius:999px;
    background:#f0fdf4;
    color:#15803d;
    font-size:10px;
    font-weight:900;
}

.menu-detail-description-wrap{
    padding:15px 2px 14px;
}

.menu-detail-description-label{
    display:block;
    margin-bottom:7px;
    color:#111827;
    font-size:13px;
    font-weight:950;
}

.menu-detail-description{
    margin:0;
    color:#4b5563;
    font-size:14px;
    line-height:1.7;
    white-space:pre-line;
    word-break:keep-all;
}

.menu-detail-actions{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    gap:8px;
    position:sticky;
    bottom:-1px;
    padding-top:8px;
    background:linear-gradient(180deg,rgba(255,255,255,0),#fff 28%);
}

.menu-detail-favorite,
.menu-detail-cart{
    min-height:48px;
    border-radius:12px;
    font-size:14px;
    font-weight:950;
}

.menu-detail-favorite{
    border:1px solid #ffd3bf;
    background:#fff;
    color:#ff5a00;
}

.menu-detail-favorite.active{
    border-color:#ff5a00;
    background:#fff7ed;
}

.menu-detail-cart{
    border:0;
    background:linear-gradient(135deg,#ff5a00,#ff7a1a);
    color:#fff;
    box-shadow:0 7px 18px rgba(255,90,0,.2);
}

.menu-detail-cart:disabled{
    background:#d1d5db;
    color:#6b7280;
    box-shadow:none;
}

@media(max-width:380px){
    .menu-detail-sheet{
        padding-left:12px;
        padding-right:12px;
    }

    .menu-detail-hero{
        grid-template-columns:86px minmax(0,1fr);
        gap:10px;
    }

    .menu-detail-image{
        width:86px;
        height:86px;
    }

    .menu-detail-head-copy h2{
        font-size:18px;
    }

    .menu-detail-price-text{
        font-size:16px;
    }
}

@media(min-width:900px){
    .menu-detail-modal{
        align-items:center;
        padding:24px;
    }

    .menu-detail-sheet{
        width:min(620px,calc(100vw - 48px));
        max-width:620px;
        max-height:min(78vh,720px);
        padding:22px 24px 24px;
        border-radius:22px;
        box-shadow:0 24px 80px rgba(15,23,42,.28);
        animation:menuDetailCenterPop .18s ease-out;
    }

    @keyframes menuDetailCenterPop{
        from{transform:translateY(10px) scale(.97);opacity:0}
        to{transform:translateY(0) scale(1);opacity:1}
    }

    .menu-detail-handle{
        display:none;
    }

    .menu-detail-close{
        top:16px;
        right:16px;
        width:38px;
        height:38px;
    }

    .menu-detail-hero{
        grid-template-columns:150px minmax(0,1fr);
        gap:20px;
        padding:0 46px 20px 0;
    }

    .menu-detail-image{
        width:150px;
        height:150px;
        border-radius:16px;
    }

    .menu-detail-head-copy h2{
        font-size:26px;
    }

    .menu-detail-price-text{
        font-size:22px;
    }

    .menu-detail-description-wrap{
        padding:20px 2px 18px;
    }

    .menu-detail-description-label{
        font-size:15px;
    }

    .menu-detail-description{
        font-size:16px;
        line-height:1.75;
    }

    .menu-detail-actions{
        grid-template-columns:110px minmax(0,1fr);
    }

    .menu-detail-favorite,
    .menu-detail-cart{
        min-height:52px;
        font-size:15px;
    }
}




/* =========================================================
   v065 상세보기 메뉴 가격 중앙정렬 보정
   ========================================================= */

.menu-detail-price{
    width:100%;
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    text-align:center!important;
}

.menu-detail-price strong{
    width:auto!important;
    display:block!important;
    margin-left:auto!important;
    margin-right:auto!important;
    text-align:center!important;
}

.menu-detail-hint{
    width:100%;
    justify-content:center!important;
    text-align:center!important;
}




/* =========================================================
   v066 메인 이미지 → 상세보기 / 상세창 이미지 → 확대
   ========================================================= */

.menu-card-detail-image{
    cursor:pointer!important;
}

.menu-card-detail-image:focus-visible{
    outline:3px solid rgba(255,90,0,.55)!important;
    outline-offset:-3px!important;
}

/* 상세팝업 이미지 자체를 버튼으로 사용 */
button.menu-detail-image{
    position:relative;
    margin:0;
    padding:0;
    border:0;
    appearance:none;
    cursor:pointer;
}

button.menu-detail-image:disabled{
    cursor:default;
}

.menu-detail-image-zoom{
    position:absolute;
    right:6px;
    bottom:6px;
    min-height:24px;
    padding:0 7px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:rgba(17,24,39,.78);
    color:#fff;
    font-size:9px;
    line-height:1;
    font-weight:900;
    backdrop-filter:blur(4px);
    pointer-events:none;
}

button.menu-detail-image.has-image:active{
    transform:scale(.985);
}

/* 상세보기 창(z-index 10020)보다 이미지 확대창을 위로 */
.image-modal{
    z-index:10040!important;
}




/* =========================================================
   v073 모바일 검색 뒤로가기 + 검색 UX 개선
   ========================================================= */

.search-result-summary{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:0 -2px 4px;
    padding:10px 4px 8px;
    border-bottom:1px solid #eef0f3;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(8px);
    color:#667085;
    font-size:12px;
}

.search-result-summary strong{
    color:#111827;
    font-weight:950;
}

.search-result-summary b{
    flex:0 0 auto;
    display:inline-flex;
    min-height:24px;
    padding:0 8px;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#fff3eb;
    color:#d9480f;
    font-size:11px;
    font-weight:950;
}

.search-empty-guide,
.search-empty-no-result{
    min-height:220px;
    display:flex!important;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:30px 16px!important;
}

.search-empty-icon{
    width:52px;
    height:52px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:10px;
    border-radius:16px;
    background:linear-gradient(135deg,#fff7ed,#ffedd5);
    font-size:24px;
}

.search-empty strong{
    display:block;
    color:#344054;
    font-size:15px;
    font-weight:950;
}

.search-empty p{
    margin:6px 0 0;
    color:#98a2b3;
    font-size:12px;
    line-height:1.5;
}

.search-thumb.search-result-detail-trigger{
    border:0!important;
    padding:0!important;
    cursor:pointer;
    position:relative;
}

.search-thumb.search-result-detail-trigger:focus-visible,
.search-detail-trigger:focus-visible{
    outline:2px solid rgba(255,90,0,.42);
    outline-offset:2px;
}

.search-thumb-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#98a2b3;
    font-size:24px;
}

.search-detail-trigger{
    display:block!important;
    width:100%!important;
    min-width:0;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:inherit!important;
    text-align:left!important;
    cursor:pointer;
}

.search-detail-trigger h3{
    margin:0 0 4px!important;
}

.search-detail-trigger strong{
    display:inline-block!important;
    margin:0 6px 7px 0!important;
}

.search-detail-trigger>span{
    display:inline-block;
    margin-bottom:7px;
    color:#ff5a00;
    font-size:11px;
    font-weight:950;
}

@media(max-width:899px){
    .search-panel{
        max-height:min(86dvh,760px)!important;
        border-radius:20px 20px 0 0!important;
    }

    .search-head{
        padding:14px 14px 12px!important;
    }

    .search-results{
        padding:6px 14px calc(18px + env(safe-area-inset-bottom))!important;
    }

    .search-item{
        gap:11px!important;
        padding:11px 0!important;
    }

    .search-thumb{
        width:70px!important;
        height:70px!important;
        border-radius:11px!important;
    }

    .search-empty-guide,
    .search-empty-no-result{
        min-height:250px;
    }
}

@media(min-width:900px){
    .search-result-summary{
        padding-top:12px;
    }

    .search-thumb{
        width:72px!important;
        height:72px!important;
    }
}




/* =========================================================
   v074 모바일 검색팝업 상단 이동 + 휴대폰 키보드 대응
   ========================================================= */

@media(max-width:899px){
    .search-modal{
        inset:auto 0 auto 0!important;
        top:var(--search-vv-top,0px)!important;
        height:var(--search-vv-height,100dvh)!important;
        min-height:0!important;
        padding:
            max(52px,calc(env(safe-area-inset-top) + 16px))
            10px
            10px!important;
        align-items:flex-start!important;
        justify-content:center!important;
        overflow:hidden!important;
    }

    .search-panel{
        width:100%!important;
        max-width:520px!important;
        max-height:
            calc(
                var(--search-vv-height,100dvh)
                - max(52px,calc(env(safe-area-inset-top) + 16px))
                - 10px
            )!important;
        border-radius:18px!important;
        box-shadow:0 18px 55px rgba(15,23,42,.24)!important;
    }

    /* 키보드가 올라오면 검색창을 화면 위쪽에 더 가깝게 붙이고
       남은 높이를 검색결과에 최대한 사용합니다. */
    .search-modal.keyboard-open{
        padding:
            max(8px,env(safe-area-inset-top))
            8px
            8px!important;
    }

    .search-modal.keyboard-open .search-panel{
        max-height:
            calc(
                var(--search-vv-height,100dvh)
                - max(8px,env(safe-area-inset-top))
                - 8px
            )!important;
        border-radius:16px!important;
    }

    .search-modal.keyboard-open .search-head{
        padding:11px 12px 10px!important;
    }

    .search-modal.keyboard-open .search-title-row{
        margin-bottom:8px!important;
    }

    .search-modal.keyboard-open .search-results{
        padding-bottom:10px!important;
    }
}

@media(max-width:380px){
    .search-modal{
        padding:
            max(42px,calc(env(safe-area-inset-top) + 10px))
            7px
            7px!important;
    }

    .search-panel{
        max-height:
            calc(
                var(--search-vv-height,100dvh)
                - max(42px,calc(env(safe-area-inset-top) + 10px))
                - 7px
            )!important;
    }
}




/* =========================================================
   v081 모바일 반찬 이미지 강조
   - 모바일 3열 유지
   - 한 화면 9개 수준 유지
   - 카드 여백 축소
   - 메인 이미지 확대
   - 상세팝업 이미지 확대
   ========================================================= */

@media(max-width:899px){

    /* 3열은 그대로 유지하되 좌우/카드 간격을 조금 더 압축 */
    .menu-area{
        padding:
            5px
            4px
            150px!important;
    }

    .menu-section{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        gap:4px!important;
        margin-bottom:13px!important;
    }

    .menu-section h2{
        margin:5px 2px 1px!important;
    }

    /* 카드 외곽은 더 촘촘하게 */
    .menu-card{
        border-radius:10px!important;
        overflow:hidden!important;
        box-shadow:0 4px 11px rgba(15,23,42,.055)!important;
    }

    /* 핵심: 이미지 60px → 72px 확대 */
    .menu-card .menu-img,
    .menu-card button.menu-img{
        width:100%!important;
        height:72px!important;
        min-height:72px!important;
        border-radius:0!important;
        background:#f2f4f7!important;
    }

    .menu-card .menu-img img,
    .menu-card button.menu-img img{
        width:100%!important;
        height:100%!important;
        object-fit:cover!important;
        transform:translateZ(0);
    }

    /* 이미지 자체가 조금 더 또렷하게 보이도록 */
    .menu-card .menu-img.has-image,
    .menu-card button.menu-img.has-image{
        position:relative!important;
        box-shadow:
            inset 0 -1px 0 rgba(15,23,42,.08),
            0 1px 0 rgba(255,255,255,.8)!important;
    }

    /* 이미지 키운 만큼 아래 정보영역을 압축해 카드 전체 높이는 거의 유지 */
    .menu-info{
        padding:4px 4px 5px!important;
    }

    .menu-info h3{
        margin:0 0 2px!important;
        min-height:27px!important;
        font-size:12px!important;
        line-height:1.13!important;
    }

    .menu-info strong{
        margin:0 0 3px!important;
        font-size:12px!important;
        line-height:1!important;
    }

    .menu-detail-hint{
        margin-top:0!important;
        min-height:14px!important;
        font-size:10px!important;
        line-height:1.1!important;
    }

    .menu-actions{
        gap:3px!important;
    }

    .add-cart-btn{
        min-height:22px!important;
        height:22px!important;
        padding:0 4px!important;
        font-size:10px!important;
        border-radius:6px!important;
    }

    .favorite-btn{
        min-width:22px!important;
        min-height:22px!important;
        width:22px!important;
        height:22px!important;
        border-radius:6px!important;
    }

    .favorite-btn::before{
        font-size:12px!important;
    }

    .soldout-badge{
        min-height:22px!important;
        height:22px!important;
        font-size:10px!important;
        border-radius:6px!important;
    }

    /* =====================================================
       상세팝업: 이미지 100px → 144px
       ===================================================== */

    .menu-detail-sheet{
        max-height:min(88dvh,780px)!important;
        padding:
            8px
            12px
            calc(16px + env(safe-area-inset-bottom))!important;
    }

    .menu-detail-handle{
        margin-bottom:7px!important;
    }

    .menu-detail-hero{
        grid-template-columns:144px minmax(0,1fr)!important;
        gap:11px!important;
        align-items:start!important;
        padding:6px 38px 12px 0!important;
    }

    .menu-detail-image{
        width:144px!important;
        height:144px!important;
        border-radius:16px!important;
        box-shadow:
            0 8px 22px rgba(15,23,42,.14),
            inset 0 0 0 1px rgba(15,23,42,.06)!important;
    }

    .menu-detail-image img{
        width:100%!important;
        height:100%!important;
        object-fit:cover!important;
    }

    .menu-detail-image-zoom{
        right:7px!important;
        bottom:7px!important;
        min-height:26px!important;
        padding:0 8px!important;
        font-size:10px!important;
    }

    .menu-detail-head-copy{
        min-width:0!important;
        padding-top:2px!important;
    }

    .menu-detail-head-copy h2{
        margin:6px 0 5px!important;
        font-size:20px!important;
        line-height:1.22!important;
        word-break:keep-all!important;
        overflow-wrap:anywhere!important;
    }

    .menu-detail-price-text{
        font-size:18px!important;
    }

    .menu-detail-description-wrap{
        padding:12px 2px 11px!important;
    }

    .menu-detail-actions{
        padding-top:7px!important;
    }
}

/* 작은 모바일도 3열 유지 + 이미지 강조 유지 */
@media(max-width:380px){

    .menu-area{
        padding-left:3px!important;
        padding-right:3px!important;
    }

    .menu-section{
        gap:3px!important;
    }

    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:66px!important;
        min-height:66px!important;
    }

    .menu-info{
        padding:4px 3px 4px!important;
    }

    .menu-info h3{
        min-height:25px!important;
        font-size:11px!important;
    }

    .menu-info strong{
        font-size:11px!important;
        margin-bottom:3px!important;
    }

    .menu-detail-sheet{
        padding-left:9px!important;
        padding-right:9px!important;
    }

    .menu-detail-hero{
        grid-template-columns:124px minmax(0,1fr)!important;
        gap:9px!important;
        padding-right:34px!important;
    }

    .menu-detail-image{
        width:124px!important;
        height:124px!important;
        border-radius:14px!important;
    }

    .menu-detail-head-copy h2{
        font-size:18px!important;
    }

    .menu-detail-price-text{
        font-size:16px!important;
    }

    .menu-detail-stock{
        margin-top:5px!important;
        padding:0 6px!important;
        font-size:9px!important;
    }
}

/* 초소형 화면도 3열 강제 유지 */
@media(max-width:340px){

    .menu-section{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        gap:2px!important;
    }

    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:62px!important;
        min-height:62px!important;
    }

    .menu-info{
        padding:3px 2px 4px!important;
    }

    .menu-detail-hero{
        grid-template-columns:112px minmax(0,1fr)!important;
        gap:8px!important;
    }

    .menu-detail-image{
        width:112px!important;
        height:112px!important;
    }
}




/* =========================================================
   v082 모바일 반찬 이미지 강조 강화
   - 메인 이미지 추가 확대
   - 상세팝업 이미지 대폭 확대
   - 팝업 전체 높이를 더 키워 상단으로 확장
   ========================================================= */

@media(max-width:899px){

    /* 메인 3열 유지 + 이미지 72px → 78px */
    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:78px!important;
        min-height:78px!important;
    }

    /* 이미지 확대분만큼 정보영역을 조금 더 압축 */
    .menu-info{
        padding:3px 4px 4px!important;
    }

    .menu-info h3{
        margin-bottom:1px!important;
        min-height:26px!important;
        line-height:1.11!important;
    }

    .menu-info strong{
        margin-bottom:2px!important;
    }

    .menu-detail-hint{
        min-height:13px!important;
        font-size:9px!important;
        line-height:1!important;
    }

    /* 상세팝업 자체를 더 크게: 상단이 더 위로 올라오게 */
    .menu-detail-sheet{
        max-height:min(92dvh,860px)!important;
        padding:
            7px
            10px
            calc(14px + env(safe-area-inset-bottom))!important;
        border-radius:24px 24px 0 0!important;
    }

    .menu-detail-handle{
        margin-bottom:6px!important;
    }

    /* 상세 이미지 144px → 168px */
    .menu-detail-hero{
        grid-template-columns:168px minmax(0,1fr)!important;
        gap:10px!important;
        align-items:start!important;
        padding:5px 36px 11px 0!important;
    }

    .menu-detail-image{
        width:168px!important;
        height:168px!important;
        border-radius:18px!important;
        box-shadow:
            0 10px 28px rgba(15,23,42,.18),
            inset 0 0 0 1px rgba(15,23,42,.06)!important;
    }

    .menu-detail-image-zoom{
        min-height:28px!important;
        padding:0 9px!important;
        font-size:10px!important;
    }

    .menu-detail-head-copy{
        padding-top:1px!important;
    }

    .menu-detail-head-copy h2{
        margin:5px 0 4px!important;
        font-size:20px!important;
        line-height:1.18!important;
    }

    .menu-detail-price-text{
        font-size:18px!important;
    }

    .menu-detail-stock{
        margin-top:5px!important;
    }

    .menu-detail-description-wrap{
        padding:10px 2px 9px!important;
    }

    .menu-detail-actions{
        padding-top:6px!important;
    }
}

/* 작은 모바일 */
@media(max-width:380px){

    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:72px!important;
        min-height:72px!important;
    }

    .menu-info{
        padding:3px 3px 4px!important;
    }

    .menu-detail-sheet{
        max-height:min(93dvh,860px)!important;
        padding-left:8px!important;
        padding-right:8px!important;
    }

    .menu-detail-hero{
        grid-template-columns:146px minmax(0,1fr)!important;
        gap:8px!important;
        padding-right:32px!important;
    }

    .menu-detail-image{
        width:146px!important;
        height:146px!important;
        border-radius:16px!important;
    }

    .menu-detail-head-copy h2{
        font-size:18px!important;
    }

    .menu-detail-price-text{
        font-size:16px!important;
    }
}

/* 초소형 모바일도 3열 유지 */
@media(max-width:340px){

    .menu-card .menu-img,
    .menu-card button.menu-img{
        height:68px!important;
        min-height:68px!important;
    }

    .menu-detail-hero{
        grid-template-columns:132px minmax(0,1fr)!important;
        gap:7px!important;
        padding-right:30px!important;
    }

    .menu-detail-image{
        width:132px!important;
        height:132px!important;
    }
}




/* =========================================================
   v086 사용자 메뉴 - 예약중 상태
   ========================================================= */

.menu-card.reserved{
    border-color:#fed7aa!important;
    background:
        linear-gradient(180deg,#fff 0%,#fffaf5 100%)!important;
}

.menu-card.reserved .menu-img,
.menu-card.reserved button.menu-img{
    position:relative;
}

.reservation-badge{
    width:100%;
    height:24px!important;
    padding:0 4px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid #fdba74!important;
    border-radius:7px!important;
    background:linear-gradient(135deg,#fff7ed,#ffedd5)!important;
    color:#c2410c!important;
    font-size:10px!important;
    line-height:1!important;
    font-weight:950!important;
    text-align:center!important;
    white-space:nowrap!important;
}

.menu-detail-stock{
    overflow-wrap:anywhere;
}

@media(min-width:900px){
    .reservation-badge{
        min-height:36px!important;
        height:36px!important;
        border-radius:10px!important;
        font-size:13px!important;
    }
}
