/* CC 2026 — Public boutique only. Native HikaShop prices, stock, variants,
   quantities, cart actions and payment rules are deliberately unchanged. */
body.cc-shop-page {
    --cc-shop-ink: var(--cc-black);
    --cc-shop-purple: var(--cc-purple);
    --cc-shop-purple-dark: var(--cc-black);
    --cc-shop-lilac: var(--cc-background-alt);
    --cc-shop-mint: var(--cc-blue);
    --cc-shop-coral: var(--cc-red);
    --cc-shop-line: var(--cc-border);
}
body.cc-shop-page .container-component {
    color: var(--cc-text);
}
body.cc-shop-page :is(.container-component, .cc-cart-toast) :is(a, button, input, select):focus-visible {
    outline: 2px solid var(--cc-purple);
    outline-offset: 4px;
}
/* Remove only Joomla's breadcrumb across the store and its product pages.
   HikaShop's checkout progress/navigation is intentionally left intact. */
body.cc-shop-page .mod-breadcrumbs__wrapper {
    display: none;
}
body.cc-shop-page .cc-shop-trust {
    color: var(--cc-text);
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body.cc-shop-page .cc-shop-trust strong {
    color: var(--cc-black);
    font-weight: 600;
}
body.cc-shop-page .cc-shop-trust small {
    color: var(--cc-text-secondary);
}
body.cc-shop-page .cc-shop-trust > i {
    color: var(--cc-black);
    background: var(--cc-blue);
}
body.cc-shop-page .cc-shop-trust-item:nth-child(2) .cc-shop-trust > i {
    color: var(--cc-white);
    background: var(--cc-purple);
}
body.cc-shop-page .cc-shop-trust-item:nth-child(3) .cc-shop-trust > i {
    color: var(--cc-black);
    background: var(--cc-yellow);
}

/* Retain the existing hero/featured product composition, without a purple banner. */
body.cc-shop-page .cc-shop-hero {
    color: var(--cc-text);
    background: var(--cc-white);
    border: 1px solid var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body.cc-shop-page .cc-shop-hero::before,
body.cc-shop-page .cc-shop-hero::after,
body.cc-shop-page .cc-shop-hero .cc-shop-eyebrow::before,
body.cc-shop-page .cc-shop-feature__visual::after {
    content: none;
}
body.cc-shop-page .cc-shop-eyebrow {
    color: var(--cc-purple);
    font-weight: 600;
    letter-spacing: .08em;
}
body.cc-shop-page .cc-shop-hero h1 {
    color: var(--cc-black);
    font-weight: var(--cc-weight-hero);
    letter-spacing: -.035em;
    line-height: 1.04;
}
body.cc-shop-page :is(.cc-shop-hero__lead, .cc-shop-feature__meta),
body.cc-shop-page .cc-shop-heading > p:last-child {
    color: var(--cc-text-secondary);
}
body.cc-shop-page .cc-shop-collections a {
    color: var(--cc-purple);
    background: var(--cc-white);
    border-color: var(--cc-purple);
    border-radius: var(--cc-radius-button);
    font-weight: 500;
}
body.cc-shop-page .cc-shop-collections a:is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: var(--cc-purple);
    border-color: var(--cc-purple);
    transform: none;
}
body.cc-shop-page .cc-shop-feature {
    color: var(--cc-text);
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body.cc-shop-page .cc-shop-feature:is(:hover, :focus-visible) {
    color: var(--cc-text);
    border-color: var(--cc-purple);
    box-shadow: var(--cc-shadow-soft);
    transform: none;
}
body.cc-shop-page .cc-shop-feature__visual {
    background: var(--cc-background-alt);
}
body.cc-shop-page .cc-shop-feature__visual img,
body.cc-shop-page .cc-shop-feature:is(:hover, :focus-visible) .cc-shop-feature__visual img {
    filter: none;
    transform: none;
}
body.cc-shop-page .cc-shop-feature__label {
    color: var(--cc-white);
    background: var(--cc-purple);
    box-shadow: none;
    font-weight: 600;
    letter-spacing: .06em;
}
body.cc-shop-page .cc-shop-feature__body {
    background: var(--cc-white);
    border-color: var(--cc-border);
}
body.cc-shop-page .cc-shop-feature__collection {
    color: var(--cc-text-secondary);
    font-weight: 500;
    letter-spacing: .08em;
}
body.cc-shop-page .cc-shop-feature strong {
    color: var(--cc-black);
    font-weight: 600;
    letter-spacing: -.02em;
}
body.cc-shop-page .cc-shop-feature__link {
    color: var(--cc-purple);
    font-weight: 600;
}
body.cc-shop-page .cc-shop-feature__arrow,
body.cc-shop-page .cc-shop-feature:is(:hover, :focus-visible) .cc-shop-feature__arrow {
    color: var(--cc-purple);
    background: transparent;
    transform: none;
}
body.cc-shop-page .cc-shop-heading h2,
body.cc-shop-page.layout-listing .hikashop_products_listing_main > h2 {
    color: var(--cc-black);
    font-weight: 600;
    letter-spacing: -.025em;
    line-height: 1.08;
}
body.cc-shop-page.layout-listing .hikashop_products_listing_main > h2::before {
    color: var(--cc-purple);
    font-weight: 600;
    letter-spacing: .08em;
}

/* Product covers stay intact: neutral supports, existing aspect ratios and contain-fit. */
body.cc-shop-page.layout-listing .hikashop_subcontainer {
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body.cc-shop-page.layout-listing .hikashop_subcontainer:hover {
    border-color: var(--cc-purple);
    box-shadow: var(--cc-shadow-soft);
    transform: none;
}
body.cc-shop-page.layout-listing .hikashop_product_image_subdiv {
    background: var(--cc-background-alt);
}
body.cc-shop-page.layout-listing .hikashop_product_listing_image,
body.cc-shop-page.layout-listing .hikashop_subcontainer:hover .hikashop_product_listing_image {
    filter: none;
    transform: none;
}
body.cc-shop-page.layout-listing .hikashop_product_name > a {
    color: var(--cc-black);
    font-weight: 600;
    letter-spacing: -.015em;
}
body.cc-shop-page.layout-listing .hikashop_product_name > a::after {
    color: var(--cc-purple);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
}
body.cc-shop-page.layout-listing .hikashop_product_price_full {
    color: var(--cc-black);
    font-weight: 600;
}
body.cc-shop-page.layout-listing .hikashop_products_pagination_bottom .list-footer {
    background: var(--cc-white);
    border: 1px solid var(--cc-border);
}
body.cc-shop-page.layout-listing .hikashop_pagination .page-link {
    color: var(--cc-purple);
    background: var(--cc-white);
    border-color: var(--cc-border);
}
body.cc-shop-page.layout-listing .hikashop_pagination :is(.active .page-link, .page-link:hover, .page-link:focus-visible) {
    color: var(--cc-white);
    background: var(--cc-purple);
    border-color: var(--cc-purple);
}

/* Product details: clear title, distinct price and a single strong purchase action. */
body.cc-shop-page .cc-shop-back {
    color: var(--cc-purple);
    font-weight: 500;
}
body.cc-shop-page .cc-shop-back:is(:hover, :focus-visible) {
    color: var(--cc-black);
}
body.cc-shop-page .cc-shop-product-layout .hikashop_product_top_part h1 {
    color: var(--cc-black);
    font-weight: var(--cc-weight-hero);
    letter-spacing: -.035em;
    line-height: 1.06;
}
body.cc-shop-page .cc-shop-product-layout .hikashop_product_top_part h1::before {
    color: var(--cc-purple);
    font-weight: 600;
    letter-spacing: .08em;
}
body.cc-shop-page .cc-shop-product-layout #hikashop_product_left_part {
    background: var(--cc-background-alt);
    border-color: var(--cc-border);
}
body.cc-shop-page .cc-shop-product-layout #hikashop_main_image {
    filter: none;
}
body.cc-shop-page .cc-shop-product-layout #hikashop_product_right_part,
body.cc-shop-page .cc-shop-product-layout #hikashop_product_bottom_part {
    color: var(--cc-text-secondary);
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
}
body.cc-shop-page .cc-shop-product-layout #hikashop_product_price_main {
    color: var(--cc-purple);
    font-weight: 600;
    letter-spacing: -.02em;
}
body.cc-shop-page .cc-shop-product-layout .hikashop_product_stock_count {
    color: var(--cc-purple);
    background: var(--cc-purple-soft);
    font-weight: 500;
}
body.cc-shop-page .cc-shop-product-layout .hikashop_product_stock_count::before {
    background: var(--cc-purple);
}
body.cc-shop-page .cc-shop-product-layout .hikacart {
    color: var(--cc-white) !important;
    background: var(--cc-black) !important;
    border-radius: var(--cc-radius-button) !important;
    box-shadow: none;
    font-weight: 600;
}
body.cc-shop-page .cc-shop-product-layout .hikacart:is(:hover, :focus-visible) {
    background: var(--cc-purple) !important;
    box-shadow: none;
    transform: none;
}
body.cc-shop-page .cc-shop-product-layout :is(select, .form-select, .hikashop_product_quantity_change_div_leftright) {
    color: var(--cc-text);
    background-color: var(--cc-white);
    border-color: var(--cc-border-control);
    box-shadow: none;
}
body.cc-shop-page .cc-shop-product-layout .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field {
    color: var(--cc-black);
    border-right-color: var(--cc-border) !important;
    border-left-color: var(--cc-border) !important;
    font-weight: 500;
}
body.cc-shop-page .cc-shop-product-layout .hikashop_product_quantity_field_change {
    color: var(--cc-purple);
    background: var(--cc-white) !important;
    border-color: var(--cc-border);
}
body.cc-shop-page .cc-shop-product-layout .hikashop_product_quantity_field_change:is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: var(--cc-purple) !important;
}

