/* Retail theme: shared wholesale/admin styles keep their own colors. */
.storefront {
    --ff-burgundy: #8c1238;
    --ff-plum: #3b0624;
    --ff-muted: #7a3a58;
    --ff-border: #d8cdd2;
    --ff-soft: #f8f5f6;
    --ff-filter: #8a747f;
    --ff-filter-border: #9e8793;
    --ff-powder: #f4a8c0;
    --ff-paper: #fbf3f6;
    --ff-mist: #e8a0c4;
    --ff-red: #e30b3c;
    --ff-magenta: #c2186a;
    --bs-link-color: var(--ff-burgundy);
    --bs-link-color-rgb: 140, 18, 56;
    --bs-link-hover-color: var(--ff-plum);
    --bs-link-hover-color-rgb: 59, 6, 36;
    color: #212529;
    background: #fff;
}

/* Override the old brown/orange links with low specificity so component colors still win. */
.storefront :where(a:not(.btn), .a:not(.btn)) { color: var(--ff-burgundy); }
.storefront :where(a:not(.btn), .a:not(.btn)):hover { color: var(--ff-plum); }
.storefront .form-check-input:checked { background-color: var(--ff-burgundy); border-color: var(--ff-burgundy); }
.storefront .product-discount-badge { position: absolute; top: 10px; left: 10px; z-index: 2; padding: 5px 9px; border: 1px solid rgb(255 255 255 / 85%); border-radius: 8px; background: var(--ff-burgundy); color: #fff; font-size: .85rem; font-weight: 700; line-height: 1.35; white-space: nowrap; pointer-events: none; box-shadow: 0 2px 6px rgb(42 16 32 / 14%); }
.storefront .product-gallery-carousel > .product-discount-badge { top: 14px; left: 14px; padding: 8px 12px; font-size: 1rem; }
.storefront .product-offer-images { position: relative; }
.storefront .product-card-offer .product-discount-badge { top: 4px; left: 4px; padding: 2px 5px; font-size: .72rem; }
.storefront .form-check-input:focus { border-color: var(--ff-burgundy); box-shadow: 0 0 0 .2rem rgb(140 18 56 / 16%); }
.storefront .storefront-breadcrumbs { color: #756b71; overflow-wrap: anywhere; }
.storefront .site-breadcrumbs { margin-bottom: 20px; color: #756b71; font-size: .8rem; line-height: 1.6; }
.storefront .site-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; list-style: none; }
.storefront .site-breadcrumbs li { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.storefront .site-breadcrumbs li + li::before { content: "›"; margin: 0 9px; color: #9b8c94; }
.storefront .site-breadcrumbs a { display: inline-block; padding-block: 4px; color: var(--ff-muted); text-decoration: none; }
.storefront .site-breadcrumbs a:hover { color: var(--ff-burgundy); text-decoration: underline; }
.storefront .site-breadcrumbs [aria-current="page"] > span { display: inline-block; padding-block: 4px; }
.storefront .category-icon { color: var(--ff-muted); }
.storefront .storefront-showcase-title { color: var(--ff-plum); font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.4rem, 2vw, 1.75rem); font-weight: 500; line-height: 1.3; text-transform: none; letter-spacing: normal; }

.storefront .btn-brand, .storefront .btn-accent, .storefront .btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--ff-burgundy);
    --bs-btn-border-color: var(--ff-burgundy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--ff-plum);
    --bs-btn-hover-border-color: var(--ff-plum);
    --bs-btn-focus-shadow-rgb: 140, 18, 56;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--ff-plum);
    --bs-btn-active-border-color: var(--ff-plum);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--ff-burgundy);
    --bs-btn-disabled-border-color: var(--ff-burgundy);
}

.storefront .btn-outline-brand, .storefront .btn-outline-primary {
    --bs-btn-color: var(--ff-burgundy);
    --bs-btn-border-color: var(--ff-burgundy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--ff-burgundy);
    --bs-btn-hover-border-color: var(--ff-burgundy);
    --bs-btn-focus-shadow-rgb: 140, 18, 56;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--ff-plum);
    --bs-btn-active-border-color: var(--ff-plum);
    --bs-btn-disabled-color: var(--ff-muted);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--ff-border);
}

.storefront .text-accent { color: var(--ff-burgundy) !important; }
.storefront .bg-accent { background-color: var(--ff-red) !important; }
.storefront .nav-pills { --bs-nav-pills-link-active-bg: var(--ff-burgundy); }
.storefront .form-control:focus, .storefront .form-select:focus {
    border-color: var(--ff-burgundy);
    box-shadow: 0 0 0 .2rem rgba(140, 18, 56, .16);
}
.storefront a:focus-visible, .storefront button:focus-visible {
    outline: 2px solid var(--ff-burgundy);
    outline-offset: 3px;
}
.storefront .btn:focus, .storefront .btn:active:focus {
    box-shadow: 0 0 0 .2rem rgba(140, 18, 56, .16);
}

