/*
 * Rainbow Nation November sale catalogue.
 * Active only while html.rainbow-november-sale is present (Factory Outlet Specials).
 */

html.rainbow-november-sale {
    --store-max-width: 1200px;
    --store-gutter: 20px;
}

html.rainbow-november-sale header > .container,
html.rainbow-november-sale section > .container,
html.rainbow-november-sale .payment-logos,
html.rainbow-november-sale .footer > .container {
    width: calc(100% - (var(--store-gutter) * 2)) !important;
    max-width: var(--store-max-width) !important;
    margin-inline: auto;
    padding-left: 0;
    padding-right: 0;
}

html.store-wide-page section > .container {
    width: 92% !important;
    max-width: 1440px !important;
    padding-left: 12px;
    padding-right: 12px;
}

html.rainbow-november-sale.store-wide-page header > .container,
html.rainbow-november-sale.store-wide-page section > .container {
    width: calc(100% - (var(--store-gutter) * 2)) !important;
    max-width: var(--store-max-width) !important;
    margin-inline: auto;
    padding-left: 0;
    padding-right: 0;
}

html.rainbow-november-sale.store-wide-page .store-shell,
html.rainbow-november-sale.store-wide-page .store-shell *,
html.rainbow-november-sale.store-wide-page .store-shell *::before,
html.rainbow-november-sale.store-wide-page .store-shell *::after {
    box-sizing: border-box;
}

html.rainbow-november-sale.html-product-details-page .page.product-details-page,
html.rainbow-november-sale.html-product-details-page .product-details-page .page-body {
    margin: 0;
    padding: 0;
}

html.rainbow-november-sale.html-product-details-page .product-detail-page.store-shell {
    width: 100%;
    max-width: none;
    margin-inline: 0;
}

html.rainbow-november-sale header > .container,
html.rainbow-november-sale section > .container,
html.rainbow-november-sale .payment-logos,
html.rainbow-november-sale .footer > .container,
html.rainbow-november-sale header > .container *,
html.rainbow-november-sale section > .container *,
html.rainbow-november-sale .payment-logos *,
html.rainbow-november-sale .footer > .container * {
    box-sizing: border-box;
}

html.rainbow-november-sale .admin-header-links {
    display: none;
}

html.rainbow-november-sale .header-lower {
    margin-bottom: 12px;
}

html.rainbow-november-sale .header-menu {
    margin: 0 !important;
    padding: 0 !important;
}

html.rainbow-november-sale .header-menu #menu > ul.navbar-nav > li.nav-item-base > .nav-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding-block: 8px;
    color: #fff;
    font-weight: 600;
}

