/*
 * ITMSFT Group Shop 2026
 * Child theme styles. All rules are intentionally scoped to Shop-Script.
 */

body.app-shop {
    --shop-bg: var(--theme-bg, #03050c);
    --shop-panel: var(--theme-panel, #10131d);
    --shop-text: var(--theme-text, #f6f7fb);
    --shop-muted: var(--theme-muted, #9297a5);
    --shop-line: var(--theme-line, #2a2e38);
    --shop-accent: var(--theme-accent, #8ba7ff);
    --shop-accent-rgb: 139, 167, 255;
    --shop-success: #69efb2;
    --shop-danger: #ff7f91;
    --shop-warning: #ffd18a;
    --shop-status-available: var(--shop-success);
    --shop-status-expected: var(--shop-warning);
    --shop-status-unavailable: var(--shop-danger);
    --shop-panel-soft: color-mix(in srgb, var(--shop-panel) 82%, transparent);
    --shop-panel-strong: color-mix(in srgb, var(--shop-panel) 94%, #050712);
    --shop-glass: rgba(17, 21, 33, 0.7);
    --shop-glass-strong: rgba(13, 17, 28, 0.9);
    --shop-glass-line: rgba(255, 255, 255, 0.14);
    --shop-shadow: 0 30px 90px rgba(0, 0, 0, 0.32);
    --shop-shadow-soft: 0 18px 48px rgba(0, 0, 0, 0.2);
    --shop-radius-xl: 24px;
    --shop-radius-lg: 20px;
    --shop-radius-md: 16px;
    --shop-radius-sm: 12px;
    --shop-space-section: clamp(52px, 5vw, 84px);
    --shop-gutter: clamp(16px, 2.6vw, 48px);
    --shop-container: min(var(--theme-container, 1840px), calc(100vw - (2 * var(--shop-gutter))));
    --shop-transition: 220ms cubic-bezier(0.22, 1, 0.36, 1);
    /* Shop typography scale: display -> h1 -> h2 -> h3 -> body -> meta. */
    --shop-type-display: clamp(2.75rem, 3.6vw, 4rem);
    --shop-type-h1: clamp(2rem, 2.2vw, 2.75rem);
    --shop-type-h2: clamp(1.625rem, 1.7vw, 2.125rem);
    --shop-type-h3: clamp(1rem, 1vw, 1.125rem);
    --shop-type-body-lg: 1.0625rem;
    --shop-type-body: 1rem;
    --shop-type-control: 0.9375rem;
    --shop-type-label: 0.8125rem;
    --shop-type-meta: 0.75rem;
    color: var(--shop-text);
    background: var(--shop-bg);
}

/* Debug typography hierarchy (disabled by default).
body.app-shop :is(h1, h2, h3) { outline: 1px solid rgba(139, 167, 255, 0.45); }
*/

body.app-shop *,
body.app-shop *::before,
body.app-shop *::after {
    box-sizing: border-box;
}

body.app-shop img {
    max-width: 100%;
    height: auto;
}

body.app-shop :where(h1) {
    font-size: var(--shop-type-h1);
    font-weight: 440;
    line-height: 1.07;
    letter-spacing: -0.035em;
}

body.app-shop :where(h2) {
    font-size: var(--shop-type-h2);
    font-weight: 470;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

body.app-shop :where(h3) {
    font-size: var(--shop-type-h3);
    font-weight: 620;
    line-height: 1.2;
    letter-spacing: -0.025em;
}

body.app-shop button,
body.app-shop input,
body.app-shop select,
body.app-shop textarea {
    font: inherit;
}

body.app-shop button,
body.app-shop a {
    -webkit-tap-highlight-color: transparent;
}

body.app-shop .shop-app {
    min-width: 0;
    overflow: clip;
    color: var(--shop-text);
    background:
        radial-gradient(circle at 76% 2%, rgba(var(--shop-accent-rgb), 0.08), transparent 30rem),
        var(--shop-bg);
}

body.app-shop .shop-container,
body.app-shop .shop-section__inner,
body.app-shop .shop-page__inner {
    width: var(--shop-container);
    max-width: 100%;
    margin-inline: auto;
}

body.app-shop .shop-section {
    position: relative;
    padding-block: var(--shop-space-section);
}

body.app-shop .shop-section + .shop-section {
    border-top: 1px solid color-mix(in srgb, var(--shop-line) 72%, transparent);
}

body.app-shop .shop-section__header,
body.app-shop .product-rail__header,
body.app-shop .shop-page__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
    min-width: 0;
    margin-bottom: clamp(28px, 3vw, 48px);
}

body.app-shop .shop-section__heading,
body.app-shop .product-rail__title,
body.app-shop .shop-page__title,
body.app-shop .category-title,
body.app-shop .search-title {
    max-width: 18ch;
    margin: 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h1);
    font-weight: 430;
    line-height: 1.04;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

body.app-shop .shop-section__copy,
body.app-shop .shop-page__lead,
body.app-shop .category-description,
body.app-shop .search-summary {
    max-width: 58ch;
    margin: 0;
    color: var(--shop-muted);
    font-size: var(--shop-type-body-lg);
    line-height: 1.65;
}

body.app-shop .shop-eyebrow,
body.app-shop .shop-label,
body.app-shop .product-card__meta,
body.app-shop .product-detail__label {
    margin: 0;
    color: color-mix(in srgb, var(--shop-muted) 84%, var(--shop-text));
    font-size: var(--shop-type-meta);
    font-weight: 720;
    line-height: 1.2;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

body.app-shop .shop-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body.app-shop .shop-liquid,
body.app-shop .shop-panel,
body.app-shop .shop-direction-card,
body.app-shop .product-card,
body.app-shop .cloud-promo,
body.app-shop .service-cta,
body.app-shop .shop-page__panel,
body.app-shop .shop-search-overlay__dialog {
    border: 1px solid var(--shop-glass-line);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.015) 48%),
        var(--shop-glass);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        var(--shop-shadow-soft);
    -webkit-backdrop-filter: blur(24px) saturate(135%);
    backdrop-filter: blur(24px) saturate(135%);
}

body.app-shop .shop-button,
body.app-shop .shop-icon-button,
body.app-shop .shop-header-tool,
body.app-shop .product-card__button,
body.app-shop .product-detail__button,
body.app-shop .cart-checkout-button,
body.app-shop .shop-form button[type="submit"],
body.app-shop .shop-form input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 24px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--shop-text);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.025)),
        rgba(17, 21, 33, 0.72);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.11),
        0 10px 28px rgba(0, 0, 0, 0.2);
    font-size: 0.9375rem;
    font-weight: 650;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition:
        border-color var(--shop-transition),
        background-color var(--shop-transition),
        box-shadow var(--shop-transition),
        color var(--shop-transition),
        opacity var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-button:hover,
body.app-shop .shop-icon-button:hover,
body.app-shop .shop-header-tool:hover,
body.app-shop .product-card__button:hover,
body.app-shop .product-detail__button:hover,
body.app-shop .cart-checkout-button:hover,
body.app-shop .shop-form button[type="submit"]:hover,
body.app-shop .shop-form input[type="submit"]:hover {
    border-color: rgba(255, 255, 255, 0.42);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.17), rgba(var(--shop-accent-rgb), 0.08)),
        rgba(20, 25, 40, 0.84);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 16px 38px rgba(0, 0, 0, 0.28);
    transform: translateY(-2px);
}

body.app-shop .shop-button:active,
body.app-shop .shop-icon-button:active,
body.app-shop .shop-header-tool:active,
body.app-shop .product-card__button:active,
body.app-shop .product-detail__button:active,
body.app-shop .cart-checkout-button:active {
    transform: translateY(0);
}

body.app-shop .shop-button:focus-visible,
body.app-shop .shop-icon-button:focus-visible,
body.app-shop .shop-header-tool:focus-visible,
body.app-shop .product-card__button:focus-visible,
body.app-shop .product-detail__button:focus-visible,
body.app-shop .shop-form :is(input, select, textarea, button):focus-visible,
body.app-shop .shop-app a:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--shop-accent) 78%, white);
    outline-offset: 3px;
}

body.app-shop .shop-button[disabled],
body.app-shop .shop-icon-button[disabled],
body.app-shop .shop-header-tool[disabled],
body.app-shop .product-card__button[disabled],
body.app-shop .product-detail__button[disabled],
body.app-shop [aria-disabled="true"] {
    opacity: 0.46;
    cursor: not-allowed;
    pointer-events: none;
    transform: none;
}

body.app-shop .shop-button--primary,
body.app-shop .product-card__button,
body.app-shop .product-detail__button--primary,
body.app-shop .cart-checkout-button {
    border-color: color-mix(in srgb, var(--shop-accent) 52%, white 10%);
    color: #07101f;
    background: linear-gradient(135deg, #f9fbff, color-mix(in srgb, var(--shop-accent) 58%, white));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.8),
        0 14px 34px rgba(var(--shop-accent-rgb), 0.18);
}

body.app-shop .shop-button--primary:hover,
body.app-shop .product-card__button:hover,
body.app-shop .product-detail__button--primary:hover,
body.app-shop .cart-checkout-button:hover {
    color: #030813;
    background: linear-gradient(135deg, #fff, color-mix(in srgb, var(--shop-accent) 72%, white));
}

body.app-shop .shop-icon-button,
body.app-shop .shop-header-tool {
    position: relative;
    flex: 0 0 auto;
    width: 48px;
    min-height: 48px;
    padding: 0;
}

body.app-shop .shop-icon-button svg,
body.app-shop .shop-header-tool svg {
    width: 20px;
    height: 20px;
    stroke-width: 1.7;
}

body.app-shop .shop-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--shop-text);
    font-size: 0.9375rem;
    font-weight: 620;
    line-height: 1.25;
    text-decoration: none;
}

body.app-shop .shop-link::after {
    width: 0;
    height: 1px;
    background: currentColor;
    content: "";
    transition: width var(--shop-transition);
}

body.app-shop .shop-link:hover::after {
    width: 28px;
}

/* Parent header integration */
body.app-shop .site-header .header-actions {
    gap: 10px;
}

body.app-shop .shop-header-tools {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

body.app-shop .shop-header-tools__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

body.app-shop .shop-header-tool {
    width: 44px;
    min-height: 44px;
    border-color: rgba(255, 255, 255, 0.17);
    background: rgba(17, 21, 33, 0.68);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    -webkit-backdrop-filter: blur(18px) saturate(130%);
    backdrop-filter: blur(18px) saturate(130%);
}

body.app-shop .shop-header-tool__count,
body.app-shop [data-cart-count],
body.app-shop [data-wishlist-count],
body.app-shop [data-compare-count] {
    position: absolute;
    top: -4px;
    right: -4px;
    display: grid;
    min-width: 20px;
    height: 20px;
    padding-inline: 5px;
    place-items: center;
    border: 2px solid var(--shop-bg);
    border-radius: 999px;
    color: #07101f;
    background: color-mix(in srgb, var(--shop-accent) 60%, white);
    font-size: 0.6875rem;
    font-weight: 800;
    line-height: 1;
}

body.app-shop .shop-header-tool__count:empty,
body.app-shop [data-cart-count]:empty,
body.app-shop [data-wishlist-count]:empty,
body.app-shop [data-compare-count]:empty,
body.app-shop [data-cart-count="0"],
body.app-shop [data-wishlist-count="0"],
body.app-shop [data-compare-count="0"] {
    display: none;
}

/* Fixed product search */
body.app-shop.is-shop-search-open,
body.app-shop.shop-search-open {
    overflow: hidden;
}

body.app-shop .shop-search-overlay {
    position: fixed;
    z-index: 1500;
    inset: 0;
    display: grid;
    padding: clamp(16px, 4vw, 64px);
    place-items: start center;
    overflow: auto;
    background: rgba(2, 4, 10, 0.72);
    -webkit-backdrop-filter: blur(22px) saturate(115%);
    backdrop-filter: blur(22px) saturate(115%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity var(--shop-transition),
        visibility var(--shop-transition);
}

body.app-shop .shop-search-overlay.is-open,
body.app-shop .shop-search-overlay[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

body.app-shop .shop-search-overlay__dialog {
    position: relative;
    width: min(960px, 100%);
    margin-top: clamp(56px, 12vh, 144px);
    padding: clamp(24px, 4vw, 56px);
    border-radius: var(--shop-radius-xl);
    background:
        radial-gradient(circle at 78% 0, rgba(var(--shop-accent-rgb), 0.13), transparent 22rem),
        linear-gradient(150deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.018)),
        var(--shop-glass-strong);
}

body.app-shop .shop-search-overlay__close {
    position: absolute;
    top: 20px;
    right: 20px;
}

body.app-shop .shop-search-overlay__title {
    max-width: 14ch;
    margin: 0 64px 32px 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 430;
    line-height: 1.04;
    letter-spacing: -0.04em;
}

body.app-shop .shop-search-overlay__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
}

body.app-shop .shop-search-overlay__input {
    width: 100%;
    min-height: 64px;
    padding: 0 22px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 18px;
    outline: none;
    color: var(--shop-text);
    background: rgba(2, 5, 13, 0.62);
    font-size: clamp(1rem, 1.4vw, 1.2rem);
}

body.app-shop .shop-search-overlay__input::placeholder {
    color: color-mix(in srgb, var(--shop-muted) 82%, transparent);
}

body.app-shop .shop-search-overlay__input:focus {
    border-color: color-mix(in srgb, var(--shop-accent) 70%, white 12%);
    box-shadow: 0 0 0 4px rgba(var(--shop-accent-rgb), 0.12);
}

body.app-shop .shop-search-overlay__results {
    display: grid;
    gap: 10px;
    margin-top: 24px;
}

body.app-shop .shop-search-suggestion {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    min-width: 0;
    padding: 12px;
    border: 1px solid transparent;
    border-radius: 16px;
    color: var(--shop-text);
    text-decoration: none;
    transition:
        border-color var(--shop-transition),
        background-color var(--shop-transition);
}

body.app-shop .shop-search-suggestion:hover {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.055);
}

body.app-shop .shop-search-suggestion__image {
    width: 68px;
    aspect-ratio: 1;
    object-fit: contain;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.94);
}

body.app-shop .shop-search-suggestion__name {
    min-width: 0;
    overflow: hidden;
    font-weight: 630;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Store hero */
body.app-shop .shop-hero {
    position: relative;
    width: var(--shop-container);
    min-height: clamp(440px, 37vw, 680px);
    margin: clamp(20px, 2.4vw, 40px) auto 0;
    overflow: hidden;
    isolation: isolate;
    border: 1px solid color-mix(in srgb, var(--shop-line) 86%, rgba(255, 255, 255, 0.16));
    border-radius: var(--shop-radius-xl);
    background:
        radial-gradient(circle at 72% 28%, rgba(var(--shop-accent-rgb), 0.13), transparent 28rem),
        linear-gradient(180deg, color-mix(in srgb, var(--shop-panel) 88%, transparent), var(--shop-bg));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 26px 78px rgba(0, 0, 0, 0.24);
}

body.app-shop .shop-hero__viewport,
body.app-shop .shop-hero__slides {
    position: relative;
    width: 100%;
    min-height: inherit;
}

body.app-shop .shop-hero__slides {
    touch-action: pan-y pinch-zoom;
    user-select: none;
}

body.app-shop .shop-hero__slide,
body.app-shop [data-shop-hero] [data-slide] {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: grid;
    min-height: inherit;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity 700ms ease,
        visibility 700ms ease;
}

body.app-shop .shop-hero__slide.is-active,
body.app-shop [data-shop-hero] [data-slide].is-active {
    z-index: 1;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

body.app-shop .shop-hero__media {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: 0.84;
}

body.app-shop .shop-hero__slide::before,
body.app-shop [data-shop-hero] [data-slide]::before {
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(3, 5, 12, 0.95) 0%, rgba(3, 5, 12, 0.72) 42%, rgba(3, 5, 12, 0.08) 72%, rgba(3, 5, 12, 0.12) 100%),
        linear-gradient(0deg, rgba(3, 5, 12, 0.48) 0%, transparent 34%);
    content: "";
}

body.app-shop .shop-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
    align-items: center;
    width: var(--shop-container);
    min-height: inherit;
    margin-inline: auto;
    padding-block: clamp(120px, 14vh, 190px) clamp(130px, 15vh, 190px);
}

body.app-shop .shop-hero__content {
    position: relative;
    z-index: 2;
    max-width: 820px;
    min-width: 0;
}

body.app-shop .shop-hero__eyebrow {
    margin-bottom: 26px;
}

body.app-shop .shop-hero__title {
    max-width: 14ch;
    margin: 0;
    color: var(--shop-text);
    font-size: var(--shop-type-display);
    font-weight: 420;
    line-height: 0.98;
    letter-spacing: -0.055em;
    text-wrap: balance;
}

body.app-shop .shop-hero__text {
    max-width: 54ch;
    margin: 20px 0 0;
    color: color-mix(in srgb, var(--shop-muted) 80%, var(--shop-text));
    font-size: clamp(0.9375rem, 1.05vw, 1.075rem);
    line-height: 1.58;
}

body.app-shop .shop-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

body.app-shop .shop-hero__controls {
    position: absolute;
    z-index: 4;
    right: auto;
    bottom: 18px;
    left: 50%;
    display: flex;
    align-items: center;
    gap: 10px;
    transform: translateX(-50%);
}

body.app-shop .shop-hero__dots {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 999px;
    background: rgba(8, 11, 19, 0.54);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}

body.app-shop .shop-hero__dot,
body.app-shop [data-slider-dot] {
    width: 18px;
    height: 3px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.3);
    cursor: pointer;
    transition:
        width var(--shop-transition),
        background-color var(--shop-transition);
}

body.app-shop .shop-hero__dot.is-active,
body.app-shop [data-slider-dot].is-active,
body.app-shop [data-slider-dot][aria-current="true"] {
    width: 30px;
    background: var(--shop-text);
}

/* Five main directions */
body.app-shop .shop-directions {
    position: relative;
    z-index: 3;
    width: var(--shop-container);
    margin: clamp(14px, 1.4vw, 24px) auto 0;
}

body.app-shop .shop-directions__grid {
    display: grid;
    grid-template-columns: repeat(var(--shop-directions-count, 5), minmax(0, 1fr));
    gap: clamp(10px, 1.2vw, 20px);
}

body.app-shop .shop-direction-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: clamp(148px, 10.4vw, 190px);
    padding: clamp(16px, 1.5vw, 22px);
    overflow: hidden;
    border-radius: var(--shop-radius-md);
    color: var(--shop-text);
    text-decoration: none;
    transition:
        border-color var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-direction-card::after {
    position: absolute;
    inset: auto -18% -46% 20%;
    height: 68%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--shop-accent-rgb), 0.2), transparent 68%);
    opacity: 0;
    content: "";
    transition: opacity var(--shop-transition);
}

body.app-shop .shop-direction-card:hover {
    z-index: 1;
    border-color: rgba(255, 255, 255, 0.3);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        0 26px 70px rgba(0, 0, 0, 0.34);
    transform: translateY(-3px);
}

body.app-shop .shop-direction-card:hover::after {
    opacity: 1;
}

body.app-shop .shop-direction-card__media {
    position: absolute;
    z-index: -1;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.78;
    filter: saturate(0.78);
    transition:
        opacity var(--shop-transition),
        transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.app-shop .shop-direction-card:hover .shop-direction-card__media {
    opacity: 0.94;
    transform: scale(1.025);
}

body.app-shop .shop-direction-card__title {
    position: relative;
    z-index: 1;
    max-width: 14ch;
    margin: auto 0 0;
    font-size: clamp(1rem, 1.08vw, 1.25rem);
    font-weight: 560;
    line-height: 1.08;
    letter-spacing: -0.03em;
}

body.app-shop .shop-direction-card__text {
    position: relative;
    z-index: 1;
    margin: 10px 0 0;
    overflow: hidden;
    color: var(--shop-muted);
    font-size: clamp(0.6875rem, 0.74vw, 0.8125rem);
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Product rails */
body.app-shop .product-rail {
    position: relative;
    width: var(--shop-container);
    margin-inline: auto;
    min-width: 0;
}

body.app-shop .product-rail__actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

body.app-shop .product-rail__viewport {
    min-width: 0;
    overflow: hidden;
}

body.app-shop .product-rail__track,
body.app-shop [data-rail-track] {
    display: flex;
    gap: clamp(14px, 1.5vw, 24px);
    min-width: 0;
    padding: 2px 2px 28px;
    will-change: transform;
    transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.app-shop .product-rail .product-card {
    flex: 0 0 clamp(270px, 21vw, 360px);
}

body.app-shop .product-rail__empty,
body.app-shop .shop-empty {
    display: grid;
    min-height: 280px;
    padding: 36px;
    place-items: center;
    border: 1px dashed color-mix(in srgb, var(--shop-line) 92%, transparent);
    border-radius: var(--shop-radius-lg);
    color: var(--shop-muted);
    text-align: center;
}

body.app-shop .shop-empty[hidden] {
    display: none;
}

/* Product cards shared by rails and catalog */
body.app-shop .product-card,
body.app-shop .shop-product-card[data-product-card] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border-radius: var(--shop-radius-lg);
    transition:
        border-color var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .product-card:hover,
body.app-shop .shop-product-card[data-product-card]:hover {
    border-color: rgba(255, 255, 255, 0.28);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        0 28px 74px rgba(0, 0, 0, 0.3);
    transform: translateY(-6px);
}

body.app-shop .product-card__media {
    position: relative;
    display: grid;
    aspect-ratio: 1.14 / 1;
    min-height: 0;
    overflow: hidden;
    place-items: center;
    border-bottom: 1px solid color-mix(in srgb, var(--shop-line) 75%, transparent);
    background:
        radial-gradient(circle at 50% 42%, rgba(255, 255, 255, 0.98), rgba(229, 232, 240, 0.94) 62%, rgba(180, 187, 202, 0.84));
}

body.app-shop .product-card__image {
    width: 82%;
    height: 82%;
    object-fit: contain;
    mix-blend-mode: multiply;
    transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.app-shop .product-card:hover .product-card__image {
    transform: scale(1.045);
}

body.app-shop .product-card__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    color: #7e8594;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(218, 223, 234, 0.9));
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

body.app-shop .product-card__badges {
    position: absolute;
    z-index: 2;
    top: 14px;
    left: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

body.app-shop .product-card__badge,
body.app-shop .product-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid rgba(5, 9, 18, 0.12);
    border-radius: 999px;
    color: #0c1220;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.11);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    font-size: 0.6875rem;
    font-weight: 760;
    line-height: 1;
}

body.app-shop .product-card__quick-actions {
    position: absolute;
    z-index: 2;
    top: 12px;
    right: 12px;
    display: grid;
    gap: 8px;
}

body.app-shop .product-card__quick-action {
    display: grid;
    width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(9, 13, 24, 0.14);
    border-radius: 999px;
    color: #0d1321;
    background: rgba(255, 255, 255, 0.84);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    opacity: 0;
    transform: translateX(8px);
    transition:
        opacity var(--shop-transition),
        color var(--shop-transition),
        background-color var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .product-card:hover .product-card__quick-action,
body.app-shop .product-card__quick-action[aria-pressed="true"] {
    opacity: 1;
    transform: translateX(0);
}

body.app-shop .product-card__quick-action[aria-pressed="true"] {
    color: #fff;
    background: #17213a;
}

body.app-shop .product-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
    padding: clamp(20px, 2vw, 28px);
}

body.app-shop .product-card__name {
    display: -webkit-box;
    margin: 12px 0 0;
    overflow: hidden;
    color: var(--shop-text);
    font-size: clamp(1.08rem, 1.25vw, 1.28rem);
    font-weight: 580;
    line-height: 1.3;
    letter-spacing: -0.02em;
    text-decoration: none;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.app-shop .product-card__summary {
    display: -webkit-box;
    margin: 12px 0 0;
    overflow: hidden;
    color: var(--shop-muted);
    font-size: 0.875rem;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.app-shop .product-card__footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: end;
    margin-top: auto;
    padding-top: 26px;
}

body.app-shop .product-card__prices {
    display: grid;
    gap: 4px;
    min-width: 0;
}

body.app-shop .product-card__price,
body.app-shop .product-price {
    color: var(--shop-text);
    font-size: clamp(1.22rem, 1.55vw, 1.55rem);
    font-weight: 630;
    line-height: 1.1;
    letter-spacing: -0.03em;
    white-space: nowrap;
}

body.app-shop .product-card__compare-price,
body.app-shop .compare-at-price {
    color: var(--shop-muted);
    font-size: 0.82rem;
    text-decoration: line-through;
}

body.app-shop .product-card__button {
    min-width: 116px;
    min-height: 46px;
    padding-inline: 18px;
}

body.app-shop .product-card.is-loading,
body.app-shop .shop-product-card[data-product-card].is-loading {
    cursor: wait;
}

body.app-shop .product-card.is-loading::after,
body.app-shop .shop-product-card[data-product-card].is-loading::after {
    position: absolute;
    z-index: 5;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(5, 8, 15, 0.66);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    content: "";
}

/* Cloud editorial promo */
body.app-shop .cloud-promo {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 0.88fr) minmax(380px, 1.12fr);
    width: var(--shop-container);
    min-height: clamp(520px, 60vw, 760px);
    margin-inline: auto;
    overflow: hidden;
    border-radius: var(--shop-radius-xl);
}

body.app-shop .cloud-promo__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-width: 0;
    padding: clamp(38px, 6vw, 100px);
}

body.app-shop .cloud-promo__title {
    max-width: 13ch;
    margin: 22px 0 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 430;
    line-height: 1.03;
    letter-spacing: -0.045em;
    text-wrap: balance;
}

body.app-shop .cloud-promo__text {
    max-width: 48ch;
    margin: 24px 0 0;
    color: var(--shop-muted);
    font-size: var(--shop-type-body-lg);
    line-height: 1.65;
}

body.app-shop .cloud-promo__button {
    margin-top: 34px;
}

body.app-shop .cloud-promo__media {
    position: relative;
    min-width: 0;
    min-height: 420px;
}

body.app-shop .cloud-promo__media::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(90deg, var(--shop-panel-strong), transparent 44%);
    content: "";
}

body.app-shop .cloud-promo__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.76;
}

body.app-shop .cloud-promo__orb {
    position: absolute;
    inset: 16% 10% auto auto;
    width: min(32vw, 460px);
    aspect-ratio: 1;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    background:
        radial-gradient(circle at 38% 35%, rgba(255, 255, 255, 0.3), transparent 7%),
        radial-gradient(circle at 52% 55%, rgba(var(--shop-accent-rgb), 0.34), transparent 58%);
    box-shadow:
        inset -30px -30px 90px rgba(0, 0, 0, 0.3),
        0 0 100px rgba(var(--shop-accent-rgb), 0.13);
}

/* Service CTA */
body.app-shop .service-cta {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) auto;
    gap: clamp(28px, 5vw, 90px);
    align-items: center;
    width: var(--shop-container);
    min-height: 300px;
    margin-inline: auto;
    padding: clamp(38px, 5vw, 78px);
    overflow: hidden;
    border-radius: var(--shop-radius-xl);
}

body.app-shop .service-cta::before {
    position: absolute;
    inset: -90% 48% -90% -20%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--shop-accent-rgb), 0.15), transparent 64%);
    content: "";
}