.storefront-header { background: #fff; border-bottom: 1px solid #ece7e9; }
.storefront .footer { background: var(--ff-plum); color: #e6dce1; border-top-color: #634254; }
.storefront .footer a, .storefront .footer .footer-column a, .storefront .footer .footer-column ul li a { color: #e6dce1; }
.storefront .footer a:hover, .storefront .footer .footer-column a:hover, .storefront .footer .footer-column ul li a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.storefront .footer a:focus-visible { outline-color: #fff; }
.storefront .footer .text-accent2 { color: #e6dce1 !important; opacity: .55 !important; }
.storefront .footer hr { border-color: #b99da9; }
.storefront-main { display: flex; align-items: center; gap: 24px; padding-top: 18px; padding-bottom: 16px; }
.storefront-brand-row { flex-shrink: 0; }
.storefront-brand { display: flex; align-items: center; gap: 12px; color: var(--ff-plum); text-decoration: none; white-space: nowrap; }
.storefront-brand:hover { color: var(--ff-burgundy); }
.storefront-logo { width: 38px; height: 50px; object-fit: contain; flex-shrink: 0; }
.storefront-brand-name { font-family: "Playfair Display", Georgia, "Times New Roman", serif; font-weight: 500; font-size: 1.6rem; text-transform: uppercase; letter-spacing: .6px; line-height: 1.2; }
.storefront .storefront-home-intro { padding-block: 24px 12px; background: #fff; }
.storefront-home-title {
    margin: 0;
    color: var(--ff-plum);
    font-family: "Playfair Display", Georgia, "Times New Roman", serif;
    font-size: clamp(1.65rem, 2.5vw, 2.25rem);
    font-style: normal;
    font-weight: 500;
    line-height: 1.3;
    text-transform: none;
    letter-spacing: normal;
    text-wrap: balance;
}
.storefront .home-benefits { padding-top: 8px; padding-bottom: 16px; background: #fff; }
.home-benefits-grid { display: grid; grid-template-columns: repeat(var(--benefit-count), minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.home-benefit { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: start; gap: 12px; padding: 16px; border: 1px solid var(--ff-border); border-radius: 12px; background: #fff; }
.home-benefit-icon { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 9px; background: var(--ff-soft); color: var(--ff-burgundy); font-size: 1.4rem; }
.home-benefit-title { margin: 0 0 5px; color: var(--ff-plum); font-size: 1rem; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.home-benefit-description { margin: 0; color: #636066; font-size: .875rem; line-height: 1.45; overflow-wrap: anywhere; }
@media (max-width: 991.98px) {
    .home-benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-benefits-grid[data-benefit-count="1"] { grid-template-columns: 1fr; }
}
.storefront-tools { display: flex; align-items: center; flex: 1; min-width: 0; gap: 10px; }
.storefront-search { display: flex; flex: 1; min-width: 0; }
.storefront-search input { min-width: 0; width: 100%; border-radius: 6px 0 0 6px; border-color: #aaa0a5; }
.storefront-search button { border-radius: 0 6px 6px 0; flex-shrink: 0; }
.storefront-search input, .storefront-search button { min-height: 44px; }
.storefront-search button, .storefront #catalogDropdown { display: inline-flex; align-items: center; justify-content: center; }
.storefront #catalogDropdown { background: #fff; border-color: var(--ff-border); color: var(--ff-burgundy); min-height: 44px; }
.storefront #catalogDropdown:hover, .storefront #catalogDropdown.show { background: var(--ff-burgundy); border-color: var(--ff-burgundy); color: #fff; }
.storefront-desktop-phone { display: flex; flex-direction: column; flex-shrink: 0; color: var(--ff-burgundy); text-decoration: none; white-space: nowrap; margin: 0 4px; font-size: .95rem; font-weight: 700; }
.storefront-desktop-phone:hover { color: var(--ff-plum); }
.storefront-desktop-phone small { font-size: .75rem; color: #636066; font-weight: 400; }
.storefront-actions { display: flex; align-items: center; flex-shrink: 0; gap: 2px; }
.storefront .storefront-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; padding: 0; border: 0; color: var(--ff-burgundy); font-size: 1.35rem; }
.storefront .storefront-icon:hover, .storefront .storefront-icon.show { background: var(--ff-soft); color: var(--ff-plum); }
.storefront .storefront-mobile-phone { display: none; flex-direction: column; gap: 3px; width: auto; min-width: 64px; padding: 4px 6px; border: 1px solid var(--ff-border); border-radius: 8px; line-height: 1; }
.storefront-mobile-phone i { font-size: 1.2rem; }
.storefront-mobile-phone-label { font-size: .72rem; line-height: 1.2; }
.storefront-profile { min-width: 240px; }
.storefront .contact-fab .fab-main { color: #fff; background: var(--ff-muted); box-shadow: 0 4px 14px rgb(59 6 36 / 16%); opacity: 1; }
.storefront .contact-fab .fab-main[aria-expanded="true"] { color: #fff; background: var(--ff-plum); }
@media (hover: hover) {
    .storefront .contact-fab .fab-main:hover { color: #fff; background: var(--ff-plum); }
}
.storefront .contact-fab :is(.fab-item, .fab-inline), .storefront .contact-fab :is(.fab-item, .fab-inline):hover { color: #fff; }
.storefront .contact-fab .fab-menu { visibility: hidden; }
.storefront .contact-fab[data-open="true"] .fab-menu { visibility: visible; }
.storefront .contact-fab.is-hidden, .storefront .contact-fab.is-hidden .fab-menu { visibility: hidden; }
.storefront-progress { height: 3px; }
.storefront-progress .progress-bar { width: 100%; background-color: var(--ff-burgundy); }
/* Anchor only one edge: shared site.css sets left: 100% !important. */
.storefront .storefront-actions .badge-informer {
    top: 0 !important;
    left: auto !important;
    right: 0;
    transform: translate(10%, -15%) !important;
    width: max-content;
    min-width: 1.5em;
    white-space: nowrap;
    opacity: 80%;
    z-index:10;
}

.storefront .storefront-price-filter .form-label { color: #77666f; }
.storefront .storefront-price-filter .form-control {
    border-color: var(--ff-filter-border);
    color: #212529;
    /*min-height: 44px;*/
    /*font-size: 1rem;*/
    border-radius: 8px;
}
.storefront .storefront-price-filter .form-control::placeholder { color: #77666f; opacity: 1; }
.storefront .storefront-price-filter .form-control:focus { border-color: var(--ff-burgundy); }
.storefront .storefront-price-filter .btn { /*min-height: 44px; font-size: 1rem;*/ border-radius: 8px; }
.storefront .storefront-price-filter .btn-outline-secondary {
    --bs-btn-color: #715d67;
    --bs-btn-border-color: var(--ff-filter-border);
    --bs-btn-hover-color: var(--ff-plum);
    --bs-btn-hover-bg: var(--ff-soft);
    --bs-btn-hover-border-color: var(--ff-filter);
    --bs-btn-focus-shadow-rgb: 140, 18, 56;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--ff-plum);
    --bs-btn-active-border-color: var(--ff-plum);
}

.storefront .price-filter-fields { min-width: 0; }
.storefront .price-filter-action { padding-top: calc(1.3125rem + .275rem); }
.storefront .price-range { position: relative; height: 36px; margin-top: 8px; }
.storefront .price-range-track { position: absolute; inset: 16px 10px auto; height: 4px; border-radius: 2px; background: var(--ff-border); }
.storefront .price-range-track span { position: absolute; left: var(--price-range-start, 0%); right: calc(100% - var(--price-range-end, 100%)); height: 100%; border-radius: inherit; background: var(--ff-filter); }
.storefront .price-range input[type="range"] { position: absolute; inset: 0; width: 100%; height: 36px; margin: 0; padding: 0; appearance: none; -webkit-appearance: none; background: transparent; pointer-events: none; touch-action: pan-y; }
.storefront .price-range input[type="range"]::-webkit-slider-runnable-track { height: 4px; background: transparent; }
.storefront .price-range input[type="range"]::-moz-range-track { height: 4px; background: transparent; }
.storefront .price-range input[type="range"]::-webkit-slider-thumb { width: 20px; height: 20px; margin-top: -8px; appearance: none; -webkit-appearance: none; border: 2px solid var(--ff-filter); border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(59, 6, 36, .12); pointer-events: auto; cursor: grab; }
.storefront .price-range input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 2px solid var(--ff-filter); border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(59, 6, 36, .12); pointer-events: auto; cursor: grab; }
.storefront .price-range input[type="range"]:focus-visible { outline: none; }
.storefront .price-range input[type="range"]:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--ff-burgundy); outline-offset: 3px; }
.storefront .price-range input[type="range"]:focus-visible::-moz-range-thumb { outline: 2px solid var(--ff-burgundy); outline-offset: 3px; }
.storefront .price-range input[type="range"]:active::-webkit-slider-thumb { cursor: grabbing; }
.storefront .price-range input[type="range"]:active::-moz-range-thumb { cursor: grabbing; }

.storefront #service-info { background: var(--ff-plum); color: #fff; font-size: .8rem; padding: 8px 0; }
.service-menu-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; }
.service-menu-group { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; min-width: 0; }
.service-menu-start { margin-right: auto; }
.service-menu-end { margin-left: auto; }
.service-menu-center { margin-inline: auto; }
.storefront #service-info a { color: #fff; text-decoration: none; }
.storefront #service-info a:hover { text-decoration: underline; }
.service-menu-item { align-items: center; gap: 5px; }
.service-menu-item img { max-width: 24px; max-height: 24px; object-fit: contain; }

.storefront .category-scroll { gap: 9px; padding-top: 2px; padding-bottom: 13px; }
.storefront .category-item { border: 1px solid var(--ff-border); background: #fff; color: #212529; padding: 8px 16px; flex-shrink: 0; min-height: 40px; }
.storefront .category-item:hover { background: var(--ff-soft) !important; color: var(--ff-burgundy) !important; }
.storefront .category-item[aria-current="page"] { background: var(--ff-burgundy); border-color: var(--ff-burgundy); color: #fff; }
.storefront .category-item[aria-current="page"]:hover { background: var(--ff-plum) !important; color: #fff !important; }
/* Compact whole groups into available column space; JS measures their natural height. */
.storefront .catalog-grid { column-gap: 24px; }
.storefront .catalog-category .text-wrapper { min-width: 0; }
.storefront .catalog-category a { overflow-wrap: anywhere; }
@media (min-width: 768px) {
    .storefront .catalog-grid.catalog-columns { grid-auto-rows: 1px; row-gap: 0; grid-auto-flow: dense; align-items: start; }
    .storefront .catalog-columns .catalog-category { grid-row-end: span var(--catalog-rows, 1); padding-bottom: 20px; }
}
@media (max-width: 767.98px) {
    .storefront .catalog-menu { width: calc(100vw - 24px); min-width: 0; max-width: calc(100vw - 24px); }
    .storefront .catalog-grid { grid-template-columns: 1fr; }
}
.storefront #catalog-pagination .pagination {
    --bs-pagination-color: #636066;
    --bs-pagination-hover-color: var(--ff-burgundy);
    --bs-pagination-hover-bg: var(--ff-soft);
    --bs-pagination-hover-border-color: var(--ff-border);
    --bs-pagination-focus-color: var(--ff-burgundy);
    --bs-pagination-focus-bg: var(--ff-soft);
    --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(140, 18, 56, .16);
    --bs-pagination-active-bg: var(--ff-burgundy);
    --bs-pagination-active-border-color: var(--ff-burgundy);
}

@media (max-width: 1199.98px) {
    .storefront-main { flex-wrap: wrap; gap: 12px; padding-top: 12px; padding-bottom: 12px; }
    .storefront-brand-row { width: 100%; display: flex; align-items: center; justify-content: space-between; }
    .storefront-tools { flex-basis: 100%; }
    .storefront .storefront-mobile-phone { display: inline-flex; }
    .storefront-desktop-phone { display: none; }
}
@media (max-width: 575.98px) {
    .home-benefits-grid { gap: 8px; }
    .home-benefit { grid-template-columns: 24px minmax(0, 1fr); gap: 8px; padding: 12px; }
    .home-benefit-icon { width: 24px; height: 28px; border-radius: 6px; font-size: 1.25rem; }
    .home-benefit-description { font-size: .86rem; }
    .storefront-main { gap: 8px; }
    .storefront-brand { gap: 9px; }
    .storefront-logo { width: 26px; height: 35px; }
    .storefront-brand-name { font-size: 1.3rem; letter-spacing: 0; }
    .storefront-tools { gap: 4px; }
    .storefront #catalogDropdown { width: 40px; padding: 6px; }
    .storefront-search input { padding-inline: 7px; font-size: 16px; }
    .storefront-search button { width: 36px; min-height: 44px; padding: 6px; }
    .storefront-actions { gap: 0; }
    .storefront .category-scroll { gap: 7px; padding-bottom: 10px; }
    .storefront .category-item { padding: 7px 13px; }
    .service-menu-row, .service-menu-group { gap: 6px 12px; }
    /*.storefront .storefront-price-filter .col { flex: 0 0 50%; width: 50%; min-width: 0; }*/
    .storefront .price-filter-with-reset .price-filter-fields { flex-basis: 100%; }
    .storefront .price-filter-with-reset .price-filter-action { padding-top: 0; }
}
