.campaign-storefront, .campaign-storefront .site-wrapper { background: var(--campaign-primary, #000); }
.campaign-storefront #scrollUp { transform: none; -webkit-transform: none; }
.campaign-page { --campaign-gold: #ffd15b; min-height: 100vh; background: var(--campaign-primary, #000); color: #fff; padding-bottom: 24px; }
.campaign-page, .campaign-page button, .campaign-page input, .campaign-page select { font-family: inherit; }
.campaign-page *, .campaign-page *::before, .campaign-page *::after { border-radius: 0 !important; }
.campaign-topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; padding: 14px 28px; background: #fff; color: #111; border-bottom: 1px solid #e5e5e5; }
.campaign-brand { color: #111; display: inline-flex; align-items: center; font-size: 22px; font-weight: 700; }
.campaign-brand img { width: 190px; height: 54px; object-fit: contain; }
.campaign-topbar__links { display: flex; align-items: center; gap: 22px; font-size: 14px; font-weight: 600; }
.campaign-topbar__links > a + a { border-left: 1px solid #ddd; padding-left: 22px; }
.campaign-topbar__links a { color: #111; }
.campaign-topbar__links a:hover { color: #cf1724; }
.campaign-cart { display: inline-flex; gap: 8px; align-items: center; }
.campaign-cart > span { background: #cf1724; color: #fff; padding: 0 6px; }
.campaign-banner { display: block; background: var(--campaign-primary, #000); }
.campaign-banner img { display: block; width: 100%; height: clamp(160px, 26vh, 240px); max-width: none; object-fit: contain; object-position: center; margin: 0 auto; }
.campaign-shell { max-width: 1600px; margin: 0 auto; padding: 0 20px; }
.campaign-breadcrumb { padding: 12px 0; font-size: 12px; }
.campaign-breadcrumb a { color: #ddd; }
.campaign-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 32px; align-items: start; }
.campaign-sidebar { position: static; margin-top: 28px; background: var(--campaign-primary, #000); }
.campaign-menu summary { display: flex; align-items: center; justify-content: space-between; padding: 10px 0 16px; font-size: 16px; font-weight: 600; list-style: none; cursor: pointer; }
.campaign-menu summary::-webkit-details-marker { display: none; }
.campaign-menu summary span { display: none; }
.campaign-menu nav a { display: block; color: #eee; font-size: 14px; padding: 13px 0; line-height: 1.45; }
.campaign-menu nav a:hover, .campaign-menu nav a[aria-current] { color: #22b455; }
.campaign-menu__group { border-bottom: 1px solid #444; }
.campaign-menu__row { display: flex; align-items: center; gap: 8px; }
.campaign-menu__row > a { flex: 1; min-width: 0; font-weight: 600; }
.campaign-menu__group.is-active > .campaign-menu__row { color: #22b455; }
.campaign-menu__group.is-active > .campaign-menu__row > a { color: inherit; }
.campaign-menu__toggle { display: inline-flex; flex: 0 0 36px; align-items: center; justify-content: center; min-height: 44px; color: inherit; padding: 8px; }
.campaign-menu__toggle svg { transition: transform .15s ease; }
.campaign-menu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.campaign-menu__toggle:hover { color: #22b455; }
.campaign-menu__all { border-bottom: 1px solid #777; }
.campaign-menu__children { padding: 0 0 6px 16px; }
.campaign-menu__children[hidden] { display: none !important; }
.campaign-menu__children a { border-top: 1px solid #333; }
.campaign-results { min-width: 0; padding-top: 12px; }
.campaign-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 16px; }
.campaign-heading h1 { color: #fff; font-size: 34px; line-height: 1.25; font-weight: 600; letter-spacing: 0; margin: 0 0 12px; }
.campaign-heading p { color: #c4c4c4; font-size: 14px; margin: 0; }
.campaign-button { display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; background: var(--campaign-gold); color: #111; font-size: 14px; font-weight: 600; border: 1px solid var(--campaign-gold); }
.campaign-button:hover { color: #111; background: #ffe09a; }
.campaign-section { margin-bottom: 40px; scroll-margin-top: 20px; }
.campaign-section__heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 0 20px; }
.campaign-section__heading h2 { color: #fff; font-size: 26px; font-weight: 600; letter-spacing: 0; line-height: 1.3; margin: 0; }
.campaign-section__more { color: #fff; font-size: 14px; font-weight: 600; flex-shrink: 0; }
.campaign-section__more:hover { color: var(--campaign-gold); }
.campaign-section__more span[aria-hidden] { margin-left: 5px; }
.campaign-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.campaign-product-grid__item { min-width: 0; display: flex; }
.campaign-page .product-card--listing { width: 100%; height: 100%; margin: 0; background: #fff; color: #222; display: flex; flex-direction: column; box-shadow: none; border: 1px solid #d8d8d8; }
.campaign-page .product-grid-content, .campaign-page .product-card--body { display: flex; flex: 1; flex-direction: column; }
.campaign-page .product-card__title-heading { font-family: inherit; font-size: 14px; min-height: 0; }
.campaign-page .product-card .card-image img { aspect-ratio: 1; object-fit: contain; }
.campaign-page .product-card a, .campaign-page .product-card .product-title { color: #222; }
.campaign-page .product-card .product-card-wishlist { color: #111; }
.campaign-page .product-card .btn-altex { background: #cf1724; border-color: #cf1724; color: #fff; }
.campaign-page .product-card .product-video-card-badge { color: #fff; }
.campaign-page .product-card .product-badge--campaign { display: none; }
.campaign-page .product-card[data-stock-out="true"] .card-image::after { content: 'EPUIZAT'; position: absolute; top: 64%; left: 50%; transform: translate(-50%, -50%) rotate(-12deg); z-index: 5; padding: 8px 14px; border: 3px solid #b21f2d; background: rgba(255, 255, 255, .94); color: #b21f2d; font-size: clamp(18px, 2vw, 30px); font-weight: 800; line-height: 1; letter-spacing: 2px; white-space: nowrap; pointer-events: none; }
.campaign-page .product-card .price-discount { position: absolute; top: 10px; left: 10px; z-index: 4; display: flex; align-items: center; justify-content: center; min-width: 54px; min-height: 30px; padding: 5px 7px; background: #cf1724; color: #fff; font-size: 20px; font-weight: 700; line-height: 1; letter-spacing: -.4px; box-shadow: 1px 1px 0 rgba(0, 0, 0, .12); pointer-events: none; }
.campaign-page .shop-product-wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 12px; margin-left: 0; margin-right: 0; }
.campaign-page .shop-product-wrap > div { width: auto; max-width: none; min-width: 0; margin-bottom: 0; padding-left: 0; padding-right: 0; }
.campaign-page .catalog-results-meta { margin-bottom: 20px; }
.campaign-page .catalog-results-meta, .campaign-page .catalog-desktop-toolbar { background: #252525; color: #fff; border-color: #444; }
.campaign-page .shop-toolbar, .campaign-page .catalog-toolbar { background: var(--campaign-primary, #000); color: #fff; border-color: #333; box-shadow: none; }
.campaign-page .catalog-toolbar__hint { color: #ccc; }
.campaign-page .catalog-toolbar__select, .campaign-page .catalog-toolbar .nice-select, .campaign-page .catalog-mobile-toolbar__button { background: #303030; color: #fff; border-color: #555; box-shadow: none; }
.campaign-page .catalog-toolbar .nice-select .list { background: #303030; color: #fff; }
.campaign-page .catalog-toolbar .nice-select .option:hover, .campaign-page .catalog-toolbar .nice-select .option.focus { background: #484848; }
.campaign-page .catalog-toolbar__select:after, .campaign-page .catalog-toolbar .nice-select:after { border-color: #ddd; }
.campaign-page .catalog-mobile-toolbar__eyebrow, .campaign-page .catalog-mobile-toolbar__label { color: #eee; }
.campaign-page .catalog-empty-state { background: #222; color: #fff; }
.campaign-empty { padding: 32px 24px; background: #222; }
.campaign-empty h3 { color: #fff; font-size: 22px; }
.campaign-empty a { color: var(--campaign-gold); text-decoration: underline; }
.campaign-details { margin-top: 24px; padding: 20px 0; border-top: 1px solid #444; }
.campaign-details summary { cursor: pointer; font-weight: 600; }
.campaign-details > div { max-width: 80ch; padding-top: 20px; color: #ccc; line-height: 1.7; }
.campaign-details img { max-width: 100%; height: auto; }
.campaign-footer { display: flex; gap: 24px; justify-content: center; padding: 28px 0; border-top: 1px solid #444; font-size: 13px; }
.campaign-footer a { color: #ddd; }
.campaign-load-more { padding: 28px 0 40px; text-align: center; color: #ccc; }
.campaign-load-more p { margin-bottom: 16px; }
.campaign-load-more [aria-disabled="true"] { opacity: .6; cursor: wait; }
.campaign-feed-ready .listing-pagination { display: none !important; }
.campaign-page a:focus-visible, .campaign-page button:focus-visible, .campaign-page summary:focus-visible { outline: 3px solid #d59f26 !important; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .campaign-menu__toggle svg { transition: none; } }
@media (min-width: 768px) { .campaign-menu > nav { display: block !important; } }
@media (min-width: 1440px) { .campaign-product-grid, .campaign-page .shop-product-wrap { grid-template-columns: repeat(5, minmax(0,1fr)); } }
@media (min-width: 1200px) {
    .campaign-page :is(.campaign-product-grid__item--featured, .shop-product-wrap > :nth-child(13n + 2)) { grid-column: span 2; }
    .campaign-page :is(.campaign-product-grid__item--featured, .shop-product-wrap > :nth-child(13n + 2)) .product-card--listing { border: 3px solid var(--campaign-gold); }
    .campaign-page :is(.campaign-product-grid__item--featured, .shop-product-wrap > :nth-child(13n + 2)) .product-card--body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); grid-template-rows: auto auto auto auto; column-gap: 18px; align-content: center; }
    .campaign-page :is(.campaign-product-grid__item--featured, .shop-product-wrap > :nth-child(13n + 2)) .card-image { grid-column: 1; grid-row: 1 / 5; align-self: center; width: 100%; }
    .campaign-page :is(.campaign-product-grid__item--featured, .shop-product-wrap > :nth-child(13n + 2)) :is(.product-headerz, .product-meta-row, .product-price-box, .product-cta) { grid-column: 2; }
    .campaign-page :is(.campaign-product-grid__item--featured, .shop-product-wrap > :nth-child(13n + 2)) .product-headerz { align-self: end; }
    .campaign-page :is(.campaign-product-grid__item--featured, .shop-product-wrap > :nth-child(13n + 2)) .product-cta { margin-top: 14px !important; }
}
@media (min-width: 768px) and (max-width: 1199px) { .campaign-layout { grid-template-columns: 200px minmax(0,1fr); gap: 24px; } .campaign-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (min-width: 768px) and (max-width: 1199px) { .campaign-page .shop-product-wrap { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 767px) {
    .campaign-layout { display: block; }
    .campaign-sidebar { position: static; max-height: none; margin-top: 0; margin-bottom: 20px; overflow: visible; }
    .campaign-menu { border: 1px solid #555; padding: 0 16px; }
    .campaign-menu summary { padding: 14px 0; }
    .campaign-menu summary span { display: inline; }
    .campaign-menu nav { max-height: none; overflow: visible; }
    .campaign-results { padding-top: 0; }
    .campaign-product-grid, .campaign-page .shop-product-wrap { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .campaign-heading h1 { font-size: 28px; }
    .campaign-banner img { height: min(180px, 24vh); object-fit: contain; }
}
@media (max-width: 575px) {
    .campaign-page .product-card .price-discount { top: 8px; left: 8px; min-width: 46px; min-height: 26px; padding: 4px 6px; font-size: 17px; }
    .campaign-topbar { min-height: 70px; padding: 12px 14px; gap: 12px; }
    .campaign-brand img { width: 133px; height: 40px; }
    .campaign-topbar__links { font-size: 11px; gap: 10px; }
    .campaign-topbar__links > a + a { padding-left: 10px; }
    .campaign-cart { gap: 5px; }
    .campaign-cart svg { width: 18px; }
    .campaign-shell { padding: 0 12px; }
    .campaign-breadcrumb { font-size: 11px; padding: 16px 0; }
    .campaign-heading { gap: 14px; padding-bottom: 20px; }
    .campaign-heading h1 { font-size: 26px; }
    .campaign-heading p { font-size: 12px; }
    .campaign-button { padding: 9px 12px; font-size: 12px; }
    .campaign-section__heading { gap: 10px; padding-bottom: 14px; }
    .campaign-section__heading h2 { font-size: 22px; }
    .campaign-section__more { font-size: 12px; }
    .campaign-product-grid, .campaign-page .shop-product-wrap { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
}

/* A lone offer is a full-width feature, rather than an unfinished product row. */
.campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child { grid-column: 1 / -1; }
@media (min-width: 576px) {
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-card--body { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr); grid-template-rows: auto auto auto auto; gap: 10px 28px; align-content: center; padding: 48px 28px 28px; min-height: 300px; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .card-image { grid-column: 1; grid-row: 1 / 5; align-self: center; height: 220px; margin: 0; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .card-image img { max-height: 220px; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child :is(.product-headerz, .product-meta-row, .product-price-box, .product-cta) { grid-column: 2; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child :is(.product-card__title-heading, .product-title) { min-height: 0; font-size: 20px; line-height: 1.4; margin: 0; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-meta-row { justify-content: flex-start; flex-wrap: wrap; gap: 12px; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .price-main { font-size: 30px; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-cta { margin-top: 6px !important; }
}
@media (min-width: 1200px) {
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-card--body { grid-template-columns: minmax(200px, .85fr) minmax(0, 1.2fr) minmax(180px, .7fr); grid-template-rows: 1fr 1fr; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .card-image { grid-row: 1 / 3; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-headerz { grid-row: 1; align-self: end; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-meta-row { grid-row: 2; align-self: start; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-price-box { grid-column: 3; grid-row: 1; align-self: end; }
    .campaign-page :is(.campaign-product-grid, .shop-product-wrap) > :only-child .product-cta { grid-column: 3; grid-row: 2; align-self: start; }
}

/* Fit category previews into complete rows; vary only selected six-offer sections. */
@media (min-width: 1200px) {
    .campaign-preview-grid[data-preview-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .campaign-preview-grid[data-preview-count="3"], .campaign-preview-grid[data-preview-count="6"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .campaign-preview-grid[data-preview-count="4"], .campaign-preview-grid--mixed[data-preview-count="6"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .campaign-preview-grid[data-preview-count="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .campaign-preview-grid > :not(.campaign-product-grid__item--featured) .card-image { height: auto; max-height: 240px; aspect-ratio: 1; }
}
@media (min-width: 1440px) {
    .campaign-preview-grid[data-preview-count="6"]:not(.campaign-preview-grid--mixed) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

.campaign-sort { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0 0 24px; }
.campaign-sort label { margin: 0; font-weight: 600; }
.campaign-sort select { min-height: 44px; max-width: 100%; padding: 8px 32px 8px 12px; border: 1px solid #777; background: #252525; color: #fff; font: inherit; }

/* Theme chosen on the campaign, shared by landing, categories and appended offers. */
.campaign-page, .campaign-heading h1, .campaign-section__heading h2,
.campaign-menu nav a, .campaign-breadcrumb a, .campaign-section__more,
.campaign-heading p, .campaign-details > div, .campaign-footer a, .campaign-load-more { color: var(--campaign-on-primary, #fff); }
/* Campaign actions follow the storefront brand; discounts keep their red signal. */
.campaign-button, .campaign-page .product-card .btn-altex {
    background: var(--site-brand-primary, #367b9c); border-color: var(--site-brand-primary, #367b9c); color: var(--site-brand-contrast, #fff);
}
.campaign-button:hover, .campaign-page .product-card .btn-altex:hover {
    background: var(--site-brand-strong, #1f5f7a); border-color: var(--site-brand-strong, #1f5f7a); color: var(--site-brand-contrast, #fff);
}

/* Wide campaign artwork fills the page without the cap used for tall photos. */
.campaign-banner--panoramic img { height: auto; }
