.shop-hero {
    border-bottom: 1px solid var(--bs-border-color);
    padding-bottom: 1rem;
}

.shop-card {
    transition: transform .2s ease, box-shadow .2s ease;
    overflow: hidden;
    border-radius: .75rem;
}

.shop-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .08) !important;
}

.shop-card-media {
    position: relative;
    display: block;
    overflow: hidden;
    background: #f4f6f8;
}

.shop-card-img {
    width: 100%;
    height: 210px;
    object-fit: cover;
    transition: transform .35s ease;
}

.shop-card:hover .shop-card-img {
    transform: scale(1.04);
}

.shop-card-score {
    position: absolute;
    top: .75rem;
    right: .75rem;
    background: rgba(255, 255, 255, .92) !important;
    color: #856404 !important;
    font-weight: 600;
}

.shop-policy-page .shop-policy-list {
    padding-right: 1.25rem;
    line-height: 1.8;
}

.shop-policies-nav {
    background: var(--bs-light-bg-subtle, #f8f9fa);
}

.shop-card-title {
    line-height: 1.5;
    min-height: 2rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.shop-card-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.5rem;
}

.shop-card-footer {
    padding-top: .75rem;
    border-top: 1px solid var(--bs-border-color-translucent);
}

.shop-card-price-inline {
    min-width: 0;
}

.shop-price-value {
    font-size: 1rem;
    color: var(--bs-success);
    white-space: nowrap;
}

.shop-price-unit {
    font-size: .75rem;
    color: var(--bs-secondary);
    white-space: nowrap;
}

.shop-prices-box {
    background: var(--bs-light);
}

.shop-detail-card {
    border-radius: .75rem;
    overflow: hidden;
}

.shop-detail-gallery .shop-detail-main {
    background: #f4f6f8;
}

.shop-detail-main-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 1;
    transform: scale(1);
    transition: opacity .35s ease, transform .35s ease;
}

.shop-detail-main-img.is-changing {
    opacity: 0;
    transform: scale(.97);
}

.shop-detail-thumbs .shop-detail-thumb {
    width: 4.5rem;
    aspect-ratio: 1;
    background: #f4f6f8;
    cursor: pointer;
    transition: border-color .25s ease, box-shadow .25s ease, opacity .25s ease, transform .25s ease;
}

.shop-detail-thumbs .shop-detail-thumb:not(.active) {
    opacity: .75;
}

.shop-detail-thumbs .shop-detail-thumb:hover {
    opacity: 1;
    transform: translateY(-2px);
}

.shop-detail-thumbs .shop-detail-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.shop-detail-thumbs .shop-detail-thumb.active,
.shop-detail-thumbs .shop-detail-thumb:hover {
    border-color: var(--bs-primary) !important;
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .2);
}

.shop-detail-start {
    border-inline-end: 1px solid var(--bs-border-color-translucent);
    padding-inline-end: 1rem;
}

.shop-detail-end {
    padding-inline-start: .25rem;
}

@media (max-width: 767.98px) {
    .shop-detail-start {
        border-inline-end: none;
        padding-inline-end: 0;
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--bs-border-color-translucent);
    }

    .shop-detail-end {
        padding-inline-start: 0;
        padding-top: .5rem;
    }
}

.shop-detail-buy-box {
    background: linear-gradient(135deg, rgba(var(--bs-primary-rgb), .04), rgba(var(--bs-success-rgb), .05));
}

.shop-detail-price {
    font-size: 1.35rem;
    color: var(--bs-success);
}

.shop-public-desc {
    line-height: 1.9;
}