/* Keep the quantity numeral optically centered; leave the +/- controls intact. */
body.cc-shop-page .cc-shop-product-layout .hikashop_product_quantity_change_div_leftright .hikashop_product_quantity_field {
    display: block;
    box-sizing: border-box !important;
    flex: 0 0 3rem;
    width: 3rem !important;
    min-width: 3rem !important;
    max-width: 3rem;
    height: 3rem !important;
    min-height: 3rem !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #161412 !important;
    font-family: var(--cc-font-family, "Sora CC", "Sora Fallback", system-ui, sans-serif) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    font-variant-numeric: tabular-nums;
    letter-spacing: normal;
    line-height: 1 !important;
    text-align: center !important;
    text-indent: 0 !important;
    vertical-align: middle;
    appearance: none;
}
body.cc-shop-page .cc-shop-product-layout #hikashop_product_description_main :is(h1, h1 *, h2, h3) {
    color: var(--cc-black) !important;
    font-weight: 600;
    letter-spacing: -.02em;
}
body.cc-shop-page .cc-shop-product-layout .cc-product-lead {
    color: var(--cc-black);
    font-weight: 500;
    letter-spacing: normal;
}
body.cc-shop-page .cc-shop-product-layout .cc-product-summary {
    color: var(--cc-text-secondary);
    border-color: var(--cc-blue);
    font-weight: 400;
}
body.cc-shop-page .cc-shop-product-layout .cc-product-copy h2::before {
    background: var(--cc-blue);
    border-radius: 50%;
    transform: none;
}
body.cc-shop-page .cc-shop-product-layout .cc-product-copy a {
    color: var(--cc-purple);
    font-weight: 500;
    text-decoration-color: currentColor;
}
body.cc-shop-page .cc-shop-product-layout .cc-product-copy a:is(:hover, :focus-visible) {
    color: var(--cc-black);
}
body.cc-shop-page .cc-shop-product-layout .cc-product-copy ul:not(.cc-product-tracklist) > li::before {
    background: var(--cc-blue);
    border: 0;
    box-shadow: none;
}
body.cc-shop-page .cc-shop-product-layout .cc-product-copy ol:not(.cc-product-tracklist) > li,
body.cc-shop-page .cc-shop-product-layout .cc-product-tracklist > li {
    color: var(--cc-text);
    background: var(--cc-background-alt);
    border-color: var(--cc-border);
}
body.cc-shop-page .cc-shop-product-layout .cc-product-tracklist > li::before {
    color: var(--cc-purple);
    background: var(--cc-purple-soft);
    font-weight: 500;
}
body.cc-shop-page .cc-shop-product-layout .cc-product-video {
    background: var(--cc-black);
    box-shadow: none;
}
body.cc-shop-page .cc-shop-product-trust {
    color: var(--cc-text-secondary);
    background: var(--cc-background-alt);
}
body.cc-shop-page .cc-shop-product-trust strong {
    color: var(--cc-black);
    font-weight: 500;
}