html.rainbow-november-sale .master-wrapper-content,
html.rainbow-november-sale .master-column-wrapper {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

html.rainbow-november-sale .master-column-wrapper > .row {
    margin-right: 0;
    margin-left: 0;
}

html.rainbow-november-sale .category-page {
    margin: 0 !important;
    padding: 0 !important;
}

html.rainbow-november-sale .category-page > .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

html.rainbow-november-sale .side-2,
html.store-wide-page .side-2 {
    display: none !important;
}

html.rainbow-november-sale .center-2,
html.store-wide-page .center-2 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

html.rainbow-november-sale .center-2 {
    margin-bottom: 0;
}

html.rainbow-november-sale nav[aria-label="breadcrumb"] {
    display: block;
    width: 100%;
    margin: 6px 0 0;
    padding: 0;
}

html.rainbow-november-sale .breadcrumb,
html.rainbow-november-sale #category-17.breadcrumb,
html.rainbow-november-sale #category-234.breadcrumb,
html.rainbow-november-sale .snap-cat-factory-outlet-specials .breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    background: linear-gradient(90deg, #ff0000 0%, #ff7900 55%, #ffe000 100%) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 4px 10px !important;
    min-height: 24px;
    line-height: 16px;
}

html.rainbow-november-sale .breadcrumb-item,
html.rainbow-november-sale .breadcrumb-item a,
html.rainbow-november-sale .breadcrumb-item .current-item,
html.rainbow-november-sale li.breadcrumb-item,
html.rainbow-november-sale li.breadcrumb-item a {
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 600;
    line-height: 16px;
    text-shadow: 0 1px 2px rgb(0 0 0 / 55%);
}

html.rainbow-november-sale .breadcrumb-item + .breadcrumb-item::before {
    color: rgb(255 255 255 / 85%) !important;
}

html.rainbow-november-sale .sale-content {
    --sale-main: #ff0000;
    --sale-transition: #ff7900;
    --sale-corner: #ffe000;
    --sale-ink: #fff;
    --sale-shadow: 0 1px 2px rgb(0 0 0 / 65%);
    --sale-gradient: linear-gradient(
        135deg,
        var(--sale-main) 0%,
        var(--sale-main) 80%,
        var(--sale-transition) 92%,
        var(--sale-corner) 100%
    );

    background: #fff;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
}

html.rainbow-november-sale .sale-content[data-sale-week="2"] {
    --sale-main: #ffe000;
    --sale-transition: #7ac143;
    --sale-corner: #128a32;
    --sale-ink: #1a1a1a;
    --sale-shadow: none;
}

html.rainbow-november-sale .sale-content[data-sale-week="3"] {
    --sale-main: #0b8f3c;
    --sale-transition: #14b4c4;
    --sale-corner: #5ce7f2;
    --sale-ink: #fff;
    --sale-shadow: 0 1px 2px rgb(0 0 0 / 65%);
}

html.rainbow-november-sale .sale-content[data-sale-week="4"] {
    --sale-main: #00048b;
    --sale-transition: #0088c2;
    --sale-corner: #3ad4ea;
    --sale-ink: #fff;
    --sale-shadow: 0 1px 2px rgb(0 0 0 / 65%);
}

html.rainbow-november-sale .sale-banner,
html.store-wide-page .sale-banner {
    margin: 0;
    overflow: hidden;
    background: #0a0a0a;
    width: 100%;
    max-width: 100%;
}

html.rainbow-november-sale .sale-banner-stage,
html.store-wide-page .sale-banner-stage {
    position: relative;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 1024 / 150;
    overflow: hidden;
    background: #0a0a0a;
}

html.rainbow-november-sale .sale-banner-bg,
html.store-wide-page .sale-banner-bg,
html.rainbow-november-sale .sale-banner-veil,
html.store-wide-page .sale-banner-veil,
html.rainbow-november-sale .sale-banner-art,
html.store-wide-page .sale-banner-art {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    border: 0;
}

html.rainbow-november-sale .sale-banner-bg,
html.store-wide-page .sale-banner-bg {
    z-index: 0;
    object-fit: cover;
    object-position: 82% center;
    pointer-events: none;
}

html.rainbow-november-sale .sale-banner-veil,
html.store-wide-page .sale-banner-veil {
    z-index: 1;
    /* Right-side legibility only — do not wash the left / flag art with white */
    background: linear-gradient(
        90deg,
        transparent 0%,
        transparent 58%,
        rgba(255, 255, 255, 0.35) 72%,
        rgba(255, 255, 255, 0.88) 88%,
        #fff 100%
    );
    pointer-events: none;
}

html.rainbow-november-sale .sale-banner-art,
html.store-wide-page .sale-banner-art {
    z-index: 2;
    object-fit: cover;
    object-position: center;
}

html.rainbow-november-sale .sale-banner-stage--full,
html.store-wide-page .sale-banner-stage--full {
    aspect-ratio: auto;
    height: auto;
    line-height: 0;
    background: #0a0a0a;
}

html.rainbow-november-sale .sale-banner-stage--full .sale-banner-full,
html.store-wide-page .sale-banner-stage--full .sale-banner-full {
    position: static;
    inset: auto;
    display: block;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: none !important;
    object-fit: contain;
    object-position: center center;
    border: 0;
}

@keyframes rn-banner-bg {
    from {
        transform: scale(1.14);
        filter: saturate(0.7) brightness(0.58);
    }
    to {
        transform: scale(1);
        filter: none;
    }
}

@keyframes rn-banner-veil {
    from {
        opacity: 0;
        transform: translateX(-18px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes rn-banner-art {
    from {
        opacity: 0;
        transform: translateY(18px);
        filter: blur(2px);
    }
    to {
        opacity: 1;
        transform: none;
        filter: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html.rainbow-november-sale .sale-banner-bg,
    html.store-wide-page .sale-banner-bg,
    html.rainbow-november-sale .sale-banner-veil,
    html.store-wide-page .sale-banner-veil,
    html.rainbow-november-sale .sale-banner-art,
    html.store-wide-page .sale-banner-art {
        animation: none;
        filter: none;
        transform: none;
        opacity: 1;
    }
}

html.rainbow-november-sale .sale-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 12px 0 0;
}

html.rainbow-november-sale .category-page > .promo-links {
    width: 100%;
    margin: 20px 0 0;
    padding: 0;
    box-sizing: border-box;
}

html.rainbow-november-sale .sale-content .category-description {
    margin-bottom: 16px;
}

html.rainbow-november-sale .sale-content .category-description img {
    max-width: 100%;
    height: auto;
}

html.rainbow-november-sale .rn-category-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 16px;
    padding: 0;
}

html.rainbow-november-sale .rn-category-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 120px;
    margin: 0;
    padding: 10px;
    border: 3px solid transparent;
    border-radius: 8px;
    background:
        linear-gradient(#fff, #fff) padding-box,
        var(--sale-gradient) border-box;
    text-decoration: none;
    overflow: hidden;
    box-shadow: none;
    box-sizing: border-box;
}

html.rainbow-november-sale .rn-category-card:hover {
    box-shadow: 0 2px 10px rgb(0 0 0 / 12%);
}

html.rainbow-november-sale .rn-category-card.is-current {
    box-shadow: 0 0 0 2px rgb(0 0 0 / 22%);
}

html.rainbow-november-sale .rn-category-card:focus-visible {
    outline: 2px solid #111;
    outline-offset: 2px;
}

html.rainbow-november-sale .rn-category-name {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5em;
    margin: 0;
    color: #1a1a1a !important;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.2;
    text-align: center;
}

html.rainbow-november-sale .rn-category-art {
    position: relative;
    flex: 1 1 auto;
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
}

html.rainbow-november-sale .rn-category-fallback {
    width: 52px;
    height: 52px;
    color: #aeb3b8;
}

html.rainbow-november-sale .rn-category-art img {
    position: absolute;
    inset: 0;
    display: block;
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    margin: auto;
    background: #fff;
    object-fit: contain;
}

html.rainbow-november-sale .rn-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid #dedede;
}

html.rainbow-november-sale .rn-heading {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px;
    min-width: 0;
}

html.rainbow-november-sale .rn-count {
    margin: 0;
    color: #626975;
    font-size: 13px;
    font-weight: 500;
}

html.rainbow-november-sale .rn-toolbar-controls {
    margin-left: auto;
}

html.rainbow-november-sale .rn-selector-groups {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
}

html.rainbow-november-sale .rn-control-group {
    display: flex;
    align-items: center;
    gap: 8px;
}

html.rainbow-november-sale .rn-control-group label,
html.rainbow-november-sale .rn-control-suffix {
    margin: 0;
    white-space: nowrap;
    font-size: 12px;
}

html.rainbow-november-sale .rn-control-group select {
    width: auto;
    min-width: 76px;
    min-height: 36px;
    margin: 0;
    padding: 6px 28px 6px 10px;
}

html.rainbow-november-sale .rn-view-controls {
    gap: 6px;
}

html.rainbow-november-sale .rn-featured {
    margin-top: 18px;
}

html.rainbow-november-sale .rn-featured-title {
    margin: 0 0 12px;
    color: #222;
    font-size: 16px;
    font-weight: 700;
}

html.rainbow-november-sale .rn-product-grid {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
    margin: 0;
}

html.rainbow-november-sale .rn-product-grid.is-list {
    grid-template-columns: minmax(0, 560px);
}

html.rainbow-november-sale .rn-product {
    display: flex;
    flex-direction: column;
    position: relative;
    min-width: 0;
    padding: 12px;
    background: #fff;
    border: 1px solid #dfe2e7;
    border-radius: 6px;
    box-shadow: none;
}

html.rainbow-november-sale .rn-product .sr-gem-badge {
    top: 40px !important;
    right: auto !important;
    bottom: auto !important;
    left: 12px !important;
}

html.rainbow-november-sale .rn-media {
    position: relative;
    padding-top: 28px;
}

html.rainbow-november-sale .rn-media img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: contain;
}

html.rainbow-november-sale .rn-badge {
    position: absolute;
    top: 0;
    right: 0;
    padding: 5px 9px 5px 15px;
    background: var(--sale-gradient);
    color: var(--sale-ink);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-shadow: var(--sale-shadow);
    clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
}

html.rainbow-november-sale .rn-copy {
    padding-top: 8px;
}

html.rainbow-november-sale .rn-sku {
    margin: 0 0 2px;
    color: #6b7280;
    font-size: 12px;
    line-height: 1.3;
}

html.rainbow-november-sale .rn-name {
    display: -webkit-box;
    margin: 0 0 4px;
    min-height: 2.6em;
    overflow: hidden;
    color: #1a1a1a;
    font-size: 14.5px;
    font-weight: 650;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

html.rainbow-november-sale .rn-name a {
    color: #1a1a1a;
    text-decoration: none;
}

html.rainbow-november-sale .rn-name a:hover {
    text-decoration: underline;
}

html.rainbow-november-sale .rn-spec {
    margin: 0;
    min-height: 1.3em;
    color: #3d4650;
    font-size: 12.5px;
    line-height: 1.35;
}

html.rainbow-november-sale .rn-purchase {
    margin-top: auto;
    padding-top: 14px;
}

html.rainbow-november-sale .rn-price-was {
    margin: 0;
    color: #8b939a;
    font-size: 13px;
    text-decoration: line-through;
}

html.rainbow-november-sale .rn-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px;
    margin: 2px 0 0;
}

html.rainbow-november-sale .rn-price-now {
    color: #222;
    font-size: 23px;
    font-weight: 700;
    line-height: 1.1;
}

html.rainbow-november-sale .rn-vat {
    color: #6b7280;
    font-size: 11px;
    font-weight: 500;
}

html.rainbow-november-sale .rn-save {
    margin: 3px 0 0;
    color: #c40000;
    font-size: 13px;
    font-weight: 650;
}

html.rainbow-november-sale .rn-product .cash-price-display,
html.rainbow-november-sale .rn-product .cash-price-main,
html.rainbow-november-sale .rn-product .cash-price-details,
html.rainbow-november-sale .rn-product .cash-price-details-inline {
    margin-top: 4px;
    text-align: left !important;
    justify-content: flex-start !important;
}

html.rainbow-november-sale .rn-product .cash-price-amount {
    font-size: 13px !important;
}

html.rainbow-november-sale .rn-product .cash-price-description {
    color: #4b5563 !important;
    font-size: 11px !important;
    text-align: left !important;
}

html.rainbow-november-sale .rn-stock {
    min-height: 18px;
    margin: 4px 0 0;
    font-size: 12px;
    font-weight: 700;
}

html.rainbow-november-sale .rn-stock.is-low {
    color: #d00000;
}

html.rainbow-november-sale .rn-stock.is-ok {
    color: #0d6b32;
}

html.rainbow-november-sale .rn-stock.is-out {
    color: #8a9096;
    font-weight: 600;
}

html.rainbow-november-sale .rn-add-to-cart {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 42px;
    margin-top: 8px;
    padding: 8px 12px;
    border: 0;
    border-radius: 4px;
    background-color: var(--sale-main);
    background-image: var(--sale-gradient);
    color: var(--sale-ink);
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    text-shadow: var(--sale-shadow);
    cursor: pointer;
}

html.rainbow-november-sale .rn-add-to-cart svg {
    color: inherit;
    flex: 0 0 auto;
    filter: drop-shadow(0 1px 1px rgb(0 0 0 / 45%));
}

html.rainbow-november-sale .sale-content[data-sale-week="2"] .rn-add-to-cart svg {
    filter: none;
}

html.rainbow-november-sale .rn-add-to-cart:hover:not(:disabled) {
    filter: brightness(1.06);
    color: inherit;
    text-decoration: none;
}

html.rainbow-november-sale .rn-add-to-cart:focus-visible {
    outline: 2px solid #111;
    outline-offset: 2px;
}

html.rainbow-november-sale .rn-add-to-cart:disabled {
    background: #d5d5d5;
    color: #666;
    text-shadow: none;
    cursor: not-allowed;
    filter: none;
}

html.rainbow-november-sale .sale-content .pager {
    margin-top: 20px;
}

html.rainbow-november-sale .promo-links,
html.store-wide-page .promo-links {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0 0;
}

html.rainbow-november-sale .rn-promo-card,
html.store-wide-page .rn-promo-card {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 90px;
    padding: 14px 16px;
    background: #f7f7f7;
    border: 1px solid #cbd0d6;
    border-radius: 6px;
    color: inherit;
    text-decoration: none;
}

html.rainbow-november-sale .rn-promo-card:hover,
html.store-wide-page .rn-promo-card:hover {
    background: #f3f3f3;
    border-color: #b7bec6;
    text-decoration: none;
}

html.rainbow-november-sale .rn-promo-card:focus-visible,
html.store-wide-page .rn-promo-card:focus-visible {
    outline: 2px solid #111;
    outline-offset: 2px;
}

html.rainbow-november-sale .rn-promo-icon,
html.store-wide-page .rn-promo-icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
}

