/* Home only: the store shell and every other route retain their styles. */
.home-storefront {
    --home-red: #e11919;
    --home-red-hover: #f02626;
    --home-text: #f5f5f5;
    --home-muted: #a5a5a5;
    --home-line: #292929;
    container: home-storefront / inline-size;
    color: var(--home-text);
    min-width: 0;
}
.home-storefront a:focus-visible,
.home-storefront button:focus-visible { outline: 2px solid var(--home-red); outline-offset: 4px; }

/* Existing carousel dimensions, controls and transitions. */
.home-storefront .home-image-carousel {
    position: relative;
    overflow: hidden;
    width: 100%;
    margin-bottom: 22px;

    border: 1px solid #27272d;
    border-radius: 16px;

    background: #09090b;

    box-shadow:
        0 18px 45px rgba(0,0,0,.22);

    touch-action: pan-y;
}

.home-storefront .home-image-carousel__viewport {
    position: relative;
    width: 100%;

    aspect-ratio: 1920 / 560;

    min-height: 230px;
    max-height: 390px;
}

.home-storefront .home-image-carousel__slide {
    position: absolute;
    inset: 0;

    display: block;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity .38s ease,
        visibility .38s ease;

    z-index: 1;
}

.home-storefront .home-image-carousel__slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    z-index: 2;
}

.home-storefront .home-image-carousel__slide img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
    object-position: center;
}

.home-storefront .home-image-carousel__arrow {
    position: absolute;
    z-index: 5;
    top: 50%;

    width: 40px;
    height: 40px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255,255,255,.14);
    border-radius: 10px;

    background: rgba(8,8,10,.78);
    color: #fff;

    cursor: pointer;

    transform: translateY(-50%);

    backdrop-filter: blur(10px);
}

.home-storefront .home-image-carousel__arrow:hover {
    border-color: rgba(225,25,25,.45);
    background: rgba(225,25,25,.16);
}

.home-storefront .home-image-carousel__arrow svg {
    width: 17px;
    height: 17px;
}

.home-storefront .home-image-carousel__arrow--prev {
    left: 14px;
}

.home-storefront .home-image-carousel__arrow--next {
    right: 14px;
}

.home-storefront .home-image-carousel__dots {
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: 12px;

    display: flex;
    align-items: center;
    gap: 6px;

    transform: translateX(-50%);
}

.home-storefront .home-image-carousel__dot {
    width: 8px;
    height: 8px;

    padding: 0;

    border: 0;
    border-radius: 999px;

    background: rgba(255,255,255,.38);

    cursor: pointer;

    transition: .18s ease;
}

.home-storefront .home-image-carousel__dot.is-active {
    width: 24px;
    background: #e11919;
}

@media (max-width: 700px) {

    .home-storefront .home-image-carousel__viewport {
        aspect-ratio: 16 / 6;
        min-height: 160px;
    }

    .home-storefront .home-image-carousel__arrow {
        width: 34px;
        height: 34px;
    }

}

@media (prefers-reduced-motion: reduce) {

    .home-storefront .home-image-carousel__slide {
        transition: none;
    }

}

