/* UXC_Flarumix Shop specific overrides */
.shop-container { padding: 20px 0; }

/* 쇼핑몰 상세페이지 레이아웃 보정 (우측 사이드바 겹침 방지) */
.contentsWrap:has(.shop-item-wrap) { overflow: visible; }

/* Product List */
.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 20px; }
.shop-card { border-radius: var(--ui-radius-m); background: var(--ui-color-white); box-shadow: 0 4px 12px rgba(0,0,0,0.05); overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; border: 1px solid var(--ui-color-gray-200); }
.shop-card:hover { transform: translateY(-5px); box-shadow: 0 8px 24px rgba(0,0,0,0.1); border-color: var(--color-prime); }
.shop-card-img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.shop-card-body { padding: 16px; }
.shop-card-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; color: var(--ui-color-gray-900); }
.shop-card-price { font-size: 18px; font-weight: 700; color: var(--color-prime); }
.shop-card-desc { font-size: 13px; color: var(--ui-color-gray-500); margin-bottom: 10px; }

/* Item Detail */
.shop-item-wrap { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 30px !important; margin-bottom: 40px; position: relative; width: 100% !important; max-width: 100% !important; box-sizing: border-box; }
@media (max-width: 1400px) { .shop-item-wrap { gap: 20px !important; } }
@media (max-width: 1200px) { .shop-item-wrap { grid-template-columns: 1fr !important; gap: 20px; } }

.shop-item-img-box { border-radius: var(--ui-radius-m); overflow: hidden; border: 1px solid var(--ui-color-gray-200); background: #fff; }
.shop-item-info { display: flex; flex-direction: column; gap: 16px; padding-right: 30px !important; box-sizing: border-box; min-width: 0; position: relative; } /* 사이드바 여유공간 확보 */
.shop-item-title { font-size: 26px; font-weight: 700; color: var(--ui-color-gray-900); line-height: 1.3; margin-top: 0; }
.shop-item-price { font-size: 28px; font-weight: 700; color: var(--color-prime); margin-bottom: 20px; }
.shop-item-table { width: 100%; border-collapse: collapse; }
.shop-item-table th { text-align: left; padding: 12px 0; color: var(--ui-color-gray-600); font-weight: 500; width: 100px; border-bottom: 1px solid var(--ui-color-gray-100); }
.shop-item-table td { padding: 12px 0; color: var(--ui-color-gray-900); border-bottom: 1px solid var(--ui-color-gray-100); }

/* Surgical Layout Fix: sns/wish 버튼 위치 고정 해제 */
#sit_btn_opt { position: relative !important; right: auto !important; bottom: auto !important; margin-top: 24px !important; text-align: left !important; display: flex !important; gap: 12px; align-items: center; }
#sit_btn_opt .sns_area { position: absolute; margin-top: 40px; }

/* Buttons */
.btn-shop { display: inline-flex; align-items: center; justify-content: center; padding: 0 20px; height: 46px; font-size: 15px; font-weight: 600; border-radius: var(--ui-radius-s); transition: background-color 0.2s, color 0.2s; cursor: pointer; border: none; }
.btn-shop-primary { background: var(--color-prime); color: #fff; }
.btn-shop-primary:hover { opacity: 0.9; }
.btn-shop-secondary { border: 1px solid var(--ui-color-gray-300); background: #fff; color: var(--ui-color-gray-700); }
.btn-shop-secondary:hover { background: var(--ui-color-gray-50); }

/* Cart Table */
.shop-table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.shop-table th { padding: 15px 10px; border-bottom: 2px solid var(--ui-color-gray-300); text-align: center; color: var(--ui-color-gray-700); font-weight: 600; }
.shop-table td { padding: 15px 10px; border-bottom: 1px solid var(--ui-color-gray-200); text-align: center; color: var(--ui-color-gray-900); }
.shop-table tbody tr:hover { background: var(--ui-color-gray-50); }
.shop-cart-img { width: 60px; height: 60px; border-radius: 8px; object-fit: cover; }
.shop-cart-name { font-weight: 600; text-align: left !important; }

/* Totals */
.shop-total-box { background: var(--ui-color-gray-50); padding: 30px; border-radius: var(--ui-radius-m); margin-bottom: 30px; border: 1px solid var(--ui-color-gray-200); text-align: right; }
.shop-total-box .total-price { font-size: 24px; font-weight: 700; color: var(--color-prime); margin-left: 20px; }