html.rainbow-november-sale .rn-promo-icon svg,
html.store-wide-page .rn-promo-icon svg {
    display: block;
    width: 36px;
    height: 36px;
}

html.rainbow-november-sale .rn-promo-copy,
html.store-wide-page .rn-promo-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    gap: 2px;
}

html.rainbow-november-sale .rn-promo-title,
html.store-wide-page .rn-promo-title {
    color: #080808;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
}

html.rainbow-november-sale .rn-promo-text,
html.store-wide-page .rn-promo-text {
    color: #505c64;
    font-size: 13px;
    line-height: 1.3;
}

html.rainbow-november-sale .rn-promo-action,
html.store-wide-page .rn-promo-action {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
    color: #e00000;
    font-size: 14px;
    font-weight: 700;
}

html.rainbow-november-sale .rn-promo-action svg,
html.store-wide-page .rn-promo-action svg {
    display: block;
}

html.rainbow-november-sale .payment-logos,
html.rainbow-november-sale.store-wide-page .payment-logos {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 20px 0;
    background: #fff;
    box-shadow: none;
    width: calc(100% - (var(--store-gutter) * 2)) !important;
    max-width: var(--store-max-width) !important;
    margin-inline: auto;
}

html.rainbow-november-sale .payment-logos .row {
    width: 100%;
    margin: 0;
}