body.app-shop .service-cta__content,
body.app-shop .service-cta__actions {
    position: relative;
    z-index: 1;
}

body.app-shop .service-cta__title {
    max-width: 17ch;
    margin: 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 430;
    line-height: 1.04;
    letter-spacing: -0.045em;
    text-wrap: balance;
}

body.app-shop .service-cta__text {
    max-width: 58ch;
    margin: 20px 0 0;
    color: var(--shop-muted);
    font-size: var(--shop-type-body-lg);
    line-height: 1.6;
}

body.app-shop .service-cta__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 12px;
}

/* Shared internal pages */
body.app-shop .shop-page {
    position: relative;
    min-height: 70vh;
    padding-block: clamp(110px, 12vw, 180px) var(--shop-space-section);
    background:
        radial-gradient(circle at 72% 0, rgba(var(--shop-accent-rgb), 0.1), transparent 30rem),
        var(--shop-bg);
}

body.app-shop .shop-page__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
    gap: clamp(36px, 8vw, 150px);
    align-items: end;
    margin-bottom: clamp(48px, 7vw, 100px);
}

body.app-shop .shop-page__panel {
    min-width: 0;
    padding: clamp(24px, 3.5vw, 56px);
    border-radius: var(--shop-radius-xl);
}

body.app-shop .shop-breadcrumbs,
body.app-shop .breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    align-items: center;
    margin: 0 0 28px;
    padding: 0;
    color: var(--shop-muted);
    font-size: 0.82rem;
    line-height: 1.4;
    list-style: none;
}

body.app-shop .shop-breadcrumbs a,
body.app-shop .breadcrumbs a {
    color: inherit;
    text-decoration: none;
}

body.app-shop .shop-breadcrumbs a:hover,
body.app-shop .breadcrumbs a:hover {
    color: var(--shop-text);
}

body.app-shop .shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    margin-bottom: 28px;
}

body.app-shop .shop-toolbar__group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

body.app-shop .shop-select,
body.app-shop .shop-toolbar select,
body.app-shop .shop-form select {
    min-height: 48px;
    padding: 0 42px 0 16px;
    border: 1px solid var(--shop-glass-line);
    border-radius: 14px;
    outline: none;
    color: var(--shop-text);
    background-color: rgba(9, 12, 21, 0.76);
    font-size: 0.9rem;
    cursor: pointer;
}

/* Catalog/category */
body.app-shop .shop-catalog {
    display: grid;
    grid-template-columns: minmax(240px, 310px) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 64px);
    align-items: start;
}

body.app-shop .shop-catalog__sidebar {
    position: sticky;
    top: 104px;
    min-width: 0;
}

body.app-shop .shop-filters {
    padding: 24px;
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-lg);
    background: rgba(14, 18, 29, 0.68);
}

body.app-shop .shop-filter {
    padding-block: 20px;
    border-bottom: 1px solid color-mix(in srgb, var(--shop-line) 72%, transparent);
}

body.app-shop .shop-filter:first-child {
    padding-top: 0;
}

body.app-shop .shop-filter:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

body.app-shop .shop-filter__title {
    margin: 0 0 14px;
    color: var(--shop-text);
    font-size: 0.9rem;
    font-weight: 680;
}

body.app-shop .shop-filter__options {
    display: grid;
    gap: 11px;
}

body.app-shop .shop-filter label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-width: 0;
    color: var(--shop-muted);
    font-size: 0.875rem;
    cursor: pointer;
}

body.app-shop .shop-filter input[type="checkbox"],
body.app-shop .shop-filter input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--shop-accent);
}

body.app-shop .shop-filter__range {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
}

body.app-shop .shop-filter__range input {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--shop-line);
    border-radius: 12px;
    color: var(--shop-text);
    background: rgba(2, 5, 12, 0.52);
}

body.app-shop .shop-catalog__content {
    min-width: 0;
}

body.app-shop .shop-category-children {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 34px;
}

body.app-shop .shop-category-child {
    display: flex;
    min-height: 112px;
    padding: 20px;
    align-items: flex-end;
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-md);
    color: var(--shop-text);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.012)),
        rgba(13, 17, 27, 0.64);
    font-size: 1rem;
    font-weight: 620;
    text-decoration: none;
    transition:
        border-color var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-category-child:hover {
    border-color: rgba(255, 255, 255, 0.28);
    transform: translateY(-3px);
}

body.app-shop .shop-product-grid,
body.app-shop .products-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 28px);
    min-width: 0;
}

body.app-shop .shop-pagination,
body.app-shop .pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin: 48px 0 0;
    padding: 0;
    list-style: none;
}

body.app-shop .shop-pagination a,
body.app-shop .shop-pagination span,
body.app-shop .pagination a,
body.app-shop .pagination span {
    display: grid;
    min-width: 44px;
    height: 44px;
    padding-inline: 10px;
    place-items: center;
    border: 1px solid var(--shop-line);
    border-radius: 999px;
    color: var(--shop-muted);
    text-decoration: none;
}

body.app-shop .shop-pagination .selected,
body.app-shop .shop-pagination .is-active,
body.app-shop .pagination .selected,
body.app-shop .pagination .is-active {
    border-color: var(--shop-accent);
    color: var(--shop-text);
    background: rgba(var(--shop-accent-rgb), 0.12);
}

body.app-shop .shop-mobile-filter-toggle {
    display: none;
}

/* Product detail */
body.app-shop .shop-product {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
    gap: clamp(42px, 6vw, 104px);
    align-items: start;
    min-width: 0;
}

body.app-shop .shop-product__gallery {
    position: sticky;
    top: 104px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    min-width: 0;
}

body.app-shop .shop-product__thumbnail-nav {
    display: grid;
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: 46px minmax(0, 1fr) 46px;
    gap: 12px;
    align-items: center;
    min-width: 0;
}

body.app-shop .shop-product__thumbnails {
    display: flex;
    gap: 10px;
    width: fit-content;
    max-width: 100%;
    min-width: 0;
    padding: 6px 10px;
    justify-self: start;
    overflow-x: auto;
    border-radius: 18px;
    background:
        radial-gradient(circle at 50% 42%, #fff, #e6e9f0 66%, #c5ccda);
    overscroll-behavior-inline: contain;
    scroll-behavior: smooth;
    scroll-snap-type: inline proximity;
    scrollbar-width: none;
}

body.app-shop .shop-product__thumbnails::-webkit-scrollbar {
    display: none;
}

body.app-shop .shop-product__thumbnail {
    display: grid;
    position: relative;
    flex: 0 0 76px;
    width: 84px;
    aspect-ratio: 1;
    padding: 7px;
    place-items: center;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
    scroll-snap-align: center;
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

body.app-shop .shop-product__thumbnail.is-active {
    border-color: transparent;
    background: rgba(var(--shop-accent-rgb), 0.08);
    box-shadow: none;
}

body.app-shop .shop-product__thumbnail.is-active::after {
    position: absolute;
    right: 22%;
    bottom: 2px;
    left: 22%;
    height: 2px;
    border-radius: 999px;
    background: var(--shop-accent);
    box-shadow: 0 0 10px rgba(var(--shop-accent-rgb), 0.54);
    content: "";
}

body.app-shop .shop-product__thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

body.app-shop .shop-product__thumbnail:hover {
    transform: translateY(-2px);
}

body.app-shop .shop-product__thumbnail:focus-visible,
body.app-shop .shop-product__thumbnail-arrow:focus-visible {
    outline: 2px solid rgba(var(--shop-accent-rgb), 0.85);
    outline-offset: 3px;
}

body.app-shop .shop-product__thumbnail-arrow {
    display: grid;
    width: 46px;
    height: 46px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(170, 184, 216, 0.32);
    border-radius: 999px;
    color: var(--shop-text);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.11), rgba(120, 142, 188, 0.04)),
        rgba(13, 18, 31, 0.82);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    cursor: pointer;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, opacity 180ms ease, transform 180ms ease;
}

body.app-shop .shop-product__thumbnail-arrow > img {
    width: 20px;
    height: 20px;
    filter: brightness(0) invert(1);
    opacity: 0.88;
    pointer-events: none;
}

body.app-shop .shop-product__thumbnail-arrow:hover:not(:disabled) {
    border-color: rgba(var(--shop-accent-rgb), 0.7);
    background:
        linear-gradient(145deg, rgba(var(--shop-accent-rgb), 0.18), rgba(120, 142, 188, 0.06)),
        rgba(18, 25, 42, 0.92);
    box-shadow: 0 10px 26px rgba(var(--shop-accent-rgb), 0.13), inset 0 1px 0 rgba(255, 255, 255, 0.12);
    transform: translateY(-1px);
}

body.app-shop .shop-product__thumbnail-arrow:disabled,
body.app-shop .shop-product__thumbnail-arrow[aria-disabled="true"] {
    opacity: 0.34;
    cursor: default;
}

body.app-shop .shop-product__stage {
    display: grid;
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    aspect-ratio: 1.06 / 1;
    padding: clamp(22px, 4vw, 58px);
    place-items: center;
    overflow: hidden;
    border-radius: var(--shop-radius-xl);
    background:
        radial-gradient(circle at 50% 42%, #fff, #e6e9f0 66%, #b8bfce);
}

/* Keep the complete desktop gallery, including thumbnails, inside the first viewport. */
@media (min-width: 768px) {
    body.app-shop .shop-page.shop-product-page {
        padding-top: clamp(104px, 7.2vw, 132px);
    }

    body.app-shop .shop-product__stage {
        height: clamp(460px, calc(100svh - 350px), 720px);
        aspect-ratio: auto;
    }

    /* Debug helper: body.app-shop .shop-product__stage { outline: 1px solid #ff4d7d; } */
}

body.app-shop .shop-product__stage.is-swipe-ready {
    cursor: grab;
    touch-action: pan-y pinch-zoom;
}

body.app-shop .shop-product__stage.is-swipe-ready.is-dragging {
    cursor: grabbing;
}

body.app-shop .shop-product__image {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
    user-select: none;
    -webkit-user-drag: none;
    transform: translate3d(var(--shop-product-swipe-x, 0px), 0, 0);
    transition: transform 180ms ease, opacity 180ms ease;
}

body.app-shop .shop-product__stage.is-dragging .shop-product__image {
    transition: none;
}

body.app-shop .shop-product__info {
    min-width: 0;
}

body.app-shop .shop-product__title {
    max-width: 18ch;
    margin: 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h1);
    font-weight: 430;
    line-height: 1.03;
    letter-spacing: -0.047em;
    overflow-wrap: anywhere;
}

body.app-shop .shop-product__summary {
    margin: 24px 0 0;
    color: var(--shop-muted);
    font-size: var(--shop-type-body-lg);
    line-height: 1.65;
}

body.app-shop .shop-product__rating {
    display: flex;
    gap: 10px;
    align-items: center;
    margin: 20px 0 0;
    color: var(--shop-muted);
    font-size: var(--shop-type-label);
}

body.app-shop .shop-product__purchase {
    display: grid;
    gap: 24px;
    margin-top: 34px;
    padding: clamp(24px, 3vw, 38px);
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-lg);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.014)),
        rgba(13, 17, 28, 0.68);
}

body.app-shop .shop-product__price {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    align-items: baseline;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1.08;
    letter-spacing: -0.03em;
}

body.app-shop .shop-product__price > strong {
    color: inherit;
    font: inherit;
    white-space: nowrap;
}

body.app-shop .shop-product__price > del:not([hidden]) {
    color: var(--shop-muted);
    font-size: var(--shop-type-control);
    font-weight: 450;
    letter-spacing: 0;
    text-decoration-color: color-mix(in srgb, currentColor 72%, transparent);
    text-decoration-thickness: 1px;
}

body.app-shop .shop-product__stock {
    display: flex;
    gap: 9px;
    align-items: center;
    color: var(--shop-muted);
    font-size: 0.875rem;
}

body.app-shop .shop-product__stock::before {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--shop-status-available);
    box-shadow: 0 0 14px color-mix(in srgb, var(--shop-status-available) 75%, transparent);
    content: "";
}

body.app-shop .shop-product__stock.is-expected::before {
    background: var(--shop-status-expected);
    box-shadow: 0 0 14px color-mix(in srgb, var(--shop-status-expected) 75%, transparent);
}

body.app-shop .shop-product__stock.is-order::before,
body.app-shop .shop-product__stock.is-unavailable::before {
    background: var(--shop-status-unavailable);
    box-shadow: 0 0 14px color-mix(in srgb, var(--shop-status-unavailable) 75%, transparent);
}

body.app-shop .shop-product__options,
body.app-shop .skus,
body.app-shop .options {
    display: grid;
    gap: 16px;
}

body.app-shop .shop-product__option {
    display: grid;
    gap: 8px;
}

body.app-shop .shop-product__actions--purchase {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 10px;
    align-items: center;
}

body.app-shop .shop-product__actions--purchase > * {
    min-width: 0;
}

body.app-shop .shop-product__form-error {
    margin: 0;
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, var(--shop-danger) 46%, transparent);
    border-radius: 12px;
    color: color-mix(in srgb, var(--shop-danger) 72%, white);
    background: color-mix(in srgb, var(--shop-danger) 9%, transparent);
    font-size: 0.875rem;
    line-height: 1.5;
}

body.app-shop .shop-product__form-error[hidden] {
    display: none !important;
}

body.app-shop .shop-quantity {
    display: grid;
    grid-template-columns: 42px 56px 42px;
    align-items: center;
    width: max-content;
    overflow: hidden;
    border: 1px solid var(--shop-line);
    border-radius: 999px;
    background: rgba(4, 7, 14, 0.54);
}

body.app-shop .shop-quantity button {
    display: grid;
    width: 42px;
    height: 46px;
    padding: 0;
    place-items: center;
    border: 0;
    color: var(--shop-text);
    background: transparent;
    cursor: pointer;
}

body.app-shop .shop-quantity input {
    width: 56px;
    height: 46px;
    padding: 0;
    border: 0;
    outline: 0;
    color: var(--shop-text);
    background: transparent;
    text-align: center;
    -moz-appearance: textfield;
}

body.app-shop .shop-product__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin-top: 34px;
    overflow: hidden;
    border: 1px solid var(--shop-line);
    border-radius: var(--shop-radius-md);
    background: var(--shop-line);
}

body.app-shop .shop-product__meta-item {
    min-width: 0;
    padding: 20px;
    background: var(--shop-panel-strong);
}

body.app-shop .shop-product__meta-value {
    margin: 8px 0 0;
    color: var(--shop-text);
    overflow-wrap: anywhere;
}

body.app-shop .shop-product-tabs {
    width: var(--shop-container);
    margin: clamp(68px, 8vw, 130px) auto 0;
    scroll-margin-top: 112px;
}

body.app-shop .shop-product-tabs__nav {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 12px;
    scrollbar-width: none;
}

body.app-shop .shop-product-tabs__nav::-webkit-scrollbar {
    display: none;
}

body.app-shop .shop-product-tabs__button {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    height: 44px;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid var(--shop-line);
    border-radius: 999px;
    color: var(--shop-muted);
    background: transparent;
    font-size: var(--shop-type-control);
    font-weight: 540;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    cursor: pointer;
}

body.app-shop .shop-product-tabs__button.is-active {
    border-color: var(--shop-accent);
    color: var(--shop-text);
    background: rgba(var(--shop-accent-rgb), 0.1);
}

body.app-shop .shop-product-tabs__button:focus-visible {
    outline: 3px solid rgba(181, 204, 255, 0.72);
    outline-offset: 3px;
}

body.app-shop .shop-product-tabs__panel {
    padding: clamp(28px, 4vw, 56px) 0 0;
    color: color-mix(in srgb, var(--shop-muted) 82%, var(--shop-text));
    font-size: var(--shop-type-body);
    line-height: 1.72;
}

body.app-shop .shop-product-tabs__panel[hidden] {
    display: none !important;
}

html.no-js body.app-shop .shop-product-tabs__panel[hidden]:not([data-product-tab-url]) {
    display: block !important;
}

body.app-shop .shop-product-tabs__panel--remote > [data-product-tab-content] {
    margin: 0;
}

body.app-shop .shop-product-tabs__panel--remote :is(img, video, iframe) {
    max-width: 100%;
}

body.app-shop .shop-product-tabs__panel--remote iframe {
    width: 100%;
    border: 0;
}

body.app-shop .shop-product-tabs__state {
    display: grid;
    min-height: 150px;
    padding: clamp(24px, 4vw, 42px);
    place-items: center;
    align-content: center;
    gap: 18px;
    text-align: center;
}

body.app-shop .shop-product-tabs__state p {
    margin: 0;
}

body.app-shop .shop-product-tabs__panel.is-loading {
    cursor: progress;
}

body.app-shop .shop-product-related {
    min-width: 0;
}

body.app-shop .shop-product-tabs__panel > :first-child {
    margin-top: 0;
}

body.app-shop .shop-product-tabs__panel > :last-child {
    margin-bottom: 0;
}

body.app-shop .shop-features {
    width: 100%;
    border-collapse: collapse;
}

body.app-shop .shop-features th,
body.app-shop .shop-features td {
    padding: 16px 0;
    border-bottom: 1px solid var(--shop-line);
    text-align: left;
    vertical-align: top;
}

body.app-shop .shop-features th {
    width: 36%;
    padding-right: 24px;
    color: var(--shop-muted);
    font-weight: 520;
}

/* The current product template renders semantic dl/dt/dd rows. */
body.app-shop dl.shop-features {
    margin: 0;
}

body.app-shop dl.shop-features > div {
    display: grid;
    grid-template-columns: minmax(140px, 36%) minmax(0, 1fr);
    gap: 24px;
    padding: 16px 0;
    border-bottom: 1px solid var(--shop-line);
}

body.app-shop dl.shop-features dt {
    color: var(--shop-muted);
    font-weight: 520;
}

body.app-shop dl.shop-features dd {
    min-width: 0;
    margin: 0;
    color: var(--shop-text);
}

/* Cart */
body.app-shop .shop-cart {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
    gap: clamp(30px, 5vw, 80px);
    align-items: start;
    min-width: 0;
}

body.app-shop .shop-cart__items {
    display: grid;
    min-width: 0;
    border-top: 1px solid var(--shop-line);
}

body.app-shop .shop-cart-item {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr) auto auto;
    gap: 22px;
    align-items: center;
    min-width: 0;
    padding-block: 24px;
    border-bottom: 1px solid var(--shop-line);
}

body.app-shop .shop-cart-item__media {
    display: grid;
    width: 112px;
    aspect-ratio: 1;
    padding: 10px;
    place-items: center;
    overflow: hidden;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.94);
}

body.app-shop .shop-cart-item__image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

body.app-shop .shop-cart-item__info {
    min-width: 0;
}

body.app-shop .shop-cart-item__name {
    color: var(--shop-text);
    font-size: 1.02rem;
    font-weight: 620;
    line-height: 1.35;
    text-decoration: none;
    overflow-wrap: anywhere;
}

body.app-shop .shop-cart-item__sku {
    margin-top: 8px;
    color: var(--shop-muted);
    font-size: 0.8rem;
}

body.app-shop .shop-cart-item__services {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

body.app-shop .shop-cart-item__services label {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    color: color-mix(in srgb, var(--shop-muted) 88%, var(--shop-text));
    font-size: 0.82rem;
    line-height: 1.45;
}

body.app-shop .shop-cart-item__services input[type="checkbox"] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 2px 0 0;
    accent-color: var(--shop-accent);
}

body.app-shop .shop-cart-item__price {
    min-width: 110px;
    color: var(--shop-text);
    font-size: 1.05rem;
    font-weight: 640;
    text-align: right;
    white-space: nowrap;
}

body.app-shop .shop-cart-item__remove {
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--shop-line);
    border-radius: 999px;
    color: var(--shop-muted);
    background: transparent;
    cursor: pointer;
}

body.app-shop .shop-cart-item__remove:hover {
    border-color: color-mix(in srgb, var(--shop-danger) 55%, transparent);
    color: var(--shop-danger);
}

body.app-shop .shop-cart__summary {
    position: sticky;
    top: 104px;
    display: grid;
    gap: 24px;
    padding: clamp(26px, 3vw, 40px);
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-lg);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.014)),
        rgba(13, 17, 28, 0.76);
}

body.app-shop .shop-cart__summary-title {
    margin: 0;
    font-size: var(--shop-type-h3);
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.035em;
}

body.app-shop .shop-cart__summary-row {
    display: flex;
    gap: 20px;
    align-items: baseline;
    justify-content: space-between;
    color: var(--shop-muted);
}

body.app-shop .shop-cart__summary-row > * {
    min-width: 0;
    overflow-wrap: anywhere;
}

body.app-shop .shop-cart__summary-row strong {
    color: var(--shop-text);
    font-weight: 620;
    text-align: right;
}

body.app-shop .shop-cart__total {
    padding-top: 22px;
    border-top: 1px solid var(--shop-line);
    font-size: 1.3rem;
}

body.app-shop .shop-cart__coupon {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

body.app-shop .shop-cart__coupon input {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--shop-line);
    border-radius: 14px;
    color: var(--shop-text);
    background: rgba(2, 5, 12, 0.54);
}

/* Product comparison */
body.app-shop .shop-compare {
    --shop-compare-label-width: 180px;
    --shop-compare-product-width: 240px;
    padding: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-color: var(--shop-glass-line) transparent;
}

body.app-shop .shop-compare__table {
    display: grid;
    width: max-content;
    min-width: 100%;
}

body.app-shop .shop-compare__row {
    display: contents;
}

body.app-shop .shop-compare__row > [role="cell"],
body.app-shop .shop-compare__label,
body.app-shop .shop-compare__product {
    min-width: 0;
    padding: 18px 20px;
    border-right: 1px solid var(--shop-line);
    border-bottom: 1px solid var(--shop-line);
    color: color-mix(in srgb, var(--shop-muted) 88%, var(--shop-text));
    background: rgba(8, 12, 22, 0.58);
    line-height: 1.55;
    overflow-wrap: anywhere;
}

body.app-shop .shop-compare__row > :last-child {
    border-right: 0;
}

body.app-shop .shop-compare__label {
    position: sticky;
    left: 0;
    z-index: 2;
    width: var(--shop-compare-label-width);
    color: var(--shop-text);
    background: var(--shop-panel-strong);
    font-size: 0.84rem;
    font-weight: 680;
}

body.app-shop .shop-compare__row--products > * {
    padding-block: 24px;
}

body.app-shop .shop-compare__row--products .shop-compare__label {
    z-index: 3;
}

body.app-shop .shop-compare__product {
    display: grid;
    width: var(--shop-compare-product-width);
    gap: 14px;
    align-content: start;
}

body.app-shop .shop-compare__product > a:first-child {
    display: grid;
    gap: 14px;
    color: var(--shop-text);
    text-decoration: none;
}

body.app-shop .shop-compare__product img {
    display: block;
    width: 100%;
    max-height: 220px;
    aspect-ratio: 1;
    padding: 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.94);
    object-fit: contain;
    mix-blend-mode: multiply;
}

body.app-shop .shop-compare__product h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 640;
    line-height: 1.4;
    letter-spacing: -0.015em;
}

body.app-shop .shop-compare__product > strong {
    color: var(--shop-text);
    font-size: 1.08rem;
}

body.app-shop .shop-compare__product .shop-button {
    width: 100%;
    min-height: 44px;
    padding-inline: 14px;
}

body.app-shop .shop-compare__row.is-same > [role="cell"] {
    color: color-mix(in srgb, var(--shop-muted) 66%, transparent);
}

/* Product reviews */
body.app-shop .shop-reviews {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
    gap: clamp(28px, 5vw, 72px);
    align-items: start;
    min-width: 0;
}

body.app-shop .shop-reviews__list,
body.app-shop .shop-reviews__list ul {
    display: grid;
    min-width: 0;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.app-shop .shop-reviews__list ul ul {
    margin-left: clamp(18px, 4vw, 54px);
}

body.app-shop .shop-review-item {
    min-width: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.app-shop .shop-review {
    min-width: 0;
    padding: clamp(22px, 3vw, 32px);
    border: 1px solid var(--shop-line);
    border-radius: var(--shop-radius-md);
    color: var(--shop-muted);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.008)),
        rgba(8, 12, 22, 0.58);
}

body.app-shop .shop-review__header {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 14px;
    align-items: center;
    color: var(--shop-muted);
    font-size: 0.82rem;
    line-height: 1.4;
}

body.app-shop .shop-review__header strong {
    color: var(--shop-text);
    font-size: 0.92rem;
}

body.app-shop .shop-review h3 {
    margin: 18px 0 0;
    color: var(--shop-text);
    font-size: 1.12rem;
    font-weight: 620;
    line-height: 1.4;
}

body.app-shop .shop-review__text {
    margin-top: 12px;
    color: color-mix(in srgb, var(--shop-muted) 86%, var(--shop-text));
    line-height: 1.68;
    overflow-wrap: anywhere;
}

body.app-shop .shop-review__text > :first-child {
    margin-top: 0;
}

body.app-shop .shop-review__text > :last-child {
    margin-bottom: 0;
}

body.app-shop .shop-review__images {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    gap: 10px;
    margin-top: 18px;
}

body.app-shop .shop-review__images a {
    display: block;
    overflow: hidden;
    border-radius: 12px;
}

body.app-shop .shop-review__images img {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
}

body.app-shop .shop-review__reply {
    display: inline-flex;
    margin-top: 18px;
    color: color-mix(in srgb, var(--shop-accent) 82%, white);
    font-size: 0.84rem;
    font-weight: 650;
    text-decoration: none;
}

body.app-shop .shop-reviews__form {
    position: sticky;
    top: 104px;
    display: grid;
    gap: 20px;
    padding: clamp(24px, 3vw, 36px);
}

body.app-shop .shop-reviews__form h2 {
    margin: 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -0.03em;
}

body.app-shop .shop-reviews__form > p {
    margin: 0;
    color: var(--shop-muted);
    line-height: 1.6;
}

body.app-shop .shop-reviews__form > p a {
    color: var(--shop-text);
}

body.app-shop .shop-review-form > label {
    display: grid;
    min-width: 0;
    gap: 9px;
}

body.app-shop .shop-review__user {
    display: flex;
    gap: 12px;
    align-items: center;
    padding-bottom: 4px;
    color: var(--shop-text);
}

body.app-shop .shop-review__user img {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
}

body.app-shop .shop-review-form :is(.wa-captcha, .wa-captcha-section, .g-recaptcha) {
    max-width: 100%;
    overflow: hidden;
}

@media (max-width: 1024px) {
    body.app-shop .shop-reviews {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-reviews__form {
        position: static;
    }
}

@media (max-width: 767px) {
    body.app-shop .shop-compare {
        --shop-compare-label-width: 132px;
        --shop-compare-product-width: 200px;
    }

    body.app-shop .shop-compare__row > [role="cell"],
    body.app-shop .shop-compare__label,
    body.app-shop .shop-compare__product {
        padding: 14px;
    }

    body.app-shop .shop-review {
        padding: 20px;
    }

    body.app-shop .shop-review__images {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-shop .shop-reviews__form {
        padding: 22px 18px;
    }
}

/* Search results */
body.app-shop .shop-search-page__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    width: min(820px, 100%);
    margin-bottom: clamp(40px, 5vw, 72px);
}

body.app-shop .shop-search-page__input {
    width: 100%;
    min-height: 58px;
    padding: 0 20px;
    border: 1px solid var(--shop-glass-line);
    border-radius: 17px;
    outline: none;
    color: var(--shop-text);
    background: rgba(9, 12, 21, 0.72);
    font-size: 1rem;
}

body.app-shop .shop-search-page__input:focus {
    border-color: var(--shop-accent);
    box-shadow: 0 0 0 4px rgba(var(--shop-accent-rgb), 0.1);
}

/* Compare and generic tables */
body.app-shop .shop-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--shop-line);
    border-radius: var(--shop-radius-lg);
}

