.public-shop {
    --shop-accent: var(--shop-theme-accent, #e53238);
    --shop-button: var(--shop-theme-button, #e53238);
    --shop-price: var(--shop-theme-price, #e53238);
    --shop-text: var(--shop-theme-text, #292929);
    --shop-badge: var(--shop-theme-badge, #d83238);
    --shop-muted: #6b7280;
    --shop-card: #ffffff;
    --shop-radius: 8px;
    background: linear-gradient(180deg, #f5f7fb 0%, #f7f9fc 100%);
}

body.public-site.shop-page { display: flex; flex-direction: column; min-height: 100vh; }
body.public-site.shop-page #shopPageRoot { flex: 1 0 auto; }
body.public-site.shop-page .shop-footer-minimal { flex: 0 0 auto; margin-top: auto; }

.public-shop .container { max-width: 1100px; margin: 0 auto; padding: 24px; }
.public-shop .hero { margin-bottom: 16px; padding: 28px 0; text-align: center; background: linear-gradient(90deg, rgba(37, 99, 235, 0.06), rgba(99, 102, 241, 0.03)); }
.public-shop .hero h1 { margin: 0; font-size: 28px; }
.public-shop .hero .lead { margin-top: 8px; color: var(--shop-muted); }
.public-shop .catalog .product-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; }
.public-shop .product-card { display: flex; flex-direction: column; overflow: hidden; background: var(--shop-card); border-radius: var(--shop-radius); box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06); }
.public-shop .product-media img { width: 100%; height: 180px; object-fit: cover; }
.public-shop .product-body { display: flex; flex-direction: column; gap: 8px; padding: 14px; }
.public-shop .product-title { margin: 0; font-size: 16px; }
.public-shop .product-desc { height: 36px; overflow: hidden; color: var(--shop-muted); font-size: 13px; }
.public-shop .product-meta { display: flex; justify-content: space-between; align-items: center; }
.public-shop .price { color: var(--shop-accent); font-weight: 700; }
.public-shop .stock .out { color: #b91c1c; }
.public-shop .product-actions { display: flex; align-items: center; gap: 10px; }
.public-shop .product-variation-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 4px 0; }
.public-shop .product-variation-field { display: grid; gap: 4px; min-width: 0; color: #536575; font-size: 11px; font-weight: 700; }
.public-shop .product-variation-field select { width: 100%; min-width: 0; height: 36px; padding: 0 8px; border: 1px solid #cbd5dd; border-radius: 6px; background: #fff; color: #213543; font-size: 12px; }
.public-shop .product-actions .qty-input { width: 72px; padding: 6px; border: 1px solid #e5e7eb; border-radius: 6px; }
.public-shop .btn { padding: 8px 12px; border: 0; border-radius: 8px; cursor: pointer; }
.public-shop .btn-primary { color: #fff; background: var(--shop-accent); }
.public-shop .floating-cart { position: fixed; right: 20px; bottom: 24px; z-index: 1200; display: flex; align-items: center; gap: 8px; padding: 12px 14px; color: #fff; background: var(--shop-accent); border: 0; border-radius: 999px; box-shadow: 0 8px 24px rgba(37, 99, 235, 0.18); }
.public-shop .cart-count { padding: 2px 8px; color: var(--shop-accent); background: #fff; border-radius: 999px; font-size: 12px; font-weight: 700; }
.public-shop .product-card.added { animation: shop-card-added 420ms cubic-bezier(.2, .9, .3, 1); }
@keyframes shop-card-added {
    0% { transform: translateY(0) scale(1); }
    40% { transform: translateY(-8px) scale(1.03); }
    100% { transform: translateY(0) scale(1); }
}
.public-shop .cart-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1202; display: flex; flex-direction: column; width: min(440px, 100vw); height: 100vh; height: 100dvh; overflow: hidden; background: #fff; border-left: 1px solid #dce5e1; border-radius: 16px 0 0 16px; box-shadow: -18px 0 48px rgba(20, 42, 36, .18); transform: translateX(100%); pointer-events: none; transition: transform .22s ease; }
.public-shop .cart-panel.open { transform: translateX(0); pointer-events: auto; }
.public-shop .cart-panel-header { display: flex; flex: 0 0 auto; justify-content: space-between; align-items: center; gap: 16px; min-height: 82px; padding: 16px 22px; background: #edf4f1; border-bottom: 1px solid #dce5e1; }
.public-shop .cart-panel-header h3 { margin: 0; color: #203a33; font-size: 20px; }
.public-shop #cartPanelSummary { margin: 3px 0 0; color: #60766e; font-size: 12px; }
.public-shop .cart-close { display: grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; padding: 0; border: 1px solid #cfddd6; border-radius: 50%; color: #315f5b; background: #fff; font-size: 22px; cursor: pointer; }
.public-shop .cart-items-list { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; padding: 8px 22px; overflow: auto; overscroll-behavior: contain; }
.public-shop .cart-item-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; align-items: start; gap: 14px; padding: 16px 0; border-bottom: 1px solid #e9efec; }
.public-shop .cart-item-row img { width: 76px; height: 76px; object-fit: contain; border: 1px solid #e4ebe7; border-radius: 8px; background: #f5f8f6; }
.public-shop .cart-item-name { overflow-wrap: anywhere; color: #243b34; font-size: 14px; font-weight: 650; line-height: 1.4; }
.public-shop .cart-item-variant { margin-top: 2px; color: #536b60; font-size: 12px; }
.public-shop .cart-item-details { min-width: 0; }
.public-shop .cart-item-price { margin-top: 4px; color: #65766f; font-size: 13px; }
.cart-item-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 7px; }
.cart-item-sale { color: #c22e35; font-weight: 750; }
.cart-item-savings { flex-basis: 100%; }
.public-shop .cart-item-controls { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.public-shop .cart-item-controls input { width: 58px; height: 36px; padding: 0 8px; border: 1px solid #cbd8d2; border-radius: 6px; color: #243b34; background: #fff; }
.public-shop .cart-item-controls .btn-remove { min-height: 36px; padding: 0 8px; border: 0; color: #8b4d4d; background: transparent; font-size: 12px; cursor: pointer; }
.public-shop .cart-item-controls .btn-remove:hover { color: #6d3030; text-decoration: underline; }
.public-shop .cart-item-subtotal { padding-top: 2px; color: #243b34; text-align: right; font-size: 13px; font-weight: 700; white-space: nowrap; }
.public-shop .cart-empty { display: grid; flex: 1 1 auto; align-content: center; justify-items: center; gap: 8px; min-height: 200px; padding: 28px; color: #687a72; text-align: center; }
.public-shop .cart-empty-title { color: #263d35; font-size: 17px; }
.public-shop .cart-panel-footer { display: flex; flex: 0 0 auto; flex-direction: column; gap: 14px; padding: 18px 22px calc(18px + env(safe-area-inset-bottom)); border-top: 1px solid #e3ebe7; background: #fff; }
.public-shop .cart-total { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #455a51; font-size: 14px; }
.public-shop .cart-total strong { color: #203a33; font-size: 19px; }
.public-shop .cart-actions { display: grid; grid-template-columns: 1fr; gap: 8px; }
.public-shop .cart-actions #checkoutBtn { display: flex; align-items: center; justify-content: center; order: -1; min-height: 48px; border: 0; border-radius: 8px; color: #fff; background: #315f5b; font-size: 14px; font-weight: 700; text-decoration: none; }
.public-shop .cart-actions #checkoutBtn:hover { background: #244e49; }
.public-shop .cart-actions #continueShopping { min-height: 42px; border: 1px solid #d7e2dc; border-radius: 8px; color: #38584c; background: #f6f9f7; font-size: 13px; }
.public-shop .cart-backdrop { position: fixed; inset: 0; z-index: 1200; background: rgba(16, 29, 25, .38); opacity: 0; pointer-events: none; transition: opacity .22s ease; }
.public-shop .cart-backdrop.visible { opacity: 1; pointer-events: auto; }

@media (max-width: 768px) {
    .public-shop .catalog .product-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
    .public-shop .cart-panel { width: 100%; border-left: 0; border-radius: 0; }
    .public-shop .cart-panel-header { min-height: 76px; padding: 12px 16px; }
    .public-shop .cart-items-list { padding: 6px 16px; }
    .public-shop .cart-panel-footer { padding: 14px 16px calc(14px + env(safe-area-inset-bottom)); }
    .public-shop .cart-item-row { grid-template-columns: 64px minmax(0, 1fr) auto; gap: 10px; padding: 14px 0; }
    .public-shop .cart-item-row img { width: 64px; height: 64px; }
}

.public-shop .shop-container { width: min(1320px, 100%); margin: 0 auto; padding: 32px 24px 72px; }
.shop-search-section { margin-bottom: 16px; }
.shop-search-form { display: flex; align-items: center; gap: 8px; }
.shop-search-form .shop-search-wrap { flex: 1 1 auto; min-width: 0; }
.shop-search-submit { display: grid; flex: 0 0 46px; place-items: center; width: 46px; height: 46px; border: 1px solid #bfd2c9; border-radius: 10px; color: #315f5b; background: #edf4f1; cursor: pointer; }
.shop-search-submit:hover { background: #dce9e4; }
.shop-search-submit i { font-size: 15px; }
.shop-image-carousel { margin-bottom: 28px; padding: 14px; border: 1px solid #ceded5; border-radius: 12px; background: #e7f0eb; }
.shop-image-carousel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.shop-image-carousel-heading h2 { margin: 0; color: #21394b; font-size: 20px; }
.shop-image-carousel-track.is-auto-scrolling { scroll-snap-type: none; scroll-behavior: auto; }
.shop-image-carousel-track { display: flex; gap: 14px; overflow-x: auto; padding: 2px 2px 10px; scroll-snap-type: none; scroll-behavior: smooth; overscroll-behavior-x: contain; scrollbar-width: none; }
.shop-image-carousel-track::-webkit-scrollbar { display: none; }
.shop-image-carousel-slide { display: flex; flex: 0 0 clamp(210px, 24%, 290px); min-width: 0; flex-direction: column; overflow: hidden; padding: 0; border: 1px solid #dfe7e3; border-radius: 10px; color: #263d38; background: #fff; text-align: left; cursor: pointer; }
.shop-image-carousel-slide img { display: block; width: 100%; aspect-ratio: 16 / 10; padding: 10px; object-fit: contain; background: #eef3f0; }
.product-image-fallback[hidden] { display: none !important; }
.shop-image-carousel-slide > .product-image-fallback { display: grid; width: 100%; aspect-ratio: 16 / 10; align-content: center; justify-items: center; gap: 8px; color: #647a70; background: #eef3f0; font-size: 12px; }
.product-image-fallback i { color: #789187; font-size: 28px; }
.product-media > .product-image-fallback { position: absolute; inset: 0; z-index: 0; display: grid; align-content: center; justify-items: center; gap: 8px; color: #647a70; background: linear-gradient(145deg, #f1f5f2, #e5ede8); font-size: 12px; pointer-events: none; }
.product-media > .product-image-fallback i { font-size: 32px; }
.shop-image-carousel-caption { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; padding: 10px 12px; }
.shop-image-carousel-caption > span { overflow: hidden; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.shop-image-carousel-caption strong { flex: 0 0 auto; color: #315f5b; font-size: 12px; }
.wishlist-filter { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 14px; border: 1px solid #cbd5dd; border-radius: 999px; color: #253b4d; background: #fff; cursor: pointer; box-shadow: 0 8px 18px rgba(15, 23, 42, .04); }
.wishlist-filter[aria-pressed="true"] { color: #b4233c; border-color: #e4a0ac; background: #fff7f8; }
.shop-header-actions { gap: 8px; }
.shop-header-account-actions { display: flex; align-items: center; gap: 8px; }
body.shop-page #mobileMenuMain { background: #fff; border-bottom: 1px solid #bfd2c9; box-shadow: 0 8px 18px rgba(31, 68, 57, .1); }
.shop-mobile-account-link { margin-top: 8px; padding-top: 8px; border-top: 1px solid #e1e9e5; }
.shop-mobile-account-link a { color: #315f5b !important; font-weight: 700; }
.shop-account-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 16px; border-radius: 999px; color: #fff; font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; transition: transform .16s ease, box-shadow .16s ease; }
.shop-account-button:hover { transform: translateY(-1px); text-decoration: none; }
.shop-account-button--primary { background: #315f5b; box-shadow: 0 4px 10px rgba(49, 95, 91, .12); }
.shop-account-button--secondary { background: #68776d; box-shadow: 0 4px 10px rgba(69, 88, 74, .12); }
.shop-account-button--ghost { background: #edf5ff; color: #194d7b; border: 1px solid #d7e9ff; }
.shop-catalog-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 24px; align-items: start; }
.shop-product-detail-layout { grid-template-columns: minmax(0, 1fr); }
.shop-wishlist-page .shop-search-section, .shop-wishlist-page .shop-image-carousel, .shop-wishlist-page .shop-sidebar { display: none; }
.shop-wishlist-page .shop-catalog-layout { grid-template-columns: minmax(0, 1fr); }
.wishlist-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid #dfe7e3; }
.wishlist-page-heading h1 { margin: 0; color: #203a33; font-size: 25px; }
.wishlist-page-heading p { margin: 4px 0 0; color: #64766e; font-size: 13px; }
.shop-wishlist-page .results-heading > p { font-weight: 600; }
.shop-wishlist-page .product-grid[hidden], .shop-wishlist-page .shop-empty-state[hidden] { display: none !important; }
.shop-sidebar { position: sticky; top: 20px; }
.shop-sidebar-card { overflow: hidden; border: 1px solid #dfe5e9; border-radius: 18px; background: #fff; box-shadow: 0 12px 30px rgba(15, 23, 42, .05); }
.filter-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 18px 14px; border-bottom: 1px solid #edf2f5; }
.filter-title { margin: 0; color: #21394b; font-size: 18px; }
.filter-toggle { display: none; align-items: center; gap: 12px; padding: 0; border: 0; color: #21394b; background: transparent; font-size: 18px; font-weight: 700; cursor: pointer; }
.filter-toggle-icon { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #d5e0e6; border-radius: 50%; color: #315f5b; font-size: 16px; line-height: 1; }
.filter-clear { color: #4a6b86; font-size: 12px; font-weight: 700; text-decoration: none; }
.shop-filter-form { display: grid; gap: 16px; margin: 0; padding: 18px; background: transparent; border: 0; border-radius: 0; }
.shop-filter-form[hidden] { display: none !important; }
.shop-search-wrap { position: relative; }
.shop-search { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 12px; border: 1px solid #cbd5dd; border-radius: 10px; color: #536a7a; background: #f9fbfd; }
.shop-search input { width: 100%; min-width: 0; height: 44px; padding: 0; border: 0; outline: 0; background: transparent; }
.shop-search-suggestions { position: absolute; z-index: 30; top: calc(100% + 8px); left: 0; right: 0; display: grid; gap: 4px; padding: 8px; border: 1px solid #dfe5e9; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgba(15, 23, 42, .12); }
.shop-search-suggestions[hidden] { display: none; }
.shop-search-suggestion { width: 100%; padding: 8px 10px; border: 0; border-radius: 6px; background: transparent; color: #213b4d; text-align: left; font-size: 14px; cursor: pointer; }
.shop-search-suggestion:hover, .shop-search-suggestion:focus-visible { background: #f2f7fb; outline: none; }
.filter-fields { display: grid; gap: 14px; }
.filter-field { display: grid; gap: 6px; color: #4b5e6b; font-size: 12px; font-weight: 600; }
.filter-field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.filter-fields input, .filter-fields select { width: 100%; min-width: 0; height: 40px; padding: 0 10px; border: 1px solid #cbd5dd; border-radius: 8px; color: #213543; background: #fff; }
.filter-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 8px; margin-top: 4px; }
.filter-reset { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid #cbd5dd; border-radius: 8px; color: #42647a; background: #fff; font-size: 13px; font-weight: 700; text-decoration: none; }
.filter-reset:hover { border-color: #8da3b2; background: #f5f8fa; }
.filter-apply, .product-actions .add-to-cart, .quick-view-details > .add-to-cart { min-height: 40px; padding: 0 18px; border: 1px solid #155f9b; border-radius: 8px; color: #fff; background: linear-gradient(135deg, #176ca8, #0e4f86); font-weight: 700; cursor: pointer; }
.filter-apply:hover, .product-actions .add-to-cart:hover, .quick-view-details > .add-to-cart:hover { background: linear-gradient(135deg, #14588d, #0d4574); }
.filter-apply:disabled, .product-actions .add-to-cart:disabled { opacity: .5; cursor: not-allowed; }
.shop-results-panel { min-width: 0; }
.results-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 8px 0 14px; color: #5c6c78; font-size: 13px; }
.results-heading p { margin: 0; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.public-shop .product-card { min-width: 0; border: 1px solid #e0e5e9; border-radius: 7px; box-shadow: 0 2px 8px rgba(21, 42, 56, .04); cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.public-shop .product-card:hover { border-color: #bdcbd5; box-shadow: 0 7px 20px rgba(21, 42, 56, .1); transform: translateY(-2px); }
.public-shop .product-card:focus-visible { outline: 3px solid rgba(49, 95, 91, .38); outline-offset: 2px; }
.product-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #f2f5f7; }
.product-card-badges { position: absolute; z-index: 3; top: 10px; left: 10px; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; max-width: calc(100% - 64px); pointer-events: none; }
.product-card-badge { display: inline-flex; align-items: center; min-height: 24px; max-width: 100%; padding: 0 8px; overflow: hidden; border-radius: 3px; color: #fff; font-size: 10px; font-weight: 800; line-height: 1; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.top-selling-badge { background: #26734d; }
.offer-badge { background: #d83238; }
.product-image-link { display: block; width: 100%; height: 100%; }
.product-media > .product-image-link > img { display: block; }
.product-image-link:focus-visible { position: relative; z-index: 1; outline: 3px solid #176ca8; outline-offset: -3px; }
.public-shop .product-media img { width: 100%; height: 100%; padding: 8px; object-fit: contain; }
.product-media [data-gallery-main], .quick-view-image-frame [data-gallery-main] { position: relative; z-index: 0; transform: translateX(0); transition: transform .46s cubic-bezier(.22,.61,.36,1), opacity .2s ease; }
.product-media .gallery-transition-image, .quick-view-image-frame .gallery-transition-image { position: absolute; z-index: 1; inset: 0; transform: translateX(0); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.product-media [data-gallery-main].gallery-slide-out, .quick-view-image-frame [data-gallery-main].gallery-slide-out { opacity: 0; }
.product-media .gallery-transition-image.gallery-slide-in, .quick-view-image-frame .gallery-transition-image.gallery-slide-in { opacity: 1; }
.product-media .wishlist-toggle { z-index: 3; }
.product-media .product-gallery-thumbnails { z-index: 2; }

@media (prefers-reduced-motion: reduce) {
    .product-media [data-gallery-main],
    .quick-view-image-frame [data-gallery-main],
    .product-media .gallery-transition-image,
    .quick-view-image-frame .gallery-transition-image {
        transition: none;
    }
}
.product-gallery-thumbnails:not([hidden]) { position: absolute; z-index: 2; left: 50%; bottom: 10px; display: flex; width: max-content; max-width: calc(100% - 20px); gap: 7px; padding: 6px; overflow-x: auto; transform: translateX(-50%); border: 1px solid rgba(29, 53, 70, .12); border-radius: 7px; background: rgba(255, 255, 255, .94); box-shadow: 0 3px 12px rgba(24, 45, 59, .12); }
.product-gallery-thumb { flex: 0 0 54px; display: grid; place-items: center; width: 54px; height: 54px; padding: 2px; overflow: hidden; border: 1px solid #d8e1e7; border-radius: 5px; background: #fff; cursor: pointer; }
.product-gallery-thumb[aria-pressed="true"] { border-color: #176ca8; box-shadow: 0 0 0 2px rgba(23, 108, 168, .18); }
.product-gallery-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.product-gallery-thumb:focus-visible { outline: 2px solid #176ca8; outline-offset: 2px; }
.quick-view-image-frame .product-gallery-thumbnails:not([hidden]) { bottom: 14px; }
.wishlist-toggle { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 0; color: #c32745; background: transparent; font-size: 26px; line-height: 1; cursor: pointer; filter: drop-shadow(0 1px 2px rgba(255, 255, 255, .9)); }
.wishlist-toggle[aria-pressed="true"] { color: #c32745; background: transparent; }
.wishlist-toggle:hover { color: #e53238; background: transparent; transform: scale(1.08); }
.public-shop .product-body { gap: 5px; padding: 12px; }
.public-shop .product-title { display: -webkit-box; overflow: hidden; color: #203746; line-height: 1.35; font-size: 15px; font-weight: 650; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-review-summary { display: inline-flex; width: fit-content; align-items: center; gap: 5px; color: #657785; font-size: 11px; line-height: 1; text-decoration: none; }
.product-review-summary:hover .product-review-count { text-decoration: underline; }
.product-review-stars { position: relative; display: inline-flex; color: #d1d9de; white-space: nowrap; }
.product-review-stars-track,
.product-review-stars-fill { display: inline-flex; gap: 1px; font-size: 11px; }
.product-review-stars-fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: #e1a900; white-space: nowrap; }
.product-review-count { color: #657785; }
.product-reviews-section { margin-top: 26px; padding: 20px 0 8px; border-top: 1px solid #dfe5e9; }
.product-reviews-section h2 { display: flex; align-items: baseline; gap: 8px; margin: 0 0 14px; color: #203746; font-size: 20px; }
.product-reviews-section h2 span { color: #657785; font-size: 13px; font-weight: 500; }
.product-reviews-list { display: grid; gap: 12px; }
.product-review-entry { padding: 14px 0; border-bottom: 1px solid #e8edf1; }
.product-review-entry-heading,
.product-review-entry-heading > div { display: flex; align-items: center; gap: 10px; }
.product-review-entry-heading { justify-content: space-between; }
.product-review-entry-heading strong { color: #203746; font-size: 13px; }
.product-review-entry-heading time { color: #788792; font-size: 11px; }
.product-review-entry-stars { display: inline-flex; gap: 2px; color: #d1d9de; font-size: 12px; }
.product-review-entry-stars .is-filled { color: #e1a900; }
.product-review-entry p,
.product-reviews-empty { margin: 9px 0 0; color: #536b7a; font-size: 13px; line-height: 1.55; white-space: normal; }
.public-shop .product-meta { align-items: flex-end; gap: 8px; }
.product-price-block { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.product-price-old-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 7px; min-width: 0; }
.product-price-block .original-price, .shop-image-price del, .quick-view-original-price, .cart-item-original { color: #777; font-size: 11px; font-weight: 500; }
.product-savings, .quick-view-savings, .cart-item-savings { color: #c22e35; font-size: 10px; font-weight: 750; }
.public-shop .price { color: #173d58; font-size: 17px; }
.public-shop .stock { color: #4c7d5b; font-size: 11px; white-space: nowrap; }
.public-shop .stock-low { color: #a56a27; }
.public-shop .product-actions { display: grid; grid-template-columns: 68px 1fr; margin-top: 4px; }
.quantity-control input { width: 100%; height: 40px; padding: 0 8px; border: 1px solid #cbd5dd; border-radius: 5px; color: #253b4d; }
    .product-actions .add-to-cart { padding-inline: 8px; }
    .live-search-summary { margin-top: -2px; margin-bottom: 8px; color: #5c7282; font-size: 12px; }
    .shop-empty-state { padding: 56px 18px; border: 1px dashed #cbd5dd; border-radius: 8px; text-align: center; background: #fff; }
.shop-empty-state h2 { margin: 0 0 8px; color: #243c4d; font-size: 20px; }
.shop-empty-state p { margin: 0 0 16px; color: #647582; }
.shop-empty-state a { color: #176ca8; font-weight: 700; }
.shop-pagination { display: flex; justify-content: center; align-items: center; gap: 18px; margin: 28px 0 8px; color: #5d6f7b; font-size: 13px; }
.shop-pagination a { padding: 9px 13px; border: 1px solid #d4dde3; border-radius: 5px; color: #25455b; background: #fff; text-decoration: none; }
.recently-viewed { margin-top: 44px; padding-top: 20px; border-top: 1px solid #dfe5e9; }
.recently-viewed h2 { margin: 0 0 14px; color: #233b4d; font-size: 19px; }
.recently-viewed-list { display: flex; gap: 12px; overflow-x: auto; }
.recently-viewed-item { display: grid; grid-template-columns: 54px minmax(100px, 1fr); align-items: center; gap: 10px; min-width: 200px; padding: 8px; border: 1px solid #dfe5e9; border-radius: 6px; color: inherit; background: #fff; text-decoration: none; }
.recently-viewed-item img { width: 54px; height: 54px; object-fit: contain; background: #f2f5f7; }
.quick-view-modal[hidden], .auth-prompt-modal[hidden] { display: none; }
.quick-view-modal { position: fixed; inset: 0; z-index: 1400; display: grid; place-items: center; padding: 24px; background: rgba(14, 31, 43, .58); }
.auth-prompt-modal { position: fixed; inset: 0; z-index: 1500; display: grid; place-items: center; padding: 20px; background: rgba(15, 25, 35, .56); }
.auth-prompt-card { position: relative; width: min(420px, 100%); padding: 24px 22px 18px; border-radius: 10px; background: #fff; box-shadow: 0 14px 34px rgba(10, 18, 27, .2); }
.auth-prompt-card h3 { margin: 0 0 8px; color: #193548; }
.auth-prompt-card p { margin: 0 0 18px; color: #536776; line-height: 1.55; }
.auth-prompt-actions { display: flex; justify-content: flex-end; gap: 10px; }
.auth-prompt-close { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #d7e0e6; border-radius: 50%; background: #fff; color: #2b4255; font-size: 24px; cursor: pointer; }
.btn-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; padding: 0 14px; border: 1px solid #c6d4dd; border-radius: 5px; background: #f8fafc; color: #1d374a; text-decoration: none; font-weight: 700; }
.quick-view-content { position: relative; display: grid; grid-template-columns: minmax(250px, 1fr) minmax(260px, .9fr); gap: 28px; width: min(820px, 100%); max-height: min(640px, 90vh); overflow: auto; padding: 28px; border-radius: 8px; background: #fff; }
.quick-view-image-frame { position: relative; width: 100%; min-width: 0; max-height: 440px; aspect-ratio: 1; overflow: hidden; background: #f3f6f8; }
.quick-view-image-frame > img { width: 100%; height: 100%; object-fit: contain; }
.quick-view-image-frame > .product-image-fallback { position: absolute; inset: 0; display: grid; align-content: center; justify-items: center; gap: 10px; color: #647a70; background: linear-gradient(145deg, #f1f5f2, #e5ede8); font-size: 13px; }
.quick-view-image-frame > .product-image-fallback i { font-size: 38px; }
.quick-view-details { align-self: center; }
.quick-view-details h2 { margin: 8px 32px 8px 0; color: #1d3546; font-size: 24px; line-height: 1.25; }
.quick-view-details > p { color: #586c79; line-height: 1.55; }
.quick-view-buyrow { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 22px 0 16px; }
.quick-view-buyrow strong { color: #173d58; font-size: 22px; }
.quick-view-buyrow span { color: #4c7d5b; font-size: 12px; }
.quick-view-price-stack { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.quick-view-original-price[hidden], .quick-view-savings[hidden] { display: none; }
.quick-view-close { position: absolute; top: 14px; right: 14px; z-index: 1; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #d4dde3; border-radius: 50%; color: #284152; background: #fff; font-size: 22px; cursor: pointer; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 1000px) {
    .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .filter-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .shop-catalog-layout { grid-template-columns: 1fr; }
    .shop-sidebar { position: static; }
    .filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shop-results-panel { width: 100%; }
}

@media (max-width: 680px) {
    .shop-main-header .logo-name, .shop-account-create { display: none; }
    .product-gallery-thumbnails:not([hidden]) { bottom: 7px; max-width: calc(100% - 12px); gap: 5px; padding: 5px; }
    .product-gallery-thumb { flex-basis: 46px; width: 46px; height: 46px; }
    .public-shop .shop-container { padding: 22px 14px calc(72px + env(safe-area-inset-bottom)); }
    .filter-title { display: none; }
    .filter-toggle { display: inline-flex; }
    .shop-image-carousel { margin-bottom: 16px; padding: 10px; }
    .shop-search-section { margin-bottom: 12px; }
    .shop-image-carousel-heading { margin-bottom: 8px; }
    .shop-image-carousel-heading h2 { font-size: 17px; }
    .shop-image-carousel-slide { flex-basis: min(78vw, 300px); }
    .shop-image-carousel-slide img, .shop-image-carousel-slide > .product-image-fallback { aspect-ratio: 2 / 1; padding: 8px; }
    .shop-image-carousel-track { padding-bottom: 6px; }
    .shop-image-carousel-caption { padding: 8px 10px; }
    .shop-header-account-actions { gap: 5px; }
    .shop-account-button { min-height: 36px; padding-inline: 9px; border-radius: 8px; font-size: 11px; }
    .wishlist-filter { min-height: 40px; padding-inline: 10px; border-radius: 10px; font-size: 12px; }
    .shop-sidebar-card { border-radius: 14px; }
    .filter-header { padding: 15px 15px 12px; }
    .filter-toggle { min-height: 40px; font-size: 16px; }
    .shop-filter-form { padding: 14px; gap: 13px; }
    .filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .filter-fields > .filter-field:last-of-type { grid-column: auto; }
    .filter-field-row { grid-column: 1 / -1; }
    .filter-actions { grid-column: 1 / -1; }
    .filter-apply { width: 100%; height: 40px; min-height: 40px; padding-inline: 5px; font-size: 12px; white-space: nowrap; }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .public-shop .product-card { border-radius: 10px; }
    .product-media { aspect-ratio: 1.05; }
    .public-shop .product-body { padding: 10px; }
    .public-shop .product-title { font-size: 13px; }
    .public-shop .product-desc { font-size: 12px; }
    .public-shop .stock { white-space: normal; text-align: right; }
    .public-shop .product-actions { grid-template-columns: 56px 1fr; gap: 6px; }
    .public-shop .product-actions .add-to-cart { font-size: 12px; }
    .quantity-control input, .public-shop .product-actions .add-to-cart { min-height: 44px; }
    .public-shop .floating-cart { right: 14px; bottom: calc(14px + env(safe-area-inset-bottom)); }
    .public-shop .cart-panel { height: 100vh; height: 100dvh; max-height: none; }
    .quick-view-modal { padding: 12px; }
    .quick-view-content { grid-template-columns: 1fr; gap: 16px; max-height: 94vh; padding: 18px; }
    .quick-view-image-frame { max-height: 260px; }
    .quick-view-details h2 { font-size: 20px; }
}

@media (max-width: 430px) {
    .public-shop .shop-container { padding: 20px 12px calc(72px + env(safe-area-inset-bottom)); }
    .shop-header-account-actions { gap: 4px; }
    .shop-account-button { padding-inline: 7px; font-size: 10px; }
    .wishlist-filter { justify-content: center; }
    .filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .results-heading { flex-wrap: wrap; align-items: center; margin: 10px 0 12px; }
    .results-heading > span { flex-basis: 100%; }
    .wishlist-page-heading { align-items: flex-start; }
    .wishlist-page-heading h1 { font-size: 22px; }
    .wishlist-page-heading .btn-secondary { flex: 0 0 auto; padding-inline: 10px; }
    .quick-view-modal { padding: 10px; }
    .quick-view-content { max-height: calc(100dvh - 20px); }
}

@media (max-width: 390px) {
    .results-heading .wishlist-filter { margin-left: auto; }
    .filter-field-row { gap: 8px; }
    .public-shop .product-actions { grid-template-columns: 48px minmax(0, 1fr); }
    .public-shop .product-actions .add-to-cart { min-width: 0; padding-inline: 5px; font-size: 11px; }
    .public-shop .product-body { padding: 9px; }
    .public-shop .price { font-size: 15px; }
    .quick-view-buyrow { flex-direction: column; align-items: flex-start; }
}

.shop-product-page .shop-catalog-layout { display: block; }
.shop-product-page .shop-search-section,
.shop-product-page .shop-image-carousel { display: none; }
.shop-product-page .results-heading { display: none; }
.shop-product-page .product-grid { display: block; }
.shop-product-page .product-card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
    align-items: center;
    gap: clamp(24px, 5vw, 72px);
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    cursor: default;
    transition: none;
}
.shop-product-page .product-card:hover { border-color: transparent; box-shadow: none; transform: none; }
.shop-product-page .product-media { aspect-ratio: 1 / 1; border-radius: 3px; background: #f0f3f5; }
.shop-product-page .product-body { align-self: center; gap: 16px; padding: 0; }
.shop-product-page .product-title { display: block; overflow: visible; font-size: 32px; line-height: 1.2; -webkit-line-clamp: unset; }
.shop-product-page .product-meta { justify-content: flex-start; gap: 18px; }
.shop-product-page .price { font-size: 24px; }
.shop-product-page .product-actions { max-width: 380px; margin-top: 8px; }
.shop-product-page .product-reviews-section { max-width: 1080px; margin: 64px auto 0; padding-top: 28px; }

@media (max-width: 680px) {
    .shop-product-page .product-card { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .shop-product-page .product-media { max-height: 430px; }
    .shop-product-page .product-title { font-size: 26px; }
    .shop-product-page .product-reviews-section { margin-top: 40px; }
}

.public-shop {
    --shop-accent: var(--shop-theme-accent, #e53238);
    --shop-button: var(--shop-theme-button, #e53238);
    --shop-price: var(--shop-theme-price, #e53238);
    --shop-text: var(--shop-theme-text, #292929);
    --shop-badge: var(--shop-theme-badge, #d83238);
    --shop-muted: #62666a;
    color: var(--shop-text);
    background: linear-gradient(180deg, #f5f7fb 0%, #f7f9fc 100%);
}

body.public-site .main-header {
    background: #fff;
    border-bottom-color: #e8e8e8;
    box-shadow: none;
}

body.public-site .public-account-link { color: #333; border-color: #ddd; background: #fff; }
body.public-site .public-account-link--primary { color: #fff; border-color: #e53238; background: #e53238; }
body.public-site .public-account-link--primary:hover { background: #c9212c; }
body.public-site .header-cart { color: #333; border-color: #e1e1e1; background: #fff; }
body.public-site .header-cart-count { border-color: #fff; background: #e53238; }

.public-shop .shop-container { width: 100%; max-width: none; margin: 0; padding: 22px clamp(14px, 2vw, 32px) 64px; }
.shop-search-section { margin-bottom: 14px; }
.shop-search-form { gap: 0; }
.shop-search { min-height: 48px; border: 2px solid #e53238; border-radius: 4px 0 0 4px; background: #fff; }
.shop-search input { height: 44px; color: #252525; }
.shop-search-submit { flex-basis: 54px; width: 54px; height: 48px; border: 0; border-radius: 0 4px 4px 0; color: #fff; background: #e53238; }
.shop-search-submit:hover { background: #c9212c; }
.live-search-summary, .live-search-recommendations { color: #666; }

.marketplace-categories {
    display: flex;
    gap: 26px;
    align-items: center;
    min-height: 44px;
    margin-bottom: 18px;
    overflow-x: auto;
    border-bottom: 1px solid #e2e2e2;
    scrollbar-width: none;
}
.marketplace-categories::-webkit-scrollbar { display: none; }
.marketplace-categories a {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 44px;
    color: #454545;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}
.marketplace-categories a:hover, .marketplace-categories a.is-active { color: #e53238; }
.marketplace-categories a.is-active::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: #e53238; content: ""; }

.marketplace-promo {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    min-height: 0;
    margin-bottom: 24px;
    padding: 24px 34px;
    overflow: hidden;
    background: #fbe9e6;
}
.marketplace-promo-copy { display: flex; flex-direction: column; gap: 10px; }
.marketplace-promo-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0; color: #b32730; font-size: 12px; font-weight: 800; }
.marketplace-promo-main { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.marketplace-promo-copy h1 { margin: 0; color: #252525; font-size: 30px; line-height: 1.16; }
.marketplace-promo-description { margin: 0; color: #5e5554; font-size: 14px; }
.marketplace-promo-main > a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 9px; min-height: 40px; margin: 0; padding: 0 16px; color: #fff; background: #e53238; font-size: 13px; font-weight: 700; text-decoration: none; }
.marketplace-promo-main > a:hover { background: #c9212c; }
.shop-image-carousel { margin-bottom: 24px; padding: 16px 0; border: 0; border-top: 1px solid #e5e5e5; border-bottom: 1px solid #e5e5e5; border-radius: 0; background: transparent; }
.shop-image-carousel-heading h2 { color: #292929; font-size: 19px; }
.shop-image-carousel-slide { border-color: #e5e5e5; border-radius: 3px; }
.shop-image-carousel-slide { position: relative; }
.shop-image-carousel-slide .product-card-badges { top: 8px; left: 8px; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 5px; max-width: calc(100% - 16px); }
.shop-image-carousel-slide img { background: #fff; }
.shop-image-carousel-caption strong { color: #e53238; }
.shop-image-price { display: grid; flex: 0 0 auto; justify-items: end; gap: 2px; }
.shop-image-price del { font-size: 10px; }
.shop-image-price strong { color: #e53238; font-size: 12px; }
.shop-catalog-layout { grid-template-columns: 250px minmax(0, 1fr); gap: 20px; }
.shop-sidebar-card { border: 1px solid #e5e5e5; border-radius: 3px; box-shadow: none; }
.filter-header { padding: 14px 15px; border-bottom-color: #eee; }
.filter-title { color: #292929; font-size: 16px; }
.shop-filter-form { gap: 13px; padding: 15px; }
.filter-fields input, .filter-fields select, .shop-search { border-color: #d8d8d8; }
.filter-apply { border-color: #e53238; border-radius: 3px; background: #e53238; }
.filter-apply:hover { background: #c9212c; }
.filter-reset { border-radius: 3px; }
.results-heading { color: #666; }
.product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.public-shop .product-card { border: 1px solid #ededed; border-radius: 2px; box-shadow: none; }
.public-shop .product-card:hover { border-color: #d8d8d8; box-shadow: 0 5px 16px rgba(0, 0, 0, .08); transform: translateY(-2px); }
.product-media { aspect-ratio: 5 / 4; background: #fff; }
.product-media img[hidden] { display: none !important; }
.public-shop .product-media img { padding: 6px; }
.public-shop .product-body { gap: 7px; padding: 11px; }
.public-shop .product-title { color: #333; font-size: 13px; font-weight: 500; }
.public-shop .price { color: #e53238; font-size: 18px; }
.public-shop .stock { color: #777; }
.public-shop .stock-out { color: #b42332; }
.public-shop .product-actions .add-to-cart { border-color: #e53238; border-radius: 3px; background: #e53238; }
.public-shop .product-actions .add-to-cart:hover { background: #c9212c; }
.shop-empty-state { border-radius: 3px; box-shadow: none; }
.shop-pagination a { border-radius: 3px; }

@media (max-width: 1100px) {
    .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .shop-catalog-layout { grid-template-columns: minmax(0, 1fr); }
    .shop-sidebar { position: static; }
    .filter-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .public-shop .shop-container { padding: 16px 12px calc(72px + env(safe-area-inset-bottom)); }
    .marketplace-categories { gap: 22px; min-height: 42px; margin-bottom: 14px; }
    .marketplace-categories a { min-height: 42px; font-size: 12px; }
    .marketplace-promo { padding: 20px; }
    .marketplace-promo-copy { gap: 10px; }
    .marketplace-promo-main { flex-direction: column; align-items: flex-start; gap: 14px; }
    .marketplace-promo-copy h1 { font-size: 25px; }
    .shop-image-carousel { padding: 13px 0; }
    .filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .public-shop .product-body { padding: 9px; }
    .public-shop .price { font-size: 16px; }
}

@media (max-width: 768px) {
    body.public-site.shop-page .main-header { padding: 8px 0; }
    body.public-site.shop-page .main-header .container { padding-inline: 10px; }
    body.public-site.shop-page .main-header .header-content { flex-wrap: nowrap; gap: 8px; min-height: 42px; }
    body.public-site.shop-page .main-header .logo { flex: 0 0 auto; }
    body.public-site.shop-page .main-header .logo a { gap: 0; }
    body.public-site.shop-page .main-header .logo img { width: 40px; height: 40px; object-fit: contain; }
    body.public-site.shop-page .main-header .logo-name,
    body.public-site.shop-page .main-header .main-nav { display: none; }
    body.public-site.shop-page .main-header .header-actions { flex: 0 0 auto; flex-wrap: nowrap; gap: 5px; min-width: 0; }
    body.public-site.shop-page .main-header .public-account-actions { order: 0; flex: 0 1 auto; gap: 4px; }
    body.public-site.shop-page .main-header .public-account-link { min-height: 32px; padding-inline: 7px; font-size: 10px; }
    body.public-site.shop-page .main-header .header-cart { flex: 0 0 34px; width: 34px; height: 34px; }
    body.public-site.shop-page .main-header .mobile-menu-toggle { display: grid; flex: 0 0 34px; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid #ddd; border-radius: 4px; background: #fff; }
}

@media (max-width: 380px) {
    body.public-site.shop-page .main-header .container { padding-inline: 8px; }
    body.public-site.shop-page .main-header .header-content { gap: 5px; }
    body.public-site.shop-page .main-header .header-actions { gap: 3px; }
    body.public-site.shop-page .main-header .public-account-actions { gap: 3px; }
    body.public-site.shop-page .main-header .public-account-link { min-height: 30px; padding-inline: 4px; font-size: 9px; }
    body.public-site.shop-page .main-header .header-cart,
    body.public-site.shop-page .main-header .mobile-menu-toggle { flex-basis: 30px; width: 30px; height: 30px; }
}

body.shop-page #mobileMenuMain {
    border-bottom-color: #e8e8e8;
    background: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .1);
}
body.shop-page #mobileMenuMain nav ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
body.shop-page #mobileMenuMain nav li { border-bottom: 1px solid #f0f0f0; }
body.shop-page #mobileMenuMain nav li > a {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 0 12px;
    color: #333;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
body.shop-page #mobileMenuMain nav li > a:hover,
body.shop-page #mobileMenuMain nav li > a:focus-visible { color: #e53238; background: #fff5f4; }
body.shop-page #mobileMenuMain .public-mobile-account-links {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 6px 0 0;
    border-top: 1px solid #e8e8e8;
}
body.shop-page #mobileMenuMain .public-mobile-account-links a { min-height: 44px; padding: 0 12px; color: #555; font-weight: 600; text-decoration: none; }
body.shop-page #mobileMenuMain .public-mobile-account-links a:hover,
body.shop-page #mobileMenuMain .public-mobile-account-links a:focus-visible { color: #e53238; background: #fff5f4; }

.public-shop .cart-panel { border-color: #e8e8e8; border-radius: 4px 0 0 4px; box-shadow: -16px 0 40px rgba(0, 0, 0, .14); }
.public-shop .cart-panel-header { border-bottom-color: #e8e8e8; background: #fff; }
.public-shop .cart-panel-header h3 { color: #252525; }
.public-shop #cartPanelSummary { color: #777; }
.public-shop .cart-close { border-color: #e1e1e1; color: #444; }
.public-shop .cart-close:hover { border-color: #e53238; color: #e53238; }
.public-shop .cart-item-row { border-bottom-color: #eee; }
.public-shop .cart-item-row img { border-color: #e8e8e8; border-radius: 3px; background: #fff; }
.public-shop .cart-item-name { color: #292929; }
.public-shop .cart-item-price { color: #666; }
.public-shop .cart-item-controls input { border-color: #ddd; border-radius: 3px; color: #333; }
.public-shop .cart-item-controls .btn-remove { color: #c52b32; }
.public-shop .cart-item-subtotal { color: #e53238; }
.public-shop .cart-panel-footer { border-top-color: #e8e8e8; }
.public-shop .cart-total { color: #666; }
.public-shop .cart-total strong { color: #252525; }
.public-shop .cart-actions #checkoutBtn { border-radius: 4px; background: #e53238; }
.public-shop .cart-actions #checkoutBtn:hover { background: #c9212c; }
.public-shop .cart-actions #continueShopping { border-color: #ddd; border-radius: 4px; color: #444; background: #fff; }
.public-shop .cart-actions #continueShopping:hover { border-color: #bbb; background: #f7f7f7; }

@media (max-width: 768px) {
    .public-shop .cart-panel { border-radius: 0; }
}

.marketplace-breadcrumb { display: flex; align-items: center; gap: 9px; margin: 0 0 16px; color: #777; font-size: 12px; }
.marketplace-breadcrumb a { display: inline-flex; align-items: center; gap: 7px; color: #555; font-weight: 600; text-decoration: none; }
.marketplace-breadcrumb a:hover { color: #e53238; }
.shop-product-page .product-card { padding: 24px; border: 1px solid #e8e8e8; background: #fff; }
.shop-product-page .product-media { border: 1px solid #eee; background: #fff; }
.shop-product-page .product-body { color: #333; }
.shop-product-page .product-title { color: #262626; }
.shop-product-page .product-variation-field select { border-radius: 3px; }
.shop-product-page .product-reviews-section { color: #333; }

@media (max-width: 680px) {
    .shop-product-page .product-card { padding: 14px; }
    .marketplace-breadcrumb { margin-bottom: 12px; }
}

.public-shop .quick-view-content { border: 1px solid #ececec; border-radius: 3px; }
.public-shop .quick-view-details h2 { color: #292929; }
.public-shop .quick-view-buyrow strong { color: #e53238; }
.public-shop .quick-view-details > .add-to-cart { border-color: #e53238; border-radius: 3px; background: #e53238; }
.public-shop .quick-view-details > .add-to-cart:hover { border-color: #c9212c; background: #c9212c; }

@media (max-width: 768px) {
    body.customer-commerce-page #shopPageRoot .floating-cart { display: none; }
}

.shop-image-carousel { margin-bottom: 18px; padding: 12px 0; }
.shop-image-carousel-slide img,
.shop-image-carousel-slide > .product-image-fallback { height: 150px; aspect-ratio: auto; padding: 6px; }

@media (max-width: 680px) {
    .shop-image-carousel { margin-bottom: 16px; padding: 9px 0; }
    .shop-image-carousel-slide img,
    .shop-image-carousel-slide > .product-image-fallback { height: 140px; aspect-ratio: auto; padding: 6px; }
}

.public-shop .shop-loading-skeleton[hidden] { display: none !important; }
.public-shop .shop-results-panel.is-loading > :not(.shop-loading-skeleton):not(.results-heading) { display: none !important; }
.public-shop .shop-results-panel.is-loading .results-heading > p { color: #64748b; }
.public-shop .shop-skeleton-card { overflow: hidden; border: 1px solid #e7ebf0; border-radius: 10px; background: #fff; box-shadow: 0 5px 16px rgba(15, 23, 42, .04); }
.public-shop .shop-skeleton-block { position: relative; display: block; overflow: hidden; border-radius: 6px; background: #e9edf2; }
.public-shop .shop-skeleton-block::after { position: absolute; inset: 0; content: ""; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent); animation: shop-skeleton-shimmer 1.35s infinite; }
.public-shop .shop-skeleton-media { width: 100%; aspect-ratio: 4 / 3; border-radius: 0; }
.public-shop .shop-skeleton-body { display: grid; gap: 12px; padding: 14px; }
.public-shop .shop-skeleton-line { height: 12px; }
.public-shop .shop-skeleton-title { width: 78%; height: 16px; }
.public-shop .shop-skeleton-short { width: 48%; }
.public-shop .shop-skeleton-meta,
.public-shop .shop-skeleton-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.public-shop .shop-skeleton-price { width: 34%; height: 19px; }
.public-shop .shop-skeleton-stock { width: 25%; height: 13px; }
.public-shop .shop-skeleton-quantity { width: 62px; height: 36px; }
.public-shop .shop-skeleton-button { width: 82px; height: 36px; border-radius: 8px; }
.public-shop .product-media.is-image-loading [data-gallery-main] { opacity: 0; }
.public-shop .product-media.is-image-loading::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(90deg, #eef1f4 25%, #f8fafc 50%, #eef1f4 75%); background-size: 200% 100%; animation: shop-skeleton-shimmer 1.35s infinite; pointer-events: none; }
.public-shop .product-media.is-image-unavailable::after,
.public-shop .product-media.is-image-unavailable.is-image-loading::after { display: none; animation: none; }
.public-shop .cart-skeleton-row { display: grid; grid-template-columns: 76px minmax(0, 1fr) 44px; align-items: start; gap: 14px; padding: 16px 0; border-bottom: 1px solid #e9efec; }
.public-shop .cart-skeleton-image { width: 76px; height: 76px; }
.public-shop .cart-skeleton-details { display: grid; gap: 10px; min-width: 0; padding-top: 3px; }
.public-shop .cart-skeleton-control { width: 78px; height: 32px; }
.public-shop .cart-skeleton-subtotal { width: 44px; height: 14px; margin-top: 4px; }
@keyframes shop-skeleton-shimmer {
    100% { transform: translateX(100%); }
}
@media (prefers-reduced-motion: reduce) {
    .public-shop .shop-skeleton-block::after,
    .public-shop .product-media.is-image-loading::after { animation: none; }
}
@media (max-width: 680px) {
    .public-shop .shop-skeleton-body { gap: 10px; padding: 11px; }
    .public-shop .cart-skeleton-row { grid-template-columns: 64px minmax(0, 1fr) 40px; gap: 10px; }
    .public-shop .cart-skeleton-image { width: 64px; height: 64px; }
}

.public-shop .product-title,
.public-shop .quick-view-details h2,
.public-shop .marketplace-promo-copy h1,
.public-shop .results-heading,
.public-shop .shop-image-carousel-heading h2 {
    color: var(--shop-text);
}
.public-shop .price,
.public-shop .quick-view-buyrow strong,
.public-shop .shop-image-price strong,
.public-shop .shop-image-carousel-caption strong {
    color: var(--shop-price);
}
.public-shop .product-card-badge,
.public-shop .top-selling-badge,
.public-shop .offer-badge {
    background: var(--shop-badge);
}
.public-shop .shop-search-submit,
.public-shop .filter-apply,
.public-shop .product-actions .add-to-cart,
.public-shop .quick-view-details > .add-to-cart,
.marketplace-promo-main > a,
.public-shop .floating-cart,
.public-shop .cart-actions #checkoutBtn,
body.shop-page .public-account-link--primary,
body.shop-page .header-cart-count {
    border-color: var(--shop-theme-button, #e53238);
    background: var(--shop-theme-button, #e53238);
}
.public-shop .shop-search-submit:hover,
.public-shop .filter-apply:hover,
.public-shop .product-actions .add-to-cart:hover,
.public-shop .quick-view-details > .add-to-cart:hover,
.public-shop .cart-actions #checkoutBtn:hover {
    border-color: color-mix(in srgb, var(--shop-button) 82%, #000);
    background: color-mix(in srgb, var(--shop-button) 82%, #000);
}
body.shop-page .public-account-link--primary:hover {
    border-color: color-mix(in srgb, var(--shop-theme-button, #e53238) 82%, #000);
    background: color-mix(in srgb, var(--shop-theme-button, #e53238) 82%, #000);
}
body.shop-page .main-header .main-nav a.active {
    background: transparent;
    color: #333;
}
body.shop-page .main-header .main-nav a.active:hover,
body.shop-page .main-header .main-nav > ul > li > details > summary.active {
    background: #f5f7f6;
}
body.shop-page .main-header .public-account-actions > .public-account-link--primary,
body.shop-page .main-header .public-account-dropdown .public-nav-dropdown-menu > a.public-account-link--primary {
    border-color: #ddd;
    color: #333;
    background: transparent;
}
body.shop-page .main-header .public-account-actions > .public-account-link--primary:hover,
body.shop-page .main-header .public-account-actions > .public-account-link--primary:focus-visible,
body.shop-page .main-header .public-account-dropdown .public-nav-dropdown-menu > a.public-account-link--primary:hover,
body.shop-page .main-header .public-account-dropdown .public-nav-dropdown-menu > a.public-account-link--primary:focus-visible {
    border-color: #cfd8d3;
    color: #333;
    background: #f5f7f6;
}
body.shop-page #mobileMenuMain .public-nav-dropdown-menu > a.active {
    color: #333;
    background: transparent;
}
body.shop-page #mobileMenuMain .public-mobile-account-links a.public-account-link--primary {
    border-color: transparent;
    color: #314b43;
    background: transparent;
}
body.shop-page #mobileMenuMain .public-mobile-account-links a.public-account-link--primary:hover,
body.shop-page #mobileMenuMain .public-mobile-account-links a.public-account-link--primary:focus-visible {
    color: #24544b;
    background: #f5f7f6;
}
.public-shop .shop-search,
.marketplace-categories a:hover,
.marketplace-categories a.is-active,
.filter-reset,
.wishlist-filter,
.shop-pagination a {
    border-color: var(--shop-accent);
}
.marketplace-categories a:hover,
.marketplace-categories a.is-active,
.filter-reset,
.wishlist-filter,
.shop-pagination a {
    color: var(--shop-accent);
}
.marketplace-categories a.is-active::after {
    background: var(--shop-accent);
}
.shop-search {
    border-color: var(--shop-accent);
}