html.rainbow-november-sale .payment-logos [class*="col-"] {
    padding: 0;
}

html.rainbow-november-sale .payment-logos img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 44px;
    height: auto;
    margin: 0 auto;
}

html.rainbow-november-sale .footer {
    min-height: 0;
    padding-top: 24px;
    background: #222;
}

html.rainbow-november-sale .footer-upper {
    margin: 0;
    padding: 0 0 16px;
}

html.rainbow-november-sale .footer-block {
    margin: 0;
}

html.rainbow-november-sale .footer-block .title {
    margin: 0 0 6px;
    padding: 0;
}

html.rainbow-november-sale .footer-block .title strong {
    color: #fff;
    font-weight: 600;
}

html.rainbow-november-sale .footer-block .list {
    margin: 0;
}

html.rainbow-november-sale .footer-block .list a {
    padding: 2px 0;
    color: #d5d7da;
    font-size: 12px;
    line-height: 1.35;
}

html.rainbow-november-sale .footer-lower {
    margin: 0;
    padding: 12px 0;
    border-top: 1px solid rgb(255 255 255 / 12%);
}

html.rainbow-november-sale .footer-powered-by,
html.rainbow-november-sale .footer-powered-by a,
html.rainbow-november-sale .footer-disclaimer {
    color: #b9bdc2 !important;
}