body.app-shop .shop-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
}

body.app-shop .shop-table th,
body.app-shop .shop-table td {
    padding: 18px 20px;
    border-right: 1px solid var(--shop-line);
    border-bottom: 1px solid var(--shop-line);
    text-align: left;
    vertical-align: top;
}

body.app-shop .shop-table th {
    color: var(--shop-muted);
    background: rgba(255, 255, 255, 0.025);
    font-size: 0.78rem;
    font-weight: 720;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.app-shop .shop-table tr:last-child td,
body.app-shop .shop-table tr:last-child th {
    border-bottom: 0;
}

body.app-shop .shop-table th:last-child,
body.app-shop .shop-table td:last-child {
    border-right: 0;
}

/* Forms, errors and notices */
body.app-shop .shop-form {
    display: grid;
    gap: 22px;
}

body.app-shop .shop-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

body.app-shop .shop-form__field {
    display: grid;
    gap: 9px;
    min-width: 0;
}

body.app-shop .shop-form label {
    color: color-mix(in srgb, var(--shop-muted) 86%, var(--shop-text));
    font-size: 0.78rem;
    font-weight: 720;
    line-height: 1.3;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

body.app-shop .shop-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="password"], input[type="number"], input[type="search"], textarea) {
    width: 100%;
    min-width: 0;
    min-height: 52px;
    padding: 0 16px;
    border: 1px solid var(--shop-line);
    border-radius: 14px;
    outline: none;
    color: var(--shop-text);
    background: rgba(2, 5, 12, 0.52);
}

body.app-shop .shop-form textarea {
    min-height: 150px;
    padding-block: 14px;
    resize: vertical;
}

body.app-shop .shop-form :is(input, select, textarea):focus {
    border-color: var(--shop-accent);
    box-shadow: 0 0 0 4px rgba(var(--shop-accent-rgb), 0.1);
}

body.app-shop .shop-form__hint {
    margin: 0;
    color: var(--shop-muted);
    font-size: 0.8rem;
    line-height: 1.5;
}

body.app-shop .shop-notice,
body.app-shop .shop-error,
body.app-shop .shop-success {
    padding: 16px 18px;
    border: 1px solid var(--shop-line);
    border-radius: 14px;
    color: var(--shop-muted);
    background: rgba(255, 255, 255, 0.03);
    font-size: 0.9rem;
    line-height: 1.55;
}

body.app-shop .shop-error {
    border-color: color-mix(in srgb, var(--shop-danger) 48%, transparent);
    color: color-mix(in srgb, var(--shop-danger) 72%, white);
    background: color-mix(in srgb, var(--shop-danger) 8%, transparent);
}

body.app-shop .shop-success {
    border-color: color-mix(in srgb, var(--shop-success) 42%, transparent);
    color: color-mix(in srgb, var(--shop-success) 74%, white);
    background: color-mix(in srgb, var(--shop-success) 7%, transparent);
}

/* Shop-Script native compatibility */
body.app-shop .shop-app .price {
    color: var(--shop-text);
    font-weight: 630;
}

body.app-shop .shop-app .compare-at-price {
    color: var(--shop-muted);
}

body.app-shop .shop-app .stocks {
    color: var(--shop-muted);
    font-size: 0.875rem;
}

body.app-shop .shop-app .stocks .stock-high {
    color: var(--shop-success);
}

body.app-shop .shop-app .stocks .stock-low {
    color: var(--shop-warning);
}

body.app-shop .shop-app .stocks .stock-none {
    color: var(--shop-danger);
}

body.app-shop .shop-app .loading,
body.app-shop .shop-app .is-loading {
    cursor: wait;
}

body.app-shop .shop-app .dialog,
body.app-shop .shop-app .dialog-window {
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-lg);
    color: var(--shop-text);
    background: var(--shop-glass-strong);
    box-shadow: var(--shop-shadow);
}

/* Tablet */
@media (max-width: 1240px) {
    body.app-shop {
        --shop-radius-xl: 30px;
        --shop-radius-lg: 24px;
    }

    body.app-shop .shop-directions__grid {
        grid-template-columns: repeat(var(--shop-directions-tablet-count, 3), minmax(0, 1fr));
    }

    body.app-shop .shop-direction-card:nth-child(4),
    body.app-shop .shop-direction-card:nth-child(5) {
        min-height: 180px;
    }

    body.app-shop .shop-product-grid,
    body.app-shop .products-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-shop .shop-product {
        grid-template-columns: minmax(0, 1fr) minmax(350px, 0.86fr);
        gap: 42px;
    }

    body.app-shop .shop-cart {
        grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
        gap: 34px;
    }

    body.app-shop .shop-cart-item {
        grid-template-columns: 92px minmax(0, 1fr) auto;
    }

    body.app-shop .shop-cart-item__media {
        width: 92px;
    }

    body.app-shop .shop-cart-item__remove {
        grid-column: 3;
    }
}