/* Cart shortcut and AJAX confirmation share the same visual vocabulary. */
body.cc-shop-page .cc-shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0 24px; }
body.cc-shop-page .cc-shop-toolbar--listing { justify-content: flex-end; }
body.cc-shop-page.layout-show .cc-shop-toolbar .cc-store-back { margin: 0; }
body.cc-shop-page .cc-shop-toolbar > .cc-shop-cart { margin: 0 0 0 auto; padding: 0; flex: 0 1 auto; }
body.cc-shop-page .cc-shop-toolbar .hikashop_cart_module { width: auto; margin: 0; padding: 0; }
body.cc-shop-page .cc-shop-toolbar .cc-mini-cart { min-height: 44px; gap: 10px; padding: 5px 6px 5px 12px; border: 1px solid #161412; border-radius: 999px; }
body.cc-shop-page .cc-shop-toolbar .cc-mini-cart__icon { width: 22px; height: 22px; font-size: 16px; }
body.cc-shop-page .cc-shop-toolbar .cc-mini-cart__label { font-size: 10px; letter-spacing: .03em; }
body.cc-shop-page .cc-shop-toolbar .cc-mini-cart__total { font-size: 13px; }
body.cc-shop-page .cc-shop-toolbar .cc-mini-cart__action { min-height: 30px; padding: 0 12px; color: #161412; }
body.cc-shop-page [data-position="cc-main-top-01"]:empty { display: none; }
@media (max-width: 575.98px) {
    body.cc-shop-page .cc-shop-toolbar { gap: 12px; margin-top: 12px; }
    body.cc-shop-page .cc-shop-toolbar > .cc-shop-cart { margin-left: auto; }
}
body.cc-shop-page .cc-shop-cart :is(.hikashop_small_cart_checkout_link, .hikashop_cart_input_button) {
    color: var(--cc-white);
    background: #E30613;
    border-color: #E30613;
    border-radius: var(--cc-radius-button);
    font-weight: 600;
    box-shadow: none;
}
body.cc-shop-page .cc-shop-cart :is(.hikashop_small_cart_checkout_link, .hikashop_cart_input_button):is(:hover, :focus-visible) {
    color: var(--cc-white);
    background: #BE0510;
    border-color: #BE0510;
    box-shadow: none;
    transform: none;
}
body.cc-shop-page .cc-mini-cart__icon {
    color: var(--cc-white);
    background: transparent;
}
body.cc-shop-page .cc-mini-cart__label {
    color: var(--cc-white);
    font-weight: 500;
}
body.cc-shop-page .cc-mini-cart__total {
    font-weight: 600;
}
body.cc-shop-page .cc-mini-cart__action {
    color: var(--cc-black);
    background: var(--cc-white);
    font-weight: 600;
}
body.cc-shop-page .cc-cart-toast {
    color: var(--cc-text);
    background: var(--cc-white);
    border-color: var(--cc-border);
    box-shadow: var(--cc-shadow-soft);
    backdrop-filter: none;
}
body.cc-shop-page .cc-cart-toast__icon {
    color: var(--cc-black);
    background: var(--cc-blue);
    box-shadow: none;
}
body.cc-shop-page .cc-cart-toast__copy strong {
    color: var(--cc-black);
    font-weight: 600;
}
body.cc-shop-page .cc-cart-toast__copy span,
body.cc-shop-page .cc-cart-toast > button {
    color: var(--cc-text-secondary);
}
body.cc-shop-page .cc-cart-toast > a {
    color: var(--cc-white);
    background: var(--cc-black);
    font-weight: 600;
}
body.cc-shop-page .cc-cart-toast > a:is(:hover, :focus-visible) {
    background: #BE0510;
}
/* Add-to-cart confirmation: discreet, legible and clear of the sticky header. */
body.cc-shop-page .cc-cart-toast {
    top: auto;
    right: clamp(1rem, 2.5vw, 2rem);
    bottom: clamp(1rem, 2.5vw, 2rem);
    color: #161412;
    background: #FFFFFF;
    border: 1px solid #E7E7E5;
    border-left: 4px solid #E30613;
    border-radius: 16px;
    box-shadow: 0 12px 36px rgb(22 20 18 / 14%);
    backdrop-filter: none;
    transform: translate3d(0, .5rem, 0);
}
body.cc-shop-page .cc-cart-toast.is-visible { transform: translate3d(0, 0, 0); }
body.cc-shop-page .cc-cart-toast__icon {
    width: 42px;
    height: 42px;
    color: #E30613;
    background: #F8F8F6;
    border: 1px solid #E7E7E5;
    border-radius: 50%;
    box-shadow: none;
}
body.cc-shop-page .cc-cart-toast__copy strong { color: #161412; font-size: 14px; font-weight: 600; }
body.cc-shop-page .cc-cart-toast__copy span { color: #625F5B; font-size: 12px; }
body.cc-shop-page .cc-cart-toast > a {
    min-height: 38px;
    justify-content: center;
    padding: 0 14px;
    color: #FFFFFF;
    background: #E30613;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}
body.cc-shop-page .cc-cart-toast > button { color: #625F5B; }
body.cc-shop-page .cc-cart-toast > button:hover,
body.cc-shop-page .cc-cart-toast > button:focus-visible { color: #161412; background: #F3F4F2; }
body.cc-shop-page :is(.container-component, .cc-cart-toast) :is(a, button, input, select):focus-visible {
    outline-color: #0D7995;
}

/* HikaShop's edit-in-cart popup (the iframe itself has its own small
   component stylesheet so native option and variant behavior is preserved). */
body.cc-shop-page #sbox-overlay { background: rgba(22, 20, 18, .58) !important; opacity: 1 !important; }
body.cc-shop-page #sbox-window:has(iframe[src*="task=product_edit"]) {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    box-sizing: border-box;
    width: min(576px, calc(100vw - 28px)) !important;
    height: min(520px, calc(100dvh - 28px)) !important;
    max-width: calc(100vw - 28px);
    max-height: calc(100dvh - 28px);
    padding: 0 !important;
    overflow: hidden;
    background: #FFFFFF !important;
    border: 1px solid #E7E7E5 !important;
    border-radius: 18px;
    box-shadow: 0 22px 64px rgba(22, 20, 18, .22) !important;
    transform: translate(-50%, -50%);
}
body.cc-shop-page #sbox-content:has(iframe[src*="task=product_edit"]) {
    width: 100% !important;
    height: 100% !important;
    overflow: auto;
    background: #FFFFFF;
    border-radius: inherit;
}
body.cc-shop-page #sbox-content iframe[src*="task=product_edit"] {
    display: block;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}
body.cc-shop-page .modal:has(iframe[src*="task=product_edit"]) .modal-dialog {
    width: min(576px, calc(100vw - 28px));
    max-width: 576px;
    margin: 14px auto;
}
body.cc-shop-page .modal:has(iframe[src*="task=product_edit"]) .modal-content {
    overflow: hidden;
    background: #FFFFFF;
    border: 1px solid #E7E7E5;
    border-radius: 18px;
    box-shadow: 0 22px 64px rgba(22, 20, 18, .22);
}
body.cc-shop-page .modal:has(iframe[src*="task=product_edit"]) .modal-body { padding: 0; }
body.cc-shop-page .modal:has(iframe[src*="task=product_edit"]) iframe {
    display: block;
    width: 100%;
    height: min(520px, calc(100dvh - 64px));
    border: 0;
}

/* Standalone cart view: HikaShop renders the quantity dropdown directly in
   the table cell, separately from the checkout quantity component. */
body.cc-shop-page .hikashop_show_cart_quantity_td {
    vertical-align: middle;
    white-space: nowrap;
}
body.cc-shop-page .hikashop_show_cart_quantity_td > select {
    display: inline-block;
    width: auto !important;
    min-width: 64px;
    max-width: 92px;
    min-height: 42px;
    height: 42px;
    padding: 0 26px 0 12px;
    color: #161412;
    background-color: #FFFFFF;
    border: 1px solid #D9D8D5;
    border-radius: 999px;
    box-shadow: none;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    text-align-last: center;
    vertical-align: middle;
}
body.cc-shop-page .hikashop_show_cart_quantity_td > .hikashop_show_cart_quantity {
    display: inline-block;
    width: 64px;
    min-width: 64px;
    min-height: 42px;
    height: 42px;
    padding: 0 8px;
    color: #161412;
    background: #FFFFFF;
    border: 1px solid #D9D8D5;
    border-radius: 999px;
    box-shadow: none;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    vertical-align: middle;
}
body.cc-shop-page .hikashop_show_cart_quantity_td .hikashop_cart_product_quantity_refresh {
    display: inline-block;
    float: none;
    margin: 0 0 0 6px;
    vertical-align: middle;
}
body.cc-shop-page .hikashop_show_cart_quantity_td .hikashop_cart_product_quantity_refresh a {
    display: inline-grid;
    width: 36px;
    height: 36px;
    color: #625F5B;
    background: #FFFFFF;
    border: 1px solid #E7E7E5;
    border-radius: 50%;
    place-items: center;
}
body.cc-shop-page .hikashop_show_cart_quantity_td .hikashop_cart_product_quantity_refresh a:hover {
    color: #E30613;
    border-color: #E30613;
}
body.cc-shop-page .hikashop_show_cart_quantity_td .hikashop_cart_product_quantity_refresh img {
    display: block;
    width: 14px;
    height: 14px;
    opacity: .72;
}

@media (max-width: 575.98px) {
    body.cc-shop-page .cc-cart-toast { right: .75rem; bottom: max(.75rem, env(safe-area-inset-bottom)); left: .75rem; width: auto; }
    body.cc-shop-page #sbox-window:has(iframe[src*="task=product_edit"]) {
        width: calc(100vw - 20px) !important;
        height: min(480px, calc(100dvh - 20px)) !important;
        max-width: calc(100vw - 20px);
        max-height: calc(100dvh - 20px);
        border-radius: 15px;
    }
    body.cc-shop-page .modal:has(iframe[src*="task=product_edit"]) .modal-dialog {
        width: calc(100vw - 20px);
        margin: 10px auto;
    }
}
@media (prefers-reduced-motion: reduce) {
    body.cc-shop-page .cc-cart-toast { transition: none; }
}