/* Small utility strip keeps the catalog as the main focus. */
.home-storefront .home-shortcuts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0 0 22px; border:1px solid var(--home-line); border-radius:10px; background:#101010; overflow:hidden; }
.home-storefront .shortcut-card { min-height:66px; gap:12px; padding:13px 20px; border:0; border-right:1px solid var(--home-line); border-radius:0; background:transparent; transition:background .18s; min-width:0; }
.home-storefront .shortcut-card:last-child { border-right:0; }
.home-storefront .shortcut-card:hover { background:#181818; }
.home-storefront .shortcut-icon { width:33px; height:33px; flex:0 0 33px; border-radius:8px; color:var(--home-red); background:#211010; }
.home-storefront .shortcut-icon svg { width:18px; height:18px; }
.home-storefront .shortcut-card strong { font-size:12px; line-height:1.4; font-weight:700; }
.home-storefront .shortcut-card span { display:block; margin-top:3px; color:#9b9b9b; font-size:10px; line-height:1.4; }
.home-storefront .shortcut-arrow { color:#707070; width:15px; height:15px; flex-shrink:0; }

/* Configured offers retain their content, prices and destinations. */
.home-storefront .different-home-section { margin:0; }
.home-storefront .different-home-section + .different-home-section { margin-top:10px; }
.home-storefront .different-home-list { display:flex; flex-direction:column; gap:10px; }
.home-storefront .different-home-card { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 187px; gap:20px; min-height:146px; padding:0; border:1px solid var(--home-line); border-radius:12px; overflow:hidden; background:linear-gradient(110deg,#151515,#111 70%); color:var(--home-text); text-decoration:none; transition:border-color .18s,background .18s; }
.home-storefront .different-home-card:hover { border-color:#6b2828; background:#161313; }
.home-storefront .different-home-card__left { display:grid; grid-template-columns:160px minmax(0,1fr); gap:0; align-items:center; min-width:0; }
.home-storefront .different-home-card__image,
.home-storefront .different-home-card__icon { position:relative; width:160px; min-height:144px; height:100%; align-self:stretch; overflow:hidden; border:0; border-right:1px solid var(--home-line); border-radius:0; background:#090909; }
.home-storefront .different-home-card__image { background:radial-gradient(ellipse at center,#241010,#0b0b0b 78%); }
.home-storefront .different-home-card__image img { position:absolute; inset:0; display:block; width:100%; height:100%; min-height:0; padding:14px; object-fit:contain; object-position:center; }
.home-storefront .different-home-card__icon { display:flex; align-items:center; justify-content:center; color:var(--home-red); background:radial-gradient(ellipse at center,#341010,#101010 75%); }
.home-storefront .different-home-card__icon svg { width:45px; height:45px; }
.home-storefront .different-home-card__content { min-width:0; padding:16px 0 16px 23px; }
.home-storefront .different-home-card__title-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.home-storefront .different-home-card__title-row h3 { margin:0; color:#f6f6f6; font-size:18px; font-weight:750; line-height:1.25; letter-spacing:-.35px; overflow-wrap:anywhere; }
.home-storefront .different-home-card__title-row span { padding:4px 6px; border:1px solid #4c2222; border-radius:4px; background:#241212; color:#ef7777; font-size:8px; font-weight:750; line-height:1.2; letter-spacing:.5px; }
.home-storefront .different-home-card__content p { margin:7px 0; max-width:660px; color:#ababab; font-size:11px; line-height:1.55; overflow-wrap:anywhere; }
.home-storefront .different-home-card__content small { display:block; color:#858585; font-size:10px; line-height:1.5; overflow-wrap:anywhere; }
.home-storefront .different-home-card__right { display:flex; flex-direction:column; align-items:stretch; justify-content:center; gap:12px; min-width:0; padding:16px 22px 16px 0; }
.home-storefront .different-home-card__price { margin:0; padding:0; border:0; border-radius:0; background:none; box-shadow:none; text-align:right; }
.home-storefront .different-home-card__price>span { display:block; margin-bottom:5px; color:#999; font-size:8px; font-weight:700; letter-spacing:1.1px; }
.home-storefront .different-home-card__price strong { display:flex; align-items:baseline; justify-content:flex-end; flex-wrap:wrap; gap:5px; }
.home-storefront .different-home-card__price strong b { color:#fff; font-size:26px; font-weight:800; line-height:1.1; letter-spacing:-.7px; }
.home-storefront .different-home-card__price small { color:#a0a0a0; font-size:10px; line-height:1.4; font-weight:500; }
.home-storefront .different-home-card__button { min-height:37px; display:flex; align-items:center; justify-content:center; gap:7px; padding:8px 12px; border:1px solid var(--home-red); border-radius:6px; background:var(--home-red); color:#fff; text-align:center; font-size:10px; font-weight:750; line-height:1.4; }
.home-storefront .different-home-card__button svg { width:14px; height:14px; flex-shrink:0; }
.home-storefront .different-home-card:hover .different-home-card__button { background:var(--home-red-hover); border-color:var(--home-red-hover); }
.home-storefront .different-home-card.is-out-of-stock { cursor:default; }
.home-storefront .different-home-card.is-out-of-stock:hover { border-color:var(--home-line); background:linear-gradient(110deg,#151515,#111 70%); }
.home-storefront .different-home-card.is-out-of-stock .different-home-card__image { opacity:.65; }
.home-storefront .different-home-card .different-home-card__button.is-out { background:#252525; border-color:#353535; color:#acacac; }

/* Catalog art keeps its original source and 16:9 framing. */
.home-storefront .store-section { padding-top:32px; }
.home-storefront .store-section__header { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 0 16px; }
.home-storefront .store-section__header h2 { margin:0; font-size:22px; font-weight:750; line-height:1.3; letter-spacing:-.6px; }
.home-storefront .product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.home-storefront .home-sale-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--home-line); border-radius:10px; background:#121212; color:var(--home-text); text-decoration:none; transition:border-color .18s,transform .18s; }
.home-storefront .home-sale-card:hover { border-color:#743131; transform:translateY(-2px); }
.home-storefront .home-sale-card__media { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#090909; border-bottom:1px solid #252525; }
.home-storefront .home-sale-card__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.home-storefront .home-sale-card__placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at center,#2e1212,#111 80%); color:var(--home-red); }
.home-storefront .home-sale-card__placeholder svg { width:36px; height:36px; }
.home-storefront .home-sale-card__featured { position:absolute; top:9px; left:9px; padding:5px 7px; border:1px solid #7e2727; border-radius:4px; background:#1b0909e8; color:#f09595; font-size:7px; font-weight:750; letter-spacing:.9px; line-height:1; }
.home-storefront .home-sale-card__body { flex:1; display:flex; flex-direction:column; padding:14px; min-width:0; }
.home-storefront .home-sale-card__category { display:block; margin:0 0 7px; color:#939393; font-size:8px; font-weight:600; line-height:1.5; letter-spacing:.4px; overflow-wrap:anywhere; }
.home-storefront .home-sale-card__body h3 { margin:0; color:#f4f4f4; font-size:14px; font-weight:700; line-height:1.4; letter-spacing:-.15px; overflow-wrap:anywhere; }
.home-storefront .home-sale-card__pricing { margin-top:auto; padding-top:13px; }
.home-storefront .home-sale-card__compare-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; min-height:18px; margin-bottom:3px; }
.home-storefront .home-sale-card__old-price { color:#8d8d8d; font-size:10px; line-height:1.4; text-decoration:line-through; }
.home-storefront .home-sale-card__discount { display:inline-flex; padding:3px 5px; border:1px solid #572424; border-radius:4px; background:#281313; color:#f09494; font-size:8px; font-weight:700; line-height:1; }
.home-storefront .home-sale-card__price { display:flex; align-items:baseline; flex-wrap:wrap; gap:5px; }
.home-storefront .home-sale-card__price strong { font-size:22px; font-weight:800; line-height:1.2; letter-spacing:-.5px; }
.home-storefront .home-sale-card__price small { color:#949494; font-size:10px; }
.home-storefront .home-sale-card__pix { display:block; margin-top:4px; color:#9d9d9d; font-size:9px; line-height:1.4; }
.home-storefront .home-sale-card__stock.is-out { display:block; margin-top:6px; color:#b8b8b8; font-size:9px; line-height:1.4; }
.home-storefront .home-sale-card__button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:37px; margin-top:13px; padding:8px; border:1px solid var(--home-red); border-radius:6px; background:var(--home-red); color:#fff; font-size:10px; font-weight:750; line-height:1.4; text-align:center; }
.home-storefront .home-sale-card__button svg { width:14px; height:14px; flex-shrink:0; }
.home-storefront .home-sale-card:hover .home-sale-card__button { background:var(--home-red-hover); border-color:var(--home-red-hover); }
.home-storefront .home-sale-card.is-out-of-stock { cursor:default; }
.home-storefront .home-sale-card.is-out-of-stock:hover { transform:none; border-color:var(--home-line); }
.home-storefront .home-sale-card.is-out-of-stock .home-sale-card__media { opacity:.65; }
.home-storefront .home-sale-card .home-sale-card__button.is-out { border-color:#353535; background:#252525; color:#acacac; }

/* Respond to the available content width, including a visible sidebar. */
@container home-storefront (max-width:850px) {
    .home-storefront .different-home-card { grid-template-columns:minmax(0,1fr) 157px; gap:15px; }
    .home-storefront .different-home-card__left { grid-template-columns:128px minmax(0,1fr); }
    .home-storefront .different-home-card__image,
    .home-storefront .different-home-card__icon { width:128px; }
    .home-storefront .different-home-card__content { padding-left:17px; }
    .home-storefront .different-home-card__title-row h3 { font-size:16px; }
    .home-storefront .different-home-card__right { padding-right:16px; }
    .home-storefront .different-home-card__price strong b { font-size:24px; }
    .home-storefront .different-home-card__button { padding:8px; font-size:9px; }
    .home-storefront .shortcut-card { padding:13px 14px; gap:9px; }
    .home-storefront .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
}
@container home-storefront (max-width:600px) {
    .home-storefront .home-image-carousel { margin-bottom:14px; border-radius:10px; }
    .home-storefront .home-shortcuts { margin-bottom:16px; border-radius:8px; }
    .home-storefront .shortcut-card { min-height:72px; flex-direction:column; justify-content:center; align-items:center; gap:7px; padding:10px 6px; text-align:center; }
    .home-storefront .shortcut-icon { width:20px; height:20px; flex-basis:20px; background:none; border-radius:0; }
    .home-storefront .shortcut-icon svg { width:19px; height:19px; }
    .home-storefront .shortcut-card strong { font-size:10px; }
    .home-storefront .shortcut-card span,
    .home-storefront .shortcut-arrow { display:none; }
    .home-storefront .different-home-list { gap:10px; }
    .home-storefront .different-home-card { grid-template-columns:minmax(0,1fr); gap:0; min-height:0; border-radius:10px; }
    .home-storefront .different-home-card__left { grid-template-columns:108px minmax(0,1fr); }
    .home-storefront .different-home-card__image,
    .home-storefront .different-home-card__icon { width:108px; min-height:136px; }
    .home-storefront .different-home-card__image img { padding:12px; }
    .home-storefront .different-home-card__icon svg { width:34px; height:34px; }
    .home-storefront .different-home-card__content { padding:14px; }
    .home-storefront .different-home-card__title-row { gap:6px; }
    .home-storefront .different-home-card__title-row h3 { font-size:15px; letter-spacing:-.2px; }
    .home-storefront .different-home-card__title-row span { font-size:7px; }
    .home-storefront .different-home-card__content p { margin:7px 0 6px; font-size:10px; line-height:1.5; }
    .home-storefront .different-home-card__content small { font-size:9px; }
    .home-storefront .different-home-card__right { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:16px; padding:12px 14px; border-top:1px solid #292929; }
    .home-storefront .different-home-card__price { text-align:left; }
    .home-storefront .different-home-card__price>span { margin-bottom:4px; font-size:7px; }
    .home-storefront .different-home-card__price strong { justify-content:flex-start; gap:4px; }
    .home-storefront .different-home-card__price strong b { font-size:23px; }
    .home-storefront .different-home-card__price small { font-size:9px; }
    .home-storefront .different-home-card__button { min-height:39px; padding:8px; font-size:10px; }
    .home-storefront .store-section { padding-top:27px; }
    .home-storefront .store-section__header { gap:10px; margin-bottom:13px; }
    .home-storefront .store-section__header h2 { font-size:20px; }
    .home-storefront .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .home-storefront .home-sale-card { border-radius:8px; }
    .home-storefront .home-sale-card__body { padding:11px 10px; }
    .home-storefront .home-sale-card__body h3 { font-size:12px; line-height:1.4; }
    .home-storefront .home-sale-card__category { font-size:7px; }
    .home-storefront .home-sale-card__pricing { padding-top:10px; }
    .home-storefront .home-sale-card__price strong { font-size:19px; }
    .home-storefront .home-sale-card__button { min-height:37px; margin-top:11px; font-size:9px; gap:5px; padding:7px 4px; }
    .home-storefront .home-sale-card__button svg { width:12px; height:12px; }
    .home-storefront .home-sale-card__featured { top:7px; left:7px; padding:4px 5px; font-size:6px; }
}
@media (prefers-reduced-motion:reduce) {
    .home-storefront .shortcut-card,
    .home-storefront .different-home-card,
    .home-storefront .home-sale-card { transition:none; }
    .home-storefront .home-sale-card:hover { transform:none; }
}

/* Approved shortcut presentation, scoped to the homepage. */
.home-storefront .home-shortcuts {
    grid-template-columns:repeat(3,minmax(0,1fr));
    margin:0 0 24px;
    border:1px solid #25292d;
    border-radius:12px;
    background:linear-gradient(110deg,#111416,#0c0e10);
    overflow:hidden;
}
.home-storefront .shortcut-card {
    position:relative;
    min-height:88px;
    padding:18px 24px;
    gap:16px;
    border:0;
    background:transparent;
    align-items:center;
    transition:background .18s ease;
}
.home-storefront .shortcut-card:not(:last-child)::after {
    content:"";
    position:absolute;
    top:22px;
    right:0;
    bottom:22px;
    width:1px;
    background:#303338;
}
.home-storefront .shortcut-card:hover {background:#191213;}
.home-storefront .shortcut-icon {
    width:38px;height:38px;flex:0 0 38px;
    border:0;border-radius:0;
    background:transparent;
    color:#ee2020;
}
.home-storefront .shortcut-icon svg {width:29px;height:29px;stroke-width:1.6;}
.home-storefront .shortcut-card strong {color:#f5f5f5;font-size:14px;font-weight:700;letter-spacing:-.2px;line-height:1.4;}
.home-storefront .shortcut-card span {display:block;margin-top:5px;color:#939aa3;font-size:11px;line-height:1.4;}
.home-storefront .shortcut-arrow {color:#c0c5ca;width:17px;height:17px;flex:0 0 17px;margin-left:auto;}
@container home-storefront (max-width:900px) {
    .home-storefront .shortcut-card {padding:16px;gap:11px;}
    .home-storefront .shortcut-icon {width:30px;flex-basis:30px;}
    .home-storefront .shortcut-card strong {font-size:12px;}
    .home-storefront .shortcut-card span {font-size:10px;}
}
@container home-storefront (max-width:600px) {
    .home-storefront .home-shortcuts {margin-bottom:18px;border-radius:10px;}
    .home-storefront .shortcut-card {min-height:92px;flex-direction:column;justify-content:center;padding:14px 5px;gap:9px;text-align:center;}
    .home-storefront .shortcut-card:not(:last-child)::after {top:18px;bottom:18px;}
    .home-storefront .shortcut-icon {width:26px;height:26px;flex-basis:26px;}
    .home-storefront .shortcut-icon svg {width:25px;height:25px;}
    .home-storefront .shortcut-card strong {font-size:10px;letter-spacing:0;}
    .home-storefront .shortcut-card span,
    .home-storefront .shortcut-arrow {display:none;}
}
@media(prefers-reduced-motion:reduce) {
    .home-storefront .shortcut-card {transition:none;}
}