@media (max-width: 1024px) {
    body.app-shop .shop-hero {
        min-height: 720px;
    }

    body.app-shop .shop-hero__inner {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-hero__content {
        max-width: 660px;
    }

    body.app-shop .shop-hero__slide::before,
    body.app-shop [data-shop-hero] [data-slide]::before {
        background:
            linear-gradient(90deg, rgba(3, 5, 12, 0.94), rgba(3, 5, 12, 0.62) 68%, rgba(3, 5, 12, 0.36)),
            linear-gradient(0deg, var(--shop-bg), transparent 42%);
    }

    body.app-shop .cloud-promo {
        grid-template-columns: minmax(0, 1fr) minmax(300px, 0.8fr);
    }

    body.app-shop .shop-catalog {
        grid-template-columns: minmax(220px, 270px) minmax(0, 1fr);
        gap: 28px;
    }

    body.app-shop .shop-product {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-product__gallery {
        position: relative;
        top: auto;
    }

    body.app-shop .shop-product__info {
        max-width: 760px;
    }

    body.app-shop .shop-cart {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-cart__summary {
        position: relative;
        top: auto;
    }
}

/* Mobile */
@media (max-width: 767px) {
    body.app-shop {
        --shop-space-section: 72px;
        --shop-gutter: 18px;
        --shop-radius-xl: 24px;
        --shop-radius-lg: 20px;
        --shop-radius-md: 16px;
        --shop-type-display: clamp(2.5rem, 12vw, 3.25rem);
        --shop-type-h1: clamp(2rem, 8.5vw, 2.25rem);
        --shop-type-h2: clamp(1.625rem, 7vw, 1.875rem);
        --shop-type-h3: 1rem;
        --shop-type-body-lg: 1rem;
    }

    body.app-shop .site-header .header-actions {
        gap: 7px;
    }

    body.app-shop .shop-header-tools {
        gap: 6px;
    }

    body.app-shop .shop-header-tool {
        width: 42px;
        min-height: 42px;
    }

    body.app-shop .shop-header-tools [data-shop-wishlist],
    body.app-shop .shop-header-tools [data-shop-compare] {
        display: none;
    }

    body.app-shop .shop-section__header,
    body.app-shop .product-rail__header,
    body.app-shop .shop-page__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }

    body.app-shop .shop-section__heading,
    body.app-shop .product-rail__title,
    body.app-shop .shop-page__title,
    body.app-shop .category-title,
    body.app-shop .search-title {
        max-width: 100%;
        font-size: var(--shop-type-h1);
    }

    body.app-shop .shop-search-overlay {
        padding: 12px;
    }

    body.app-shop .shop-search-overlay__dialog {
        margin-top: 74px;
        padding: 24px 18px;
    }

    body.app-shop .shop-search-overlay__close {
        top: 14px;
        right: 14px;
    }

    body.app-shop .shop-search-overlay__title {
        max-width: 12ch;
        margin-right: 54px;
        font-size: var(--shop-type-h2);
    }

    body.app-shop .shop-search-overlay__form,
    body.app-shop .shop-search-page__form {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-search-overlay__form .shop-button,
    body.app-shop .shop-search-page__form .shop-button {
        width: 100%;
    }

    body.app-shop .shop-search-suggestion {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    body.app-shop .shop-search-suggestion__image {
        width: 54px;
    }

    body.app-shop .shop-search-suggestion__price {
        grid-column: 2;
    }

    body.app-shop .shop-hero {
        min-height: 690px;
    }

    body.app-shop .shop-hero__inner {
        padding-block: 116px 150px;
    }

    body.app-shop .shop-hero__content {
        align-self: center;
    }

    body.app-shop .shop-hero__title {
        max-width: 10ch;
        font-size: clamp(2.55rem, 13vw, 3.7rem);
        line-height: 0.98;
    }

    body.app-shop .shop-hero__text {
        margin-top: 22px;
        font-size: 1rem;
    }

    body.app-shop .shop-hero__actions {
        align-items: stretch;
        flex-direction: column;
        margin-top: 28px;
    }

    body.app-shop .shop-hero__actions .shop-button {
        width: 100%;
    }

    body.app-shop .shop-hero__controls {
        right: 18px;
        bottom: 96px;
        left: 18px;
        justify-content: center;
    }

    body.app-shop .shop-directions {
        margin-top: -72px;
    }

    body.app-shop .shop-directions__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    body.app-shop .shop-direction-card,
    body.app-shop .shop-direction-card:nth-child(4),
    body.app-shop .shop-direction-card:nth-child(5) {
        min-height: 164px;
        padding: 18px;
        border-radius: 18px;
    }

    body.app-shop .shop-direction-card:nth-child(5) {
        grid-column: 1 / -1;
    }

    body.app-shop .shop-direction-card__title {
        font-size: 1.08rem;
    }

    body.app-shop .shop-direction-card__text {
        font-size: 0.78rem;
    }

    body.app-shop .product-rail__header {
        padding-right: 0;
    }

    body.app-shop .product-rail__actions {
        width: 100%;
        justify-content: space-between;
    }

    body.app-shop .product-rail .product-card {
        flex-basis: min(82vw, 324px);
    }

    body.app-shop .product-rail__track,
    body.app-shop [data-rail-track] {
        gap: 12px;
    }

    body.app-shop .product-card__quick-action {
        opacity: 1;
        transform: none;
    }

    body.app-shop .product-card__footer {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    body.app-shop .product-card__button {
        width: 100%;
    }

    body.app-shop .cloud-promo {
        grid-template-columns: minmax(0, 1fr);
        min-height: 680px;
    }

    body.app-shop .cloud-promo__content {
        justify-content: flex-start;
        padding: 34px 24px;
    }

    body.app-shop .cloud-promo__title,
    body.app-shop .service-cta__title {
        font-size: var(--shop-type-h2);
    }

    body.app-shop .cloud-promo__media {
        min-height: 300px;
    }

    body.app-shop .cloud-promo__media::before {
        background: linear-gradient(180deg, var(--shop-panel-strong), transparent 36%);
    }

    body.app-shop .cloud-promo__orb {
        inset: auto 8% 10% auto;
        width: min(70vw, 330px);
    }

    body.app-shop .service-cta {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
        padding: 30px 24px;
    }

    body.app-shop .service-cta__actions {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-shop .service-cta__actions .shop-button {
        width: 100%;
    }

    body.app-shop .shop-page {
        padding-top: 104px;
    }

    body.app-shop .shop-page__hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
        margin-bottom: 42px;
    }

    body.app-shop .shop-page__panel {
        padding: 22px 18px;
    }

    body.app-shop .shop-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-shop .shop-toolbar__group {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-toolbar select {
        width: 100%;
    }

    body.app-shop .shop-mobile-filter-toggle {
        display: inline-flex;
    }

    body.app-shop .shop-catalog {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-catalog__sidebar {
        position: fixed;
        z-index: 1200;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        display: grid;
        padding: 16px;
        place-items: end stretch;
        background: rgba(2, 4, 10, 0.68);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition:
            opacity var(--shop-transition),
            visibility var(--shop-transition);
    }

    body.app-shop .shop-catalog__sidebar.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    body.app-shop .shop-filters {
        max-height: calc(100dvh - 32px);
        overflow-y: auto;
        border-radius: 24px;
        background: var(--shop-glass-strong);
    }

    body.app-shop .shop-category-children {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-shop .shop-product-grid,
    body.app-shop .products-list {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-product__gallery {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-product__stage {
        grid-column: 1;
        grid-row: 1;
    }

    body.app-shop .shop-product__thumbnail-nav {
        grid-column: 1;
        grid-row: 2;
        grid-template-columns: 44px minmax(0, 1fr) 44px;
        gap: 8px;
    }

    body.app-shop .shop-product__thumbnail {
        flex-basis: 64px;
        width: 64px;
        min-width: 60px;
    }

    body.app-shop .shop-product__thumbnail-arrow {
        width: 44px;
        height: 44px;
    }

    body.app-shop .shop-product__title {
        max-width: 100%;
        font-size: var(--shop-type-h1);
    }

    body.app-shop .shop-product__purchase {
        padding: 22px 18px;
    }

    body.app-shop .shop-product__actions--purchase {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    body.app-shop .shop-product__actions--purchase .shop-product__price {
        grid-column: 1 / -1;
    }

    body.app-shop .shop-product__actions--purchase > .shop-button {
        width: 100%;
    }

    body.app-shop .shop-product__meta {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-features th,
    body.app-shop .shop-features td {
        display: block;
        width: 100%;
        padding: 12px 0;
    }

    body.app-shop .shop-features th {
        padding-bottom: 0;
        border-bottom: 0;
    }

    body.app-shop .shop-cart-item {
        grid-template-columns: 82px minmax(0, 1fr) auto;
        gap: 14px;
        align-items: start;
    }

    body.app-shop .shop-cart-item__media {
        width: 82px;
    }

    body.app-shop .shop-cart-item .shop-quantity {
        grid-column: 2;
    }

    body.app-shop .shop-cart-item__price {
        grid-column: 2;
        min-width: 0;
        text-align: left;
    }

    body.app-shop .shop-cart-item__remove {
        grid-column: 3;
        grid-row: 1;
    }

    body.app-shop .shop-cart__coupon {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-form__row {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 420px) {
    body.app-shop {
        --shop-gutter: 14px;
    }

    body.app-shop .shop-directions__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-direction-card:nth-child(5) {
        grid-column: auto;
    }

    body.app-shop .shop-direction-card,
    body.app-shop .shop-direction-card:nth-child(4),
    body.app-shop .shop-direction-card:nth-child(5) {
        min-height: 146px;
    }

    body.app-shop .shop-category-children {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-cart-item {
        grid-template-columns: 72px minmax(0, 1fr) auto;
    }

    body.app-shop .shop-cart-item__media {
        width: 72px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-shop .shop-app *,
    body.app-shop .shop-app *::before,
    body.app-shop .shop-app *::after,
    body.app-shop .shop-header-tools *,
    body.app-shop .shop-search-overlay * {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Category description replaces the duplicate product count at the top of
   the product column and intentionally stays outside AJAX result swaps. */
body.app-shop .shop-category-summary {
    position: relative;
    width: 100%;
    min-width: 0;
    margin: 0 0 clamp(22px, 3vw, 36px);
    padding: clamp(22px, 2.5vw, 34px);
    overflow: hidden;
    border: 1px solid rgba(226, 235, 255, 0.15);
    border-radius: var(--shop-radius-lg);
    background:
        radial-gradient(circle at 82% 0%, rgba(var(--shop-accent-rgb), 0.12), transparent 44%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.018)),
        rgba(10, 14, 24, 0.78);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 24px 70px rgba(0, 0, 0, 0.2);
    -webkit-backdrop-filter: blur(24px) saturate(130%);
    backdrop-filter: blur(24px) saturate(130%);
}

body.app-shop .shop-category-summary .shop-page__eyebrow {
    margin-bottom: 14px;
}

body.app-shop .shop-category-summary__summary,
body.app-shop .shop-category-summary__body {
    max-width: 95ch;
    color: color-mix(in srgb, var(--shop-muted) 90%, var(--shop-text));
    font-size: clamp(0.9rem, 1vw, 1rem);
    line-height: 1.65;
}

body.app-shop .shop-category-summary__body :is(p, ul, ol) {
    margin: 0;
}

body.app-shop .shop-category-summary__body :is(p, ul, ol) + :is(p, ul, ol, h3) {
    margin-top: 0.85em;
}

body.app-shop .shop-category-summary__body h3 {
    margin: 1.2em 0 0.5em;
    color: var(--shop-text);
    font-size: 1.08em;
}

body.app-shop .shop-category-summary__body a {
    color: color-mix(in srgb, var(--shop-accent) 78%, white);
    text-underline-offset: 0.18em;
}

body.app-shop .shop-category-summary__toggle {
    display: inline-flex;
    min-height: 38px;
    margin-top: 18px;
    padding: 0 15px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid rgba(226, 235, 255, 0.2);
    border-radius: 999px;
    color: var(--shop-text);
    background:
        radial-gradient(circle at 30% 10%, rgba(255, 255, 255, 0.12), transparent 50%),
        rgba(24, 30, 45, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
    font-size: 0.8125rem;
    font-weight: 680;
    cursor: pointer;
    transition: border-color var(--shop-transition), background var(--shop-transition), transform var(--shop-transition);
}

body.app-shop .shop-category-summary__toggle::after {
    content: "+";
    font-size: 1rem;
    font-weight: 420;
    line-height: 1;
}

body.app-shop .shop-category-summary.is-expanded .shop-category-summary__toggle::after {
    content: "−";
}

body.app-shop .shop-category-summary__toggle:hover {
    border-color: rgba(226, 235, 255, 0.42);
    background: rgba(38, 47, 69, 0.82);
    transform: translateY(-1px);
}

body.app-shop .shop-category-summary__toggle:focus-visible {
    outline: 3px solid rgba(181, 204, 255, 0.72);
    outline-offset: 3px;
}

body.app-shop .shop-category-summary [hidden],
body.app-shop .shop-category-summary__toggle[hidden] {
    display: none !important;
}

@media (max-width: 767px) {
    body.app-shop .shop-category-summary {
        padding: 20px;
        border-radius: var(--shop-radius-md);
    }

    body.app-shop .shop-category-summary__toggle {
        min-height: 42px;
    }
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    body.app-shop .shop-liquid,
    body.app-shop .shop-panel,
    body.app-shop .shop-direction-card,
    body.app-shop .product-card,
    body.app-shop .cloud-promo,
    body.app-shop .service-cta,
    body.app-shop .shop-page__panel,
    body.app-shop .shop-search-overlay__dialog,
    body.app-shop .shop-header-tool {
        background: var(--shop-panel-strong);
    }
}

/*
 * Current Shop-Script template contract.
 * These rules intentionally follow the itmsftgroup2026 markup and stay
 * namespaced inside Shop-Script so the parent Site theme remains the source
 * of truth for the shared header, footer, typography and color tokens.
 */
body.app-shop .shop-app[data-shop-app],
body.app-shop .shop-account-shell {
    width: 100%;
    min-width: 0;
}

body.app-shop .shop-account-shell {
    overflow: clip;
}

body.app-shop .shop-product-card,
body.app-shop .shop-cloud-promo,
body.app-shop .shop-service-cta,
body.app-shop .shop-search-panel__dialog {
    border: 1px solid var(--shop-glass-line);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.015) 48%),
        var(--shop-glass);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        var(--shop-shadow-soft);
    -webkit-backdrop-filter: blur(24px) saturate(135%);
    backdrop-filter: blur(24px) saturate(135%);
}

/* Shop controls injected into the parent header-actions container */
body.app-shop .shop-header-tools[data-shop-header-tools] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

body.app-shop .shop-header-tools[data-shop-header-tools][hidden] {
    display: none !important;
}

body.app-shop .shop-header-icon {
    position: relative;
    display: inline-flex;
    flex: 0 0 46px;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    overflow: visible;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    color: var(--shop-text);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.018)),
        rgba(17, 21, 33, 0.7);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
    text-decoration: none;
    cursor: pointer;
    -webkit-backdrop-filter: blur(20px) saturate(135%);
    backdrop-filter: blur(20px) saturate(135%);
    transition:
        border-color var(--shop-transition),
        background-color var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-header-icon:hover {
    border-color: rgba(255, 255, 255, 0.42);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 12px 30px rgba(0, 0, 0, 0.24);
    transform: translateY(-2px);
}

body.app-shop .shop-header-icon:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--shop-accent) 78%, white);
    outline-offset: 3px;
}

body.app-shop .shop-header-icon svg {
    width: 20px;
    height: 20px;
    pointer-events: none;
}

body.app-shop .shop-header-icon [data-shop-cart-count] {
    position: absolute;
    inset: -4px -5px auto auto;
    display: grid;
    min-width: 20px;
    height: 20px;
    padding-inline: 5px;
    place-items: center;
    border: 2px solid var(--shop-bg);
    border-radius: 999px;
    color: #07101f;
    background: color-mix(in srgb, var(--shop-accent) 62%, white);
    font-size: 0.6875rem;
    font-weight: 800;
    line-height: 1;
}

body.app-shop .shop-header-icon [data-shop-cart-count]:empty {
    display: none;
}

/* Fixed search surface */
body.app-shop.is-shop-search-open {
    overflow: hidden;
}

body.app-shop .shop-search-panel[data-shop-search-panel] {
    position: fixed;
    z-index: 1800;
    inset: 0;
    display: grid;
    padding: clamp(84px, 11vh, 132px) var(--shop-gutter) 32px;
    overflow: auto;
    place-items: start center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
        opacity var(--shop-transition),
        visibility var(--shop-transition);
}

body.app-shop .shop-search-panel[data-shop-search-panel][hidden] {
    display: none !important;
}

body.app-shop .shop-search-panel[data-shop-search-panel].is-open,
body.app-shop .shop-search-panel[data-shop-search-panel][aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

body.app-shop .shop-search-panel__backdrop {
    position: absolute;
    z-index: 0;
    inset: 0;
    border: 0;
    background: rgba(2, 4, 10, 0.78);
    cursor: default;
    -webkit-backdrop-filter: blur(18px) saturate(118%);
    backdrop-filter: blur(18px) saturate(118%);
}

body.app-shop .shop-search-panel__dialog {
    position: relative;
    z-index: 1;
    width: min(780px, 100%);
    padding: clamp(24px, 3vw, 42px);
    border-radius: var(--shop-radius-lg);
    transform: translateY(-16px) scale(0.985);
    transition: transform var(--shop-transition);
}

body.app-shop .shop-search-panel.is-open .shop-search-panel__dialog,
body.app-shop .shop-search-panel[aria-hidden="false"] .shop-search-panel__dialog {
    transform: translateY(0) scale(1);
}

body.app-shop .shop-search-panel__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 26px;
}

body.app-shop .shop-search-panel__heading h2,
body.app-shop .shop-search-panel__heading > span {
    margin: 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 460;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

body.app-shop .shop-search-panel__close {
    position: relative;
    display: grid;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    color: var(--shop-text);
    background: rgba(255, 255, 255, 0.045);
    cursor: pointer;
}

body.app-shop .shop-search-panel__close::before,
body.app-shop .shop-search-panel__close::after {
    position: absolute;
    width: 18px;
    height: 1px;
    background: currentColor;
    content: "";
}

body.app-shop .shop-search-panel__close::before {
    transform: rotate(45deg);
}

body.app-shop .shop-search-panel__close::after {
    transform: rotate(-45deg);
}

body.app-shop .shop-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
}

body.app-shop .shop-search-form__field {
    min-width: 0;
}

body.app-shop .shop-search-form__field input,
body.app-shop .shop-search-form input[type="search"] {
    width: 100%;
    min-height: 56px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    outline: 0;
    color: var(--shop-text);
    background: rgba(2, 5, 12, 0.54);
    font-size: 1rem;
    line-height: 1;
    transition:
        border-color var(--shop-transition),
        box-shadow var(--shop-transition);
}

body.app-shop .shop-search-form__field input::placeholder {
    color: color-mix(in srgb, var(--shop-muted) 78%, transparent);
}

body.app-shop .shop-search-form__field input:focus {
    border-color: color-mix(in srgb, var(--shop-accent) 70%, white 12%);
    box-shadow: 0 0 0 4px rgba(var(--shop-accent-rgb), 0.12);
}

body.app-shop .shop-search-form__submit {
    align-self: end;
    min-width: 120px;
    min-height: 56px;
    padding-inline: 24px;
}

/* Hero slider: content remains HTML, media contains no localized text */
body.app-shop .shop-hero__slides {
    position: relative;
    width: 100%;
    min-height: inherit;
}

body.app-shop .shop-hero__slide {
    align-items: center;
}

body.app-shop .shop-hero__media {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    opacity: 1;
    pointer-events: none;
}

body.app-shop .shop-hero__media::after {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(3, 5, 12, 0.95) 0%, rgba(3, 5, 12, 0.76) 36%, rgba(3, 5, 12, 0.14) 63%, rgba(3, 5, 12, 0.08) 100%),
        linear-gradient(0deg, rgba(3, 5, 12, 0.48), transparent 46%);
    content: "";
}

body.app-shop .shop-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

body.app-shop .shop-hero__media picture {
    display: block;
    width: 100%;
    height: 100%;
}

body.app-shop .shop-hero__content {
    z-index: 1;
    display: flex;
    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: inherit;
    margin-inline: auto;
    padding: clamp(46px, 4.6vw, 84px) clamp(30px, 4.4vw, 78px) clamp(72px, 6vw, 104px);
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
}

body.app-shop .shop-hero__content > * {
    max-width: min(46%, 660px);
}

body.app-shop .shop-hero__eyebrow {
    margin: 0 0 14px;
    color: color-mix(in srgb, var(--shop-muted) 84%, var(--shop-text));
    font-size: 0.6875rem;
    font-weight: 760;
    line-height: 1.2;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

body.app-shop .shop-hero__title {
    max-width: 13ch;
}

body.app-shop .shop-hero__text {
    max-width: min(44%, 47ch);
}

body.app-shop .shop-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

body.app-shop .shop-hero__dots {
    z-index: 3;
}

body.app-shop .shop-hero__controls > .shop-product-rail__button {
    display: none;
}

body.app-shop .shop-hero__toggle {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: color-mix(in srgb, var(--shop-text) 84%, var(--shop-muted));
    background: rgba(8, 11, 19, 0.62);
    font-size: 0.6875rem;
    font-weight: 650;
    line-height: 1;
    cursor: pointer;
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
}

body.app-shop .shop-hero__toggle:hover,
body.app-shop .shop-hero__toggle[aria-pressed="true"] {
    border-color: rgba(255, 255, 255, 0.32);
    color: var(--shop-text);
    background: rgba(255, 255, 255, 0.08);
}

body.app-shop .shop-hero__toggle[hidden] {
    display: none;
}

body.app-shop .shop-hero__dot {
    position: relative;
    width: 34px;
    min-width: 34px;
    height: 24px;
    min-height: 24px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    cursor: pointer;
    transition: width var(--shop-transition);
}

body.app-shop .shop-hero__dot::before {
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 3px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.24);
    content: "";
    transform: translateY(-50%);
    transition: background-color var(--shop-transition);
}

body.app-shop .shop-hero__dot.is-active,
body.app-shop .shop-hero__dot[aria-current="true"] {
    width: 62px;
    background: transparent;
}

body.app-shop .shop-hero__dot.is-active::before,
body.app-shop .shop-hero__dot[aria-current="true"]::before {
    background: color-mix(in srgb, var(--shop-accent) 54%, white);
}

/* Five business-direction cards */
body.app-shop .shop-directions__grid {
    align-items: stretch;
}

body.app-shop .shop-direction-card {
    isolation: isolate;
}

body.app-shop .shop-direction-card__media {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: flex;
    padding: 8px 6px 36px 34%;
    align-items: flex-start;
    justify-content: flex-end;
    background: radial-gradient(circle at 78% 24%, rgba(var(--shop-accent-rgb), 0.2), transparent 48%);
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 62%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 62%, transparent 100%);
}

body.app-shop .shop-direction-card__media img {
    width: 100%;
    height: 88%;
    object-fit: contain;
    object-position: right top;
}

body.app-shop .shop-direction-card__image {
    filter: invert(1) grayscale(0.35) contrast(1.12) brightness(0.72);
    mix-blend-mode: screen;
}

body.app-shop .shop-direction-card__media--theme {
    padding: 0;
    background: #131823;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 72%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 72%, transparent 100%);
}

body.app-shop .shop-direction-card__media .shop-direction-card__image--theme {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: none;
    mix-blend-mode: normal;
}

body.app-shop .shop-direction-card__content {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: inherit;
    flex-direction: column;
    justify-content: flex-end;
}

body.app-shop .shop-direction-card__title {
    margin-bottom: 6px;
}

body.app-shop .shop-direction-card__text {
    max-width: 32ch;
}

/* Section headings shared by all Shop homepage rails */
body.app-shop .shop-section__head {
    display: flex;
    width: var(--shop-container);
    max-width: 100%;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    margin: 0 auto clamp(18px, 1.7vw, 28px);
}

body.app-shop .shop-section__title {
    max-width: 18ch;
    margin: 0;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 470;
    line-height: 1.08;
    letter-spacing: -0.032em;
    text-wrap: balance;
}

/* Product rails share one H2 level and should not wrap while space is available. */
body.app-shop .shop-product-related .shop-section__title {
    max-width: min(30ch, calc(100% - 116px));
}

body.app-shop .shop-section__link {
    flex: 0 0 auto;
    color: var(--shop-text);
    font-size: var(--shop-type-control);
    font-weight: 650;
    line-height: 1.2;
    text-underline-offset: 7px;
    text-decoration-color: color-mix(in srgb, var(--shop-text) 38%, transparent);
    margin-right: 102px;
}

/* Product rails */
body.app-shop .shop-product-rail {
    position: relative;
    width: var(--shop-container);
    max-width: 100%;
    min-width: 0;
    margin-inline: auto;
}

body.app-shop .shop-product-rail__viewport {
    min-width: 0;
    overflow: hidden;
}

body.app-shop .shop-product-rail__track {
    --shop-rail-gap: clamp(12px, 1vw, 18px);
    display: flex;
    min-width: 0;
    gap: var(--shop-rail-gap);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    scroll-behavior: smooth;
    scroll-snap-type: x proximity;
}

body.app-shop .shop-product-rail__track::-webkit-scrollbar {
    display: none;
}

body.app-shop .shop-product-rail__track > .shop-product-card {
    flex: 0 0 calc((100% - (3 * var(--shop-rail-gap))) / 4);
    scroll-snap-align: start;
}

body.app-shop .shop-product-rail__controls {
    position: absolute;
    top: -58px;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: end;
    gap: 10px;
    margin-top: 0;
}

html.no-js body.app-shop .shop-product-rail__controls {
    display: none;
}

html.no-js body.app-shop .shop-hero__controls {
    display: none;
}

body.app-shop .shop-product-rail__button {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    color: var(--shop-text);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.015)),
        rgba(17, 21, 33, 0.68);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.09);
    cursor: pointer;
    -webkit-backdrop-filter: blur(20px);
    backdrop-filter: blur(20px);
    transition:
        border-color var(--shop-transition),
        box-shadow var(--shop-transition),
        opacity var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-product-rail__button:hover {
    border-color: rgba(255, 255, 255, 0.42);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 12px 30px rgba(0, 0, 0, 0.22);
    transform: translateY(-2px);
}

body.app-shop .shop-product-rail__button[disabled] {
    opacity: 0.32;
    cursor: not-allowed;
    transform: none;
}

body.app-shop .shop-product-rail__button svg {
    width: 18px;
    height: 18px;
}

/* Product card */
body.app-shop .shop-product-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 100%;
    overflow: hidden;
    border-radius: var(--shop-radius-md);
    flex-direction: column;
    transition:
        border-color var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-product-card:hover {
    border-color: rgba(255, 255, 255, 0.3);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 26px 64px rgba(0, 0, 0, 0.3);
    transform: translateY(-3px);
}

body.app-shop .shop-product-card__media {
    position: relative;
    display: grid;
    aspect-ratio: 4 / 3;
    margin: 10px 10px 0;
    overflow: hidden;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: calc(var(--shop-radius-md) - 4px);
    background:
        radial-gradient(circle at 68% 14%, rgba(255, 255, 255, 0.92), transparent 42%),
        linear-gradient(145deg, #dce2ed, #b9c2d1);
    text-decoration: none;
}

body.app-shop .shop-product-card__image {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
}

body.app-shop .shop-product-card__image img {
    width: 88%;
    height: 88%;
    object-fit: contain;
    filter: saturate(0.92) contrast(1.04);
    mix-blend-mode: multiply;
    transition: transform 480ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.app-shop .shop-product-card:hover .shop-product-card__image img {
    transform: scale(1.035);
}

body.app-shop .shop-product-card__badge {
    position: absolute;
    z-index: 2;
    inset: 14px auto auto 14px;
    max-width: calc(100% - 28px);
    padding: 7px 11px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 999px;
    color: var(--shop-text);
    background: rgba(5, 8, 16, 0.66);
    font-size: 0.6875rem;
    font-weight: 760;
    line-height: 1;
    letter-spacing: 0.08em;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
}

body.app-shop .shop-product-card__body {
    display: flex;
    min-width: 0;
    padding: clamp(15px, 1.2vw, 20px);
    flex: 1;
    flex-direction: column;
}

body.app-shop .shop-product-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 9px;
}

body.app-shop .shop-product-card__availability {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--shop-muted);
    font-size: 0.6875rem;
    font-weight: 620;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
}

body.app-shop .shop-product-card__availability::before {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--shop-status-available);
    box-shadow: 0 0 14px color-mix(in srgb, var(--shop-status-available) 76%, transparent);
    content: "";
}

body.app-shop .shop-product-card__availability.is-expected::before {
    background: var(--shop-status-expected);
    box-shadow: 0 0 14px color-mix(in srgb, var(--shop-status-expected) 76%, transparent);
}

body.app-shop .shop-product-card__availability.is-order::before,
body.app-shop .shop-product-card__availability.is-unavailable::before {
    background: var(--shop-status-unavailable);
    box-shadow: 0 0 14px color-mix(in srgb, var(--shop-status-unavailable) 76%, transparent);
}

body.app-shop .shop-product-card__name {
    display: -webkit-box;
    min-height: 2.4em;
    margin: 0 0 14px;
    overflow: hidden;
    color: var(--shop-text);
    font-size: var(--shop-type-h3);
    font-weight: 620;
    line-height: 1.2;
    letter-spacing: -0.025em;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.app-shop .shop-product-card__name a {
    color: inherit;
    text-decoration: none;
}

body.app-shop .shop-product-card__summary {
    display: -webkit-box;
    max-width: 48ch;
    margin: 0 0 22px;
    overflow: hidden;
    color: var(--shop-muted);
    font-size: 0.9375rem;
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

body.app-shop .shop-product-rail .shop-product-card__summary {
    display: none;
}

body.app-shop .shop-product-card__footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    margin-top: auto;
}

body.app-shop .shop-product-card__purchase {
    display: flex;
    min-width: 0;
    flex: 0 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
}

body.app-shop .shop-product-card__price {
    color: var(--shop-text);
    font-size: 1rem;
    font-weight: 680;
    line-height: 1.1;
    white-space: nowrap;
}

body.app-shop .shop-product-card__price-old {
    display: block;
    margin-top: 5px;
    color: var(--shop-muted);
    font-size: 0.8125rem;
    font-weight: 500;
    text-decoration: line-through;
}

body.app-shop .shop-product-card__actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    align-items: center;
    justify-content: end;
    gap: 8px;
}

body.app-shop .shop-product-card__form {
    display: contents;
}

body.app-shop .shop-product-card__button {
    min-height: 38px;
    padding-inline: 12px;
    border: 1px solid color-mix(in srgb, var(--shop-accent) 52%, white 10%);
    border-radius: 999px;
    color: #07101f;
    background: linear-gradient(135deg, #f9fbff, color-mix(in srgb, var(--shop-accent) 58%, white));
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
}

body.app-shop .shop-product-card__button > svg {
    display: none;
}

body.app-shop .shop-product-card__button > img {
    display: none;
}

body.app-shop .shop-product-card__icon {
    position: relative;
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    color: var(--shop-text);
    background: rgba(255, 255, 255, 0.035);
    cursor: pointer;
    transition:
        border-color var(--shop-transition),
        background-color var(--shop-transition),
        box-shadow var(--shop-transition),
        color var(--shop-transition),
        filter var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-product-card__icon:hover,
body.app-shop .shop-product-card__icon[aria-pressed="true"] {
    border-color: rgba(255, 255, 255, 0.4);
    background: rgba(var(--shop-accent-rgb), 0.12);
    transform: translateY(-2px);
}

body.app-shop .shop-product-card__icon svg {
    width: 18px;
    height: 18px;
    pointer-events: none;
}

body.app-shop .shop-product-card__error[data-shop-cart-error] {
    display: none;
    flex: 0 0 100%;
    order: 30;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    margin-top: 12px;
    color: var(--shop-danger);
    font-size: 0.8125rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
    white-space: normal;
}

body.app-shop .shop-product-card.has-error .shop-product-card__error,
body.app-shop .shop-product-card__form.has-error .shop-product-card__error,
body.app-shop .shop-product-card__error:not(:empty) {
    display: block;
}

body.app-shop .shop-product-card.is-loading,
body.app-shop .shop-product-card__form.is-loading,
body.app-shop .shop-product-card__button.is-loading {
    cursor: progress;
}

body.app-shop .shop-product-card.is-loading::after {
    position: absolute;
    z-index: 6;
    inset: 0;
    background:
        linear-gradient(110deg, transparent 25%, rgba(255, 255, 255, 0.06) 48%, transparent 72%);
    background-size: 220% 100%;
    content: "";
    pointer-events: none;
    animation: shop-card-loading 1.25s linear infinite;
}

body.app-shop .shop-product-card.is-added {
    border-color: color-mix(in srgb, var(--shop-success) 48%, var(--shop-glass-line));
}

body.app-shop .shop-product-card__button.is-added {
    border-color: color-mix(in srgb, var(--shop-success) 64%, white);
    background: linear-gradient(135deg, #f9fffc, color-mix(in srgb, var(--shop-success) 60%, white));
}

@keyframes shop-card-loading {
    to {
        background-position-x: -220%;
    }
}

/* Homepage promo blocks */
body.app-shop .shop-cloud-promo,
body.app-shop .shop-service-cta {
    width: var(--shop-container);
    max-width: 100%;
    margin-inline: auto;
    overflow: hidden;
    border-radius: var(--shop-radius-lg);
}

body.app-shop .shop-cloud-promo {
    display: grid;
    min-height: clamp(300px, 22vw, 390px);
    grid-template-columns: minmax(340px, 0.46fr) minmax(0, 0.54fr);
}

body.app-shop .shop-cloud-promo__media {
    position: relative;
    min-height: 300px;
    overflow: hidden;
    grid-column: 2;
    grid-row: 1;
    background:
        radial-gradient(circle at 42% 48%, rgba(var(--shop-accent-rgb), 0.22), transparent 35%),
        rgba(2, 5, 12, 0.62);
}

body.app-shop .shop-cloud-promo__media::after {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(7, 10, 19, 0.92), transparent 28%, transparent 76%, rgba(7, 10, 19, 0.24)),
        linear-gradient(0deg, rgba(7, 10, 19, 0.4), transparent 52%);
    content: "";
    pointer-events: none;
}

body.app-shop .shop-cloud-promo__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.app-shop .shop-cloud-promo__content {
    display: flex;
    min-width: 0;
    padding: clamp(30px, 3.4vw, 58px);
    flex-direction: column;
    grid-column: 1;
    grid-row: 1;
    justify-content: center;
}

body.app-shop .shop-cloud-promo__content .shop-page__lead {
    margin-bottom: 16px;
}

body.app-shop .shop-cloud-promo__content h2,
body.app-shop .shop-service-cta__content h2 {
    max-width: 14ch;
    margin: 0 0 14px;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 460;
    line-height: 1.08;
    letter-spacing: -0.035em;
    text-wrap: balance;
}

body.app-shop .shop-cloud-promo__content p,
body.app-shop .shop-service-cta__content p {
    max-width: 52ch;
    margin: 0 0 20px;
    color: var(--shop-muted);
    font-size: var(--shop-type-body);
    line-height: 1.58;
}

body.app-shop .shop-service-cta {
    display: grid;
    margin-block: 0 clamp(48px, 5vw, 76px);
    grid-template-columns: minmax(220px, 0.24fr) minmax(0, 0.42fr) minmax(360px, 0.34fr);
}

body.app-shop .shop-service-cta__media {
    position: relative;
    min-width: 0;
    min-height: 220px;
    overflow: hidden;
    grid-column: 1;
    grid-row: 1;
    background: #111620;
}

body.app-shop .shop-service-cta__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.app-shop .shop-service-cta__content {
    display: flex;
    min-width: 0;
    padding: clamp(28px, 3.2vw, 52px);
    flex-direction: column;
    grid-column: 2;
    grid-row: 1;
    justify-content: center;
}

body.app-shop .shop-service-cta__features {
    display: grid;
    margin: 0;
    padding: clamp(20px, 2.4vw, 38px);
    border-left: 1px solid rgba(255, 255, 255, 0.1);
    list-style: none;
    grid-column: 3;
    grid-row: 1;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
}

body.app-shop .shop-service-cta__features li {
    display: flex;
    min-width: 0;
    min-height: 54px;
    padding: 14px 16px;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: var(--shop-radius-sm);
    color: color-mix(in srgb, var(--shop-text) 88%, var(--shop-muted));
    background: rgba(255, 255, 255, 0.025);
    font-size: 0.875rem;
    font-weight: 620;
    line-height: 1.4;
}

/* Internal catalog, search, product and cart pages */
body.app-shop .shop-page {
    display: block;
    width: var(--shop-container);
    max-width: 100%;
    min-width: 0;
    margin-inline: auto;
    background: transparent;
}

body.app-shop .shop-page__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 34px;
    margin-bottom: clamp(30px, 4vw, 54px);
}

body.app-shop .shop-page__eyebrow {
    margin: 0 0 16px;
    color: color-mix(in srgb, var(--shop-muted) 84%, var(--shop-text));
    font-size: 0.75rem;
    font-weight: 760;
    line-height: 1.2;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

body.app-shop .shop-page__title {
    max-width: 19ch;
}

body.app-shop .shop-page__body {
    min-width: 0;
}

body.app-shop .shop-page.shop-catalog,
body.app-shop .shop-page.shop-product,
body.app-shop .shop-page.shop-cart,
body.app-shop .shop-page.shop-search {
    display: block;
    grid-template-columns: none;
}

body.app-shop .shop-catalog__layout {
    display: grid;
    min-width: 0;
    align-items: start;
    grid-template-columns: minmax(240px, 0.25fr) minmax(0, 0.75fr);
    gap: clamp(26px, 3.4vw, 56px);
}

body.app-shop .shop-catalog__layout--no-sidebar {
    grid-template-columns: minmax(0, 1fr);
}

body.app-shop .shop-catalog__sidebar {
    position: sticky;
    top: calc(var(--header-height, 82px) + 22px);
    min-width: 0;
}

body.app-shop .shop-catalog__filters {
    padding: 22px;
    border-radius: var(--shop-radius-md);
}

body.app-shop .shop-catalog__filters > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: var(--shop-text);
    font-size: 1rem;
    font-weight: 680;
    cursor: pointer;
    list-style: none;
}

body.app-shop .shop-catalog__filters > summary::-webkit-details-marker {
    display: none;
}

body.app-shop .shop-catalog__filters > summary::after {
    width: 8px;
    height: 8px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    content: "";
    transform: rotate(45deg) translateY(-3px);
    transition: transform var(--shop-transition);
}

body.app-shop .shop-catalog__filters[open] > summary::after {
    transform: rotate(225deg) translate(-2px, -2px);
}

body.app-shop .shop-catalog__filters > :not(summary):first-of-type {
    margin-top: 22px;
}

body.app-shop .shop-filter {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

body.app-shop .shop-filter + .shop-filter {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
}

body.app-shop .shop-filter legend {
    margin-bottom: 12px;
    color: var(--shop-text);
    font-size: 0.875rem;
    font-weight: 680;
}

body.app-shop .shop-filter label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 34px;
    color: var(--shop-muted);
    font-size: 0.875rem;
    line-height: 1.35;
    cursor: pointer;
}

body.app-shop .shop-filter :is(input[type="checkbox"], input[type="radio"]) {
    width: 17px;
    height: 17px;
    accent-color: var(--shop-accent);
}

body.app-shop .shop-filter__values {
    display: grid;
    min-width: 0;
}

body.app-shop .shop-filter__values-list {
    display: grid;
    min-width: 0;
}

body.app-shop .shop-filter__values-list > label[hidden],
body.app-shop .shop-filter__values-toggle[hidden] {
    display: none !important;
}

body.app-shop .shop-filter__values-toggle {
    display: inline-flex;
    width: fit-content;
    min-height: 34px;
    margin-top: 8px;
    padding: 0 12px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid rgba(181, 204, 255, 0.2);
    border-radius: 999px;
    color: color-mix(in srgb, var(--shop-accent) 76%, white);
    background: rgba(181, 204, 255, 0.055);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 680;
    line-height: 1;
    cursor: pointer;
    transition: border-color var(--shop-transition), color var(--shop-transition), background var(--shop-transition);
}

body.app-shop .shop-filter__values-toggle::after {
    content: "+";
    font-size: 1rem;
    font-weight: 420;
    line-height: 1;
}

body.app-shop .shop-filter__values.is-expanded .shop-filter__values-toggle::after {
    content: "−";
}

body.app-shop .shop-filter__values-toggle:hover {
    border-color: rgba(181, 204, 255, 0.46);
    color: var(--shop-text);
    background: rgba(181, 204, 255, 0.1);
}

body.app-shop .shop-filter__values-toggle:focus-visible {
    outline: 3px solid rgba(181, 204, 255, 0.68);
    outline-offset: 3px;
}

body.app-shop .shop-filter__groups-list > [data-shop-filter-group][hidden],
body.app-shop .shop-filter__groups-toggle[hidden] {
    display: none !important;
}

body.app-shop .shop-filter__groups-toggle {
    display: flex;
    width: 100%;
    min-height: 42px;
    margin-top: 22px;
    padding: 0 14px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid rgba(181, 204, 255, 0.22);
    border-radius: 14px;
    color: color-mix(in srgb, var(--shop-accent) 78%, white);
    background: rgba(181, 204, 255, 0.055);
    font: inherit;
    font-size: 0.8125rem;
    font-weight: 680;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
    transition: border-color var(--shop-transition), color var(--shop-transition), background var(--shop-transition);
}

body.app-shop .shop-filter__groups-toggle::after {
    content: "+";
    flex: 0 0 auto;
    font-size: 1rem;
    font-weight: 420;
}

body.app-shop .shop-filter__groups.is-expanded .shop-filter__groups-toggle::after {
    content: "−";
}

body.app-shop .shop-filter__groups-toggle:hover {
    border-color: rgba(181, 204, 255, 0.46);
    color: var(--shop-text);
    background: rgba(181, 204, 255, 0.1);
}

body.app-shop .shop-filter__groups-toggle:focus-visible {
    outline: 3px solid rgba(181, 204, 255, 0.68);
    outline-offset: 3px;
}

body.app-shop .shop-catalog__content {
    min-width: 0;
}

body.app-shop .shop-catalog__layout--no-sidebar > .shop-catalog__content {
    grid-column: 1 / -1;
}

body.app-shop .shop-catalog__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 24px;
}

body.app-shop .shop-catalog__toolbar select {
    min-height: 46px;
    max-width: 100%;
    padding: 0 42px 0 16px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    outline: 0;
    color: var(--shop-text);
    background: var(--shop-glass-strong);
}

body.app-shop .shop-catalog__subcategories,
body.app-shop .shop-page__subcategories {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 30px;
}

body.app-shop .shop-catalog__subcategories a,
body.app-shop .shop-page__subcategories a {
    display: inline-flex;
    min-height: 42px;
    padding: 0 16px;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: var(--shop-muted);
    background: rgba(255, 255, 255, 0.025);
    font-size: 0.875rem;
    font-weight: 620;
    text-decoration: none;
}

body.app-shop .shop-catalog__subcategories a:hover,
body.app-shop .shop-page__subcategories a:hover {
    border-color: rgba(255, 255, 255, 0.32);
    color: var(--shop-text);
}

body.app-shop .shop-product-grid {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(14px, 1.8vw, 26px);
}

body.app-shop .shop-product-grid > * {
    min-width: 0;
}

body.app-shop .shop-product__layout {
    display: grid;
    min-width: 0;
    align-items: start;
    grid-template-columns: minmax(0, 1.08fr) minmax(380px, 0.92fr);
    gap: clamp(32px, 5vw, 82px);
}

body.app-shop .shop-product-gallery {
    min-width: 0;
}

body.app-shop .shop-product-gallery__main {
    display: grid;
    min-height: clamp(420px, 50vw, 760px);
    overflow: hidden;
    place-items: center;
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-lg);
    background:
        radial-gradient(circle at 64% 20%, rgba(var(--shop-accent-rgb), 0.16), transparent 38%),
        var(--shop-panel-soft);
}

body.app-shop .shop-product-gallery__main img {
    width: 90%;
    height: 90%;
    object-fit: contain;
}

body.app-shop .shop-product-gallery__thumbs {
    display: flex;
    gap: 10px;
    margin-top: 12px;
    overflow-x: auto;
    scrollbar-width: thin;
}

body.app-shop .shop-product-gallery__thumb {
    display: grid;
    flex: 0 0 84px;
    width: 84px;
    height: 84px;
    padding: 8px;
    overflow: hidden;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.025);
    cursor: pointer;
}

body.app-shop .shop-product-gallery__thumb.is-active {
    border-color: color-mix(in srgb, var(--shop-accent) 66%, white 8%);
}

body.app-shop .shop-product-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

body.app-shop .shop-product__info {
    position: sticky;
    top: calc(var(--header-height, 82px) + 24px);
    min-width: 0;
}

body.app-shop .shop-product__title {
    max-width: 14ch;
    margin: 0 0 20px;
    color: var(--shop-text);
    font-size: var(--shop-type-h1);
    font-weight: 440;
    line-height: 1.04;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

body.app-shop .shop-product__summary {
    max-width: 58ch;
    margin-bottom: 28px;
    color: var(--shop-muted);
    font-size: 1rem;
    line-height: 1.65;
}

body.app-shop .shop-buybox {
    padding: clamp(24px, 3vw, 36px);
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-lg);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.012)),
        var(--shop-glass);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
    -webkit-backdrop-filter: blur(22px);
    backdrop-filter: blur(22px);
}

body.app-shop .shop-product__actions--secondary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

body.app-shop .shop-product__actions--secondary > .shop-button {
    flex: 1 1 180px;
    min-width: 0;
}

body.app-shop .shop-product__tabs {
    display: flex;
    gap: 8px;
    margin-top: clamp(52px, 7vw, 96px);
    padding-bottom: 12px;
    overflow-x: auto;
}

body.app-shop .shop-product__tabs a,
body.app-shop .shop-product__tabs button {
    flex: 0 0 auto;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: var(--shop-muted);
    background: transparent;
    font-size: 0.875rem;
    font-weight: 620;
    text-decoration: none;
}

body.app-shop .shop-product__tabs .is-active {
    border-color: rgba(255, 255, 255, 0.34);
    color: var(--shop-text);
    background: rgba(255, 255, 255, 0.055);
}

body.app-shop .shop-product__description,
body.app-shop .shop-product__features {
    max-width: 920px;
    color: color-mix(in srgb, var(--shop-text) 84%, var(--shop-muted));
    font-size: 1rem;
    line-height: 1.75;
}

body.app-shop .shop-cart__layout {
    display: grid;
    min-width: 0;
    align-items: start;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 0.34fr);
    gap: clamp(26px, 4vw, 58px);
}

body.app-shop .shop-cart__list {
    min-width: 0;
}

body.app-shop .shop-cart__row {
    display: grid;
    min-width: 0;
    padding: 18px 0;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    grid-template-columns: 96px minmax(0, 1fr) auto auto;
    gap: 18px;
}

body.app-shop .shop-cart__media {
    display: grid;
    width: 96px;
    aspect-ratio: 1;
    overflow: hidden;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.02);
}

body.app-shop .shop-cart__media img {
    width: 82%;
    height: 82%;
    object-fit: contain;
}

body.app-shop .shop-cart__info {
    min-width: 0;
}

body.app-shop .shop-cart__info a {
    color: var(--shop-text);
    font-weight: 650;
    line-height: 1.35;
    text-decoration: none;
}

body.app-shop .shop-cart__quantity input {
    width: 76px;
    min-height: 44px;
    padding-inline: 10px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    outline: 0;
    color: var(--shop-text);
    background: rgba(2, 5, 12, 0.52);
    text-align: center;
}

body.app-shop .shop-cart__price {
    min-width: 108px;
    color: var(--shop-text);
    font-weight: 680;
    text-align: right;
}

body.app-shop .shop-cart__summary {
    position: sticky;
    top: calc(var(--header-height, 82px) + 24px);
    min-width: 0;
    padding: clamp(24px, 3vw, 34px);
    border: 1px solid var(--shop-glass-line);
    border-radius: var(--shop-radius-lg);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.012)),
        var(--shop-glass);
    -webkit-backdrop-filter: blur(22px);
    backdrop-filter: blur(22px);
}

body.app-shop .shop-search__form {
    display: grid;
    max-width: 820px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    margin-bottom: clamp(34px, 5vw, 66px);
}

body.app-shop .shop-search__form input[type="search"] {
    width: 100%;
    min-height: 56px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    outline: 0;
    color: var(--shop-text);
    background: rgba(2, 5, 12, 0.5);
}

body.app-shop .shop-panel {
    border-radius: var(--shop-radius-lg);
}