@media (max-width: 1100px) {
    html.rainbow-november-sale .rn-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    html.rainbow-november-sale .promo-links,
    html.store-wide-page .promo-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    html.rainbow-november-sale .container {
        width: calc(100% - 24px) !important;
    }

    html.store-wide-page .container {
        width: 100% !important;
    }

    html.rainbow-november-sale .rn-toolbar {
        flex-direction: column;
        align-items: stretch;
    }

    html.rainbow-november-sale .rn-category-grid,
    html.rainbow-november-sale .rn-product-grid,
    html.rainbow-november-sale .rn-product-grid.is-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    html.rainbow-november-sale .rn-toolbar-controls,
    html.rainbow-november-sale .rn-selector-groups {
        width: 100%;
        justify-content: flex-start;
    }

    html.rainbow-november-sale .rn-media img {
        height: 150px;
    }

    html.rainbow-november-sale .promo-links,
    html.store-wide-page .promo-links {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    html.rainbow-november-sale .rn-product-grid,
    html.rainbow-november-sale .rn-product-grid.is-list {
        grid-template-columns: minmax(0, 1fr);
    }

    html.rainbow-november-sale .rn-control-group {
        flex-wrap: wrap;
    }
}

html.store-wide-page:not(.rainbow-november-sale) .breadcrumb,
html.store-wide-page:not(.rainbow-november-sale) .breadcrumb.breadcrumb-234,
html.store-wide-page:not(.rainbow-november-sale) .breadcrumb.breadcrumb-17 {
    background: #fff !important;
    margin: 0 0 10px !important;
    padding: 8px 2px !important;
}

html.store-wide-page:not(.rainbow-november-sale) .breadcrumb-item,
html.store-wide-page:not(.rainbow-november-sale) .breadcrumb-item a,
html.store-wide-page:not(.rainbow-november-sale) .breadcrumb-item .current-item {
    color: #5c6770 !important;
    font-size: 13px !important;
    font-weight: 500;
    text-shadow: none !important;
}

html.rainbow-november-sale.html-product-details-page .campaign-header {
    margin-top: 6px;
}

html.rainbow-november-sale.html-product-details-page .sale-breadcrumb {
    display: block;
    margin: 0;
    padding: 0;
}

html.rainbow-november-sale.html-product-details-page .sale-breadcrumb .breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    width: 100%;
    background: linear-gradient(90deg, #ff0000 0%, #ff7900 55%, #ffe000 100%) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 4px 10px !important;
    min-height: 24px;
    line-height: 16px;
}

html.rainbow-november-sale.html-product-details-page .sale-breadcrumb .breadcrumb-item,
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb .breadcrumb-item a,
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb .breadcrumb-item .current-item,
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb li.breadcrumb-item,
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb li.breadcrumb-item a {
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 600;
    line-height: 16px;
    text-shadow: 0 1px 2px rgb(0 0 0 / 55%);
}

html.rainbow-november-sale.html-product-details-page .sale-breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: rgb(255 255 255 / 85%) !important;
}

html.rainbow-november-sale.html-product-details-page .campaign-header .sale-banner {
    margin: 0;
    padding: 0;
}

html.store-wide-page .product-detail-page {
    --sale-main: #111111;
    --sale-transition: #333333;
    --sale-corner: #555555;
    --sale-ink: #fff;
    --sale-shadow: none;
    --sale-gradient: #111;
}

html.rainbow-november-sale .product-detail-page,
html.store-wide-page .product-detail-page[data-sale-week]:not([data-sale-week="0"]) {
    --sale-main: #ff0000;
    --sale-transition: #ff7900;
    --sale-corner: #ffe000;
    --sale-ink: #fff;
    --sale-shadow: 0 1px 2px rgb(0 0 0 / 65%);
    --sale-gradient: linear-gradient(
        135deg,
        var(--sale-main) 0%,
        var(--sale-main) 80%,
        var(--sale-transition) 92%,
        var(--sale-corner) 100%
    );
}

html.rainbow-november-sale .product-detail-page[data-sale-week="2"],
html.store-wide-page .product-detail-page[data-sale-week="2"] {
    --sale-main: #ffe000;
    --sale-transition: #7ac143;
    --sale-corner: #128a32;
    --sale-ink: #1a1a1a;
    --sale-shadow: none;
}

html.rainbow-november-sale .product-detail-page[data-sale-week="3"],
html.store-wide-page .product-detail-page[data-sale-week="3"] {
    --sale-main: #0b8f3c;
    --sale-transition: #14b4c4;
    --sale-corner: #5ce7f2;
}

html.rainbow-november-sale .product-detail-page[data-sale-week="4"],
html.store-wide-page .product-detail-page[data-sale-week="4"] {
    --sale-main: #00048b;
    --sale-transition: #0088c2;
    --sale-corner: #3ad4ea;
}

html.store-wide-page .rn-pdp-add {
    background-color: #e00000 !important;
    background-image: none;
}