body.app-shop .shop-empty {
    padding: clamp(34px, 5vw, 70px);
    border: 1px dashed rgba(255, 255, 255, 0.18);
    border-radius: var(--shop-radius-lg);
    color: var(--shop-muted);
    text-align: center;
}

body.app-shop .shop-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: clamp(36px, 5vw, 70px);
}

body.app-shop .shop-pagination a,
body.app-shop .shop-pagination span {
    display: grid;
    min-width: 44px;
    height: 44px;
    padding-inline: 10px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    color: var(--shop-muted);
    text-decoration: none;
}

body.app-shop .shop-pagination .selected,
body.app-shop .shop-pagination .is-active {
    border-color: rgba(255, 255, 255, 0.36);
    color: var(--shop-text);
    background: rgba(255, 255, 255, 0.06);
}

body.app-shop .shop-footer-stage {
    position: relative;
    min-width: 0;
    isolation: isolate;
}

body.app-shop .shop-footer-stage.finale-shell--footer-only {
    display: block;
    min-height: 0;
}

body.app-shop .shop-footer-stage .finale-footer {
    margin-top: 0;
}

body.app-shop .shop-footer-stage.finale-shell--footer-only > .finale-footer.site-footer {
    border-top-color: transparent;
}

/*
 * Final Shop-Script contract guards.
 * Keep these selectors exact: the markup and JS use the singular
 * `.shop-header-tool__label` and append cart errors to the form itself.
 */
body.app-shop .shop-home,
body.app-shop .shop-app--home,
body.app-shop .shop-account-screen,
body.app-shop .shop-hook,
body.app-shop .shop-hook--header,
body.app-shop .shop-hook--footer {
    min-width: 0;
    max-width: 100%;
}

body.app-shop .shop-header-tool__label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

body.app-shop .shop-button--ghost {
    border-color: rgba(255, 255, 255, 0.14);
    color: var(--shop-muted);
    background: rgba(255, 255, 255, 0.025);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

body.app-shop .shop-button--ghost:hover {
    border-color: rgba(255, 255, 255, 0.32);
    color: var(--shop-text);
    background: rgba(255, 255, 255, 0.065);
}

body.app-shop .shop-catalog__sort {
    min-width: 0;
    max-width: 100%;
}

body.app-shop .shop-product-card__form.is-loading .shop-product-card__button,
body.app-shop .shop-product-card__button.is-loading {
    opacity: 0.68;
    pointer-events: none;
}

/* Desktop with a narrower viewport */
@media (max-width: 1260px) {
    body.app-shop .shop-product-rail__track > .shop-product-card {
        flex-basis: calc((100% - (2 * var(--shop-rail-gap))) / 3);
    }

    body.app-shop .shop-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-shop .shop-product__layout {
        grid-template-columns: minmax(0, 1fr) minmax(340px, 0.84fr);
        gap: 34px;
    }
}

/* Tablet */
@media (max-width: 1024px) {
    body.app-shop .shop-hero {
        min-height: clamp(440px, 37vw, 680px);
    }

    body.app-shop .shop-search-panel[data-shop-search-panel] {
        padding-top: 94px;
    }

    body.app-shop .shop-hero__content {
        padding: 48px clamp(28px, 5vw, 52px) 76px;
    }

    body.app-shop .shop-hero__content > *,
    body.app-shop .shop-hero__text {
        max-width: min(52%, 580px);
    }

    body.app-shop .shop-product-rail__track > .shop-product-card {
        flex-basis: calc((100% - var(--shop-rail-gap)) / 2);
    }

    body.app-shop .shop-section__head,
    body.app-shop .shop-page__header {
        align-items: start;
        flex-direction: column;
        gap: 16px;
    }

    body.app-shop .shop-cloud-promo {
        min-height: 300px;
        grid-template-columns: minmax(300px, 0.48fr) minmax(0, 0.52fr);
    }

    body.app-shop .shop-cloud-promo__media {
        min-height: 300px;
    }

    body.app-shop .shop-service-cta {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-service-cta__media,
    body.app-shop .shop-service-cta__content,
    body.app-shop .shop-service-cta__features {
        grid-column: 1;
        grid-row: auto;
    }

    body.app-shop .shop-service-cta__features {
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        border-left: 0;
    }

    body.app-shop .shop-catalog__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-catalog__sidebar {
        position: static;
    }

    body.app-shop .shop-catalog__filters > summary {
        min-height: 48px;
    }

    body.app-shop .shop-product__layout,
    body.app-shop .shop-cart__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-product__info,
    body.app-shop .shop-cart__summary {
        position: static;
    }
}

/* Mobile */
@media (max-width: 767px) {
    body.app-shop {
        --shop-radius-xl: 26px;
        --shop-radius-lg: 22px;
        --shop-radius-md: 18px;
        --shop-space-section: 72px;
    }

    body.app-shop .shop-header-tools[data-shop-header-tools] {
        gap: 6px;
    }

    body.app-shop .shop-header-tool--compare,
    body.app-shop .shop-header-tool--wishlist {
        display: none;
    }

    body.app-shop .shop-header-icon {
        flex-basis: 42px;
        width: 42px;
        height: 42px;
    }

    body.app-shop .shop-header-icon svg {
        width: 18px;
        height: 18px;
    }

    body.app-shop .shop-search-panel[data-shop-search-panel] {
        padding: 76px 14px 20px;
    }

    body.app-shop .shop-search-panel__dialog {
        padding: 20px;
    }

    body.app-shop .shop-search-panel__heading {
        margin-bottom: 20px;
    }

    body.app-shop .shop-search-panel__heading h2,
    body.app-shop .shop-search-panel__heading > span {
        font-size: var(--shop-type-h2);
    }

    body.app-shop .shop-search-form,
    body.app-shop .shop-search__form {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-search-form__submit,
    body.app-shop .shop-search__form .shop-button {
        width: 100%;
    }

    body.app-shop .shop-hero {
        min-height: min(590px, calc(100svh - 28px));
    }

    body.app-shop .shop-hero__controls {
        right: auto;
        bottom: 18px;
        left: 50%;
        transform: translateX(-50%);
    }

    body.app-shop .shop-hero__content {
        padding: 44px 24px 110px;
    }

    body.app-shop .shop-hero__content > *,
    body.app-shop .shop-hero__text {
        max-width: 100%;
    }

    body.app-shop .shop-hero__media img {
        object-position: 68% center;
    }

    body.app-shop .shop-hero__media::after {
        background:
            linear-gradient(90deg, rgba(3, 5, 12, 0.95) 0%, rgba(3, 5, 12, 0.76) 64%, rgba(3, 5, 12, 0.34) 100%),
            linear-gradient(0deg, rgba(3, 5, 12, 0.68), transparent 62%);
    }

    body.app-shop .shop-hero__title {
        max-width: 13ch;
        font-size: clamp(2.2rem, 10.5vw, 3.25rem);
    }

    body.app-shop .shop-hero__text {
        font-size: 1rem;
    }

    body.app-shop .shop-hero__actions {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-shop .shop-hero__actions .shop-button {
        width: 100%;
    }

    body.app-shop .shop-hero__dots {
        max-width: calc(100% - (2 * var(--shop-gutter)));
        overflow-x: auto;
    }

    body.app-shop .shop-directions {
        margin-top: 14px;
    }

    body.app-shop .shop-directions__grid {
        display: flex;
        gap: 12px;
        padding-bottom: 8px;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    body.app-shop .shop-directions__grid::-webkit-scrollbar {
        display: none;
    }

    body.app-shop .shop-direction-card,
    body.app-shop .shop-direction-card:nth-child(4),
    body.app-shop .shop-direction-card:nth-child(5) {
        min-height: 148px;
        flex: 0 0 min(76vw, 280px);
        grid-column: auto;
        scroll-snap-align: start;
    }

    body.app-shop .shop-section__head {
        align-items: start;
        flex-direction: column;
    }

    body.app-shop .shop-section__link {
        margin-right: 0;
    }

    body.app-shop .shop-section__title,
    body.app-shop .shop-cloud-promo__content h2,
    body.app-shop .shop-service-cta__content h2 {
        font-size: var(--shop-type-h2);
    }

    body.app-shop .shop-page__title,
    body.app-shop .shop-product__title {
        font-size: var(--shop-type-h1);
    }

    body.app-shop .shop-product-related .shop-section__title {
        max-width: 100%;
    }

    body.app-shop .shop-product-rail__viewport {
        margin-right: calc(-1 * var(--shop-gutter));
        padding-right: var(--shop-gutter);
        overflow: hidden;
    }

    body.app-shop .shop-product-rail__track {
        padding-right: var(--shop-gutter);
        transform: none !important;
        scroll-snap-type: x mandatory;
    }

    body.app-shop .shop-product-rail__track > .shop-product-card {
        flex-basis: min(84vw, 330px);
        scroll-snap-align: start;
    }

    body.app-shop .shop-product-rail__controls {
        display: none;
    }

    body.app-shop .shop-product-card:hover {
        transform: none;
    }

    body.app-shop .shop-product-card__footer {
        align-items: flex-end;
        flex-direction: row;
    }

    body.app-shop .shop-product-card__actions {
        justify-content: start;
    }

    body.app-shop .shop-product-card__button {
        flex: 0 1 auto;
    }

    body.app-shop .shop-cloud-promo {
        min-height: 0;
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-cloud-promo__media {
        min-height: min(62vw, 360px);
        grid-column: 1;
        grid-row: 2;
    }

    body.app-shop .shop-cloud-promo__content {
        grid-column: 1;
        grid-row: 1;
    }

    body.app-shop .shop-cloud-promo__content,
    body.app-shop .shop-service-cta__content,
    body.app-shop .shop-service-cta__features {
        padding: 26px;
    }

    body.app-shop .shop-service-cta__features {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-service-cta__features li {
        min-height: 52px;
    }

    body.app-shop .shop-page__header {
        margin-bottom: 30px;
    }

    body.app-shop .shop-catalog__toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    body.app-shop .shop-catalog__toolbar select {
        width: 100%;
    }

    body.app-shop .shop-product-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-product-gallery__main {
        min-height: min(112vw, 520px);
    }

    body.app-shop .shop-cart__row {
        grid-template-columns: 78px minmax(0, 1fr);
    }

    body.app-shop .shop-cart__media {
        width: 78px;
        grid-row: 1 / span 2;
    }

    body.app-shop .shop-cart__quantity,
    body.app-shop .shop-cart__price {
        grid-column: 2;
        min-width: 0;
        text-align: left;
    }

    body.app-shop dl.shop-features > div {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
}

@media (max-width: 420px) {
    body.app-shop .site-header {
        padding-inline: 12px;
        column-gap: 8px;
    }

    body.app-shop .site-header .wordmark {
        width: 112px;
    }

    body.app-shop .site-header .header-actions,
    body.app-shop .shop-header-tools[data-shop-header-tools] {
        gap: 4px;
    }

    body.app-shop .shop-cloud-promo__content,
    body.app-shop .shop-service-cta__content,
    body.app-shop .shop-service-cta__features {
        padding: 22px;
    }

    body.app-shop .shop-product-card__body {
        padding: 20px;
    }

    body.app-shop .shop-product-card__meta {
        align-items: start;
        flex-direction: column;
    }
}

@media (max-width: 360px) {
    body.app-shop .site-header {
        padding-inline: 8px;
        column-gap: 6px;
    }

    body.app-shop .site-header .wordmark {
        width: 102px;
    }
}

@media (max-width: 340px) {
    body.app-shop .site-header .mobile-account-shortcut {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-shop .shop-search-panel *,
    body.app-shop .shop-product-card,
    body.app-shop .shop-product-card::after,
    body.app-shop .shop-product-rail__track {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Mobile catalog toolbar and off-canvas filters. Kept last so the live
   catalog controls override the legacy responsive rules above. */
body.app-shop .shop-catalog__toolbar-primary {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 10px;
}

body.app-shop .shop-catalog__toolbar-primary > p {
    margin: 0;
}

body.app-shop .shop-catalog__filter-toggle,
body.app-shop .shop-catalog__filter-drawer-head,
body.app-shop .shop-catalog__filter-backdrop {
    display: none;
}

body.app-shop .shop-catalog__icon--filter {
    --shop-catalog-icon: url("../img/icons/catalog-filter.svg");
}

body.app-shop .shop-catalog__filter-backdrop[hidden] {
    display: none !important;
}

@media (max-width: 767px) {
    body.is-shop-filter-open {
        overflow: hidden;
    }

    body.app-shop .shop-catalog__layout {
        display: block;
    }

    body.app-shop .shop-catalog__content {
        display: flex;
        min-width: 0;
        flex-direction: column;
    }

    body.app-shop .shop-catalog__results {
        order: 1;
    }

    body.app-shop .shop-category-summary {
        order: 2;
        margin: clamp(34px, 10vw, 54px) 0 0;
    }

    body.app-shop .shop-catalog__toolbar {
        display: grid;
        width: 100%;
        margin-bottom: 22px;
        grid-template-columns: 42px minmax(0, 1fr);
        align-items: start;
        flex-direction: initial;
        gap: 9px;
    }

    body.app-shop .shop-catalog__toolbar-primary {
        display: contents;
    }

    body.app-shop .shop-catalog__toolbar-primary > p {
        grid-column: 1 / -1;
        grid-row: 2;
        margin-top: 2px;
        color: var(--shop-muted);
        font-size: 0.8125rem;
        line-height: 1.35;
    }

    body.app-shop .shop-catalog__filter-toggle {
        display: grid;
        width: 42px;
        min-width: 42px;
        height: 42px;
        min-height: 42px;
        padding: 0;
        grid-column: 1;
        grid-row: 1;
        place-items: center;
        border: 1px solid rgba(226, 235, 255, 0.2);
        border-radius: 12px;
        color: var(--shop-text);
        background:
            radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.14), transparent 56%),
            rgba(14, 18, 29, 0.82);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
        cursor: pointer;
        -webkit-backdrop-filter: blur(20px) saturate(135%);
        backdrop-filter: blur(20px) saturate(135%);
    }

    body.app-shop .shop-catalog__filter-toggle[aria-expanded="true"] {
        border-color: rgba(var(--shop-accent-rgb), 0.64);
        color: #edf3ff;
        background-color: rgba(var(--shop-accent-rgb), 0.18);
        box-shadow: 0 0 20px rgba(var(--shop-accent-rgb), 0.16);
    }

    body.app-shop .shop-catalog__filter-toggle:focus-visible,
    body.app-shop .shop-catalog__filter-close:focus-visible {
        outline: 3px solid color-mix(in srgb, var(--shop-accent) 76%, white);
        outline-offset: 3px;
    }

    body.app-shop .shop-catalog__controls {
        display: flex;
        width: auto;
        min-width: 0;
        grid-column: 2;
        grid-row: 1;
        justify-content: flex-end;
        gap: 6px;
    }

    body.app-shop .shop-catalog__sort-menu {
        width: 42px;
        min-width: 42px;
    }

    body.app-shop .shop-catalog__sort-menu > summary {
        width: 42px;
        min-width: 42px;
        height: 42px;
        min-height: 42px;
        padding: 0;
        grid-template-columns: 1fr;
        place-items: center;
        border-radius: 12px;
    }

    body.app-shop .shop-catalog__sort-menu > summary [data-shop-catalog-sort-label] {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }

    body.app-shop .shop-catalog__sort-direction {
        width: 20px;
        height: 20px;
        border-radius: 0;
        background: transparent;
    }

    body.app-shop .shop-catalog__sort-menu .shop-catalog__icon--chevron {
        display: none;
    }

    body.app-shop .shop-catalog__sort-options {
        width: 250px;
        max-width: calc(100vw - 28px);
    }

    body.app-shop .shop-catalog__views {
        display: flex;
        width: auto;
        gap: 6px;
    }

    body.app-shop .shop-catalog__views button {
        width: 42px;
        min-width: 42px;
        height: 42px;
        min-height: 42px;
        border-radius: 12px;
    }

    body.app-shop .shop-catalog__filter-backdrop {
        position: fixed;
        z-index: 1090;
        inset: 0;
        display: block;
        width: 100%;
        height: 100%;
        padding: 0;
        border: 0;
        background: rgba(1, 4, 11, 0.72);
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
        cursor: pointer;
    }

    body.app-shop .shop-catalog__sidebar {
        position: fixed;
        z-index: 1100;
        inset: 0 auto 0 0;
        display: block;
        width: min(360px, calc(100vw - 28px));
        max-width: 100%;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        padding: max(18px, env(safe-area-inset-top)) 16px max(22px, env(safe-area-inset-bottom));
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        border: 1px solid rgba(226, 235, 255, 0.18);
        border-left: 0;
        border-radius: 0 24px 24px 0;
        background:
            radial-gradient(circle at 28% 0%, rgba(var(--shop-accent-rgb), 0.16), transparent 46%),
            rgba(8, 12, 22, 0.98);
        box-shadow: 28px 0 80px rgba(0, 0, 0, 0.54);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(calc(-100% - 18px));
        transition: transform 220ms ease, opacity 180ms ease, visibility 220ms ease;
        -webkit-overflow-scrolling: touch;
    }

    body.app-shop .shop-catalog.is-mobile-filters-open .shop-catalog__sidebar {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }

    body.app-shop .shop-catalog__filter-drawer-head {
        position: sticky;
        z-index: 2;
        top: calc(-1 * max(18px, env(safe-area-inset-top)));
        display: flex;
        min-height: 64px;
        margin: calc(-1 * max(18px, env(safe-area-inset-top))) -16px 16px;
        padding: max(18px, env(safe-area-inset-top)) 16px 12px;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        border-bottom: 1px solid rgba(226, 235, 255, 0.12);
        background: rgba(8, 12, 22, 0.94);
        -webkit-backdrop-filter: blur(22px) saturate(135%);
        backdrop-filter: blur(22px) saturate(135%);
    }

    body.app-shop .shop-catalog__filter-drawer-head strong {
        font-size: 1.05rem;
        font-weight: 680;
    }

    body.app-shop .shop-catalog__filter-close {
        display: grid;
        width: 42px;
        min-width: 42px;
        height: 42px;
        min-height: 42px;
        padding: 0;
        place-items: center;
        border: 1px solid rgba(226, 235, 255, 0.22);
        border-radius: 12px;
        color: var(--shop-text);
        background: rgba(255, 255, 255, 0.045);
        cursor: pointer;
    }

    body.app-shop .shop-catalog__filters {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    body.app-shop .shop-catalog__filters > summary {
        display: none;
    }

    body.app-shop .shop-catalog__filters > :not(summary):first-of-type {
        margin-top: 0;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-3"] {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__media {
        margin: 7px 7px 0;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__body {
        padding: 12px;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__summary {
        display: none;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card {
        display: grid;
        min-height: 160px;
        grid-template-columns: minmax(96px, 32%) minmax(0, 1fr);
        grid-template-rows: auto;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__media {
        height: calc(100% - 16px);
        min-height: 0;
        aspect-ratio: auto;
        margin: 8px 0 8px 8px;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__body {
        padding: 14px 12px;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__summary {
        display: none;
    }
}

@media (max-width: 359px) {
    body.app-shop .shop-catalog__toolbar {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 6px;
    }

    body.app-shop .shop-catalog__filter-toggle,
    body.app-shop .shop-catalog__sort-menu,
    body.app-shop .shop-catalog__sort-menu > summary,
    body.app-shop .shop-catalog__views button {
        width: 38px;
        min-width: 38px;
        height: 38px;
        min-height: 38px;
    }

    body.app-shop .shop-catalog__controls,
    body.app-shop .shop-catalog__views {
        gap: 4px;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Stable card metadata, compact cart quantity control and desktop hints. */
body.app-shop .shop-product-card__meta {
    min-height: 15px;
}

body.app-shop .shop-product-card__rating {
    display: inline-flex;
    min-width: 66px;
    min-height: 14px;
    align-items: center;
    flex: 0 0 66px;
    line-height: 1;
}

body.app-shop .shop-product-card__rating.is-empty {
    visibility: hidden;
}

body.app-shop .shop-product-card__cart-switch {
    display: grid;
    min-width: 0;
    flex: 0 0 auto;
}

body.app-shop .shop-product-card__cart-switch > [hidden] {
    display: none !important;
}

body.app-shop .shop-product-card .shop-product-card__cart-control {
    min-width: 120px;
    min-height: 38px;
    grid-template-columns: 30px minmax(58px, auto) 30px;
}

body.app-shop .shop-product-card .shop-product-card__cart-control .shop-product-cart-control__step,
body.app-shop .shop-product-card .shop-product-card__cart-control .shop-product-cart-control__label {
    min-height: 36px;
}

body.app-shop .shop-product-card .shop-product-card__cart-control .shop-product-cart-control__step {
    font-size: 0.9375rem;
}

body.app-shop .shop-product-card .shop-product-card__cart-control .shop-product-cart-control__label {
    padding-inline: 6px;
    font-size: 0.6875rem;
}

@media (hover: hover) and (pointer: fine) {
    body.app-shop .shop-product-card__icon[data-tooltip]::after {
        position: absolute;
        z-index: 20;
        bottom: calc(100% + 8px);
        left: 50%;
        width: max-content;
        max-width: min(210px, calc(100vw - 24px));
        padding: 7px 9px;
        border: 1px solid rgba(255, 255, 255, 0.16);
        border-radius: 9px;
        color: var(--shop-text);
        background: rgba(8, 12, 22, 0.96);
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.34);
        content: attr(data-tooltip);
        font-size: 0.6875rem;
        font-weight: 650;
        line-height: 1.25;
        opacity: 0;
        visibility: hidden;
        overflow-wrap: anywhere;
        text-align: center;
        white-space: normal;
        pointer-events: none;
        transform: translate(-50%, 4px);
        transition: opacity 160ms ease, visibility 160ms ease, transform 160ms ease;
    }

    body.app-shop .shop-product-card__icon[data-tooltip]:hover::after,
    body.app-shop .shop-product-card__icon[data-tooltip]:focus-visible::after {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
    }

    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-wishlist][data-tooltip]::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-compare][data-tooltip]::after {
        right: 0;
        left: auto;
        transform: translateY(4px);
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__icon[data-tooltip]::after {
        right: auto;
        left: 0;
        transform: translateY(4px);
    }

    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-wishlist][data-tooltip]:hover::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-wishlist][data-tooltip]:focus-visible::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-compare][data-tooltip]:hover::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-compare][data-tooltip]:focus-visible::after {
        transform: translateY(0);
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__icon[data-tooltip]:hover::after,
    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__icon[data-tooltip]:focus-visible::after {
        transform: translateY(0);
    }

    /* DEBUG: outline tooltip anchors while checking narrow desktop cards. */
    /* body.app-shop .shop-product-card__icon[data-tooltip] { outline: 1px solid #ff4d8d; } */
}

@media (min-width: 901px) and (max-width: 1050px) {
    body.app-shop .shop-product-card__meta {
        right: 10px;
        min-height: 9px;
    }

    body.app-shop .shop-product-card__rating {
        min-width: 39px;
        min-height: 8px;
        flex-basis: 39px;
        transform: scale(0.64);
        transform-origin: left center;
    }

    body.app-shop .shop-product-card .shop-product-card__cart-control {
        position: absolute;
        z-index: 3;
        right: 8px;
        bottom: 8px;
        min-width: 72px;
        min-height: 26px;
        grid-template-columns: 18px minmax(34px, auto) 18px;
    }

    body.app-shop .shop-product-card .shop-product-card__cart-control .shop-product-cart-control__step,
    body.app-shop .shop-product-card .shop-product-card__cart-control .shop-product-cart-control__label {
        min-height: 24px;
        font-size: 7px;
    }

}

@media (min-width: 901px) and (max-width: 1050px) and (hover: hover) and (pointer: fine) {
    body.app-shop .shop-product-card__icon[data-tooltip]::after {
        top: calc(100% + 5px);
        bottom: auto;
        transform: translate(-50%, -3px);
    }

    body.app-shop .shop-product-card__icon[data-tooltip]:hover::after,
    body.app-shop .shop-product-card__icon[data-tooltip]:focus-visible::after {
        transform: translate(-50%, 0);
    }

    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-wishlist][data-tooltip]::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-compare][data-tooltip]::after {
        transform: translateY(-3px);
    }

    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-wishlist][data-tooltip]:hover::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-wishlist][data-tooltip]:focus-visible::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-compare][data-tooltip]:hover::after,
    body.app-shop .shop-product-card .shop-product-card__icon[data-shop-compare][data-tooltip]:focus-visible::after {
        transform: translateY(0);
    }
}

@media (max-width: 420px) {
    body.app-shop .shop-product-card__meta {
        align-items: center;
        flex-direction: row;
    }

    body.app-shop .shop-product-card .shop-product-card__cart-control {
        min-width: 112px;
        grid-template-columns: 28px minmax(56px, auto) 28px;
    }
}

/* DEBUG: body.app-shop .shop-product-card__meta { outline: 1px solid rgba(255, 80, 80, .35); } */

/* Product purchase control, sticky buy bar and fullscreen gallery. */
body.app-shop .shop-product__actions--purchase {
    grid-template-areas: "price quick cart";
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 12px;
}

body.app-shop .shop-product__actions--purchase > .shop-product__price {
    grid-area: price;
}

body.app-shop .shop-product__actions--purchase > .shop-product__quick-actions {
    grid-area: quick;
}

body.app-shop .shop-product__actions--purchase > .shop-product-cart-switch {
    grid-area: cart;
}

body.app-shop .shop-product-cart-switch {
    display: grid;
    min-width: 142px;
}

body.app-shop .shop-product-cart-switch > [hidden],
body.app-shop .shop-product-cart-control[hidden],
body.app-shop .shop-product-sticky-bar[hidden],
body.app-shop .shop-product-lightbox[hidden] {
    display: none !important;
}

body.app-shop .shop-product-cart-switch__add {
    width: 100%;
    min-width: 142px;
    min-height: 48px;
}

body.app-shop .shop-product-cart-control {
    display: grid;
    grid-template-columns: 44px minmax(82px, auto) 44px;
    min-height: 48px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--shop-success) 68%, white 10%);
    border-radius: 999px;
    color: #fff;
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.2), transparent 58%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.09), rgba(48, 209, 126, 0.16)),
        rgba(8, 29, 22, 0.8);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 10px 28px rgba(18, 145, 88, 0.16);
    transition: border-color var(--shop-transition), box-shadow var(--shop-transition), opacity var(--shop-transition);
}

body.app-shop .shop-product-cart-control:hover {
    border-color: color-mix(in srgb, var(--shop-success) 82%, white 18%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.25),
        0 0 22px rgba(48, 209, 126, 0.18),
        0 14px 30px rgba(18, 145, 88, 0.19);
}

body.app-shop .shop-product-cart-control.is-loading {
    opacity: 0.64;
}

body.app-shop .shop-product-cart-control__step,
body.app-shop .shop-product-cart-control__label {
    display: grid;
    min-width: 0;
    min-height: 46px;
    padding: 0;
    place-items: center;
    border: 0;
    color: inherit;
    background: transparent;
    font: inherit;
    text-decoration: none;
}

body.app-shop .shop-product-cart-control__step {
    font-size: 1.125rem;
    cursor: pointer;
    transition: color var(--shop-transition), background var(--shop-transition), transform var(--shop-transition);
}

body.app-shop .shop-product-cart-control__step:first-child {
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

body.app-shop .shop-product-cart-control__step:last-child {
    border-left: 1px solid rgba(255, 255, 255, 0.1);
}

body.app-shop .shop-product-cart-control__step:hover:not(:disabled),
body.app-shop .shop-product-cart-control__step:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
}

body.app-shop .shop-product-cart-control__step:active:not(:disabled) {
    transform: scale(0.9);
}

body.app-shop .shop-product-cart-control__step:disabled {
    opacity: 0.42;
    cursor: default;
}

body.app-shop .shop-product-cart-control__label {
    padding-inline: 10px;
    font-size: 0.8125rem;
    font-weight: 760;
    white-space: nowrap;
}

@media (hover: hover) and (pointer: fine) {
    body.app-shop .shop-product__quick-action[data-tooltip]::after {
        position: absolute;
        z-index: 12;
        bottom: calc(100% + 10px);
        left: 50%;
        width: max-content;
        max-width: 220px;
        padding: 8px 10px;
        border: 1px solid rgba(255, 255, 255, 0.16);
        border-radius: 10px;
        color: var(--shop-text);
        background: rgba(8, 12, 22, 0.94);
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.34);
        content: attr(data-tooltip);
        font-size: 0.75rem;
        font-weight: 650;
        line-height: 1.25;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate(-50%, 4px);
        transition: opacity 160ms ease, visibility 160ms ease, transform 160ms ease;
    }

    body.app-shop .shop-product__quick-action[data-tooltip]:hover::after,
    body.app-shop .shop-product__quick-action[data-tooltip]:focus-visible::after {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
    }

    body.app-shop .shop-product-sticky-bar .shop-product__quick-action[data-tooltip]::after {
        top: calc(100% + 9px);
        bottom: auto;
        transform: translate(-50%, -4px);
    }

    body.app-shop .shop-product-sticky-bar .shop-product__quick-action[data-tooltip]:hover::after,
    body.app-shop .shop-product-sticky-bar .shop-product__quick-action[data-tooltip]:focus-visible::after {
        transform: translate(-50%, 0);
    }
}

body.app-shop .shop-product-sticky-bar {
    position: fixed;
    z-index: 99;
    top: var(--shop-product-sticky-top, var(--header-height, 76px));
    left: 50%;
    width: min(var(--shop-container), calc(100vw - (var(--shop-gutter) * 2)));
    margin: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, -18px);
    transition: opacity 180ms ease, visibility 180ms ease, transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.app-shop .shop-product-sticky-bar.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

body.app-shop .shop-product-sticky-bar__inner {
    display: grid;
    min-height: 70px;
    padding: 10px 12px 10px 18px;
    grid-template-columns: minmax(160px, 1fr) auto auto;
    gap: 16px;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-top: 0;
    border-radius: 0 0 18px 18px;
    background:
        radial-gradient(circle at 55% 0%, rgba(var(--shop-accent-rgb), 0.13), transparent 48%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.095), rgba(255, 255, 255, 0.025)),
        rgba(7, 11, 20, 0.9);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    -webkit-backdrop-filter: blur(24px) saturate(145%);
    backdrop-filter: blur(24px) saturate(145%);
}

body.app-shop .shop-product-sticky-bar__title {
    min-width: 0;
    overflow: hidden;
    color: var(--shop-text);
    font-size: var(--shop-type-h3);
    font-weight: 580;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.app-shop .shop-product-sticky-bar__price {
    color: var(--shop-text);
    font-size: 1.125rem;
    font-weight: 760;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

body.app-shop .shop-product-sticky-bar__actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

body.app-shop .shop-product-sticky-bar .shop-product__quick-action.shop-product-card__icon {
    flex-basis: 42px;
    width: 42px;
    height: 42px;
    min-height: 42px;
}

body.app-shop .shop-product-sticky-bar .shop-product-cart-switch,
body.app-shop .shop-product-sticky-bar .shop-product-cart-switch__add {
    min-width: 132px;
}

body.app-shop .shop-product-sticky-bar .shop-product-cart-control {
    grid-template-columns: 40px minmax(76px, auto) 40px;
    min-height: 42px;
}

body.app-shop .shop-product-sticky-bar .shop-product-cart-control__step,
body.app-shop .shop-product-sticky-bar .shop-product-cart-control__label {
    min-height: 40px;
}

body.app-shop .shop-product__stage[data-product-gallery-open] {
    cursor: zoom-in;
}

body.app-shop .shop-product__stage[data-product-gallery-open].is-dragging {
    cursor: grabbing;
}

body.is-shop-product-lightbox-open {
    overflow: hidden;
}

body.app-shop .shop-product-lightbox {
    position: fixed;
    z-index: 2147483000;
    inset: 0;
    display: grid;
    padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
    place-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 200ms ease, visibility 200ms ease;
}

body.app-shop .shop-product-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

body.app-shop .shop-product-lightbox__backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: rgba(1, 3, 8, 0.94);
    -webkit-backdrop-filter: blur(18px) saturate(90%);
    backdrop-filter: blur(18px) saturate(90%);
}

body.app-shop .shop-product-lightbox__dialog {
    position: relative;
    z-index: 1;
    display: grid;
    width: min(1500px, 100%);
    height: 100%;
    max-height: calc(100dvh - max(36px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));
    grid-template-columns: 58px minmax(0, 1fr) 58px;
    align-items: center;
    gap: 16px;
}

body.app-shop .shop-product-lightbox__figure {
    display: grid;
    min-width: 0;
    min-height: 0;
    height: 100%;
    margin: 0;
    padding: 20px;
    grid-template-rows: minmax(0, 1fr) auto;
    place-items: center;
    gap: 12px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 24px;
    background: rgba(14, 18, 29, 0.72);
    box-shadow: 0 32px 86px rgba(0, 0, 0, 0.55);
    touch-action: pan-y pinch-zoom;
}

body.app-shop .shop-product-lightbox__image {
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

body.app-shop .shop-product-lightbox__counter {
    color: var(--shop-muted);
    font-size: 0.8125rem;
    font-variant-numeric: tabular-nums;
}

body.app-shop .shop-product-lightbox__close,
body.app-shop .shop-product-lightbox__arrow {
    display: grid;
    width: 50px;
    height: 50px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    color: var(--shop-text);
    background: rgba(18, 23, 36, 0.82);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 12px 28px rgba(0, 0, 0, 0.28);
    cursor: pointer;
    transition: border-color var(--shop-transition), background var(--shop-transition), transform var(--shop-transition);
}

body.app-shop .shop-product-lightbox__close:hover,
body.app-shop .shop-product-lightbox__arrow:hover {
    border-color: rgba(var(--shop-accent-rgb), 0.75);
    background: rgba(var(--shop-accent-rgb), 0.17);
    transform: translateY(-1px);
}

body.app-shop .shop-product-lightbox__close:focus-visible,
body.app-shop .shop-product-lightbox__arrow:focus-visible {
    outline: 2px solid var(--shop-focus);
    outline-offset: 3px;
}

body.app-shop .shop-product-lightbox__close svg,
body.app-shop .shop-product-lightbox__arrow svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.app-shop .shop-product-lightbox__close {
    position: absolute;
    z-index: 2;
    top: 8px;
    right: 8px;
}

body.app-shop .shop-product-lightbox__arrow--previous {
    grid-column: 1;
}

body.app-shop .shop-product-lightbox__figure {
    grid-column: 2;
}

body.app-shop .shop-product-lightbox__arrow--next {
    grid-column: 3;
}

@media (min-width: 768px) and (max-width: 1240px) {
    body.app-shop .shop-product__actions--purchase {
        grid-template-areas:
            "price price"
            "quick cart";
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

@media (max-width: 767px) {
    body.app-shop .shop-product__actions--purchase {
        grid-template-areas:
            "price price"
            "quick cart";
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 14px 10px;
    }

    body.app-shop .shop-product__actions--purchase > .shop-product__quick-actions {
        justify-self: start;
    }

    body.app-shop .shop-product-cart-switch,
    body.app-shop .shop-product-cart-switch__add {
        min-width: 132px;
    }

    body.app-shop .shop-product-cart-control {
        grid-template-columns: 40px minmax(76px, auto) 40px;
    }

    body.app-shop .shop-product-sticky-bar {
        width: calc(100vw - 20px);
    }

    body.app-shop .shop-product-sticky-bar__inner {
        min-height: 98px;
        padding: 9px 10px 10px;
        grid-template-areas:
            "title title"
            "price actions";
        grid-template-columns: minmax(72px, 1fr) auto;
        gap: 8px 10px;
        border-radius: 0 0 15px 15px;
    }

    body.app-shop .shop-product-sticky-bar__title {
        grid-area: title;
        font-size: 0.875rem;
    }

    body.app-shop .shop-product-sticky-bar__price {
        grid-area: price;
        font-size: 0.9375rem;
    }

    body.app-shop .shop-product-sticky-bar__actions {
        grid-area: actions;
        gap: 7px;
    }

    body.app-shop .shop-product-sticky-bar .shop-product__quick-actions {
        gap: 5px;
    }

    body.app-shop .shop-product-sticky-bar .shop-product__quick-action.shop-product-card__icon {
        flex-basis: 36px;
        width: 36px;
        height: 36px;
        min-height: 36px;
    }

    body.app-shop .shop-product-sticky-bar .shop-product-cart-switch,
    body.app-shop .shop-product-sticky-bar .shop-product-cart-switch__add {
        min-width: 108px;
    }

    body.app-shop .shop-product-sticky-bar .shop-product-cart-switch__add {
        min-height: 38px;
        padding-inline: 13px;
        font-size: 0.75rem;
    }

    body.app-shop .shop-product-sticky-bar .shop-product-cart-control {
        grid-template-columns: 34px minmax(68px, auto) 34px;
        min-height: 38px;
    }

    body.app-shop .shop-product-sticky-bar .shop-product-cart-control__step,
    body.app-shop .shop-product-sticky-bar .shop-product-cart-control__label {
        min-height: 36px;
    }

    body.app-shop .shop-product-sticky-bar .shop-product-cart-control__label {
        padding-inline: 7px;
        font-size: 0.6875rem;
    }

    body.app-shop .shop-product-lightbox {
        padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
    }

    body.app-shop .shop-product-lightbox__dialog {
        max-height: calc(100dvh - max(20px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));
        grid-template-columns: 42px minmax(0, 1fr) 42px;
        gap: 7px;
    }

    body.app-shop .shop-product-lightbox__figure {
        padding: 10px;
        border-radius: 16px;
    }

    body.app-shop .shop-product-lightbox__close,
    body.app-shop .shop-product-lightbox__arrow {
        width: 40px;
        height: 40px;
    }

    body.app-shop .shop-product-lightbox__close {
        top: 4px;
        right: 4px;
    }
}

@media (max-width: 359px) {
    body.app-shop .shop-product-sticky-bar__actions > .shop-product__quick-actions {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-shop .shop-product-sticky-bar,
    body.app-shop .shop-product-lightbox {
        transition: none;
    }
}

/* Product detail purchase redesign: compact title, visible rating and inline actions. */
body.app-shop .shop-product__info > .shop-product__title {
    width: 100%;
    max-width: none;
    margin: 0 0 16px;
    font-size: var(--shop-type-h1);
    line-height: 1.07;
    letter-spacing: -0.035em;
    text-wrap: pretty;
}

body.app-shop .shop-product__rating {
    display: flex;
    min-height: 24px;
    gap: 12px;
    align-items: center;
    margin: 0;
}

body.app-shop .shop-product__rating a {
    color: var(--shop-muted);
    font-size: var(--shop-type-label);
    line-height: 1.3;
    text-decoration: none;
    transition: color var(--shop-transition);
}

body.app-shop .shop-product__rating a:hover {
    color: var(--shop-text);
}

body.app-shop .shop-rating-stars {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 3px;
    align-items: center;
    color: #ffd56a;
}

body.app-shop .shop-rating-stars :is(.icon12, .icon14, .icon16) {
    display: inline-block;
    flex: 0 0 auto;
    margin: 0;
    background: currentColor;
    -webkit-mask: url("/wa-apps/site/themes/landkit/assets/img/icons/feather/star.svg") center / contain no-repeat;
    mask: url("/wa-apps/site/themes/landkit/assets/img/icons/feather/star.svg") center / contain no-repeat;
}

body.app-shop .shop-rating-stars .icon12 {
    width: 12px;
    height: 12px;
}

body.app-shop .shop-rating-stars .icon14 {
    width: 14px;
    height: 14px;
}

body.app-shop .shop-rating-stars .icon16 {
    width: 17px;
    height: 17px;
}

body.app-shop .shop-rating-stars :is(.star, .star-full, .star-half) {
    -webkit-mask: url("../img/icons/star-solid.svg") center / contain no-repeat;
    mask: url("../img/icons/star-solid.svg") center / contain no-repeat;
}

body.app-shop .shop-rating-stars .star-empty {
    color: rgba(211, 220, 242, 0.34);
}

body.app-shop .shop-rating-stars .star-half {
    background: linear-gradient(90deg, #ffd56a 50%, rgba(211, 220, 242, 0.34) 50%);
}

body.app-shop .shop-product__rating + .shop-product__summary {
    margin-top: 22px;
}

body.app-shop .shop-product__buybox-details {
    display: grid;
    gap: 16px;
    min-width: 0;
    padding: 0;
    background: transparent;
}

body.app-shop .shop-product__control-label {
    color: color-mix(in srgb, var(--shop-muted) 86%, var(--shop-text));
    font-size: 0.9375rem;
    font-weight: 560;
    line-height: 1.35;
}

body.app-shop .shop-product__sku-picker,
body.app-shop .shop-product__services {
    display: grid;
    gap: 13px;
    min-width: 0;
}

body.app-shop .shop-product__sku-select-shell {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 64px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--shop-accent) 72%, white 10%);
    border-radius: 15px;
    background:
        radial-gradient(circle at 24% 0%, rgba(255, 255, 255, 0.08), transparent 62%),
        rgba(255, 255, 255, 0.025);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 0 0 3px rgba(var(--shop-accent-rgb), 0.045);
    transition:
        border-color var(--shop-transition),
        background var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-product__sku-select-shell:hover {
    border-color: color-mix(in srgb, var(--shop-accent) 84%, white 16%);
    background:
        radial-gradient(circle at 24% 0%, rgba(255, 255, 255, 0.11), transparent 62%),
        rgba(255, 255, 255, 0.04);
}

body.app-shop .shop-product__sku-select-shell:focus-within {
    border-color: color-mix(in srgb, var(--shop-accent) 86%, white 14%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 0 0 4px rgba(var(--shop-accent-rgb), 0.13),
        0 16px 38px rgba(0, 0, 0, 0.18);
}

body.app-shop .shop-product__sku-select {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

body.app-shop .shop-product__sku-select-value {
    display: grid;
    min-width: 0;
    padding: 0 18px;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto 18px;
    gap: 14px;
    pointer-events: none;
}

body.app-shop .shop-product__sku-select-value > strong {
    min-width: 0;
    overflow: hidden;
    color: var(--shop-text);
    font-size: 1rem;
    font-weight: 590;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.app-shop .shop-product__sku-select-value > span {
    color: color-mix(in srgb, var(--shop-muted) 90%, var(--shop-text));
    font-size: 0.9375rem;
    font-weight: 520;
    line-height: 1;
    white-space: nowrap;
}

body.app-shop .shop-product__sku-select-chevron {
    width: 18px;
    height: 18px;
    color: color-mix(in srgb, var(--shop-text) 86%, transparent);
    background: currentColor;
    -webkit-mask: url("../img/icons/catalog-chevron-down.svg") center / contain no-repeat;
    mask: url("../img/icons/catalog-chevron-down.svg") center / contain no-repeat;
    transition: transform var(--shop-transition);
}

body.app-shop .shop-product__sku-select-shell:focus-within .shop-product__sku-select-chevron {
    transform: translateY(1px);
}

body.app-shop .shop-product__sku-picker + .shop-product__services {
    padding-top: 24px;
    border-top: 1px solid color-mix(in srgb, var(--shop-line) 74%, transparent);
}

body.app-shop .shop-product__service-list {
    display: grid;
    gap: 10px;
    min-width: 0;
}

body.app-shop .shop-product__service-option {
    min-width: 0;
}

body.app-shop .shop-product__service-control {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 68px;
    padding: 12px 16px;
    align-items: center;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--shop-line) 86%, white 5%);
    border-radius: 14px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.012)),
        rgba(4, 7, 15, 0.2);
    cursor: pointer;
    transition:
        border-color var(--shop-transition),
        background var(--shop-transition),
        box-shadow var(--shop-transition);
}

body.app-shop .shop-product__service-control:hover {
    border-color: color-mix(in srgb, var(--shop-line) 52%, white 24%);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.018)),
        rgba(4, 7, 15, 0.24);
}

body.app-shop .shop-product__service-input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

body.app-shop .shop-product__service-switch {
    position: relative;
    width: 52px;
    height: 30px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.11);
    box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.24);
    transition:
        border-color var(--shop-transition),
        background var(--shop-transition),
        box-shadow var(--shop-transition);
}

body.app-shop .shop-product__service-switch::after {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #eef2fb;
    box-shadow: 0 3px 9px rgba(0, 0, 0, 0.34);
    content: "";
    transition: transform var(--shop-transition);
}

body.app-shop .shop-product__service-input:checked + .shop-product__service-switch {
    border-color: color-mix(in srgb, var(--shop-accent) 74%, white 8%);
    background: rgba(var(--shop-accent-rgb), 0.5);
    box-shadow:
        inset 0 1px 5px rgba(0, 0, 0, 0.16),
        0 0 20px rgba(var(--shop-accent-rgb), 0.14);
}

body.app-shop .shop-product__service-input:checked + .shop-product__service-switch::after {
    transform: translateX(22px);
}

body.app-shop .shop-product__service-input:focus-visible + .shop-product__service-switch {
    outline: 3px solid rgba(var(--shop-accent-rgb), 0.35);
    outline-offset: 3px;
}

body.app-shop .shop-product__service-input:disabled ~ * {
    opacity: 0.48;
}

body.app-shop .shop-product__service-control:has(.shop-product__service-input:disabled) {
    cursor: not-allowed;
}

body.app-shop .shop-product__service-name {
    min-width: 0;
    color: var(--shop-text);
    font-size: 0.9375rem;
    font-weight: 560;
    line-height: 1.4;
}

body.app-shop .shop-product__service-price {
    color: color-mix(in srgb, var(--shop-muted) 88%, var(--shop-text));
    font-size: 0.9rem;
    font-weight: 580;
    line-height: 1;
    white-space: nowrap;
}

body.app-shop .shop-product__service-variant {
    width: calc(100% - 66px);
    min-height: 44px;
    margin-left: 66px;
    padding: 0 42px 0 14px;
    border: 1px solid var(--shop-line);
    border-radius: 12px;
    color: var(--shop-text);
    background: var(--shop-panel-strong);
    cursor: pointer;
}

body.app-shop .shop-product__service-variant:disabled {
    display: none;
}

body.app-shop .shop-product__services + .shop-product__buybox-details {
    padding-top: 24px;
    border-top: 1px solid color-mix(in srgb, var(--shop-line) 74%, transparent);
}

body.app-shop .shop-product__sku-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: baseline;
    min-width: 0;
    color: var(--shop-text);
}

body.app-shop .shop-product__sku-row > span,
body.app-shop .shop-product__buybox-categories > span {
    color: var(--shop-muted);
    font-size: 0.8125rem;
    font-weight: 560;
    line-height: 1.35;
}

body.app-shop .shop-product__sku-row > strong {
    min-width: 0;
    font-size: 0.9375rem;
    font-weight: 650;
    overflow-wrap: anywhere;
}

body.app-shop .shop-product__buybox-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: baseline;
    min-width: 0;
}

body.app-shop .shop-product__category-links,
body.app-shop .shop-product__tag-links {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 6px 12px;
    min-width: 0;
}

body.app-shop .shop-product__category-item,
body.app-shop .shop-product__tag-item {
    display: inline-flex;
    gap: 8px;
    align-items: baseline;
    min-width: 0;
}

body.app-shop .shop-product__category-separator,
body.app-shop .shop-product__tag-separator {
    color: color-mix(in srgb, var(--shop-muted) 68%, transparent);
    font-size: 0.6875rem;
    line-height: 1;
}

body.app-shop .shop-product__category-links a,
body.app-shop .shop-product__tag-links a {
    color: var(--shop-text);
    font-size: 0.9375rem;
    font-weight: 560;
    line-height: 1.45;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    transition: color var(--shop-transition), text-decoration-color var(--shop-transition);
}

body.app-shop .shop-product__category-links a:hover,
body.app-shop .shop-product__tag-links a:hover {
    color: var(--shop-accent-strong);
    text-decoration-color: currentColor;
}

body.app-shop .shop-product__category-links a:focus-visible,
body.app-shop .shop-product__tag-links a:focus-visible {
    border-radius: 4px;
    outline: 2px solid var(--shop-focus);
    outline-offset: 3px;
}

body.app-shop .shop-buybox > .shop-product__stock {
    margin: 4px 0 -8px;
}

body.app-shop .shop-product__meta--single {
    grid-template-columns: minmax(0, 1fr);
}

body.app-shop .shop-product__actions--purchase {
    grid-template-areas: "price quantity quick cart";
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    gap: 10px;
}

body.app-shop .shop-product__actions--purchase > .shop-product__price {
    grid-area: price;
}

body.app-shop .shop-product__actions--purchase > .shop-quantity {
    grid-area: quantity;
}

body.app-shop .shop-product__actions--purchase > .shop-product__quick-actions {
    grid-area: quick;
}

body.app-shop .shop-product__actions--purchase > .shop-button {
    grid-area: cart;
}

body.app-shop .shop-buybox:not(.is-in-cart) .shop-product__actions--purchase > .shop-quantity {
    display: none;
}

body.app-shop .shop-product__quick-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

body.app-shop .shop-product__quick-action.shop-product-card__icon {
    position: relative;
    inset: auto;
    z-index: auto;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    min-height: 46px;
    border-color: rgba(255, 255, 255, 0.24);
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.13), transparent 58%),
        rgba(255, 255, 255, 0.035);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

body.app-shop .shop-product__quick-action.shop-product-card__icon svg {
    width: 19px;
    height: 19px;
}

body.app-shop .shop-product__quick-action.shop-product-card__icon:focus-visible {
    outline-offset: 3px;
}

@media (min-width: 768px) and (max-width: 1240px) {
    body.app-shop .shop-product__actions--purchase {
        grid-template-areas:
            "price price price"
            "quantity quick cart";
        grid-template-columns: minmax(0, 1fr) auto auto;
        row-gap: 16px;
    }
}

@media (max-width: 767px) {
    body.app-shop .shop-product__info > .shop-product__title {
        margin-bottom: 14px;
        font-size: var(--shop-type-h1);
        line-height: 1.09;
    }

    body.app-shop .shop-product__rating {
        flex-wrap: wrap;
        gap: 8px 10px;
    }

    body.app-shop .shop-product__stars .icon16 {
        width: 16px;
        height: 16px;
    }

    body.app-shop .shop-product__buybox-details {
        gap: 14px;
    }

    body.app-shop .shop-product__control-label {
        font-size: 0.875rem;
    }

    body.app-shop .shop-product__sku-select-shell {
        min-height: 60px;
    }

    body.app-shop .shop-product__sku-select-value {
        padding: 0 14px;
        grid-template-columns: minmax(0, 1fr) auto 18px;
        gap: 10px;
    }

    body.app-shop .shop-product__sku-select-value > strong {
        font-size: 0.9375rem;
    }

    body.app-shop .shop-product__sku-select-value > span {
        font-size: 0.875rem;
    }

    body.app-shop .shop-product__sku-picker + .shop-product__services,
    body.app-shop .shop-product__services + .shop-product__buybox-details {
        padding-top: 20px;
    }

    body.app-shop .shop-product__service-control {
        min-height: 64px;
        padding: 11px 13px;
        gap: 12px;
    }

    body.app-shop .shop-product__service-switch {
        width: 48px;
        height: 28px;
    }

    body.app-shop .shop-product__service-switch::after {
        width: 20px;
        height: 20px;
    }

    body.app-shop .shop-product__service-input:checked + .shop-product__service-switch::after {
        transform: translateX(20px);
    }

    body.app-shop .shop-product__service-name {
        font-size: 0.875rem;
    }

    body.app-shop .shop-product__service-price {
        font-size: 0.8125rem;
    }

    body.app-shop .shop-product__service-variant {
        width: calc(100% - 60px);
        margin-left: 60px;
    }

    body.app-shop .shop-buybox > .shop-product__stock {
        margin-bottom: -4px;
    }

    body.app-shop .shop-product__actions--purchase {
        grid-template-areas:
            "price price"
            "quantity quantity"
            "quick cart";
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px 10px;
    }

    body.app-shop .shop-product__actions--purchase > .shop-quantity,
    body.app-shop .shop-product__actions--purchase > .shop-product__quick-actions {
        justify-self: start;
    }

    body.app-shop .shop-product__actions--purchase > .shop-button {
        width: auto;
        min-width: 124px;
        justify-self: end;
    }

    body.app-shop .shop-product__quick-action.shop-product-card__icon {
        flex-basis: 44px;
        width: 44px;
        height: 44px;
        min-height: 44px;
    }
}

@media (max-width: 420px) {
    body.app-shop .shop-product__service-control {
        grid-template-columns: 48px minmax(0, 1fr);
    }

    body.app-shop .shop-product__service-price {
        grid-column: 2;
        justify-self: start;
    }
}