html.rainbow-november-sale .rn-pdp-add,
html.store-wide-page .product-detail-page[data-sale-week]:not([data-sale-week="0"]) .rn-pdp-add {
    background-color: var(--sale-main) !important;
    background-image: var(--sale-gradient) !important;
    color: var(--sale-ink) !important;
    text-shadow: var(--sale-shadow);
}

html.store-wide-page .rn-back,
html.store-wide-page .back-to-category {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-block: 12px;
    color: #c40000;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

html.store-wide-page .rn-back:hover {
    text-decoration: underline;
    color: #c40000;
}

html.store-wide-page .product-overview,
html.store-wide-page .rn-pdp-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

html.store-wide-page .product-gallery,
html.store-wide-page .product-summary,
html.store-wide-page .rn-pdp-gallery,
html.store-wide-page .rn-pdp-summary {
    min-width: 0;
}

html.store-wide-page .product-gallery,
html.store-wide-page .rn-gallery,
html.store-wide-page .gallery.rn-gallery {
    position: relative;
    background: #fff;
    border: 1px solid #dfe2e7;
    border-radius: 5px;
    padding: 12px;
    margin: 0;
}

html.store-wide-page .product-image-stage,
html.store-wide-page .rn-gallery-stage {
    position: relative;
    height: 300px;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 12px 8px;
    overflow: hidden;
}

html.store-wide-page .gallery-controls,
html.store-wide-page .rn-gallery-controls {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
}

html.store-wide-page .gallery .picture:before {
    display: none !important;
    padding-top: 0 !important;
}

html.store-wide-page .rn-gallery-main {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

html.store-wide-page .product-image-stage img,
html.store-wide-page .rn-gallery-stage img,
html.store-wide-page .gallery .picture img {
    position: static !important;
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: contain;
    margin: 0 auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
}

html.store-wide-page .item-box .picture a:before,
html.store-wide-page .rn-gallery .picture a:before {
    display: none !important;
}

html.store-wide-page .product-discount-badge,
html.store-wide-page .rn-pdp-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    padding: 7px 12px 7px 20px;
    background: var(--sale-gradient);
    color: var(--sale-ink);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    text-shadow: var(--sale-shadow);
    clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
}

html.store-wide-page .rn-gallery-zoom {
    position: static;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border: 1px solid #d8d8d8;
    border-radius: 50%;
    background: #fff;
    color: #333;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

html.store-wide-page .rn-gallery-zoom:focus-visible {
    outline: 2px solid #111;
    outline-offset: 2px;
}

html.store-wide-page .rn-gallery-thumbs {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    margin: 0;
    min-width: 0;
    overflow-x: auto;
}

html.store-wide-page .product-thumbnail,
html.store-wide-page .rn-gallery-thumb {
    flex: 0 0 68px;
    width: 68px;
    height: 68px;
    padding: 4px;
    border: 1px solid #dcdcdc;
    border-radius: 3px;
    background: #fff;
    cursor: pointer;
}

html.store-wide-page .rn-gallery-thumb.is-selected,
html.store-wide-page .product-thumbnail.is-selected {
    border-color: #ff0000;
}

html.store-wide-page .rn-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

html.store-wide-page .rn-pdp-summary .manufacturers img {
    width: auto !important;
    max-height: 28px;
    margin-bottom: 10px;
}

html.store-wide-page .rn-pdp-identity h1 {
    margin: 0 0 8px;
    color: #1a1a1a;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.15;
}

html.store-wide-page .rn-pdp-spec {
    margin: 0 0 6px;
    color: #3d4650;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.3;
}

html.store-wide-page .rn-pdp-sku,
html.store-wide-page .rn-pdp-summary .additional-details .sku {
    margin: 0 0 10px;
    color: #6b7280;
    font-size: 13px;
}

html.store-wide-page .rn-pdp-summary .sr-gem-badge,
html.store-wide-page .rn-pdp-summary .snappy-grid-badge,
html.store-wide-page .rn-pdp-summary .snappy-grid-badge-inline {
    position: static !important;
    transform: none !important;
    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    min-height: 28px;
    margin: 12px 0 0 !important;
    padding: 0;
    background-position: left center;
    z-index: 1;
}

html.store-wide-page .rn-pdp-summary .overview {
    position: relative;
}

html.store-wide-page .rn-pdp-summary .additional-details .sku {
    display: none;
}

html.store-wide-page .rn-pdp-summary .product-reviews,
html.store-wide-page .rn-pdp-summary .share {
    margin-bottom: 12px;
}

html.store-wide-page .rn-pdp-price {
    margin: 20px 0 0;
}

html.store-wide-page .rn-pdp-was {
    margin: 0 0 4px;
    color: #8b939a;
    font-size: 14px;
}

html.store-wide-page .rn-pdp-was span {
    text-decoration: line-through;
}

html.store-wide-page .rn-pdp-now-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
}

html.store-wide-page .rn-pdp-now {
    color: #222;
    font-size: 38px;
    font-weight: 700;
    line-height: 1.05;
}

html.store-wide-page .rn-pdp-vat,
html.store-wide-page .product-tax-label {
    color: #626975;
    font-size: 13px;
}

html.store-wide-page .rn-pdp-save {
    margin: 6px 0 0;
    color: #c40000;
    font-size: 16px;
    font-weight: 650;
}

html.store-wide-page .rn-pdp-offer {
    margin: 2px 0 0;
    color: #6b7280;
    font-size: 13px;
}

html.store-wide-page .rn-pdp-stock {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 14px 0 12px;
    font-size: 16px;
    font-weight: 700;
}

html.store-wide-page .rn-pdp-stock.is-low {
    color: #d00000;
}

html.store-wide-page .rn-pdp-stock.is-ok {
    color: #0d6b32;
}

html.store-wide-page .rn-pdp-stock.is-out {
    color: #8a9096;
}

html.store-wide-page .purchase-controls,
html.store-wide-page .rn-purchase-controls {
    display: flex;
    align-items: stretch;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 12px;
}

html.store-wide-page .rn-purchase-controls .qty-label {
    display: none;
}

html.store-wide-page .quantity-control,
html.store-wide-page .rn-qty {
    display: inline-flex;
    flex: 0 0 144px;
    align-items: stretch;
    height: 46px;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
}

html.store-wide-page .rn-qty-btn {
    width: 40px;
    border: 0;
    background: #f4f4f4;
    color: #222;
    cursor: pointer;
}

html.store-wide-page .rn-qty-btn:disabled {
    color: #bbb;
    cursor: not-allowed;
}

html.store-wide-page .rn-qty .qty-input {
    width: 52px;
    height: 46px !important;
    border: 0 !important;
    text-align: center;
    font-size: 16px !important;
    color: #111 !important;
}

html.store-wide-page .rn-pdp-add {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex: 1;
    min-height: 46px;
    padding: 0 18px;
    border: 0 !important;
    border-radius: 4px;
    background-color: #e00000 !important;
    background-image: none !important;
    color: #fff !important;
    font-size: 16px;
    font-weight: 700;
    text-shadow: none;
}

html.rainbow-november-sale .rn-pdp-add,
html.store-wide-page .product-detail-page[data-sale-week]:not([data-sale-week="0"]) .rn-pdp-add {
    background-color: var(--sale-main) !important;
    background-image: var(--sale-gradient) !important;
    color: var(--sale-ink) !important;
    text-shadow: var(--sale-shadow);
}

html.store-wide-page .rn-pdp-add svg {
    color: inherit;
}

html.rainbow-november-sale .rn-pdp-add svg,
html.store-wide-page .product-detail-page[data-sale-week]:not([data-sale-week="0"]) .rn-pdp-add svg {
    filter: drop-shadow(0 1px 1px rgb(0 0 0 / 45%));
}

html.store-wide-page .rn-pdp-summary .product-reviews,
html.store-wide-page .rn-pdp-summary .product-reviews-overview {
    display: none !important;
}

html.store-wide-page .rn-pdp-add:hover:not(:disabled) {
    filter: brightness(1.06);
}

html.store-wide-page .rn-pdp-add:focus-visible,
html.store-wide-page .rn-qty-btn:focus-visible,
html.store-wide-page .rn-pdp-link:focus-visible {
    outline: 2px solid #111;
    outline-offset: 2px;
}

html.store-wide-page .rn-pdp-add.is-busy,
html.store-wide-page .rn-pdp-add:disabled {
    opacity: 0.7;
    cursor: wait;
}

html.store-wide-page .rn-pdp-summary .snappy-rewards-display {
    margin: 2px 0 16px;
}

html.store-wide-page .rn-pdp-cash:not(:has(.cash-price-display)) {
    display: none;
}

html.store-wide-page .rn-pdp-cash {
    margin-top: 14px;
    padding: 12px 14px;
    background: #f7f7f7;
    border: 1px solid #d8d8d8;
    border-radius: 6px;
}

html.store-wide-page .rn-pdp-cash .cash-price-display,
html.store-wide-page .rn-pdp-cash .cash-price-main,
html.store-wide-page .rn-pdp-cash .cash-price-details {
    text-align: left !important;
}

html.store-wide-page .rn-pdp-cash .cash-price-amount {
    color: #0d6b32 !important;
    font-size: 16px !important;
}

html.store-wide-page .product-actions,
html.store-wide-page .rn-pdp-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 16px;
}