@media (max-width: 359px) {
    body.app-shop .shop-product__actions--purchase {
        grid-template-areas:
            "price"
            "quantity"
            "quick"
            "cart";
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-product__quick-actions {
        gap: 6px;
    }

    body.app-shop .shop-product__quick-action.shop-product-card__icon {
        flex-basis: 40px;
        width: 40px;
        height: 40px;
        min-height: 40px;
    }

    body.app-shop .shop-product__actions--purchase > .shop-button {
        min-width: 108px;
        padding-inline: 14px;
        justify-self: start;
    }
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    body.app-shop .shop-product-card,
    body.app-shop .shop-cloud-promo,
    body.app-shop .shop-service-cta,
    body.app-shop .shop-search-panel__dialog,
    body.app-shop .shop-header-icon,
    body.app-shop .shop-buybox,
    body.app-shop .shop-cart__summary {
        background: var(--shop-panel-strong);
    }
}

@media (min-width: 768px) and (max-width: 900px) {
    body.app-shop .shop-hero {
        margin-top: calc(var(--header-height, 72px) + 20px);
    }
}

/*
 * Reference-width desktop contract.
 * The source design is a 922 × 1706 desktop canvas; 900px is also the
 * parent theme's mobile/desktop boundary, so this range must not inherit
 * the 1024px tablet stacking rules above.
 */
@media (min-width: 901px) and (max-width: 1050px) {
    body.app-shop {
        --shop-container: calc(100vw - 50px);
        --shop-gutter: 25px;
        --shop-radius-xl: 11px;
        --shop-radius-lg: 10px;
        --shop-radius-md: 10px;
        --shop-radius-sm: 8px;
        --shop-space-section: 0;
        --shop-type-display: 32px;
        --shop-type-h1: 24px;
        --shop-type-h2: 20px;
        --shop-type-h3: 14px;
        --shop-type-body-lg: 9px;
        --shop-type-body: 9px;
        --theme-h1: 32px;
        --theme-h2: 20px;
        --theme-h3: 14px;
        --theme-body: 9px;
        display: flow-root;
        font-size: 9px;
    }

    body.app-shop .site-header {
        position: relative;
        top: auto;
        left: auto;
        width: var(--shop-container);
        height: 49px;
        min-height: 49px;
        margin: 13px auto 0;
        padding: 0 12px;
        border: 1px solid rgba(255, 255, 255, 0.13);
        border-radius: 11px;
        grid-template-columns: 152px minmax(0, 1fr) auto;
        background:
            radial-gradient(circle at 52% 0%, rgba(var(--shop-accent-rgb), 0.1), transparent 44%),
            rgba(16, 20, 31, 0.86);
        backdrop-filter: blur(18px) saturate(125%);
        -webkit-backdrop-filter: blur(18px) saturate(125%);
    }

    body.app-shop .site-header .wordmark {
        width: 116px;
        font-size: 12px;
    }

    body.app-shop .site-header .desktop-nav {
        gap: 24px;
        justify-content: center;
    }

    body.app-shop .site-header .desktop-nav a {
        padding: 5px 0;
        font-size: 8px;
        line-height: 1.2;
    }

    body.app-shop .site-header .header-actions {
        gap: 6px;
    }

    body.app-shop .shop-header-tools[data-shop-header-tools] {
        gap: 5px;
    }

    body.app-shop .shop-header-tool--compare,
    body.app-shop .shop-header-tool--wishlist {
        display: none;
    }

    body.app-shop .shop-header-tool {
        width: 28px;
        min-height: 28px;
        padding: 0;
    }

    body.app-shop .shop-header-tool svg {
        width: 14px;
        height: 14px;
    }

    body.app-shop .shop-header-tool__count {
        top: -3px;
        right: -3px;
        min-width: 13px;
        height: 13px;
        padding-inline: 3px;
        border-width: 1px;
        font-size: 7px;
    }

    body.app-shop .site-header .locale-switch__trigger {
        width: 48px;
        min-width: 48px;
        height: 28px;
        min-height: 28px;
        gap: 4px;
        padding: 0 7px;
        font-size: 8px;
    }

    body.app-shop .site-header .locale-switch__globe {
        width: 12px;
        height: 12px;
    }

    body.app-shop .site-header .locale-switch__chevron {
        width: 8px;
        height: 8px;
    }

    body.app-shop .site-header .header-cta {
        min-height: 28px;
        padding-inline: 12px;
        font-size: 8px;
    }

    body.app-shop .shop-hero {
        width: var(--shop-container);
        height: 330px;
        min-height: 330px;
        margin: 22px auto 0;
        border-radius: 11px;
    }

    body.app-shop .shop-hero__slides,
    body.app-shop .shop-hero__slide,
    body.app-shop [data-shop-hero] [data-slide] {
        height: 330px;
        min-height: 330px;
    }

    body.app-shop .shop-hero__content {
        min-height: 330px;
        padding: 42px 45px 52px;
        justify-content: center;
    }

    body.app-shop .shop-hero__content > * {
        max-width: 36%;
    }

    body.app-shop .shop-hero__eyebrow {
        margin: 0 0 13px;
        font-size: 7px;
        letter-spacing: 0.08em;
    }

    body.app-shop .shop-hero__title {
        width: 320px;
        max-width: 320px;
        font-size: 32px;
        font-weight: 430;
        line-height: 1.06;
        letter-spacing: -0.045em;
    }

    body.app-shop .shop-hero__text {
        max-width: 34ch;
        margin: 12px 0 0;
        font-size: 9px;
        line-height: 1.48;
    }

    body.app-shop .shop-hero__actions {
        gap: 8px;
        margin-top: 17px;
    }

    body.app-shop .shop-hero__actions .shop-button {
        min-height: 29px;
        padding: 0 16px;
        font-size: 8px;
    }

    body.app-shop .shop-hero__controls {
        bottom: 10px;
        gap: 6px;
    }

    body.app-shop .shop-hero__dots {
        gap: 7px;
        padding: 0;
        border: 0;
        background: transparent;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }

    body.app-shop .shop-hero__dot,
    body.app-shop .shop-hero__dot.is-active,
    body.app-shop .shop-hero__dot[aria-current="true"] {
        width: 11px;
        min-width: 11px;
        height: 12px;
        min-height: 12px;
    }

    body.app-shop .shop-hero__dot.is-active,
    body.app-shop .shop-hero__dot[aria-current="true"] {
        width: 16px;
        min-width: 16px;
    }

    body.app-shop .shop-hero__dot::before {
        inset: -4px 0;
    }

    body.app-shop .shop-hero[data-pause-visible="0"] .shop-hero__toggle {
        position: absolute;
        left: calc(100% + 8px);
        min-height: 20px;
        padding: 0 7px;
        font-size: 7px;
        opacity: 0;
    }

    body.app-shop .shop-hero[data-pause-visible="0"] .shop-hero__toggle:focus-visible {
        opacity: 1;
    }

    body.app-shop .shop-directions {
        width: calc(var(--shop-container) - 6px);
        margin: 23px auto 0;
    }

    body.app-shop .shop-directions__grid {
        grid-template-columns: repeat(var(--shop-directions-count, 5), minmax(0, 1fr));
        gap: 7px;
    }

    body.app-shop .shop-direction-card,
    body.app-shop .shop-direction-card:nth-child(4),
    body.app-shop .shop-direction-card:nth-child(5) {
        height: 112px;
        min-height: 112px;
        padding: 11px;
        border-radius: 10px;
        grid-column: auto;
    }

    body.app-shop .shop-direction-card__media {
        padding: 5px 5px 31px 31%;
    }

    body.app-shop .shop-direction-card__media--theme {
        padding: 0;
    }

    body.app-shop .shop-direction-card__content {
        height: 100%;
        min-height: 0;
    }

    body.app-shop .shop-direction-card__media img {
        height: 82%;
    }

    body.app-shop .shop-direction-card__title {
        margin-bottom: 3px;
        font-size: 10px;
        line-height: 1.1;
    }

    body.app-shop .shop-direction-card__text {
        margin: 0;
        font-size: 7px;
        line-height: 1.2;
    }

    body.app-shop .shop-directions + .shop-section {
        padding: 42px 0 35px;
    }

    body.app-shop .shop-cloud-promo + .shop-section {
        padding: 32px 0 23px;
    }

    body.app-shop .shop-section__head {
        width: var(--shop-container);
        height: 22px;
        margin: 0 auto 13px;
        align-items: center;
        flex-direction: row;
        gap: 20px;
    }

    body.app-shop .shop-section__title {
        font-size: 20px;
        line-height: 22px;
        letter-spacing: -0.035em;
    }

    body.app-shop .shop-section__link {
        margin-right: 62px;
        font-size: 8px;
        text-underline-offset: 3px;
    }

    body.app-shop .shop-product-rail__track {
        --shop-rail-gap: 8px;
        gap: var(--shop-rail-gap);
        padding: 0;
    }

    body.app-shop .shop-product-rail__track > .shop-product-card {
        flex-basis: calc((100% - (3 * var(--shop-rail-gap))) / 4);
    }

    body.app-shop .shop-product-rail__controls {
        top: -35px;
        gap: 5px;
    }

    body.app-shop .shop-product-rail__button {
        flex-basis: 24px;
        width: 24px;
        height: 24px;
    }

    body.app-shop .shop-product-rail__button svg {
        width: 11px;
        height: 11px;
    }

    body.app-shop .shop-product-card {
        height: 244px;
        min-height: 244px;
        border-radius: 10px;
    }

    body.app-shop .shop-cloud-promo + .shop-section .shop-product-card {
        height: 201px;
        min-height: 201px;
    }

    body.app-shop .shop-product-card__media {
        height: 173px;
        min-height: 173px;
        aspect-ratio: auto;
        margin: 0;
        border: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.09);
        border-radius: 10px 10px 0 0;
        background:
            radial-gradient(circle at 50% 44%, rgba(var(--shop-accent-rgb), 0.12), transparent 45%),
            linear-gradient(145deg, #171c28, #0f131d);
    }

    body.app-shop .shop-cloud-promo + .shop-section .shop-product-card__media {
        height: 127px;
        min-height: 127px;
    }

    body.app-shop .shop-product-card__image img {
        width: 84%;
        height: 84%;
        filter: invert(1) grayscale(1) brightness(0.58) contrast(1.18);
        mix-blend-mode: screen;
    }

    body.app-shop .shop-product-card__badge {
        inset: 8px auto auto 8px;
        max-width: calc(100% - 48px);
        padding: 4px 7px;
        font-size: 7px;
        letter-spacing: 0.04em;
    }

    body.app-shop .shop-product-card__body {
        position: static;
        display: block;
        height: 71px;
        min-height: 71px;
        padding: 7px 10px;
        flex: 0 0 71px;
    }

    body.app-shop .shop-cloud-promo + .shop-section .shop-product-card__body {
        height: 74px;
        min-height: 74px;
        flex-basis: 74px;
    }

    body.app-shop .shop-product-card__name {
        max-width: calc(100% - 36px);
        min-height: 0;
        margin: 0;
        font-size: 10px;
        line-height: 1.15;
        -webkit-line-clamp: 2;
    }

    body.app-shop .shop-product-card__meta {
        position: static;
        margin: 0 0 2px;
    }

    body.app-shop .shop-product-card__availability {
        gap: 4px;
        font-size: 7px;
    }

    body.app-shop .shop-product-card__availability::before {
        width: 4px;
        height: 4px;
    }

    body.app-shop .shop-product-card__footer {
        position: static;
        display: block;
        margin: 0;
    }

    body.app-shop .shop-product-card__purchase {
        position: absolute;
        bottom: 7px;
        left: 10px;
        z-index: 2;
        max-width: calc(100% - 68px);
        gap: 4px;
    }

    body.app-shop .shop-product-card__price {
        position: static;
        max-width: 100%;
        overflow: hidden;
        font-size: 12px;
        line-height: 1;
        text-overflow: ellipsis;
    }

    body.app-shop .shop-product-card__price-old {
        display: none;
    }

    body.app-shop .shop-product-card__actions {
        position: static;
        display: block;
    }

    body.app-shop .shop-product-card__icon {
        position: absolute;
        right: 8px;
        z-index: 3;
        width: 24px;
        height: 24px;
        min-height: 24px;
    }

    body.app-shop .shop-product-card__actions > .shop-product-card__icon:nth-child(1) {
        top: 8px;
    }

    body.app-shop .shop-product-card__actions > .shop-product-card__icon:nth-child(2) {
        top: 38px;
    }

    body.app-shop .shop-product-card__icon svg {
        width: 12px;
        height: 12px;
    }

    body.app-shop .shop-product-card__button {
        position: absolute;
        right: 8px;
        bottom: 8px;
        z-index: 3;
        width: 54px;
        min-height: 26px;
        padding: 0 7px;
        font-size: 7px;
    }

    body.app-shop .shop-product-card__form .shop-product-card__button {
        width: 33px;
        height: 33px;
        min-height: 33px;
        padding: 0;
    }

    body.app-shop .shop-product-card__form .shop-product-card__button-label {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        clip-path: inset(50%);
        white-space: nowrap;
    }

    body.app-shop .shop-product-card__form .shop-product-card__button > img {
        display: block;
        width: 15px;
        height: 15px;
    }

    body.app-shop .shop-cloud-promo {
        height: 207px;
        min-height: 207px;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }

    body.app-shop .shop-cloud-promo__media {
        height: 207px;
        min-height: 207px;
    }

    body.app-shop .shop-cloud-promo__content {
        padding: 29px 42px 24px;
        justify-content: flex-start;
    }

    body.app-shop .shop-cloud-promo__content h2 {
        width: 350px;
        max-width: 100%;
        margin: 0 0 12px;
        font-size: 25px;
        line-height: 1.08;
    }

    body.app-shop .shop-cloud-promo__content .shop-page__eyebrow {
        margin-bottom: 9px;
        font-size: 7px;
    }

    body.app-shop .shop-cloud-promo__content .shop-page__lead {
        margin-bottom: 13px;
        font-size: 9px;
        line-height: 1.45;
    }

    body.app-shop .shop-cloud-promo__content .shop-button {
        width: auto;
        min-height: 28px;
        padding: 0 15px;
        align-self: flex-start;
        font-size: 8px;
    }

    body.app-shop .shop-service-cta {
        height: 142px;
        min-height: 142px;
        margin: 0 auto 18px;
        grid-template-columns: 222px 351px 299px;
    }

    body.app-shop .shop-service-cta__media {
        height: 142px;
        min-height: 142px;
        grid-column: 1;
        grid-row: 1;
    }

    body.app-shop .shop-service-cta__content {
        padding: 18px 10px 18px 1px;
        grid-column: 2;
        grid-row: 1;
    }

    body.app-shop .shop-service-cta__content .shop-page__eyebrow {
        margin-bottom: 8px;
        font-size: 7px;
    }

    body.app-shop .shop-service-cta__content h2 {
        max-width: none;
        margin: 0 0 7px;
        font-size: 20px;
        line-height: 1.08;
    }

    body.app-shop .shop-service-cta__content .shop-page__lead {
        max-width: 52ch;
        margin-bottom: 8px;
        font-size: 8px;
        line-height: 1.4;
    }

    body.app-shop .shop-service-cta__content .shop-button {
        width: auto;
        min-height: 27px;
        padding: 0 15px;
        align-self: flex-start;
        font-size: 8px;
    }

    body.app-shop .shop-service-cta__features {
        padding: 15px;
        border-top: 0;
        border-left: 1px solid rgba(255, 255, 255, 0.1);
        grid-column: 3;
        grid-row: 1;
        grid-template-columns: minmax(0, 1fr);
        gap: 5px;
    }

    body.app-shop .shop-service-cta__features li {
        min-height: 32px;
        padding: 6px 9px;
        font-size: 8px;
        line-height: 1.2;
    }

    body.app-shop .shop-hook--footer.chats-plugin {
        height: 0;
        min-height: 0;
        overflow: visible;
        line-height: 0;
    }

    body.app-shop .shop-hook--footer.chats-plugin > svg.hidden {
        display: none;
    }

    body.app-shop .messanger.messanger_active {
        opacity: 0.72;
        transform: scale(0.75);
        transform-origin: right bottom;
    }

    body.app-shop .messanger .messanger-icon {
        filter: grayscale(1) brightness(0.48);
    }

    body.app-shop .shop-footer-stage.finale-shell--footer-only {
        display: block;
        height: 143px;
        min-height: 143px;
        overflow: hidden;
        background: #0e111b;
    }

    body.app-shop .shop-footer-stage .finale-laser-effect,
    body.app-shop .shop-footer-stage .finale-laser-shade {
        opacity: 0.34;
    }

    body.app-shop .finale-footer.site-footer {
        width: var(--shop-container);
        height: 142px;
        margin: 0 auto;
        padding: 19px 0 9px;
        grid-template-columns: 254px 128px 121px 163px minmax(0, 1fr);
        grid-template-rows: minmax(0, 1fr) auto;
        gap: 8px 22px;
        font-size: 7px;
    }

    body.app-shop .finale-footer .footer-logo {
        width: 118px;
    }

    body.app-shop .finale-footer .footer-brand {
        grid-column: 1;
        grid-row: 1;
    }

    body.app-shop .finale-footer .footer-links--1 {
        grid-column: 2;
        grid-row: 1;
    }

    body.app-shop .finale-footer .footer-links--2 {
        grid-column: 3;
        grid-row: 1;
    }

    body.app-shop .finale-footer .footer-links--3 {
        grid-column: 4;
        grid-row: 1;
    }

    body.app-shop .finale-footer .footer-links--4 {
        grid-column: 5;
        grid-row: 1;
    }

    body.app-shop .finale-footer .footer-brand p {
        margin-top: 7px;
        font-size: 7px;
    }

    body.app-shop .finale-footer .footer-links {
        gap: 3px;
    }

    body.app-shop .finale-footer .footer-links strong {
        margin-bottom: 3px;
        font-size: 7px;
        letter-spacing: 0.08em;
    }

    body.app-shop .finale-footer .footer-links a {
        font-size: 7px;
        line-height: 1.22;
    }

    body.app-shop .finale-footer .footer-back {
        position: absolute;
        top: 19px;
        right: 0;
        font-size: 7px;
    }

    body.app-shop .finale-footer .footer-rights {
        grid-column: 1 / -1;
        grid-row: 2;
        margin: 0;
        padding-top: 5px;
        font-size: 6px;
    }
}

/* Debug helper (disabled): body.app-shop .shop-app * { outline: 1px solid rgba(255, 0, 0, .16); } */

/*
 * UI feedback pass — fixed-header spacing, visible icon strokes, hero arrows,
 * liquid-glass commerce actions and a single non-blocking confirmation toast.
 */
body.app-shop .shop-header-tool svg,
body.app-shop .shop-header-icon svg,
body.app-shop .shop-product-card__icon svg,
body.app-shop .shop-product-rail__button svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

body.app-shop [data-shop-wishlist][aria-pressed="true"],
body.app-shop [data-shop-wishlist].is-active {
    --shop-collection-state-rgb: 255, 108, 142;
    --shop-collection-state-ink-rgb: 255, 225, 233;
    --shop-collection-state-surface-rgb: 54, 12, 27;
}

body.app-shop [data-shop-compare][aria-pressed="true"],
body.app-shop [data-shop-compare].is-active {
    --shop-collection-state-rgb: 111, 157, 255;
    --shop-collection-state-ink-rgb: 222, 234, 255;
    --shop-collection-state-surface-rgb: 12, 25, 56;
}

body.app-shop [data-shop-wishlist][aria-pressed="true"],
body.app-shop [data-shop-wishlist].is-active,
body.app-shop [data-shop-compare][aria-pressed="true"],
body.app-shop [data-shop-compare].is-active {
    border-color: rgba(var(--shop-collection-state-rgb), 0.6);
    color: rgb(var(--shop-collection-state-ink-rgb));
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.2), transparent 58%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.11), rgba(var(--shop-collection-state-rgb), 0.15)),
        rgba(var(--shop-collection-state-surface-rgb), 0.76);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.19),
        inset 0 0 16px rgba(var(--shop-collection-state-rgb), 0.1),
        0 0 0 1px rgba(var(--shop-collection-state-rgb), 0.07),
        0 10px 24px rgba(var(--shop-collection-state-rgb), 0.15);
    filter: brightness(1.06) saturate(1.08);
    transform: translateY(0);
    -webkit-backdrop-filter: blur(20px) saturate(145%);
    backdrop-filter: blur(20px) saturate(145%);
}

body.app-shop [data-shop-wishlist][aria-pressed="true"]:hover,
body.app-shop [data-shop-wishlist].is-active:hover,
body.app-shop [data-shop-compare][aria-pressed="true"]:hover,
body.app-shop [data-shop-compare].is-active:hover {
    border-color: rgba(var(--shop-collection-state-rgb), 0.78);
    color: #fff;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.28),
        inset 0 0 20px rgba(var(--shop-collection-state-rgb), 0.16),
        0 0 22px rgba(var(--shop-collection-state-rgb), 0.22),
        0 14px 30px rgba(var(--shop-collection-state-rgb), 0.18);
    filter: brightness(1.14) saturate(1.14);
    transform: translateY(-2px);
}

body.app-shop .shop-product-card__icon[data-shop-wishlist][aria-pressed="true"] svg,
body.app-shop .shop-product-card__icon[data-shop-wishlist].is-active svg {
    fill: rgba(255, 108, 142, 0.27);
    filter: drop-shadow(0 0 5px rgba(255, 108, 142, 0.42));
}

body.app-shop .shop-product-card__icon[data-shop-compare][aria-pressed="true"] svg,
body.app-shop .shop-product-card__icon[data-shop-compare].is-active svg {
    filter: drop-shadow(0 0 5px rgba(111, 157, 255, 0.46));
}

body.app-shop .shop-product-card__icon:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--shop-accent) 78%, white);
    outline-offset: 3px;
}

@media (min-width: 1051px) {
    body.app-shop .shop-hero {
        margin-top: calc(var(--header-height, 84px) + 20px);
    }
}

@media (max-width: 767px) {
    body.app-shop .shop-hero {
        margin-top: calc(var(--header-height, 66px) + 16px);
    }
}

body.app-shop .shop-hero__controls {
    inset: 0;
    display: block;
    pointer-events: none;
    transform: none;
}

body.app-shop .shop-hero__controls[hidden] {
    display: none;
}

body.app-shop .shop-hero__controls .shop-hero__dots {
    position: absolute;
    bottom: 18px;
    left: 50%;
    pointer-events: auto;
    transform: translateX(-50%);
}

body.app-shop .shop-hero__controls > .shop-product-rail__button {
    position: absolute;
    top: 50%;
    display: grid;
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    pointer-events: auto;
    color: var(--shop-text);
    background:
        radial-gradient(circle at 30% 12%, rgba(255, 255, 255, 0.18), transparent 58%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.12), rgba(var(--shop-accent-rgb), 0.06)),
        rgba(8, 12, 22, 0.62);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 14px 32px rgba(0, 0, 0, 0.3);
    -webkit-backdrop-filter: blur(22px) saturate(145%);
    backdrop-filter: blur(22px) saturate(145%);
    transform: translateY(-50%);
}

body.app-shop .shop-hero__controls > [data-slider-prev] {
    left: clamp(12px, 1.5vw, 24px);
}

body.app-shop .shop-hero__controls > [data-slider-next] {
    right: clamp(12px, 1.5vw, 24px);
}

body.app-shop .shop-hero__controls > .shop-product-rail__button:hover {
    border-color: rgba(255, 255, 255, 0.48);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        0 18px 40px rgba(var(--shop-accent-rgb), 0.18);
    transform: translateY(calc(-50% - 2px));
}

body.app-shop .shop-hero__controls > .shop-product-rail__button:active {
    transform: translateY(-50%) scale(0.94);
}

body.app-shop .shop-hero[data-pause-visible="0"] .shop-hero__toggle {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    opacity: 0 !important;
}

body.app-shop .shop-hero[data-pause-visible="0"] .shop-hero__toggle:focus-visible {
    right: 18px;
    bottom: 18px;
    left: auto;
    z-index: 6;
    width: auto !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 12px !important;
    margin: 0 !important;
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    white-space: nowrap !important;
    opacity: 1 !important;
    pointer-events: auto;
}

body.app-shop .shop-hero[data-pause-visible="1"] .shop-hero__toggle {
    position: absolute;
    right: 18px;
    bottom: 18px;
    z-index: 6;
    opacity: 1;
    pointer-events: auto;
}

body.app-shop .shop-product-card__button {
    border-color: rgba(255, 255, 255, 0.26);
    color: var(--shop-text);
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.22), transparent 58%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.14), rgba(var(--shop-accent-rgb), 0.11)),
        rgba(9, 13, 24, 0.62);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        inset 0 -1px 0 rgba(var(--shop-accent-rgb), 0.08),
        0 12px 28px rgba(0, 0, 0, 0.26);
    filter: brightness(1) saturate(1);
    -webkit-backdrop-filter: blur(20px) saturate(145%);
    backdrop-filter: blur(20px) saturate(145%);
    transition:
        border-color var(--shop-transition),
        color var(--shop-transition),
        filter var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-product-card__button:hover {
    border-color: rgba(255, 255, 255, 0.46);
    color: #fff;
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.3), transparent 58%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.19), rgba(var(--shop-accent-rgb), 0.18)),
        rgba(12, 17, 31, 0.72);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        inset 0 0 18px rgba(var(--shop-accent-rgb), 0.13),
        0 0 22px rgba(var(--shop-accent-rgb), 0.2),
        0 16px 34px rgba(var(--shop-accent-rgb), 0.22);
    filter: brightness(1.2) saturate(1.1);
    transform: translateY(-2px);
}

body.app-shop .shop-product-card__button:active {
    transform: scale(0.96);
}

body.app-shop .shop-product-card__button.is-added {
    border-color: color-mix(in srgb, var(--shop-success) 68%, white 12%);
    color: #fff;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.16), rgba(48, 209, 126, 0.16)),
        rgba(8, 29, 22, 0.78);
    animation: shop-confirm-pop 560ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.app-shop [data-add-to-cart].is-in-cart:not(.is-loading) {
    border-color: color-mix(in srgb, var(--shop-success) 66%, white 12%);
    color: #fff;
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.24), transparent 58%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.13), rgba(48, 209, 126, 0.17)),
        rgba(8, 29, 22, 0.78);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        inset 0 0 16px rgba(48, 209, 126, 0.08),
        0 10px 28px rgba(18, 145, 88, 0.16);
}

body.app-shop [data-add-to-cart].is-in-cart:not(.is-loading):hover {
    border-color: color-mix(in srgb, var(--shop-success) 78%, white 18%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.34),
        inset 0 0 20px rgba(48, 209, 126, 0.16),
        0 0 24px rgba(48, 209, 126, 0.22),
        0 16px 34px rgba(18, 145, 88, 0.2);
    filter: brightness(1.18) saturate(1.12);
}

body.app-shop .shop-product-card__button > img {
    filter: brightness(0) invert(1);
}

body.app-shop .shop-toast {
    position: fixed;
    z-index: 1700;
    right: max(18px, env(safe-area-inset-right));
    bottom: calc(84px + env(safe-area-inset-bottom));
    display: grid;
    width: min(540px, calc(100vw - 36px));
    min-height: 76px;
    padding: 14px 14px 14px 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 20px;
    color: var(--shop-text);
    background:
        radial-gradient(circle at 20% 0%, rgba(255, 255, 255, 0.16), transparent 56%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.1), rgba(var(--shop-accent-rgb), 0.06)),
        rgba(9, 13, 24, 0.78);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.16),
        0 24px 58px rgba(0, 0, 0, 0.42);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-backdrop-filter: blur(28px) saturate(155%);
    backdrop-filter: blur(28px) saturate(155%);
    transform: translateY(18px) scale(0.98);
    transition:
        opacity 220ms ease,
        visibility 220ms ease,
        transform 320ms cubic-bezier(0.22, 1, 0.36, 1);

    /* DEBUG: outline the toast grid while checking message wrapping. */
    /* outline: 1px solid #ff4d8d; */
}

body.app-shop .shop-toast[hidden] {
    display: none;
}

body.app-shop .shop-toast.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

body.app-shop .shop-toast__message {
    margin: 0;
    color: var(--shop-text);
    font-size: 0.9375rem;
    font-weight: 620;
    line-height: 1.42;
}

body.app-shop .shop-toast__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

body.app-shop .shop-toast__action,
body.app-shop .shop-toast__ok {
    min-width: 52px;
    min-height: 44px;
    padding: 0 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: var(--shop-text);
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.15), rgba(var(--shop-accent-rgb), 0.09)),
        rgba(18, 23, 38, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.13);
    font-size: 0.8125rem;
    font-weight: 760;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    backdrop-filter: blur(18px) saturate(140%);
    transition:
        border-color var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-toast__action {
    border-color: rgba(var(--shop-accent-rgb), 0.52);
    background:
        linear-gradient(135deg, rgba(var(--shop-accent-rgb), 0.24), rgba(255, 255, 255, 0.09)),
        rgba(18, 23, 38, 0.76);
}

body.app-shop .shop-toast__action[hidden] {
    display: none;
}

body.app-shop .shop-toast__action:hover,
body.app-shop .shop-toast__ok:hover {
    border-color: rgba(255, 255, 255, 0.46);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        0 10px 24px rgba(var(--shop-accent-rgb), 0.14);
    transform: translateY(-1px);
}

body.app-shop .shop-toast__action:active,
body.app-shop .shop-toast__ok:active {
    transform: scale(0.96);
}

body.app-shop .shop-toast__action:focus-visible,
body.app-shop .shop-toast__ok:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--shop-accent) 78%, white);
    outline-offset: 3px;
}

@media (min-width: 901px) and (max-width: 1050px) {
    body.app-shop .shop-hero__controls > .shop-product-rail__button {
        width: 32px;
        height: 32px;
        min-height: 32px;
    }

    body.app-shop .shop-hero__controls > .shop-product-rail__button svg {
        width: 15px;
        height: 15px;
    }
}

@media (min-width: 768px) and (max-width: 900px) {
    body.app-shop .shop-hero {
        min-height: 560px;
    }

    body.app-shop .shop-hero__content {
        padding: 56px 38px 112px;
    }

    body.app-shop .shop-hero__content > *,
    body.app-shop .shop-hero__text {
        max-width: min(72%, 580px);
    }

    body.app-shop .shop-hero__controls {
        top: auto;
        right: 18px;
        bottom: 16px;
        left: 18px;
        display: flex;
        height: 44px;
        align-items: center;
        justify-content: center;
        gap: 10px;
    }

    body.app-shop .shop-hero__controls .shop-hero__dots {
        position: static;
        max-width: calc(100% - 100px);
        transform: none;
    }

    body.app-shop .shop-hero__controls > .shop-product-rail__button {
        position: static;
        width: 44px;
        height: 44px;
        min-height: 44px;
        flex: 0 0 44px;
        transform: none;
    }

    body.app-shop .shop-hero__controls > .shop-product-rail__button:hover {
        transform: translateY(-2px);
    }

    body.app-shop .shop-hero__controls > .shop-product-rail__button:active {
        transform: scale(0.94);
    }

    body.app-shop .shop-hero[data-pause-visible="0"] .shop-hero__toggle:focus-visible,
    body.app-shop .shop-hero[data-pause-visible="1"] .shop-hero__toggle {
        right: 0;
        bottom: 52px;
    }
}

@media (max-width: 767px) {
    body.app-shop .shop-hero__controls {
        top: auto;
        right: 12px;
        bottom: 14px;
        left: 12px;
        display: flex;
        height: 44px;
        align-items: center;
        justify-content: center;
        gap: 10px;
    }

    body.app-shop .shop-hero__controls .shop-hero__dots {
        position: static;
        max-width: calc(100% - 96px);
        transform: none;
    }

    body.app-shop .shop-hero__controls > .shop-product-rail__button {
        position: static;
        width: 44px;
        height: 44px;
        min-height: 44px;
        flex: 0 0 44px;
        transform: none;
    }

    body.app-shop .shop-hero__controls > .shop-product-rail__button:hover {
        transform: translateY(-2px);
    }

    body.app-shop .shop-hero__controls > .shop-product-rail__button:active {
        transform: scale(0.94);
    }

    body.app-shop .shop-hero[data-pause-visible="0"] .shop-hero__toggle:focus-visible,
    body.app-shop .shop-hero[data-pause-visible="1"] .shop-hero__toggle {
        right: 0;
        bottom: 52px;
    }

    body.app-shop .shop-toast {
        right: max(12px, env(safe-area-inset-right));
        bottom: calc(76px + env(safe-area-inset-bottom));
        width: min(390px, calc(100vw - 24px));
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        border-radius: 18px;
    }

    body.app-shop .shop-toast__actions {
        justify-content: flex-end;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-shop .shop-product-card__button,
    body.app-shop .shop-product-card__icon,
    body.app-shop .shop-hero__controls > .shop-product-rail__button,
    body.app-shop .shop-toast,
    body.app-shop .shop-toast__action,
    body.app-shop .shop-toast__ok {
        animation: none !important;
        transition-duration: 0.01ms !important;
    }
}

@keyframes shop-confirm-pop {
    0% {
        transform: scale(1);
    }

    42% {
        transform: scale(1.08);
    }

    100% {
        transform: scale(1);
    }
}

/* Catalog live controls, views and category copy — keep after legacy responsive rules. */
body.app-shop .shop-catalog__results {
    position: relative;
    min-width: 0;
    transition: opacity var(--shop-transition), filter var(--shop-transition);
}

body.app-shop .shop-catalog.is-catalog-loading .shop-catalog__results {
    opacity: 0.56;
    filter: saturate(0.72);
    cursor: progress;
    pointer-events: none;
}

html[data-itmsft-shop-ready="true"] body.app-shop .shop-catalog[data-shop-catalog-ajax="1"] .shop-catalog__filter-submit {
    display: none;
}

body.app-shop .shop-catalog__controls,
body.app-shop .shop-catalog__views {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
}

body.app-shop .shop-catalog__controls {
    justify-content: flex-end;
}

body.app-shop .shop-catalog__sort-menu {
    position: relative;
    z-index: 20;
    min-width: min(250px, 44vw);
}

body.app-shop .shop-catalog__sort-menu > summary {
    display: grid;
    min-height: 46px;
    padding: 0 12px 0 18px;
    grid-template-columns: minmax(0, 1fr) 24px 18px;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    color: var(--shop-text);
    background:
        radial-gradient(circle at 22% 0%, rgba(255, 255, 255, 0.11), transparent 55%),
        rgba(14, 18, 29, 0.82);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07);
    font-size: 0.875rem;
    font-weight: 620;
    list-style: none;
    cursor: pointer;
    transition:
        border-color var(--shop-transition),
        background-color var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
    -webkit-backdrop-filter: blur(20px) saturate(135%);
    backdrop-filter: blur(20px) saturate(135%);
}

body.app-shop .shop-catalog__sort-menu > summary::-webkit-details-marker {
    display: none;
}

body.app-shop .shop-catalog__sort-menu > summary:hover,
body.app-shop .shop-catalog__sort-menu[open] > summary {
    border-color: rgba(255, 255, 255, 0.34);
    background-color: rgba(var(--shop-accent-rgb), 0.1);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 12px 28px rgba(0, 0, 0, 0.24);
}

body.app-shop .shop-catalog__sort-menu > summary:focus-visible,
body.app-shop .shop-catalog__views button:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--shop-accent) 76%, white);
    outline-offset: 3px;
}

body.app-shop .shop-catalog__sort-direction {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    color: color-mix(in srgb, var(--shop-accent) 78%, white);
    background: rgba(var(--shop-accent-rgb), 0.12);
}

body.app-shop .shop-catalog__icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    background: currentColor;
    -webkit-mask: var(--shop-catalog-icon) center / contain no-repeat;
    mask: var(--shop-catalog-icon) center / contain no-repeat;
}

body.app-shop .shop-catalog__icon--grid-3 {
    --shop-catalog-icon: url("../img/icons/catalog-columns-3.svg");
}

body.app-shop .shop-catalog__icon--grid-4 {
    --shop-catalog-icon: url("../img/icons/catalog-columns-4.svg");
}

body.app-shop .shop-catalog__icon--list {
    --shop-catalog-icon: url("../img/icons/catalog-list.svg");
}

body.app-shop .shop-catalog__icon--arrow-up {
    --shop-catalog-icon: url("../img/icons/catalog-arrow-up.svg");
    width: 14px;
    height: 14px;
}

body.app-shop .shop-catalog__icon--arrow-down {
    --shop-catalog-icon: url("../img/icons/catalog-arrow-down.svg");
    width: 14px;
    height: 14px;
}

body.app-shop .shop-catalog__icon--chevron {
    --shop-catalog-icon: url("../img/icons/catalog-chevron-down.svg");
    width: 14px;
    height: 14px;
    color: var(--shop-muted);
    transition: transform var(--shop-transition);
}

body.app-shop .shop-catalog__sort-menu[open] .shop-catalog__icon--chevron {
    transform: rotate(180deg);
}

body.app-shop .shop-catalog__sort-options {
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    display: grid;
    width: 100%;
    min-width: 230px;
    padding: 8px;
    gap: 3px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 18px;
    background:
        radial-gradient(circle at 20% 0%, rgba(255, 255, 255, 0.12), transparent 58%),
        rgba(9, 13, 23, 0.96);
    box-shadow: 0 24px 58px rgba(0, 0, 0, 0.42);
    -webkit-backdrop-filter: blur(24px) saturate(145%);
    backdrop-filter: blur(24px) saturate(145%);
}

body.app-shop .shop-catalog__sort-option,
body.app-shop .shop-catalog__sort-option a {
    min-width: 0;
}

body.app-shop .shop-catalog__sort-option a {
    display: flex;
    min-height: 40px;
    padding: 0 12px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-radius: 12px;
    color: var(--shop-muted);
    font-size: 0.875rem;
    font-weight: 580;
    text-decoration: none;
    transition: color var(--shop-transition), background-color var(--shop-transition);
}

body.app-shop .shop-catalog__sort-option a:hover,
body.app-shop .shop-catalog__sort-option.is-active a {
    color: var(--shop-text);
    background: rgba(var(--shop-accent-rgb), 0.13);
}

body.app-shop .shop-catalog__sort-option :is(.sort-asc, .sort-desc) {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    background: currentColor;
    -webkit-mask: var(--shop-catalog-sort-icon) center / contain no-repeat;
    mask: var(--shop-catalog-sort-icon) center / contain no-repeat;
}

body.app-shop .shop-catalog__sort-option .sort-asc {
    --shop-catalog-sort-icon: url("../img/icons/catalog-arrow-up.svg");
}

body.app-shop .shop-catalog__sort-option .sort-desc {
    --shop-catalog-sort-icon: url("../img/icons/catalog-arrow-down.svg");
}

body.app-shop .shop-catalog__views button {
    display: grid;
    width: 46px;
    height: 46px;
    min-height: 46px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    color: var(--shop-muted);
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.1), transparent 58%),
        rgba(14, 18, 29, 0.72);
    cursor: pointer;
    transition:
        border-color var(--shop-transition),
        color var(--shop-transition),
        background-color var(--shop-transition),
        box-shadow var(--shop-transition),
        transform var(--shop-transition);
}

body.app-shop .shop-catalog__views button:hover {
    border-color: rgba(255, 255, 255, 0.36);
    color: var(--shop-text);
    transform: translateY(-2px);
}

body.app-shop .shop-catalog__views button[aria-pressed="true"],
body.app-shop .shop-catalog__views button.is-active {
    border-color: rgba(var(--shop-accent-rgb), 0.62);
    color: #edf3ff;
    background:
        radial-gradient(circle at 28% 0%, rgba(255, 255, 255, 0.2), transparent 58%),
        rgba(var(--shop-accent-rgb), 0.18);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 0 20px rgba(var(--shop-accent-rgb), 0.16);
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-3"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(12px, 1.35vw, 20px);
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__footer {
    align-items: flex-start;
    flex-direction: column;
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] .shop-product-card__actions {
    width: 100%;
    justify-content: flex-start;
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card {
    display: grid;
    min-height: 250px;
    grid-template-columns: minmax(200px, 270px) minmax(0, 1fr);
    grid-template-rows: minmax(250px, auto);
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__media {
    height: auto;
    min-height: 230px;
    aspect-ratio: auto;
    margin: 10px 0 10px 10px;
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__body {
    padding: clamp(20px, 2.4vw, 34px);
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__name {
    min-height: 0;
    max-width: 42ch;
    font-size: clamp(1.05rem, 1.4vw, 1.35rem);
    -webkit-line-clamp: 3;
}

body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__summary {
    display: -webkit-box;
}

body.app-shop .shop-category-description {
    width: 100%;
    margin-top: clamp(54px, 7vw, 96px);
    padding: clamp(24px, 4vw, 54px);
    border-radius: var(--shop-radius-lg);
    background:
        radial-gradient(circle at 78% 0%, rgba(var(--shop-accent-rgb), 0.08), transparent 42%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018)),
        rgba(10, 14, 24, 0.72);
}

body.app-shop .shop-page__header + .shop-category-description {
    margin-top: 0;
    margin-bottom: clamp(34px, 4vw, 58px);
}

body.app-shop .shop-category-description > h2 {
    max-width: 22ch;
    margin: 10px 0 22px;
    color: var(--shop-text);
    font-size: var(--shop-type-h2);
    font-weight: 520;
    line-height: 1.05;
    letter-spacing: -0.045em;
}

body.app-shop .shop-category-description__body {
    max-width: 80ch;
    color: color-mix(in srgb, var(--shop-muted) 88%, var(--shop-text));
    font-size: var(--shop-type-body-lg);
    line-height: 1.72;
}

body.app-shop .shop-category-description__body :is(p, ul, ol) {
    margin: 0;
}

body.app-shop .shop-category-description__body :is(p, ul, ol) + :is(p, ul, ol, h3) {
    margin-top: 1em;
}

body.app-shop .shop-category-description__body h3 {
    margin: 1.45em 0 0.55em;
    color: var(--shop-text);
    font-size: 1.18em;
}

body.app-shop .shop-category-description__body a {
    color: color-mix(in srgb, var(--shop-accent) 76%, white);
    text-underline-offset: 0.18em;
}

@media (max-width: 1260px) {
    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-3"],
    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.app-shop .shop-catalog__toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    body.app-shop .shop-catalog__controls {
        width: 100%;
        justify-content: space-between;
    }

    body.app-shop .shop-catalog__sort-menu {
        min-width: min(250px, 56vw);
    }
}

@media (max-width: 767px) {
    body.app-shop .shop-filter__values-toggle {
        min-height: 42px;
    }

    body.app-shop .shop-catalog__controls,
    body.app-shop .shop-catalog__sort-menu {
        width: 100%;
    }

    body.app-shop .shop-catalog__sort-menu {
        min-width: 0;
    }

    body.app-shop .shop-catalog__views {
        display: none;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-3"],
    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"],
    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card {
        display: flex;
        min-height: 0;
        grid-template-columns: none;
        grid-template-rows: none;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="list"] .shop-product-card__media {
        min-height: 0;
        aspect-ratio: 4 / 3;
        margin: 10px 10px 0;
    }

    body.app-shop .shop-category-description {
        padding: 24px 20px;
        border-radius: var(--shop-radius-md);
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-shop .shop-catalog__results,
    body.app-shop .shop-catalog__sort-menu > summary,
    body.app-shop .shop-catalog__views button {
        transition-duration: 0.01ms !important;
    }
}

/* Shop-Script renders wa_pagination as a nested ul/li list. Keep the nav
   wrapper structural and apply the visual layout to the generated list. */
body.app-shop nav.shop-pagination {
    display: block;
}

body.app-shop .shop-pagination > .shop-pagination__list {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    list-style: none;
}

body.app-shop .shop-pagination > .shop-pagination__list > li {
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
    background: transparent;
}

body.app-shop .shop-pagination > .shop-pagination__list > li::marker {
    content: "";
}

body.app-shop .shop-pagination > .shop-pagination__list > li.selected > :is(a, span),
body.app-shop .shop-pagination > .shop-pagination__list > li.is-active > :is(a, span) {
    border-color: rgba(255, 255, 255, 0.36);
    color: var(--shop-text);
    background: rgba(255, 255, 255, 0.06);
}

body.app-shop .shop-pagination[hidden],
body.app-shop .pagination[hidden] {
    display: none !important;
}

body.app-shop .shop-catalog__lazy {
    display: grid;
    width: 100%;
    min-height: 76px;
    margin-top: clamp(30px, 4vw, 54px);
    place-items: center;
    gap: 12px;
}

body.app-shop .shop-catalog__lazy-button {
    min-width: min(260px, 100%);
}

body.app-shop .shop-catalog__lazy-button[aria-busy="true"] {
    cursor: progress;
    opacity: 0.72;
}

body.app-shop .shop-catalog__lazy-status {
    margin: 0;
    color: var(--shop-muted);
    font-size: 0.875rem;
    text-align: center;
}

body.app-shop .shop-catalog__lazy-sentinel {
    display: block;
    width: 100%;
    height: 1px;
    pointer-events: none;
}

@media (max-width: 767px) {
    body.app-shop .shop-filter__groups-toggle {
        min-height: 46px;
    }

    body.app-shop .shop-catalog__lazy-button {
        width: 100%;
    }
}

/* Unified slider navigation. The parent theme owns the component; these
   selectors only neutralise legacy Shop carousel positioning and tokens. */
body.app-shop .shop-hero__controls.itmsft-slider-nav,
body.app-shop .shop-product-rail__controls.itmsft-slider-nav {
    display: flex;
    width: fit-content;
    max-width: calc(100% - 24px);
    height: auto;
    align-items: center;
    justify-content: center;
    gap: 10px;
    pointer-events: auto;
}

body.app-shop .shop-hero__controls.itmsft-slider-nav {
    position: absolute;
    z-index: 6;
    inset: auto auto 18px 50%;
    margin: 0;
    transform: translateX(-50%);
}

body.app-shop .shop-product-rail__controls.itmsft-slider-nav {
    position: static;
    inset: auto;
    margin: clamp(18px, 2.3vw, 28px) auto 0;
    transform: none;
}

body.app-shop .shop-hero__controls.itmsft-slider-nav[hidden],
body.app-shop .shop-product-rail__controls.itmsft-slider-nav[hidden],
body.app-shop .shop-product-rail.is-static .shop-product-rail__controls.itmsft-slider-nav,
html.no-js body.app-shop .shop-hero__controls.itmsft-slider-nav,
html.no-js body.app-shop .shop-product-rail__controls.itmsft-slider-nav {
    display: none !important;
}

body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button {
    position: static;
    inset: auto;
    display: grid;
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(230, 237, 255, 0.25);
    border-radius: 50%;
    color: #f7f9ff;
    background:
        radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.15), transparent 44%),
        linear-gradient(145deg, rgba(99, 116, 158, 0.24), rgba(8, 12, 23, 0.7));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        inset 0 -12px 24px rgba(3, 6, 14, 0.22),
        0 12px 30px rgba(0, 0, 0, 0.28);
    opacity: 1;
    pointer-events: auto;
    -webkit-backdrop-filter: blur(22px) saturate(145%);
    backdrop-filter: blur(22px) saturate(145%);
    cursor: pointer;
    transform: none;
    transition: transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
}

body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button > img {
    display: block;
    width: 20px;
    height: 20px;
    opacity: 0.92;
    filter: brightness(0) invert(1);
    pointer-events: none;
}

body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button:hover:not(:disabled) {
    border-color: rgba(238, 244, 255, 0.52);
    background:
        radial-gradient(circle at 32% 24%, rgba(255, 255, 255, 0.22), transparent 46%),
        linear-gradient(145deg, rgba(119, 140, 192, 0.34), rgba(13, 19, 34, 0.78));
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.18),
        0 0 24px rgba(150, 180, 255, 0.14),
        0 14px 34px rgba(0, 0, 0, 0.34);
    transform: translateY(-2px);
}

body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button:active:not(:disabled) {
    transform: scale(0.94);
}

body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button:focus-visible,
body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot:focus-visible {
    outline: 3px solid rgba(181, 204, 255, 0.72);
    outline-offset: 3px;
}

body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button:disabled,
body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button[aria-disabled="true"] {
    opacity: 0.32;
    cursor: default;
    transform: none;
}

body.app-shop .itmsft-slider-nav .itmsft-slider-nav__progress {
    position: static;
    display: flex;
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
    max-width: min(64vw, 390px);
    min-height: 44px;
    padding: 9px 12px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    overflow-x: auto;
    border: 1px solid rgba(226, 235, 255, 0.16);
    border-radius: 999px;
    background: linear-gradient(145deg, rgba(35, 43, 62, 0.46), rgba(5, 9, 18, 0.68));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 12px 30px rgba(0, 0, 0, 0.2);
    -webkit-backdrop-filter: blur(22px) saturate(145%);
    backdrop-filter: blur(22px) saturate(145%);
    scrollbar-width: none;
    pointer-events: auto;
    transform: none;
}

body.app-shop .itmsft-slider-nav .itmsft-slider-nav__progress::-webkit-scrollbar {
    display: none;
}

body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot {
    position: relative;
    display: block;
    flex: 0 0 34px;
    width: 34px;
    min-width: 34px;
    height: 24px;
    min-height: 24px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    transition: width 220ms ease, flex-basis 220ms ease;
}

body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot::before {
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 3px;
    border-radius: 999px;
    background: rgba(217, 226, 247, 0.34);
    content: "";
    transform: translateY(-50%);
    transition: background 220ms ease, box-shadow 220ms ease;
}

body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot.is-active,
body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot[aria-current="true"] {
    flex-basis: 58px;
    width: 58px;
    min-width: 58px;
    background: transparent;
}

body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot.is-active::before,
body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot[aria-current="true"]::before {
    background: rgba(235, 241, 255, 0.94);
    box-shadow: 0 0 14px rgba(167, 194, 255, 0.5);
}

@media (max-width: 767px) {
    body.app-shop .shop-hero__controls.itmsft-slider-nav {
        bottom: calc(18px + var(--shop-hero-nav-lift, 0px));
    }
}

@media (max-width: 640px) {
    body.app-shop .shop-hero__controls.itmsft-slider-nav,
    body.app-shop .shop-product-rail__controls.itmsft-slider-nav {
        gap: 8px;
    }

    body.app-shop .itmsft-slider-nav .itmsft-slider-nav__progress {
        max-width: calc(100vw - 132px);
        padding-right: 10px;
        padding-left: 10px;
        gap: 5px;
    }

    body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot {
        flex-basis: 22px;
        width: 22px;
        min-width: 22px;
    }

    body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot.is-active,
    body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot[aria-current="true"] {
        flex-basis: 36px;
        width: 36px;
        min-width: 36px;
    }
}

/* Product rails on the Shop homepage keep navigation with the section title.
   Hero navigation and product rails used on other pages remain unchanged. */
body.app-shop .shop-product-rail--header-controls .shop-section__actions {
    display: flex;
    min-width: 0;
    margin-left: auto;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

body.app-shop .shop-product-rail--header-controls .shop-section__link {
    margin-right: 0;
}

body.app-shop .shop-product-rail--header-controls .shop-product-rail__controls.itmsft-slider-nav {
    position: static;
    inset: auto;
    width: auto;
    max-width: none;
    margin: 0;
    gap: 6px;
    transform: none;
}

body.app-shop .shop-product-rail--header-controls .shop-product-rail__progress {
    display: none;
}

body.app-shop .shop-product-rail--header-controls .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button {
    flex-basis: 36px;
    width: 36px;
    min-width: 36px;
    height: 36px;
    min-height: 36px;
}

body.app-shop .shop-product-rail--header-controls .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button > img {
    width: 16px;
    height: 16px;
}

@media (min-width: 901px) and (max-width: 1050px) {
    body.app-shop .shop-product-rail--header-controls .shop-section__actions,
    body.app-shop .shop-product-rail--header-controls .shop-product-rail__controls.itmsft-slider-nav {
        gap: 5px;
    }

    body.app-shop .shop-product-rail--header-controls .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button {
        flex-basis: 24px;
        width: 24px;
        min-width: 24px;
        height: 24px;
        min-height: 24px;
    }

    body.app-shop .shop-product-rail--header-controls .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button > img {
        width: 11px;
        height: 11px;
    }
}

@media (max-width: 900px) {
    body.app-shop .shop-product-rail--header-controls .shop-section__head {
        align-items: stretch;
    }

    body.app-shop .shop-product-rail--header-controls .shop-section__actions {
        width: 100%;
        margin-left: 0;
        justify-content: space-between;
    }

    body.app-shop .shop-product-rail--header-controls .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button {
        flex-basis: 40px;
        width: 40px;
        min-width: 40px;
        height: 40px;
        min-height: 40px;
    }

    body.app-shop .shop-product-rail--header-controls .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button > img {
        width: 18px;
        height: 18px;
    }
}

@media (max-width: 767px) {
    body.app-shop .shop-product-rail--header-controls .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button {
        flex-basis: 44px;
        width: 44px;
        min-width: 44px;
        height: 44px;
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-shop .shop-hero__controls.itmsft-slider-nav,
    body.app-shop .itmsft-slider-nav > .itmsft-slider-nav__button.shop-product-rail__button,
    body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot,
    body.app-shop .itmsft-slider-nav .itmsft-slider-nav__dot::before {
        animation: none !important;
        transition: none !important;
    }
}

/* Final mobile catalog contract: these declarations intentionally follow
   the legacy catalog-view breakpoints above. */
@media (max-width: 767px) {
    body.app-shop .shop-catalog__sidebar[aria-hidden="true"] {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateX(calc(-100% - 18px)) !important;
    }

    body.app-shop .shop-catalog__toolbar {
        display: grid;
        width: 100%;
        grid-template-columns: 42px minmax(0, 1fr);
        align-items: start;
        flex-direction: initial;
        gap: 9px;
    }

    body.app-shop .shop-catalog__controls {
        display: flex;
        width: auto;
        min-width: 0;
        grid-column: 2;
        grid-row: 1;
        justify-content: flex-end;
        gap: 6px;
    }

    body.app-shop .shop-catalog__sort-menu,
    body.app-shop .shop-catalog__sort-menu > summary,
    body.app-shop .shop-catalog__views button {
        width: 42px;
        min-width: 42px;
        height: 42px;
        min-height: 42px;
    }

    body.app-shop .shop-catalog__sort-menu > summary,
    body.app-shop .shop-catalog__views button {
        border-radius: 12px;
    }

    body.app-shop .shop-catalog__sort-menu > summary {
        padding: 0;
        grid-template-columns: 1fr;
        place-items: center;
        gap: 0;
        line-height: 0;
    }

    body.app-shop .shop-catalog__sort-direction {
        display: grid;
        width: 20px;
        height: 20px;
        margin: 0;
        place-items: center;
        justify-self: center;
        align-self: center;
        border-radius: 0;
        background: transparent;
    }

    body.app-shop .shop-catalog__sort-menu .shop-catalog__icon--chevron {
        display: none;
    }

    body.app-shop .shop-catalog__views {
        display: flex;
        width: auto;
        gap: 6px;
    }

    body.app-shop .shop-catalog__views button[data-shop-catalog-view="list"] {
        display: none;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-3"] {
        grid-template-columns: minmax(0, 1fr);
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

}

@media (max-width: 359px) {
    body.app-shop .shop-catalog__toolbar {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 6px;
    }

    body.app-shop .shop-catalog__filter-toggle,
    body.app-shop .shop-catalog__sort-menu,
    body.app-shop .shop-catalog__sort-menu > summary,
    body.app-shop .shop-catalog__views button {
        width: 38px;
        min-width: 38px;
        height: 38px;
        min-height: 38px;
    }

    body.app-shop .shop-catalog__controls,
    body.app-shop .shop-catalog__views {
        gap: 4px;
    }

    body.app-shop .shop-catalog [data-shop-catalog-products][data-shop-catalog-view="grid-4"] {
        grid-template-columns: minmax(0, 1fr);
    }
}