html.store-wide-page .rn-pdp-actions .button-2.product-action,
html.store-wide-page .rn-pdp-actions .product-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: auto;
    padding: 0;
    border: 0;
    background: none !important;
    background-image: none !important;
    color: #424852;
    font-size: 14px;
    font-weight: 500;
    text-align: left;
}

html.store-wide-page .rn-pdp-actions .product-action:hover {
    background: none !important;
    color: #424852;
}

html.store-wide-page .rn-pdp-actions .product-action svg {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
}

html.store-wide-page .compare-products + .email-a-friend {
    border-left: 1px solid #d8d8d8;
    padding-left: 20px;
}

html.store-wide-page .rn-pdp-actions .add-to-wishlist {
    display: none;
}

html.store-wide-page .rn-pdp-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
    border: 0;
    background: transparent;
    color: #505c64;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}


html.store-wide-page .rn-pdp-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 20px;
}

html.rainbow-november-sale.html-product-details-page .product-details-page > .promo-links,
html.rainbow-november-sale.html-product-details-page .page-body > .promo-links {
    margin-top: 20px;
}

html.store-wide-page .rn-pdp-panel {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 6px;
    padding: 0 16px 12px;
}

html.store-wide-page .rn-pdp-panel h2 {
    margin: 0;
    padding: 12px 0;
    border-bottom: 1px solid #ececec;
    color: #1a1a1a;
    font-size: 16px;
    font-weight: 700;
}

html.store-wide-page .rn-pdp-features {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
}

html.store-wide-page .rn-pdp-features li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0 0 11px;
    color: #2b3136;
    font-size: 14px;
    line-height: 1.4;
}

html.store-wide-page .rn-pdp-features svg {
    flex: 0 0 16px;
    margin-top: 2px;
}

html.store-wide-page .rn-pdp-panel .product-specs-box {
    margin: 0;
    border: 0;
    box-shadow: none;
}

html.store-wide-page .rn-pdp-panel .product-specs-box .title {
    display: none;
}

html.store-wide-page .rn-pdp-panel .data-table {
    width: 100%;
}

html.store-wide-page .rn-pdp-panel .data-table .hidden-row {
    display: none;
}

html.store-wide-page .rn-pdp-panel .data-table td {
    padding: 9px 0;
    border-top: 1px solid #eee;
    font-size: 13.5px;
    color: #2b3136;
    vertical-align: top;
}

html.store-wide-page .rn-pdp-panel .data-table tr:first-child td {
    border-top: 0;
}

html.store-wide-page .rn-pdp-panel .spec-name {
    width: 55%;
    padding-right: 12px;
}

html.store-wide-page .rn-pdp-panel .spec-value {
    width: 45%;
}

html.store-wide-page .product-collateral {
    margin-top: 12px;
}

html.html-product-details-page:not(.rainbow-november-sale) .discounted-price > div {
    display: none;
}

@media (max-width: 900px) {
    html.store-wide-page .rn-pdp-overview,
    html.store-wide-page .rn-pdp-info {
        grid-template-columns: minmax(0, 1fr);
    }

    html.store-wide-page .rn-pdp-add {
        flex: 1 1 100%;
    }

    html.store-wide-page .product-image-stage,
    html.store-wide-page .rn-gallery-stage {
        height: 280px;
    }

    html.store-wide-page .rn-pdp-identity h1 {
        font-size: 24px;
    }

    html.store-wide-page .rn-pdp-now {
        font-size: 30px;
    }
}


/* ------------------------------------------------------------------
 * PDP tightening pass (31 Oct 2026) - Rainbow Nation sale PDP only.
 * Fixes: 24px breadcrumb strip, 20px gap above promo links,
 * compact thumbnail/zoom row, single clean action icons.
 * ------------------------------------------------------------------ */
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb .breadcrumb {
    min-height: 24px;
    height: auto !important;
}

html.rainbow-november-sale.html-product-details-page .sale-breadcrumb li,
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb li a,
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb li span,
html.rainbow-november-sale.html-product-details-page .sale-breadcrumb li strong {
    height: auto !important;
    min-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 16px !important;
}

/* Empty collateral wrapper carried a 75px legacy bottom margin */
html.rainbow-november-sale.html-product-details-page .product-collateral {
    margin: 0 !important;
}

html.rainbow-november-sale.html-product-details-page .product-collateral:not(:has(*)) {
    display: none;
}

html.rainbow-november-sale.html-product-details-page .page-body > .promo-links {
    margin-top: 20px !important;
}

/* Compact gallery controls: thumbnail bottom-left, zoom bottom-right */
html.rainbow-november-sale.html-product-details-page .rn-gallery-controls {
    align-items: flex-end;
    margin-top: 8px;
}

html.rainbow-november-sale.html-product-details-page .rn-gallery-thumbs {
    display: flex;
    gap: 8px;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: auto;
    overflow-y: hidden;
}

html.rainbow-november-sale.html-product-details-page .rn-gallery-thumb {
    flex: 0 0 68px;
    width: 68px;
    height: 68px;
    margin: 0 !important;
    background: #fff;
}

/* One icon per secondary action */
html.rainbow-november-sale.html-product-details-page .rn-pdp-actions .product-action::before,
html.rainbow-november-sale.html-product-details-page .rn-pdp-actions .product-action::after {
    content: none !important;
    display: none !important;
}

html.rainbow-november-sale.html-product-details-page .rn-pdp-actions .product-action {
    background-image: none !important;
    text-indent: 0 !important;
}

/* Back link stays on the gallery's left edge at every width */
html.rainbow-november-sale.html-product-details-page .product-detail-page > .back-to-category {
    display: flex;
    width: fit-content;
    margin-left: 0 !important;
    margin-right: auto !important;
    text-align: left;
}
