/* =========================================================
   VARIABLES
========================================================= */
:root{
    --brand:#f03746;
    --brand-2:#630852;
    --accent:#c3c3f4;

    /* UI tokens */
    --radius-sm:.5rem;
    --radius:.75rem;
    --radius-lg:1rem;

    --shadow-sm:0 8px 24px rgba(0,0,0,.06);
    --shadow-md:0 12px 32px rgba(0,0,0,.12);
    --shadow-lg:0 16px 40px rgba(0,0,0,.12);

    --border:#ded7f4;
    --muted:#5f4767;
    --bg:#fbf8ff;
    --brand-soft:#fde7eb;
    --brand-rgb:240,55,70;
    --brand-2-rgb:99,8,82;
    --accent-rgb:195,195,244;
    --tile-grad:linear-gradient(135deg,#fde7eb,#f1efff);
    font-size:16px;
}

/* Scale the root font size down for spacious, high-res viewports */
@media (min-width:1440px){
    :root{
        font-size:15px;
    }
}

@media (min-width:1920px){
    :root{
        font-size:14px;
    }
}

/* =========================================================
   BASE
========================================================= */
body{background:var(--bg);position:relative;z-index:0;overflow-x:hidden;}
main{flex:1 0 auto;}
.logo{font-weight:800;letter-spacing:.3px}
.logo span{color:var(--brand)}
.brand-logo{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
}
.brand-logo__mark{
    width:28px;
    height:36px;
    object-fit:cover;
    border-radius:.45rem;
    box-shadow:0 7px 16px rgba(99,8,82,.14);
}
.brand-logo__text{
    color:#111;
}
.brand-logo__text{
    color:#111!important;
}
.brand-logo__text .brand-logo__name{
    color:var(--brand)!important;
}

.product-card--out-of-stock,
.popular-card--out-of-stock,
.promo-card--out-of-stock{
    filter:grayscale(1);
    opacity:.62;
}
.product-card--out-of-stock [data-qty-root],
.popular-card--out-of-stock [data-qty-root],
.promo-card--out-of-stock [data-qty-root]{
    pointer-events:none;
}
.product-card__stock-badge{
    position:absolute;
    top:0;
    left:0;
    margin:.5rem;
    z-index:4;
}
.product-inline-notice{
    display:flex;
    align-items:flex-start;
    gap:.55rem;
    width:100%;
    margin-top:.6rem;
    padding:.72rem .85rem;
    border:1px solid rgba(190,18,60,.2);
    border-left:4px solid var(--brand-2);
    border-radius:8px;
    background:#fff7f7;
    color:#7f1d1d;
    font-size:.9rem;
    line-height:1.35;
    box-shadow:0 8px 20px rgba(190,18,60,.08);
}
.product-inline-notice i{
    flex:0 0 auto;
    color:var(--brand-2);
    font-size:1rem;
    line-height:1.25;
}
.product-inline-notice span{
    min-width:0;
}

.info-icon{
    width:40px;height:40px;border-radius:999px;
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--brand-soft);color:var(--brand)
}

/* =========================================================
   TOPBAR
========================================================= */
.site-header{
    position:sticky;
    top:0;
    z-index:1040;
    background:transparent;
}
.site-header .navbar{
    position:relative;
    z-index:2;
    box-shadow:0 12px 28px rgba(15,23,42,.08);
}
.site-header .topbar{
    position:relative;
    z-index:3;
}
.site-header + main{
    position:relative;
    z-index:0;
}
.topbar{background:var(--brand); color:#fff; font-size:.925rem}
.topbar a{color:#fff;text-decoration:none}
.topbar__links{
    min-width:0;
    flex-wrap:wrap;
    justify-content:center;
}
@media (max-width:575.98px){
    .topbar .container{
        justify-content:center!important;
    }
    .topbar__links{
        width:100%;
        gap:.75rem!important;
        font-size:.82rem;
        flex-direction:column;
    }
    .topbar__links a{
        flex:0 1 auto;
        text-align:center;
    }
}

/* =========================================================
   SEARCH (NAV + PAGE)
========================================================= */
.search-wrap{ position:relative }
.search-wrap .bi-search{
    position:absolute; left:.75rem; top:50%;
    transform:translateY(-50%); opacity:.6
}
#navSearchInput{ padding-left:2.25rem }

.navbar .search-wrap{
    min-height:100%;
    flex:1 1 560px;
    min-width:320px;
    max-width:720px;
}
.navbar .search-wrap .form-control{
    min-height:46px;
}
.navbar .btn-brand{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
}
.nav-icon-btn{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    padding:0;
    border-radius:50%;
    gap:0;
}
.nav-icon-btn i{
    font-size:1.2rem;
    line-height:1;
}
.nav-icon-btn .nav-icon-badge{
    position:absolute;
    top:4px;
    right:3px;
    font-size:.7rem;
    min-width:1.2rem;
    min-height:1.2rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    padding:.1rem .25rem;
}
.nav-icon-btn.btn-outline-amber .nav-icon-badge{
    background:rgba(var(--accent-rgb),.34);
    color:var(--brand-2);
}
.nav-icon-btn.btn-brand .nav-icon-badge{
    background:#fff;
    color:var(--brand);
}
.nav-icon-btn.btn-outline-amber{
    border-color:rgba(var(--accent-rgb),.7);
    color:var(--brand-2);
    background:#fff;
}
.nav-icon-btn.btn-outline-amber:hover{
    background:rgba(var(--accent-rgb),.2);
    border-color:rgba(var(--brand-rgb),.55);
    color:var(--brand);
}
.nav-icon-btn.btn-outline-success{
    border-color:rgba(var(--brand-rgb),.45);
    color:var(--brand);
    background:#fff;
}
.nav-icon-btn.btn-outline-success:hover{
    background:rgba(var(--brand-rgb),.12);
    border-color:rgba(var(--brand-rgb),.65);
    color:var(--brand-2);
}
.nav-driver-btn{
    border:1px solid rgba(var(--brand-rgb),.22);
    color:var(--brand-2);
    background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.96), rgba(var(--brand-rgb),.08) 36%, rgba(var(--accent-rgb),.24) 68%, rgba(var(--brand-rgb),.18) 100%);
    box-shadow:0 10px 22px rgba(var(--brand-rgb),.16);
    overflow:hidden;
}
.nav-driver-btn:hover{
    color:var(--brand-2);
    border-color:rgba(var(--brand-rgb),.42);
    background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.98), rgba(var(--brand-rgb),.1) 38%, rgba(var(--accent-rgb),.3) 68%, rgba(var(--brand-rgb),.22) 100%);
    box-shadow:0 14px 28px rgba(var(--brand-rgb),.22);
}
.nav-driver-btn.is-active{
    color:#fff;
    border-color:rgba(var(--brand-2-rgb),.9);
    background:linear-gradient(135deg,var(--brand),var(--brand-2));
    box-shadow:0 14px 30px rgba(var(--brand-rgb),.3);
}
.nav-driver-btn__pulse{
    position:absolute;
    top:7px;
    right:7px;
    width:8px;
    height:8px;
    border-radius:999px;
    background:#ef4444;
    box-shadow:0 0 0 0 rgba(239,68,68,.55);
    animation:navDriverPulse 1.8s infinite;
}
.nav-driver-btn.is-active .nav-driver-btn__pulse{
    background:var(--accent);
    box-shadow:0 0 0 0 rgba(var(--accent-rgb),.5);
}
.nav-icon-btn.btn-brand{
    gap:0;
}
.nav-icon-btn.dropdown-toggle::after{
    display:none;
}
.nav-profile-btn{
    background:linear-gradient(135deg,rgba(var(--brand-rgb),.95),rgba(var(--brand-2-rgb),.82));
    color:#fff;
    border:none;
    box-shadow:0 8px 22px rgba(15,23,42,.18);
}
.nav-profile-btn:hover{
    color:#fff;
    background:linear-gradient(135deg,rgba(var(--brand-rgb),1),rgba(var(--brand-2-rgb),.9));
}
.nav-profile-btn:focus-visible{
    outline:2px solid rgba(var(--brand-rgb),.45);
    outline-offset:2px;
}
@keyframes navDriverPulse{
    0%{
        transform:scale(1);
        box-shadow:0 0 0 0 rgba(239,68,68,.5);
    }
    70%{
        transform:scale(1.05);
        box-shadow:0 0 0 8px rgba(239,68,68,0);
    }
    100%{
        transform:scale(1);
        box-shadow:0 0 0 0 rgba(239,68,68,0);
    }
}
.nav-profile-btn i{
    font-size:1.15rem;
}
.nav-actions{
    width:100%;
    gap:inherit;
}

@media (max-width:1399.98px){
    .navbar .search-wrap{
        flex-basis:420px;
        min-width:260px;
        max-width:100%;
    }
    .navbar .btn-brand{
        padding:.6rem 1.15rem;
    }
    .nav-icon-btn{
        width:42px;
        height:42px;
        min-width:42px;
        min-height:42px;
    }
    .nav-icon-btn i{
        font-size:1.1rem;
    }
}

@media (max-width:1199.98px){
    #navMain .navbar-nav{
        width:100%;
        gap:.75rem;
    }
    #navMain .nav-actions__list{
        width:auto;
        flex:0 0 auto;
        justify-content:center;
    }
    #navMain .navbar-nav .nav-link{
        padding-left:0;
        padding-right:0;
    }
    .navbar .search-wrap{
        min-width:100%;
        flex-basis:100%;
        max-width:100%;
    }
    .navbar .search-wrap .form-control{
        min-height:42px;
    }
    .nav-actions{
        width:100%;
        align-items:center;
        justify-content:center;
    }
    .nav-actions .nav-icon-btn{
        width:56px;
        height:56px;
        min-width:56px;
        min-height:56px;
        border-radius:50%;
    }
    .nav-actions .nav-icon-btn i{
        font-size:1.25rem;
    }
}

@media (min-width:1200px){
    #navMain{
        display:flex!important;
        align-items:center;
        gap:1.75rem;
    }
    #navMain > .navbar-nav{
        flex:0 0 auto;
        width:auto!important;
    }
    #navMain > .search-wrap{
        flex:1 1 600px;
        max-width:760px;
    }
    #navMain > .nav-actions{
        flex:0 0 auto;
        width:auto;
    }
    .nav-actions{
        width:auto;
    }
}

/* dropdown */
.search-dropdown{
    position:absolute; left:0; right:0; top:100%; z-index:1050;
    background:#fff; border:1px solid var(--border); border-radius:var(--radius);
    box-shadow:var(--shadow-lg);
    margin-top:.5rem; padding:.5rem;
    max-height:70vh; overflow:auto;
}
.search-section{ padding:.25rem .25rem .5rem }
.search-sec-title{
    font-size:.75rem; font-weight:700; color:var(--muted);
    padding:.25rem .5rem
}
.search-item{
    display:flex; align-items:center; gap:.5rem;
    padding:.5rem; border-radius:var(--radius-sm);
    cursor:pointer; text-decoration:none; color:inherit;
}
.search-item:hover, .search-item[aria-selected="true"]{ background:#f8fafc }
.search-item .avatar{
    width:36px; height:36px; border-radius:.5rem; background:#f3f4f6; flex:0 0 auto
}
.search-item .name{ font-weight:600; }
.search-item .sub{ font-size:.8rem; color:var(--muted) }
.search-empty{ padding:.5rem .75rem }

/* search page finomítás */
#searchResults .list-group-item { border-radius: var(--radius-sm); margin-bottom:.25rem; }

/* =========================================================
   HERO / PILLS
========================================================= */
.slot-pill{
    background:#fff;color:#111;border-radius:999px;
    padding:.35rem .75rem;display:inline-flex;gap:.35rem;align-items:center
}
.slot-pill .dot{width:.5rem;height:.5rem;border-radius:999px;background:var(--accent)}

.hero{
    background:var(--tile-grad);
    border-bottom:1px solid #e7e7e7
}

/* =========================================================
   CATEGORY TILES + H SCROLLER
========================================================= */
.cat-tile{
    border-radius:var(--radius-lg); overflow:hidden; background:#fff;
    border:1px solid var(--border); transition:.2s
}
.cat-tile:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm) }

/* Vízszintes kategóriasor */
.home-featured-cats{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 8% 0%, rgba(var(--accent-rgb),.28), transparent 32%),
        radial-gradient(circle at 92% 22%, rgba(var(--brand-rgb),.12), transparent 30%),
        linear-gradient(180deg,#fbf8ff 0%,#fff 100%);
}
.home-featured-cats::after{
    content:"";
    position:absolute;
    right:8%;
    bottom:-86px;
    width:136px;
    height:190px;
    border:1px solid rgba(99,8,82,.1);
    border-radius:1.05rem;
    background:rgba(255,255,255,.46);
    transform:rotate(10deg);
    pointer-events:none;
}
.home-featured-cats__header{
    position:relative;
    z-index:1;
}
.home-featured-cats__controls{
    display:flex;
    align-items:center;
    gap:.55rem;
    flex-wrap:wrap;
}
.home-featured-cats__all{
    display:inline-flex;
    align-items:center;
    min-height:38px;
    padding:.48rem .8rem;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(99,8,82,.12);
    color:var(--brand-2);
    text-decoration:none;
    font-size:.86rem;
    font-weight:800;
    box-shadow:0 10px 22px rgba(99,8,82,.08);
}
.home-featured-cats__all:hover{
    color:var(--brand);
    border-color:rgba(var(--brand-rgb),.32);
}
.home-featured-cats__nav{
    width:38px;
    height:38px;
    border-radius:.8rem;
    border:1px solid rgba(99,8,82,.14);
    background:#fff;
    color:var(--brand-2);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 10px 22px rgba(99,8,82,.08);
    transition:transform .18s ease, border-color .18s ease, color .18s ease;
}
.home-featured-cats__nav:hover{
    transform:translateY(-1px);
    border-color:rgba(var(--brand-rgb),.36);
    color:var(--brand);
}
.cat-scroll-wrap { position: relative; }
.cat-scroll {
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    padding: .7rem 0 1rem;
}
.home-featured-cats__track{
    position:relative;
    z-index:1;
    gap:1rem;
}
.cat-scroll::-webkit-scrollbar { height: 7px; }
.cat-scroll::-webkit-scrollbar-track { background:rgba(99,8,82,.06); border-radius:999px; }
.cat-scroll::-webkit-scrollbar-thumb { background:rgba(var(--brand-rgb),.32); border-radius:999px; }

.cat-chip{
    scroll-snap-align: start;
    min-width:120px; max-width:160px; height:120px;
    border:1px solid var(--border); border-radius:var(--radius-lg);
    background:#fff; padding:.5rem; gap:.25rem; flex:0 0 auto;
    transition:.15s;
}
.cat-chip:not(.cat-chip--home):hover{ transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.cat-chip--home{
    position:relative;
    min-width:270px;
    max-width:290px;
    height:auto;
    min-height:158px;
    padding:1.1rem;
    background:
        linear-gradient(#fff,#fff) padding-box,
        linear-gradient(145deg,rgba(var(--brand-rgb),.4),rgba(var(--accent-rgb),.46)) border-box;
    border-radius:1.15rem;
    border:1px solid transparent;
    display:flex;
    align-items:flex-start;
    gap:1rem;
    box-shadow:0 18px 38px rgba(99,8,82,.09);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    color:inherit;
    overflow:hidden;
    z-index:0;
    margin:.35rem 0 .5rem;
}
.cat-chip--home::before{
    content:'';
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 12% 18%, rgba(var(--accent-rgb),.36), transparent 32%),
        linear-gradient(135deg,rgba(var(--brand-rgb),.08),rgba(var(--brand-2-rgb),.04));
    opacity:1;
    transition:opacity .2s ease;
    z-index:0;
    pointer-events:none;
}
.cat-chip--home::after{
    content:"";
    position:absolute;
    right:.8rem;
    bottom:.8rem;
    width:24px;
    height:34px;
    border-radius:.35rem;
    border:1px solid rgba(99,8,82,.08);
    background:rgba(255,255,255,.58);
    transform:rotate(9deg);
    pointer-events:none;
}
.cat-chip--home:hover{
    transform:translateY(-4px);
    box-shadow:0 26px 48px rgba(99,8,82,.15);
    border-color:transparent;
}
.cat-chip--home:hover::before{
    opacity:.86;
}
.cat-chip--home .cat-chip__thumb{
    position:relative;
    flex:0 0 auto;
    width:78px;
    height:92px;
    border-radius:.9rem;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:.35rem;
    box-shadow:0 16px 30px rgba(99,8,82,.14);
    border:1px solid rgba(99,8,82,.1);
    z-index:1;
    transform:rotate(-4deg);
}
.cat-chip--home .cat-thumb{
    width:100%;
    height:100%;
    object-fit:contain;
    border-radius:.65rem;
    background:#fff;
}
.cat-chip--home .cat-chip__body{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-self:stretch;
    gap:.45rem;
    min-width:0;
    flex:1 1 auto;
}
.cat-chip--home .cat-chip__title{
    font-size:1rem;
    font-weight:850;
    color:#24112f;
    line-height:1.22;
    overflow-wrap:anywhere;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.cat-chip--home .cat-chip__meta{
    display:none;
    color:#6f5b76;
    font-size:.78rem;
    line-height:1.35;
}
.cat-chip--home .cat-chip__cta{
    display:inline-flex;
    align-items:center;
    gap:.25rem;
    margin-top:.15rem;
    font-size:.82rem;
    font-weight:800;
    color:var(--brand);
    opacity:.85;
    transition:opacity .2s ease;
}
.cat-chip--home .cat-chip__cta i{
    font-size:1rem;
    transition:transform .2s ease;
}
.cat-chip--home:hover .cat-chip__cta{
    opacity:1;
}
.cat-chip--home:hover .cat-chip__cta i{
    transform:translateX(4px);
}

@media (max-width: 576px){
    .home-featured-cats__controls{
        width:100%;
    }
    .home-featured-cats__all{
        flex:1 1 auto;
        justify-content:center;
    }
    .home-featured-cats__nav{
        display:none;
    }
    .cat-chip--home{
        min-width:238px;
        max-width:238px;
        min-height:138px;
        padding:.85rem;
    }
    .cat-chip--home .cat-chip__thumb{
        width:68px;
        height:82px;
    }
    .cat-chip--home .cat-chip__title{
        font-size:.92rem;
    }
    .cat-chip--home .cat-chip__meta{
        display:none;
    }
}

/* =========================================================
   PRODUCT CARD
========================================================= */
.category-page{
    background:
        radial-gradient(circle at 6% 18%, rgba(var(--accent-rgb),.22), transparent 28%),
        radial-gradient(circle at 94% 34%, rgba(var(--brand-rgb),.1), transparent 26%),
        var(--bg);
}
.category-products-shell{
    position:relative;
    overflow:hidden;
    padding:1.35rem;
    border:1px solid rgba(99,8,82,.1);
    border-radius:1.25rem;
    background:
        linear-gradient(rgba(255,255,255,.96),rgba(255,255,255,.96)),
        url("../img/cartaco/playing-cards-flatlay.jpg") center/cover;
    box-shadow:0 22px 60px rgba(99,8,82,.08);
}
.category-products-shell::after{
    content:"";
    position:absolute;
    right:2.5rem;
    top:5.2rem;
    width:96px;
    height:136px;
    border-radius:1rem;
    border:1px solid rgba(99,8,82,.08);
    background:rgba(255,255,255,.42);
    transform:rotate(9deg);
    pointer-events:none;
}
.category-products-shell > *{
    position:relative;
    z-index:1;
}
.category-products-count{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    border-radius:999px;
    padding:.48rem .8rem;
    background:#fff;
    border:1px solid rgba(99,8,82,.12);
    color:var(--brand-2);
    font-weight:800;
    box-shadow:0 10px 22px rgba(99,8,82,.08);
}
.category-empty-state{
    display:flex;
    align-items:center;
    gap:.75rem;
    padding:1.2rem;
    border:1px dashed rgba(99,8,82,.2);
    border-radius:1rem;
    background:rgba(255,255,255,.86);
    color:#6f5b76;
}
.category-empty-state i{
    color:var(--brand);
    font-size:1.35rem;
}
.category-product-grid{
    --bs-gutter-x:1.15rem;
    --bs-gutter-y:1.15rem;
}
.product-card{
    border:1px solid rgba(99,8,82,.12);
    border-radius:1.15rem;
    background:
        radial-gradient(circle at 10% 0%, rgba(var(--accent-rgb),.22), transparent 30%),
        linear-gradient(#fff,#fff) padding-box,
        linear-gradient(135deg,rgba(var(--brand-rgb),.48),rgba(var(--accent-rgb),.5)) border-box;
    transition: box-shadow .2s, transform .2s;
    display:flex;
    flex-direction:column;
    gap:.9rem;
    padding:.95rem;
    overflow:hidden;
    position:relative;
    box-shadow:0 18px 40px rgba(99,8,82,.08);
}
.product-card::before{
    content:"";
    position:absolute;
    top:.7rem;
    left:.7rem;
    width:.5rem;
    height:.5rem;
    border-radius:999px;
    background:var(--brand);
    opacity:.55;
}
.product-card::after{
    content:"";
    position:absolute;
    right:.7rem;
    bottom:.7rem;
    width:.5rem;
    height:.5rem;
    border-radius:999px;
    background:var(--brand-2);
    opacity:.28;
}
.product-card:hover{ box-shadow:0 26px 58px rgba(99,8,82,.16); transform:translateY(-4px); }

.product-card__figure{
    position:relative;
    border-radius:1.25rem;
    padding:1.1rem .9rem .9rem;
    background:
        radial-gradient(circle at 18% 16%, rgba(var(--accent-rgb),.35), transparent 32%),
        linear-gradient(145deg,#fff7f8,#f1efff);
    border:1px solid rgba(99,8,82,.08);
}
.product-card__media{
    display:block;
    border-radius:1rem;
    background:#fff;
    padding:.45rem;
    box-shadow:inset 0 0 0 1px rgba(99,8,82,.05), 0 14px 26px rgba(99,8,82,.08);
}
.product-card__media-inner{
    border-radius:1rem;
    aspect-ratio:1/1;
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
}
.product-card__image{
    width:100%;
    height:100%;
    object-fit:contain;
}
.product-thumb{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    display:block;
}
.product-card__favorite{
    position:absolute;
    top:.75rem;
    right:.75rem;
}
.product-card__type{
    position:absolute;
    left:.8rem;
    top:.7rem;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:.28rem;
    border-radius:999px;
    padding:.28rem .52rem;
    background:#fff;
    color:var(--brand-2);
    border:1px solid rgba(99,8,82,.1);
    box-shadow:0 8px 18px rgba(99,8,82,.1);
    font-size:.7rem;
    font-weight:850;
    text-transform:uppercase;
}
.product-card__type i{
    color:var(--brand);
    font-size:.72rem;
}

.product-card__body{
    display:flex;
    flex-direction:column;
    gap:.65rem;
    height:100%;
    padding:0 .1rem .25rem;
}
.product-card__bottom{
    margin-top:auto;
    display:flex;
    flex-direction:column;
    gap:.75rem;
}
.product-card__title{
    font-weight:850;
    color:#24112f;
    line-height:1.26;
    word-break:break-word;
    margin-bottom:.15rem;
    min-height:3.78rem;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.product-card__title:hover{
    color:var(--brand-2);
}
.product-card__price{
    display:flex;
    flex-direction:column;
    gap:.2rem;
    font-size:.9rem;
    border-top:1px dashed rgba(99,8,82,.18);
    padding:.75rem .8rem 0;
    margin:0 -.15rem;
    background:linear-gradient(180deg,rgba(255,255,255,0),rgba(253,231,235,.18));
}
.product-card__price .price-line{
    display:flex;
    align-items:baseline;
    gap:.35rem;
}
.product-card__price .price-net{
    font-size:1.05rem;
    font-weight:700;
    color:var(--brand-2);
}
.product-card__price .price-gross{
    font-size:.95rem;
    color:#475569;
}
.product-card__price .price-orig{
    font-size:.85rem;
    color:var(--brand-2);
    text-decoration:line-through;
}
.product-card__price-label{
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.02em;
    color:#0f172a;
    font-weight:600;
}
.product-card__price-label--muted{
    color:#64748b;
}
.product-card__price-note{
    font-size:.8rem;
    color:#64748b;
}
.product-card__footer{
    display:flex;
    flex-direction:column;
    gap:.5rem;
}
.product-card__qty input{
    max-width:70px;
}
.product-card__actions{
    display:flex;
    align-items:center;
    gap:.5rem;
}
.product-card__actions .btn{
    white-space:nowrap;
    flex-shrink:0;
}
.product-card__open{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.35rem;
    border-color:rgba(99,8,82,.16)!important;
    color:var(--brand-2)!important;
    background:#fff!important;
}
.product-card__open:hover{
    color:#fff!important;
    background:var(--brand)!important;
    border-color:var(--brand)!important;
}
.product-card__note{
    font-size:.8rem;
    color:#64748b;
}

@media (max-width:575.98px){
    .category-products-shell{
        padding:1rem .75rem;
        border-radius:1rem;
    }
    .category-products-count{
        width:100%;
        justify-content:center;
    }
    .category-page .category-section-header{
        flex-direction:column;
        align-items:flex-start;
    }
    .category-page .category-section-header > div{
        width:100%;
        min-width:0;
    }
    .category-page .category-section-header .subtitle{
        max-width:100%;
        overflow-wrap:anywhere;
    }
    .category-product-grid{
        --bs-gutter-x:.75rem;
        --bs-gutter-y:.75rem;
    }
    .category-product-grid > [class*="col-"]{
        flex:0 0 100%;
        max-width:100%;
        width:100%;
    }
    .product-card{
        padding:.65rem;
        border-radius:.95rem;
    }
    .product-card__figure{
        padding:.95rem .55rem .55rem;
        border-radius:.85rem;
    }
    .product-card__media{
        border-radius:.75rem;
        padding:.28rem;
    }
    .product-card__title{
        min-height:3.5rem;
        font-size:.92rem;
    }
    .product-card__type{
        font-size:.62rem;
        padding:.22rem .42rem;
    }
    .product-card__actions{
        flex-wrap:wrap;
        align-items:stretch;
    }
    .product-card__actions .text-secondary{
        flex:1 1 100%;
    }
    .product-card__open{
        width:100%;
    }
    .product-card__open span{
        display:inline;
    }
}

.product-card .product-body{
    flex:1 1 auto; display:flex; flex-direction:column;
}

.favorite-toggle{
    width:38px;
    height:38px;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.12);
    background:rgba(255,255,255,.95);
    color:var(--muted);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:all .2s ease;
    position:relative;
    z-index:2;
    box-shadow:0 6px 18px rgba(15,23,42,.12);
}
.favorite-toggle .favorite-toggle__icon{
    transition:opacity .15s ease;
    font-size:1rem;
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    display:flex;
    align-items:center;
    justify-content:center;
}
.favorite-toggle .favorite-toggle__icon--on{
    opacity:0;
}
.favorite-toggle.is-active{
    background:var(--brand);
    border-color:var(--brand);
    color:#fff;
    box-shadow:0 12px 32px rgba(var(--brand-rgb),.25);
}
.favorite-toggle.is-active .favorite-toggle__icon--off{ opacity:0; }
.favorite-toggle.is-active .favorite-toggle__icon--on{ opacity:1; }
.favorite-toggle:hover{
    border-color:var(--brand);
    color:var(--brand);
}
.favorite-toggle.is-active:hover{
    color:#fff;
}
.favorite-toggle.is-loading{
    pointer-events:none;
    opacity:.65;
}
.favorite-toggle--sm{ width:34px; height:34px; }
.favorite-toggle--md{ width:40px; height:40px; }
.home-promos__grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:1.25rem;
}
.home-promos__slider{
    position:relative;
    margin-top:1.5rem;
}
.home-promos__viewport{
    overflow:hidden;
}
.home-promos__track{
    display:flex;
    transition:transform .35s ease;
    will-change:transform;
}
.home-promos__slide{
    flex:0 0 100%;
    padding:0 .5rem;
    box-sizing:border-box;
}
.home-promos__nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:44px;
    height:44px;
    border-radius:50%;
    border:1px solid rgba(15,23,42,.12);
    background:#fff;
    color:var(--brand-2);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 24px rgba(15,23,42,.15);
    z-index:5;
}
.home-promos__nav:disabled{
    opacity:.4;
    cursor:not-allowed;
    box-shadow:none;
}
.home-promos__nav--prev{ left:-1.5rem; }
.home-promos__nav--next{ right:-1.5rem; }
.home-promos__status{
    font-weight:500;
}
.home-promos__status [data-promo-status]{
    font-weight:600;
}
.promo-card{
    position:relative;
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.08);
    padding:1rem;
    display:flex;
    flex-direction:column;
    height:100%;
    min-height:458px;
    transition:box-shadow .2s ease, transform .2s ease;
}
.promo-card--ghost{
    visibility:hidden;
    pointer-events:none;
}
.promo-card:hover{
    box-shadow:var(--shadow-md);
    transform:translateY(-3px);
}
.promo-card__media{
    position:relative;
    flex:0 0 auto;
}
.promo-card__media .ratio{
    border-radius:12px !important;
    background:#fff !important;
}
.promo-card__badges{
    position:absolute;
    top:.5rem;
    left:.5rem;
    right:3.25rem;
    z-index:3;
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:.35rem;
    min-height:1.65rem;
}
.promo-card__badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.3rem;
    min-height:1.55rem;
    font-size:.75rem;
    font-weight:600;
    line-height:1;
    padding:.25rem .62rem;
    border-radius:999px;
    white-space:nowrap;
}
.promo-card__badge i{
    font-size:.8rem;
    line-height:1;
}
.promo-card__badge--sale{
    background:rgba(248,113,113,.15);
    color:#b91c1c;
    backdrop-filter:blur(6px);
    box-shadow:0 8px 18px rgba(185,28,28,.25);
}
.promo-card__badge--stock{
    background:#94a3b8;
    color:#fff;
}
.promo-card__badge--request{
    background:#06b6d4;
    color:#052f3a;
}
.promo-card__favorite{
    position:absolute;
    top:.5rem;
    right:.5rem;
    z-index:2;
}
.promo-card__thumb{
    width:100%;
    height:100%;
    object-fit:contain;
    padding:1.45rem .85rem .85rem;
    background:#fff;
}
.promo-card__body{
    display:flex;
    flex-direction:column;
    gap:.5rem;
    margin-top:1rem;
    flex:1 1 auto;
    min-height:0;
}
.promo-card__title{
    font-weight:600;
    color:#0f172a;
    min-height:3.75rem;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.promo-card__title:hover{
    color:var(--brand);
}
.promo-card__price{
    display:flex;
    flex-direction:column;
    gap:.2rem;
    font-size:.9rem;
    min-height:4.75rem;
}
.promo-card__price-net{
    font-size:1.05rem;
    font-weight:700;
    color:var(--brand-2);
}
.promo-card__price-gross{
    font-size:.95rem;
    color:#475569;
}
.promo-card__price-orig{
    font-size:.85rem;
    color:var(--brand-2);
    text-decoration:line-through;
}
.promo-card__availability{
    min-height:2.25rem;
    font-size:.85rem;
    line-height:1.35;
    color:#64748b;
}
.promo-card__actions{
    margin-top:auto;
    display:flex;
    flex-direction:column;
    gap:.5rem;
    min-height:5.95rem;
}
.promo-card__actions--blocked{
    justify-content:flex-end;
}
.promo-card__actions--blocked .small{
    min-height:1.25rem;
}
.promo-card__qty input{
    max-width:70px;
}
.promo-card__qty{
    min-height:34px;
}
.promo-card__actions .btn{
    white-space:nowrap;
}
.promo-card__icon-btn{
    width:36px;
    min-width:36px;
    height:36px;
    padding:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 36px;
}
@media (max-width:575.98px){
    .home-promos__grid{
        grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
        gap:1rem;
    }
    .home-promos__slider{
        margin-top:1rem;
    }
    .home-promos__slide{
        padding:0;
    }
    .home-promos__nav{
        display:none;
    }
    .promo-card{
        padding:.85rem;
        min-height:430px;
    }
    .promo-card__title{
        min-height:3.45rem;
        -webkit-line-clamp:3;
    }
    .promo-card__price{
        min-height:4.55rem;
    }
}

/* =========================================================
   HOME: POPULAR TODAY
========================================================= */
.home-popular{
    position:relative;
    background:linear-gradient(140deg,rgba(var(--brand-rgb),.08),rgba(255,255,255,.95));
    border-top:1px solid rgba(var(--brand-rgb),.12);
    border-bottom:1px solid rgba(31,41,55,.08);
}
.home-popular__eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    font-size:.75rem;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--brand-2);
    background:rgba(var(--brand-rgb),.12);
    padding:.35rem .75rem;
    border-radius:999px;
}
.home-popular__grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:1.5rem;
}
.popular-card{
    position:relative;
    border-radius:1.25rem;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 18px 40px rgba(15,23,42,.08);
    padding:1.5rem 1.25rem 1.25rem;
    display:flex;
    flex-direction:column;
    transition:transform .2s ease, box-shadow .2s ease;
}
.popular-card:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
}
.popular-card__favorite{
    position:absolute;
    top:1.15rem;
    right:1.15rem;
    z-index:4;
}
.popular-card__labels{
    position:absolute;
    top:1.15rem;
    left:1.15rem;
    z-index:3;
}
.popular-card__badge{
    display:inline-flex;
    align-items:center;
    gap:.25rem;
    font-size:.75rem;
    font-weight:600;
    padding:.3rem .65rem;
    border-radius:999px;
    backdrop-filter:blur(10px);
    box-shadow:0 6px 18px rgba(15,23,42,.12);
    color:#0f172a;
}
.popular-card__badge--primary{
    background:linear-gradient(130deg,rgba(134,239,172,.9),rgba(74,222,128,.75));
    color:#0b3f1e;
}
.popular-card__badge--save{
    background:linear-gradient(135deg,rgba(252,231,243,.95),rgba(252,165,165,.9));
    color:#7f1d1d;
}
.popular-card__media{
    background:#fff;
    border-radius:1rem;
    margin:0 -.25rem 1.25rem;
    padding:1.25rem .75rem;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:170px;
}
.popular-card__body{
    display:flex;
    flex-direction:column;
    flex:1;
    min-height:0;
}
.popular-card__thumb{
    max-height:130px;
    width:100%;
    object-fit:contain;
}
.popular-card__meta{
    font-size:.8rem;
    color:var(--muted);
}
.popular-card__rank{
    font-weight:700;
    color:var(--brand-2);
}
.popular-card__hint{
    font-size:.75rem;
}
.popular-card__title{
    font-weight:600;
    color:#0f172a;
    margin-bottom:.35rem;
    line-height:1.3;
    word-break:break-word;
}
.popular-card__title:hover{
    color:var(--brand-2);
}
.popular-card__price{
    display:flex;
    flex-direction:column;
    gap:.2rem;
    font-size:.9rem;
    margin-bottom:.75rem;
    margin-top:auto;
}
.popular-card__footer{
    display:flex;
    flex-direction:column;
    gap:.55rem;
}
.popular-card__price-net{
    font-size:1.05rem;
    font-weight:700;
    color:var(--brand-2);
}
.popular-card__price-gross{
    font-size:.95rem;
    color:#475569;
}
.popular-card__price-orig{
    font-size:.85rem;
    color:var(--brand-2);
    text-decoration:line-through;
}
.popular-card__qty input{
    max-width:70px;
}
.popular-card__actions{
    display:flex;
    gap:.5rem;
}
.popular-card__actions .btn-outline-secondary{
    border-color:rgba(148,163,184,.5);
    color:rgba(71,85,105,1);
}
.popular-card__actions .btn-outline-secondary:hover{
    color:#0f172a;
    border-color:rgba(71,85,105,.85);
}

@media (max-width: 767.98px){
    .home-popular__grid{ grid-template-columns:1fr; }
    .popular-card{ padding:1.25rem; }
    .popular-card__media{ min-height:150px; }
}
.favorite-toggle--lg{
    width:auto;
    height:auto;
    padding:.35rem .9rem;
    gap:.5rem;
    font-weight:600;
    letter-spacing:.01em;
    border-radius:999px;
    box-shadow:none;
    border:1px solid rgba(15,23,42,.12);
    background:rgba(248,250,252,.95);
}
.favorite-toggle--lg .favorite-toggle__icon{
    opacity:1;
    font-size:1.05rem;
    position:static;
    transform:none;
}
.favorite-toggle--lg.is-active{
    background:rgba(220,38,38,.1);
    border-color:rgba(220,38,38,.4);
    color:#b91c1c;
}
.favorite-toggle__label{
    font-size:.85rem;
    white-space:nowrap;
}
.favorite-toggle__label--active{
    display:none;
}
.favorite-toggle.is-active .favorite-toggle__label--default{
    display:none;
}
.favorite-toggle.is-active .favorite-toggle__label--active{
    display:inline;
}
.favorite-toggle--floating{
    position:absolute;
    top:.6rem;
    right:.6rem;
    box-shadow:0 12px 24px rgba(15,23,42,.18);
}
.favorite-toggle--floating.is-active{
    color:#fff;
}
.favorite-toggle--standalone{
    border:1px solid rgba(15,23,42,.12);
    background:rgba(248,250,252,.95);
    color:var(--muted);
}
.favorite-toggle--standalone.is-active{
    background:rgba(220,38,38,.12);
    border-color:rgba(220,38,38,.4);
    color:#b91c1c;
}

.price{ font-weight:700; color:var(--brand-2); margin-bottom:.35rem; }
.price-stack{ display:flex; flex-direction:column; gap:.15rem; }
.price-line.price-gross{ font-size:1rem; line-height:1.1; }
.price-line.price-net{ font-size:.8rem; color:var(--muted); font-weight:600; }
.price-line.price-orig{ font-size:.75rem; color:var(--muted); text-decoration:line-through; font-weight:600; }
.price.price-promo .price-line.price-gross span[data-role="price-gross"]{ color:var(--brand); }
.price.price-promo .price-line.price-orig{ color:#ef4444; }
.badge-save{ background:var(--accent) }

.product-card__price .price-line.price-net{
    font-size:1.05rem;
    font-weight:700;
    color:var(--brand-2);
}
.product-card__price .price-line.price-gross{
    font-size:.95rem;
    color:#475569;
}
.product-card__price .price-line.price-orig{
    font-size:.85rem;
    color:var(--brand-2);
}

.product-actions{
    margin-top:auto; display:flex; align-items:center; justify-content:flex-end; gap:.5rem;
}
.qty-input{ width:80px; text-align:center; }

/* =========================================================
   PRODUCT DETAIL
========================================================= */
.product-detail-redesign{
    padding:1.4rem 0 4rem;
    background:
        radial-gradient(circle at 8% 10%, rgba(var(--accent-rgb),.2), transparent 30%),
        radial-gradient(circle at 92% 22%, rgba(var(--brand-rgb),.1), transparent 26%),
        var(--bg);
}
.product-detail-breadcrumb{
    display:flex;
    align-items:center;
    gap:.45rem;
    flex-wrap:wrap;
    margin-bottom:1rem;
    color:#6f5b76;
    font-size:.88rem;
}
.product-detail-breadcrumb a{
    display:inline-flex;
    align-items:center;
    gap:.3rem;
    color:#5f4767;
    text-decoration:none;
    font-weight:700;
}
.product-detail-breadcrumb a:hover{
    color:var(--brand);
}
.product-detail-hero{
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:1.5rem;
    min-height:210px;
    margin-bottom:1.5rem;
    padding:1.8rem;
    border-radius:1.35rem;
    color:#fff;
    background:
        linear-gradient(115deg,rgba(99,8,82,.96),rgba(240,55,70,.78)),
        url("../img/cartaco/boardgame-table.jpg") center/cover;
    box-shadow:0 24px 60px rgba(99,8,82,.18);
}
.product-detail-hero::after{
    content:"";
    position:absolute;
    right:2rem;
    top:-42px;
    width:120px;
    height:170px;
    border-radius:1rem;
    border:1px solid rgba(255,255,255,.2);
    background:rgba(255,255,255,.16);
    transform:rotate(12deg);
}
.product-detail-hero__copy{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    gap:1.1rem;
    max-width:760px;
}
.product-detail-hero__copy > div:not(.product-detail-hero__mark){
    min-width:0;
}
.product-detail-hero__mark{
    width:62px;
    height:86px;
    flex:0 0 auto;
    border-radius:.8rem;
    background:#fff;
    color:var(--brand);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:.55rem;
    box-shadow:0 16px 34px rgba(0,0,0,.22);
    transform:rotate(-7deg);
}
.product-detail-hero__mark span{
    font-weight:900;
    line-height:1;
}
.product-detail-hero__mark i{
    align-self:flex-end;
}
.product-detail-hero h1{
    margin:0;
    max-width:760px;
    font-size:clamp(1.75rem,2.3vw + 1rem,3.4rem);
    font-weight:900;
    line-height:1.04;
}
.product-detail-hero p{
    margin:.65rem 0 0;
    max-width:670px;
    color:rgba(255,255,255,.84);
    line-height:1.55;
}
.product-detail-hero__badges{
    position:relative;
    z-index:1;
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:.55rem;
    max-width:420px;
}
.product-detail-hero__badges span{
    display:inline-flex;
    align-items:center;
    gap:.38rem;
    border-radius:999px;
    padding:.48rem .7rem;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.18);
    color:#fff;
    font-size:.84rem;
    font-weight:800;
    backdrop-filter:blur(8px);
}
.product-detail-layout{
    align-items:start;
}
.product-detail-gallery{
    position:sticky;
    top:1rem;
    overflow:hidden;
    border-radius:1.3rem;
    padding:1.25rem;
    background:
        radial-gradient(circle at 15% 10%, rgba(var(--accent-rgb),.34), transparent 32%),
        linear-gradient(145deg,#fff7f8,#f1efff);
    border:1px solid rgba(99,8,82,.1);
    box-shadow:0 24px 60px rgba(99,8,82,.11);
}
.product-detail-gallery::after{
    content:"";
    position:absolute;
    right:1rem;
    bottom:1rem;
    width:48px;
    height:66px;
    border-radius:.55rem;
    border:1px solid rgba(99,8,82,.08);
    background:rgba(255,255,255,.58);
    transform:rotate(10deg);
}
.product-detail-gallery__label{
    position:relative;
    z-index:1;
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    margin-bottom:1rem;
    border-radius:999px;
    padding:.42rem .7rem;
    background:#fff;
    color:var(--brand-2);
    border:1px solid rgba(99,8,82,.1);
    box-shadow:0 10px 20px rgba(99,8,82,.08);
    font-size:.8rem;
    font-weight:850;
}
.product-detail-gallery__label i{
    color:var(--brand);
}
.product-detail-gallery__image{
    position:relative;
    z-index:1;
    aspect-ratio:1/1;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:1.05rem;
    padding:2rem;
    background:#fff;
    box-shadow:inset 0 0 0 1px rgba(99,8,82,.06), 0 18px 36px rgba(99,8,82,.08);
}
.product-detail-gallery__image img{
    width:100%;
    height:100%;
    object-fit:contain;
}
.product-detail-panel{
    border:1px solid rgba(99,8,82,.1);
    border-radius:1.25rem;
    padding:1.35rem;
    background:rgba(255,255,255,.9);
    box-shadow:0 22px 54px rgba(99,8,82,.09);
}
.product-detail-panel__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    margin-bottom:1rem;
}
.product-detail-panel__eyebrow{
    color:var(--brand);
    font-size:.78rem;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.product-detail-panel h2{
    margin:0;
    color:#24112f;
    font-weight:900;
    font-size:1.45rem;
}
.product-locked-card{
    display:flex;
    align-items:flex-start;
    gap:.85rem;
    margin-bottom:1rem;
    padding:1rem;
    border-radius:1rem;
    background:linear-gradient(135deg,rgba(var(--brand-rgb),.12),rgba(var(--accent-rgb),.22));
    border:1px solid rgba(var(--brand-rgb),.18);
    color:#5f4767;
}
.product-locked-card__icon{
    width:44px;
    height:44px;
    flex:0 0 auto;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    color:var(--brand);
    box-shadow:0 10px 22px rgba(99,8,82,.08);
}
.product-locked-card strong,
.product-locked-card span{
    display:block;
}
.product-locked-card strong{
    color:#24112f;
    margin-bottom:.25rem;
}
.product-locked-card--soft{
    background:#fff;
}
.product-detail-specs{
    margin-top:1rem;
}
.product-detail-specs dl{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem;
    margin:0;
}
.product-detail-specs dl > div{
    border:1px solid rgba(99,8,82,.1);
    border-radius:.9rem;
    padding:.85rem;
    background:#fff;
}
.product-detail-specs dt{
    color:#7c6a82;
    font-size:.78rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.product-detail-specs dd{
    margin:.2rem 0 0;
    color:#24112f;
    font-weight:850;
}

@media (max-width:991.98px){
    .product-detail-hero{
        flex-direction:column;
        align-items:flex-start;
    }
    .product-detail-hero__badges{
        justify-content:flex-start;
    }
    .product-detail-gallery{
        position:relative;
        top:auto;
    }
}
@media (max-width:575.98px){
    .product-detail-redesign{
        padding-top:1rem;
    }
    .product-detail-hero{
        padding:1.25rem;
        border-radius:1rem;
    }
    .product-detail-hero__copy{
        flex-direction:column;
        align-items:flex-start;
        min-width:0;
        width:100%;
        max-width:100%;
        gap:.75rem;
    }
    .product-detail-hero__copy > div:not(.product-detail-hero__mark){
        width:100%;
        max-width:100%;
    }
    .product-detail-hero__mark{
        width:46px;
        height:64px;
        border-radius:.65rem;
    }
    .product-detail-hero h1{
        font-size:1.28rem;
        line-height:1.08;
        overflow-wrap:anywhere;
        word-break:break-word;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }
    .product-detail-hero p{
        display:none;
    }
    .product-detail-hero__badges{
        width:100%;
        max-width:100%;
        flex-wrap:wrap;
        overflow:visible;
        padding-bottom:.15rem;
    }
    .product-detail-hero__badges span{
        flex:1 1 auto;
        justify-content:center;
    }
    .product-detail-hero__badges span:nth-child(n+4){
        display:none;
    }
    .product-detail-gallery,
    .product-detail-panel{
        padding:1rem;
        border-radius:1rem;
    }
    .product-detail-gallery__image{
        padding:1.2rem;
    }
    .product-detail-panel__top{
        flex-direction:column;
        align-items:flex-start;
    }
    .product-detail-panel__top .favorite-toggle--standalone{
        max-width:100%;
    }
    .product-detail-panel__top .favorite-toggle--standalone .favorite-toggle__label{
        display:none;
    }
    .product-locked-card{
        align-items:flex-start;
    }
    .product-detail-specs dl{
        grid-template-columns:1fr;
    }
}

/* =========================================================
   BUTTONS / CTAs
========================================================= */
.btn-brand{ background:var(--brand); border-color:var(--brand); color:#fff }
.btn-brand:hover{ background:var(--brand-2); border-color:var(--brand-2); color:#fff }
.btn.cart-readonly-btn,
.btn.cart-readonly-btn:disabled,
.btn.cart-readonly-btn.disabled{
    background:#f6dfe3;
    border-color:#e7aeb8;
    color:#7b1f31 !important;
    opacity:1;
    cursor:not-allowed;
    box-shadow:none;
}
.btn.cart-readonly-btn:hover,
.btn.cart-readonly-btn:focus{
    background:#f1cfd6;
    border-color:#dc9aa7;
    color:#6f1a2a !important;
}
.btn-outline-amber{
    color:var(--brand-2);
    border-color:rgba(var(--accent-rgb),.72);
    background:rgba(var(--accent-rgb),.18);
}
.btn-outline-amber:hover{
    color:var(--brand-2);
    border-color:rgba(var(--brand-rgb),.65);
    background:rgba(var(--brand-rgb),.12);
}
.btn-outline-success,
.btn-outline-danger{
    color:var(--brand-2) !important;
    border-color:rgba(var(--brand-rgb),.5) !important;
    background:#fff;
}
.btn-outline-success:hover,
.btn-outline-danger:hover{
    color:#fff !important;
    background:var(--brand) !important;
    border-color:var(--brand) !important;
}
.text-success,
.text-danger,
.text-warning{
    color:var(--brand-2) !important;
}
.text-bg-success,
.text-bg-danger,
.text-bg-warning{
    color:#fff !important;
    background-color:var(--brand) !important;
}
.text-bg-success-subtle,
.text-bg-danger-subtle,
.text-bg-warning-subtle,
.bg-success-subtle,
.bg-danger-subtle,
.bg-warning-subtle{
    color:var(--brand-2) !important;
    background-color:rgba(var(--brand-rgb),.12) !important;
}
.text-bg-primary-subtle{
    color:var(--brand-2) !important;
    background-color:rgba(var(--accent-rgb),.24) !important;
}

.modal-backdrop{
    background-color:rgba(15,23,42,.18);
    backdrop-filter:blur(1px);
}
.modal-backdrop.show{
    opacity:1;
}

#saveTemplateModal .modal-dialog{
    margin-top:4.5rem;
}
@media (min-width:768px){
    #saveTemplateModal .modal-dialog{
        margin-top:5.5rem;
    }
}
@media (min-width:1200px){
    #saveTemplateModal .modal-dialog{
        margin-top:6.25rem;
    }
}

.cart-action-stack{
    display:flex;
    flex-direction:column;
    gap:.75rem;
}
.cart-action-tile{
    border:1px solid rgba(15,23,42,.12);
    border-radius:1rem;
    padding:1rem 1.1rem;
    display:flex;
    align-items:center;
    gap:1rem;
    background:#fff;
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    cursor:pointer;
}
.cart-action-tile:focus,
.cart-action-tile:hover{
    border-color:rgba(var(--brand-rgb),.4);
    box-shadow:0 8px 24px rgba(15,23,42,.08);
    transform:translateY(-1px);
    text-decoration:none;
}
.cart-action-tile__icon{
    width:52px;
    height:52px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.35rem;
    background:rgba(var(--brand-rgb),.15);
    color:var(--brand);
}
.cart-action-tile__label{
    font-weight:600;
    color:#0f172a;
}
.cart-action-tile__hint{
    font-size:.85rem;
    color:#64748b;
    margin-top:.1rem;
}
.cart-action-tile--primary{
    border-color:rgba(var(--brand-rgb),.45);
}
.cart-action-tile--primary .cart-action-tile__icon{
    background:var(--brand);
    color:#fff;
}
.cart-action-tile--danger{
    border-color:rgba(220,38,38,.35);
}
.cart-action-tile--danger .cart-action-tile__icon{
    background:rgba(220,38,38,.15);
    color:#b91c1c;
}
.cart-action-tile--secondary{
    border-color:rgba(30,64,175,.25);
}
.cart-action-tile--secondary .cart-action-tile__icon{
    background:rgba(30,64,175,.15);
    color:#1d4ed8;
}

.checkout-submit-btn{
    border:0;
    border-radius:1.25rem;
    background:linear-gradient(135deg, var(--brand), var(--brand-2));
    color:#fff;
    padding:1rem 1.4rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    font-size:1.1rem;
    font-weight:600;
    box-shadow:0 18px 35px rgba(15,23,42,.18);
    transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
    border:1px solid rgba(255,255,255,.2);
    cursor:pointer;
}
.checkout-submit-btn__icon{
    width:56px;
    height:56px;
    border-radius:16px;
    background:rgba(255,255,255,.15);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.5rem;
}
.checkout-submit-btn__text{
    display:flex;
    flex-direction:column;
    text-align:left;
    flex:1;
}
.checkout-submit-btn__hint{
    font-size:.9rem;
    font-weight:400;
    opacity:.85;
}
.checkout-submit-btn__chevron{
    font-size:1.5rem;
}
.checkout-submit-btn:hover,
.checkout-submit-btn:focus-visible{
    transform:translateY(-2px);
    box-shadow:0 20px 40px rgba(15,23,42,.22);
    opacity:.95;
}
.checkout-submit-btn:focus-visible{
    outline:3px solid rgba(255,255,255,.4);
    outline-offset:4px;
}
.checkout-submit-btn i{
    line-height:1;
}

.saved-carts-modal .modal-content{
    border-radius:1.25rem;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 25px 60px rgba(15,23,42,.12);
}
.saved-carts-modal .modal-header{
    border-bottom:1px solid rgba(15,23,42,.06);
}
.saved-carts-filter .input-group-text{
    background:rgba(15,23,42,.04);
}
.saved-carts-filter .btn{
    border-color:rgba(15,23,42,.1);
}
.saved-carts-modal .modal-title i{
    color:var(--brand);
}
.saved-carts-list{
    display:flex;
    flex-direction:column;
    gap:.75rem;
}
.saved-carts-list .list-group-item{
    border:1px solid rgba(15,23,42,.08);
    border-radius:1rem;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
}
.saved-cart__title{
    font-weight:600;
    color:#0f172a;
}
.saved-cart__meta{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem;
    margin:.35rem 0 .5rem;
}
.saved-cart__preview{
    list-style:none;
    padding-left:1rem;
    color:#475569;
}
.saved-cart__apply{
    border-color:rgba(var(--brand-rgb),.35);
}
.saved-cart__apply i{
    line-height:1;
}
.saved-cart__apply:hover,
.saved-cart__apply:focus-visible{
    border-color:var(--brand);
    color:var(--brand);
}

/* =========================================================
   NAV USER MENU
========================================================= */
.user-menu-toggle{
    gap:.65rem;
}
.user-menu-toggle .user-initial{
    width:36px;
    height:36px;
    border-radius:999px;
    background:linear-gradient(135deg,rgba(var(--brand-rgb),1),rgba(var(--brand-2-rgb),.78));
    color:#fff;
    font-size:1.1rem;
    box-shadow:0 8px 24px rgba(15,23,42,.15);
}
.user-menu-toggle .user-initial i{
    line-height:1;
}
.user-menu{
    min-width:280px;
    border-radius:1rem;
    overflow:hidden;
}
.user-menu__header{
    padding:1.1rem 1.25rem;
    background:linear-gradient(135deg,#f8fafc,#ecfdf5);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
}
.user-menu__title{
    font-weight:700;
    font-size:1rem;
    color:#0f172a;
}
.user-menu__subtitle{
    font-size:.85rem;
    color:rgba(71,85,105,.9);
}
.user-menu__body{
    padding:.5rem;
    display:flex;
    flex-direction:column;
    gap:.35rem;
}
.user-menu__item{
    display:flex;
    gap:.75rem;
    padding:.8rem .9rem;
    border-radius:.9rem;
    text-decoration:none;
    color:inherit;
    transition:background .2s, transform .2s;
}
.user-menu__item:hover{
    background:#f8fafc;
    transform:translateX(2px);
}
.user-menu__icon{
    width:36px;
    height:36px;
    border-radius:.9rem;
    background:rgba(var(--brand-rgb),.12);
    color:var(--brand);
    display:grid;
    place-items:center;
    font-size:1.1rem;
    flex:0 0 auto;
}
.user-menu__item-title{
    font-weight:600;
    font-size:.95rem;
    color:#0f172a;
}
.user-menu__item-sub{
    font-size:.8rem;
    color:var(--muted);
}
.user-menu__footer{
    padding:1rem 1.25rem;
    border-top:1px solid rgba(148,163,184,.2);
    background:#fff;
}

/* =========================================================
   PROFILE PAGE
========================================================= */
.profile-hero{
    background:linear-gradient(135deg,#f1f5f9,#ecfdf5);
    padding:2.4rem 0 2rem;
}
.profile-hero__card{
    background:#fff;
    border-radius:1.1rem;
    padding:1.65rem 1.9rem;
    display:flex;
    align-items:flex-start;
    gap:1.25rem;
    position:relative;
    box-shadow:0 12px 28px rgba(15,23,42,.07);
}
.profile-hero__avatar{
    width:56px;
    height:56px;
    border-radius:1.1rem;
    background:linear-gradient(155deg,rgba(var(--brand-rgb),1),rgba(var(--brand-2-rgb),.86),rgba(var(--accent-rgb),.7));
    color:#fff;
    font-size:1.45rem;
    display:grid;
    place-items:center;
    font-weight:700;
}
.profile-hero__content{
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
    gap:1rem;
}
.profile-hero__tag{
    font-weight:600;
    color:#0f172a;
}
.profile-hero__title{
    font-size:1.65rem;
    font-weight:700;
    margin:0;
    color:#0f172a;
}
.profile-hero__subtitle{
    margin:0;
    font-size:1rem;
    color:var(--muted);
}
.profile-hero__meta{
    display:flex;
    flex-wrap:wrap;
    gap:.85rem 1.4rem;
}
.profile-meta__label{
    display:block;
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:rgba(100,116,139,.8);
}
.profile-meta__value{
    font-size:1rem;
    font-weight:600;
    color:#0f172a;
}
.profile-hero__status{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:.4rem;
}

.profile-section{
    background:#fff;
    padding:2rem 0 5.5rem;
}
.profile-card{
    background:#fff;
    border-radius:1.05rem;
    border:1px solid rgba(148,163,184,.14);
    box-shadow:0 10px 22px rgba(15,23,42,.06);
    display:flex;
    flex-direction:column;
    height:100%;
}
.profile-card--highlight{
    border-color:rgba(var(--brand-rgb),.16);
    box-shadow:0 16px 34px rgba(15,23,42,.08);
    background:linear-gradient(135deg,rgba(248,250,252,1),rgba(240,253,244,.9));
}
.profile-card__header{
    padding:1.3rem 1.45rem 1.1rem;
    display:flex;
    align-items:center;
    gap:1rem;
    border-bottom:1px solid rgba(148,163,184,.16);
}
.profile-card__icon{
    width:38px;
    height:38px;
    border-radius:.9rem;
    display:grid;
    place-items:center;
    font-size:1.1rem;
}
.profile-card__title{
    margin:0;
    font-size:1.1rem;
    font-weight:700;
    color:#0f172a;
}
.profile-card__subtitle{
    margin:0;
    font-size:.9rem;
    color:var(--muted);
}
.profile-card__body{
    padding:1.2rem 1.45rem;
    display:flex;
    flex-direction:column;
    gap:1rem;
}
.profile-card__footer{
    padding:.9rem 1.45rem;
    border-top:1px solid rgba(148,163,184,.16);
    display:flex;
    gap:.75rem;
    flex-wrap:wrap;
    background:rgba(248,250,252,.8);
}
.profile-detail{
    display:flex;
    flex-direction:column;
    gap:.35rem;
}
.profile-detail__label{
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:rgba(100,116,139,.9);
}
.profile-detail__value{
    font-size:.9rem;
    font-weight:600;
    color:#0f172a;
}
.profile-detail__value a{
    color:inherit;
    text-decoration:none;
}
.profile-detail__value a:hover{
    text-decoration:underline;
}

.profile-action-list{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:1.25rem;
}
.profile-action-list li{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
    padding-bottom:.9rem;
    border-bottom:1px solid rgba(148,163,184,.18);
}
.profile-action-list li:last-child{
    border-bottom:0;
    padding-bottom:0;
}
.profile-action-list h3{
    margin:0 0 .4rem;
    font-size:.98rem;
    font-weight:700;
    color:#0f172a;
}
.profile-action-list p{
    margin:0;
    color:var(--muted);
    font-size:.86rem;
}

@media (max-width: 991.98px){
    .profile-hero{
        padding:2.25rem 0 2rem;
    }
    .profile-hero__card{
        flex-direction:column;
        align-items:flex-start;
        gap:1.5rem;
    }
    .profile-hero__status{
        flex-direction:row;
        gap:.6rem;
    }
}
@media (max-width: 575.98px){
    .profile-hero__card{
        padding:2rem 1.75rem;
    }
    .profile-hero__meta{
        gap:1rem;
    }
    .profile-action-list li{
        flex-direction:column;
        align-items:flex-start;
    }
.profile-card__footer{
        flex-direction:column;
        align-items:stretch;
    }
}

/* =========================================================
   PROFILE PAGE (NEW LAYOUT)
========================================================= */
.profile-page{
    background:#f8fafc;
}
.profile-breadcrumb a{ text-decoration:none; }
.profile-summary{ border-radius:1rem; }
.profile-summary__avatar{
    width:56px; height:56px;
    border-radius:1rem;
    background:linear-gradient(135deg,rgba(var(--brand-rgb),1),rgba(var(--brand-2-rgb),.78));
    color:#fff; display:grid; place-items:center;
    font-weight:700; font-size:1.4rem;
}
.profile-summary__label{
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:rgba(71,85,105,.8);
}
.profile-summary__title{
    font-size:1.5rem;
    font-weight:700;
    margin:0;
    color:#0f172a;
}
.profile-summary__meta .badge{
    font-weight:500;
}

.profile-tile{
    border-radius:1rem;
}
.profile-tile__header{
    display:flex;
    align-items:center;
    gap:.8rem;
}
.profile-tile__icon{
    width:38px; height:38px;
    border-radius:.9rem;
    display:grid; place-items:center;
    font-size:1.1rem;
}
.profile-tile__title{
    font-size:1.05rem;
    font-weight:700;
    margin:0;
    color:#0f172a;
}
.profile-tile__subtitle{
    margin:0;
    font-size:.88rem;
    color:var(--muted);
}
.profile-tile__list{
    margin:0;
}
.profile-tile__list div{
    margin-bottom:1rem;
}
.profile-tile__list div:last-child{
    margin-bottom:0;
}
.profile-tile__list dt{
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:rgba(100,116,139,.9);
}
.profile-tile__list dd{
    margin:0;
    font-size:.92rem;
    font-weight:600;
    color:#0f172a;
}
.profile-tile__list a{
    text-decoration:none;
}
.profile-tile__list a:hover{
    text-decoration:underline;
}

.profile-field{
    background:#fff;
    padding:1rem;
    border:1px solid rgba(148,163,184,.16);
    border-radius:.9rem;
    height:100%;
}
.profile-field__label{
    display:block;
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:rgba(100,116,139,.9);
}
.profile-field__value{
    font-size:.98rem;
    font-weight:600;
    color:#0f172a;
    margin-top:.35rem;
}
.profile-note{
    background:#f1f5f9;
    border-radius:.85rem;
    padding:.85rem 1rem;
    font-size:.85rem;
    color:var(--muted);
}
.profile-order-stats{
    display:flex;
    gap:1.5rem;
}
.profile-order-stats > div{
    display:flex;
    flex-direction:column;
    gap:.25rem;
}
.profile-orders-table th{
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:rgba(100,116,139,.9);
}
.profile-orders-table td{
    font-size:.9rem;
    color:#0f172a;
}

.profile-actions{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:1.2rem;
}
.profile-actions li{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:1rem;
    border-bottom:1px solid rgba(148,163,184,.18);
    padding-bottom:1rem;
}
.profile-actions li:last-child{
    border-bottom:0;
    padding-bottom:0;
}
.profile-actions h3{
    margin:0 0 .4rem;
    font-size:.98rem;
    font-weight:700;
    color:#0f172a;
}
.profile-actions p{
    margin:0;
    font-size:.86rem;
    color:var(--muted);
}

@media (max-width: 991.98px){
    .profile-summary__title{ font-size:1.35rem; }
    .profile-order-stats{flex-direction:column;}
}
@media (max-width: 575.98px){
    .profile-actions li{ flex-direction:column; align-items:flex-start; }
    .profile-summary__avatar{ width:50px; height:50px; }
}

.profile-pagination .page-link{
    border-radius:.75rem;
    border:1px solid rgba(148,163,184,.2);
    background:#fff;
    color:#0f172a;
    box-shadow:0 6px 14px rgba(15,23,42,.06);
    transition:all .2s ease;
}
.profile-pagination .page-link:hover{
    border-color:rgba(var(--brand-rgb),.4);
    color:var(--brand);
}
.profile-pagination .page-item.active .page-link{
    background:var(--brand);
    color:#fff;
    border-color:var(--brand);
    box-shadow:0 8px 16px rgba(var(--brand-rgb),.25);
}
.profile-pagination .page-item.disabled .page-link{
    opacity:.6;
    box-shadow:none;
}

.profile-related-list{
    display:flex;
    flex-direction:column;
    gap:1rem;
}
.profile-related-item{
    border:1px solid rgba(148,163,184,.18);
    border-radius:.9rem;
    padding:1rem;
    background:#fff;
}



/* =========================================================
   PAGINATION / PAGER
========================================================= */
.pager-wrap.top{
    position:static; top:auto; z-index:101; background:#fff;
    border:1px solid var(--border); border-radius:var(--radius);
    padding:.5rem .75rem; margin-bottom:.75rem;
}
.pager-wrap.bottom{
    border-top:1px solid var(--border);
    margin-top:1rem; padding-top:.75rem;
}
.pagination .page-link{ border-radius:var(--radius-sm); }
.pagination .page-item.active .page-link{
    background-color:var(--brand);
    border-color:var(--brand);
}

/* =========================================================
   MEGA MENU
========================================================= */
.mega-menu-item{
    padding:0;
    min-width:860px;
    max-width:1180px;
}
.mega-grid{
    display:grid;
    grid-template-columns:310px minmax(0,1fr);
    gap:1.5rem;
    padding:1.75rem;
    background:#fff;
    border-radius:1.25rem;
    border:1px solid var(--border);
    box-shadow:var(--shadow-md);
}
.mega-sidebar{
    display:flex;
    flex-direction:column;
    gap:1rem;
    padding:1rem;
    border-radius:1rem;
    background:linear-gradient(160deg,rgba(var(--brand-rgb),.12),rgba(var(--brand-rgb),0));
    border:1px solid rgba(var(--brand-rgb),.12);
}
.mega-sidebar-header{
    display:flex;
    align-items:center;
    gap:.75rem;
}
.mega-sidebar-header .icon-circle{
    width:42px;
    height:42px;
    border-radius:999px;
    background:var(--brand);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:1.1rem;
}
.mega-sidebar-header .title{
    margin:0;
    font-weight:700;
    font-size:1rem;
}
.mega-sidebar-header .subtitle{
    margin:0;
    font-size:.8rem;
    color:var(--muted);
}
.mega-root-list{
    display:flex;
    flex-direction:column;
    gap:.35rem;
    max-height:420px;
    overflow-y:auto;
    padding-right:.3rem;
}
.mega-root-link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    padding:.65rem .75rem;
    border-radius:.85rem;
    text-decoration:none;
    color:#111;
    border:1px solid transparent;
    transition:all .18s ease;
    font-weight:600;
}
.mega-root-link .label{
    display:flex;
    align-items:center;
    gap:.55rem;
    flex:1 1 auto;
}
.mega-root-link .bullet{
    width:10px;
    height:10px;
    border-radius:999px;
    background:rgba(var(--brand-rgb),.2);
    border:2px solid transparent;
    transition:all .18s ease;
}
.mega-root-link i{ opacity:.5; transition:transform .18s ease, opacity .18s ease; }
.mega-root-link:hover{
    background:rgba(var(--brand-rgb),.08);
    border-color:rgba(var(--brand-rgb),.25);
}
.mega-root-link:hover .bullet{ border-color:var(--brand); }
.mega-root-link.active{
    background:#fff;
    border-color:var(--brand);
    box-shadow:0 8px 18px rgba(var(--brand-rgb),.15);
    color:#0f172a;
}
.mega-root-link.active .bullet{
    background:var(--brand);
    border-color:var(--brand);
}
.mega-root-link.active i{
    opacity:1;
    transform:translateX(4px);
}
.mega-sidebar-footer .btn{
    font-weight:600;
}
.mega-content{
    position:relative;
    min-height:380px;
}
.mega-subpanel{
    display:none;
    flex-direction:column;
    gap:1rem;
}
.mega-subpanel.show{ display:flex; }
.mega-subpanel.d-none{ display:none!important; }
.mega-subpanel-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:1rem;
    padding-bottom:.5rem;
    border-bottom:1px solid rgba(148,163,184,.2);
}
.mega-subpanel-header h3{
    font-weight:700;
}
.mega-subgrid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:.85rem;
}
.mega-subcard{
    display:flex;
    align-items:center;
    gap:.75rem;
    padding:.65rem .75rem;
    border-radius:.9rem;
    background:#f8fafc;
    border:1px solid transparent;
    text-decoration:none;
    color:inherit;
    transition:all .18s ease;
}
.mega-subcard:hover{
    border-color:rgba(var(--brand-rgb),.35);
    background:#fff;
    box-shadow:var(--shadow-sm);
    transform:translateY(-2px);
}
.mega-subcard .thumb{
    width:42px;
    height:42px;
    border-radius:.8rem;
    background:#fff;
    overflow:hidden;
    flex:0 0 auto;
    box-shadow:0 4px 12px rgba(15,23,42,.08);
}
.mega-subcard .thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.mega-subcard .info{
    display:flex;
    flex-direction:column;
    gap:.1rem;
    overflow:hidden;
}
.mega-subcard .name{
    font-weight:600;
    font-size:.95rem;
}
.mega-subcard .cta{
    color:var(--muted);
}
.mega-subpanel-empty{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.75rem;
    padding:2.5rem 1rem;
    border-radius:1rem;
    background:rgba(15,23,42,.04);
    color:var(--muted);
    font-size:.9rem;
}
.mega-subpanel-empty i{ font-size:1.5rem; }

.mega-dropdown .dropdown-menu{
    border-radius:1.5rem;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 24px 60px rgba(15,23,42,.18);
    padding:0;
    background:#f8fafc;
    width:auto;
    min-width:860px;
    max-width:1180px;
}

/* =========================================================
   CATEGORY PAGE
========================================================= */
.category-hero{
    position:relative;
    overflow:hidden;
    padding:2.2rem 2.3rem;
    border-radius:1.25rem;
    background:
        linear-gradient(120deg,rgba(99,8,82,.94),rgba(240,55,70,.82)),
        url("../img/cartaco/boardgame-table.jpg") center/cover no-repeat;
    border:1px solid rgba(255,255,255,.25);
    box-shadow:0 24px 56px rgba(99,8,82,.2);
    color:#fff;
}
.category-hero::after,
.catalog-hero::after,
.search-hero::after{
    content:"";
    position:absolute;
    width:150px;
    height:210px;
    right:2rem;
    bottom:-130px;
    border-radius:1.1rem;
    border:1px solid rgba(255,255,255,.22);
    background:rgba(255,255,255,.08);
    transform:rotate(11deg);
    pointer-events:none;
}
.category-hero__breadcrumbs{
    display:flex;
    align-items:center;
    gap:.65rem;
    font-size:.85rem;
    margin-bottom:1rem;
    flex-wrap:wrap;
}
.category-hero__breadcrumbs .crumb{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    color:rgba(255,255,255,.88);
    font-weight:600;
    text-decoration:none;
}
.category-hero__breadcrumbs .crumb i{
    font-size:1rem;
    color:#c3c3f4;
}
.category-hero__breadcrumbs .crumb.current{
    color:#fff;
}
.category-hero__breadcrumbs .separator{
    color:rgba(255,255,255,.52);
}
.category-hero__body{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
}
.category-hero__title{
    font-size:clamp(1.6rem,2vw + .6rem,2.4rem);
    font-weight:900;
    margin-bottom:.5rem;
    letter-spacing:0;
    color:#fff;
}
.category-hero__meta{
    font-size:.9rem;
    color:rgba(255,255,255,.8)!important;
}
.category-hero__cta .badge{
    font-size:.8rem;
    background:rgba(255,255,255,.14)!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.22)!important;
}
.category-section-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
}
.category-section-header .title{
    font-weight:700;
    font-size:1.1rem;
    color:#24112f;
}
.category-section-header .subtitle{
    font-size:.85rem;
}
.category-subsection{
    padding:1.65rem;
    border-radius:1.1rem;
    background:
        radial-gradient(circle at top right, rgba(var(--accent-rgb),.22), transparent 38%),
        #fff;
    border:1px solid rgba(99,8,82,.1);
    box-shadow:0 16px 36px rgba(99,8,82,.08);
}
.category-subgrid{
    margin-top:1.25rem;
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:1rem;
}
.category-subcard{
    display:flex;
    gap:.75rem;
    align-items:center;
    padding:.85rem;
    border-radius:1rem;
    border:1px solid rgba(99,8,82,.1);
    background:linear-gradient(160deg,#fff,#fbf8ff);
    text-decoration:none;
    color:inherit;
    transition:all .18s ease;
}
.category-subcard:hover{
    border-color:rgba(var(--brand-rgb),.45);
    box-shadow:0 18px 36px rgba(99,8,82,.12);
    transform:translateY(-2px);
}
.category-subcard .thumb{
    width:48px;
    height:48px;
    border-radius:1rem;
    overflow:hidden;
    background:linear-gradient(145deg,#fde7eb,#f1efff);
    flex:0 0 auto;
    box-shadow:0 8px 18px rgba(99,8,82,.12);
}
.category-subcard .thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.category-subcard .info{
    display:flex;
    flex-direction:column;
    gap:.1rem;
    overflow:hidden;
}
.category-subcard .name{
    font-weight:600;
    color:#24112f;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    line-height:1.22;
}
.category-subcard .cta{
    font-size:.78rem;
    color:var(--brand-2)!important;
}
.category-pagination{
    display:flex;
    justify-content:flex-end;
}
.category-pagination .pager-wrap{
    margin-bottom:0;
}

.catalog-page,
.search-page{
    background:
        radial-gradient(circle at 8% 0%, rgba(var(--accent-rgb),.2), transparent 28%),
        linear-gradient(180deg,#fbf8ff 0%,#fff 340px);
}
.catalog-hero,
.search-hero{
    position:relative;
    overflow:hidden;
    padding:2rem 2.2rem;
    border-radius:1.25rem;
    background:
        linear-gradient(120deg,rgba(99,8,82,.96),rgba(240,55,70,.84)),
        url("../img/cartaco/playing-cards-flatlay.jpg") center/cover no-repeat;
    color:#fff;
    box-shadow:0 24px 56px rgba(99,8,82,.2);
}
.catalog-hero__body,
.search-hero__body{
    position:relative;
    z-index:1;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:1.4rem;
}
.catalog-hero__body > div,
.search-hero__body > div{
    min-width:0;
}
.catalog-hero__title,
.search-hero__title{
    font-size:clamp(2rem,2.6vw + .9rem,3.6rem);
    line-height:1;
    font-weight:900;
    color:#fff;
    margin:0 0 .7rem;
}
.catalog-hero__lead,
.search-hero__lead{
    max-width:680px;
    color:rgba(255,255,255,.84);
    line-height:1.6;
}
.catalog-hero__count{
    flex:0 0 auto;
    min-width:132px;
    border-radius:1rem;
    padding:1rem;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.22);
    text-align:center;
    backdrop-filter:blur(8px);
}
.catalog-hero__count strong{
    display:block;
    font-size:2rem;
    line-height:1;
}
.catalog-hero__count span{
    display:block;
    margin-top:.25rem;
    color:rgba(255,255,255,.78);
    font-size:.85rem;
}
.product-filters,
.category-filter{
    border:1px solid rgba(99,8,82,.12)!important;
    border-radius:1.1rem!important;
    background:
        radial-gradient(circle at top right, rgba(var(--accent-rgb),.22), transparent 36%),
        #fff!important;
    box-shadow:0 16px 36px rgba(99,8,82,.08)!important;
}
.product-filters .card-body{
    padding:1.25rem;
}
.product-filters .input-group-text,
.search-hero .input-group-text{
    border-color:rgba(99,8,82,.12);
    background:#f1efff;
    color:var(--brand-2);
}
.product-filters .form-control,
.product-filters .form-select,
.search-hero .form-control{
    border-color:rgba(99,8,82,.12);
}
.product-filters .form-control:focus,
.product-filters .form-select:focus,
.search-hero .form-control:focus{
    border-color:rgba(var(--brand-rgb),.55);
    box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.12);
}
.product-filters .row.g-2 .col{
    flex:0 0 100%;
    max-width:100%;
}
.product-filters .input-group{
    flex-wrap:nowrap;
}
.product-filters .input-group-text{
    min-width:54px;
    justify-content:center;
}
.category-filter{
    padding:1.25rem;
}
.category-filter__list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:.5rem;
}
.category-filter__link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
    padding:.65rem .75rem;
    border-radius:.75rem;
    border:1px solid rgba(99,8,82,.08);
    color:#24112f;
    text-decoration:none;
    background:rgba(255,255,255,.72);
    transition:background .15s ease, border-color .15s ease, transform .15s ease;
}
.category-filter__link:hover,
.category-filter__link:focus-visible,
.category-filter__link.active{
    background:#f1efff;
    border-color:rgba(var(--brand-rgb),.35);
    color:var(--brand-2);
    transform:translateY(-1px);
}
.category-filter__count{
    min-width:2.35rem;
    padding:.16rem .5rem;
    border-radius:999px;
    background:rgba(var(--brand-rgb),.12);
    color:var(--brand-2);
    text-align:center;
    font-size:.75rem;
    font-weight:800;
}
.category-filter__intro{
    color:#6f5b76;
    font-size:.82rem;
}
.search-hero__form{
    flex:0 1 560px;
    min-width:320px;
}
.search-results-grid .product-card{
    height:100%;
}
.search-results-grid .product-card__media .ratio{
    border-radius:1rem;
    background:
        radial-gradient(circle at 20% 16%, rgba(var(--accent-rgb),.35), transparent 32%),
        linear-gradient(145deg,#fff7f8,#f1efff)!important;
    padding:.75rem;
}
.search-results-grid .product-card__media img{
    width:100%;
    height:100%;
    object-fit:contain;
}
.search-results-grid .product-card__title{
    min-height:3.4rem;
}
.search-results-grid .price-net--highlight{
    color:var(--brand-2);
    font-weight:800;
}
.search-results-grid .price-label,
.search-results-grid .price-gross--support,
.search-results-grid .product-card__qtyinfo{
    color:#6f5b76;
}
.search-qty-group{
    width:120px;
}
.search-qty-group input[type="number"]{
    min-width:0;
}

@media (max-width: 767px){
    .category-hero{
        padding:1.25rem 1.5rem;
    }
    .category-subsection{
        padding:1.25rem;
    }
    .category-subgrid{
        grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
    }
    .category-pagination{
        justify-content:center;
    }
    .catalog-hero,
    .search-hero{
        padding:1.5rem;
    }
    .catalog-hero__title,
    .search-hero__title{
        font-size:2rem;
        line-height:1.08;
        overflow-wrap:anywhere;
        word-break:break-word;
    }
    .catalog-hero__body,
    .search-hero__body{
        flex-direction:column;
        align-items:stretch;
    }
    .catalog-hero__count{
        width:100%;
        text-align:left;
    }
    .search-hero__form{
        flex:0 1 auto;
        min-width:0;
        width:100%;
    }
    .search-hero .input-group{
        display:grid;
        grid-template-columns:auto minmax(0,1fr);
    }
    .search-hero .input-group-text{
        border-radius:.75rem 0 0 .75rem;
    }
    .search-hero .form-control{
        border-radius:0 .75rem .75rem 0!important;
        min-width:0;
        width:100%;
    }
    .search-hero .btn{
        grid-column:1 / -1;
        width:100%;
        margin-top:.65rem;
        border-radius:.75rem!important;
        padding-left:.85rem;
        padding-right:.85rem;
    }
    .catalog-hero__lead,
    .search-hero__lead{
        width:100%;
        max-width:100%;
        overflow-wrap:anywhere;
        word-break:break-word;
    }
}

/* =========================================================
   HOME PAGE
========================================================= */
.home-hero{
    position:relative;
    overflow:hidden;
    padding:3.4rem 0 2.4rem;
    background:
        linear-gradient(115deg, rgba(99,8,82,.96) 0%, rgba(99,8,82,.88) 42%, rgba(240,55,70,.84) 100%),
        url("../img/cartaco/playing-cards-flatlay.jpg") center/cover no-repeat;
    color:#fff;
}
.home-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 14% 16%, rgba(195,195,244,.24), transparent 28%),
        radial-gradient(circle at 88% 12%, rgba(255,255,255,.18), transparent 26%);
    pointer-events:none;
}
.home-hero::after{
    content:"";
    position:absolute;
    width:190px;
    height:260px;
    right:5%;
    bottom:-150px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:1.35rem;
    transform:rotate(12deg);
    background:rgba(255,255,255,.08);
    pointer-events:none;
}
.home-hero__grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(360px,42%);
    gap:3rem;
    align-items:center;
}
.home-hero__content{
    min-width:0;
}
.home-hero__title{
    font-size:clamp(2.5rem,3.8vw + 1rem,5.3rem);
    font-weight:900;
    max-width:760px;
    margin:0 0 1rem;
    letter-spacing:0;
    line-height:.94;
}
.home-hero__title .accent{
    color:#c3c3f4;
}
.home-hero__subtitle{
    font-size:1.12rem;
    max-width:620px;
    color:rgba(255,255,255,.86);
    line-height:1.65;
}
.home-hero__actions{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    margin:1.75rem 0 1.35rem;
}
.home-hero__proof{
    display:flex;
    flex-wrap:wrap;
    gap:.7rem;
}
.home-hero__proof span{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    padding:.55rem .85rem;
    background:rgba(255,255,255,.1);
    color:rgba(255,255,255,.9);
    font-size:.92rem;
    backdrop-filter:blur(8px);
}
.home-hero__proof i{
    color:#c3c3f4;
}
.home-hero .btn-outline-amber{
    color:#fff !important;
    border-color:rgba(255,255,255,.58) !important;
    background:rgba(255,255,255,.08);
}
.home-hero .btn-outline-amber:hover{
    color:#24112f !important;
    background:#fff !important;
    border-color:#fff !important;
}
.home-hero__stats{
    display:flex;
    flex-wrap:wrap;
    gap:1.5rem;
}
.home-hero__stats .stat{
    display:flex;
    flex-direction:column;
    gap:.25rem;
}
.home-hero__stats .stat__value{
    font-size:1.75rem;
    font-weight:800;
}
.home-hero__stats .stat__label{
    font-size:.85rem;
    color:#475569;
}
.home-hero__visual{
    justify-content:flex-end;
}
.home-hero__tableau{
    position:relative;
    width:min(100%,520px);
    min-height:430px;
}
.home-hero__photo{
    position:absolute;
    inset:1.5rem 1.25rem 4.5rem 0;
    border:10px solid rgba(255,255,255,.9);
    border-radius:1.35rem;
    overflow:hidden;
    box-shadow:0 28px 70px rgba(0,0,0,.32);
    transform:rotate(-3deg);
    background:#fff;
}
.home-hero__photo img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.home-hero__playing-card{
    position:absolute;
    width:112px;
    height:154px;
    border-radius:1rem;
    background:#fff;
    color:var(--brand-2);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:.75rem;
    box-shadow:0 18px 42px rgba(0,0,0,.26);
    border:1px solid rgba(99,8,82,.12);
}
.home-hero__playing-card img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:inherit;
}
.home-hero__playing-card span{
    font-size:1.45rem;
    line-height:1;
    font-weight:900;
}
.home-hero__playing-card i{
    font-size:2rem;
    align-self:flex-end;
}
.home-hero__playing-card--red{
    top:0;
    right:.5rem;
    color:var(--brand);
    transform:rotate(9deg);
}
.home-hero__playing-card--brand{
    top:-.5rem;
    right:.35rem;
    padding:0;
    overflow:hidden;
    color:var(--brand);
    transform:rotate(8deg);
}
.home-hero__playing-card--violet{
    left:1.35rem;
    bottom:1.4rem;
    transform:rotate(-11deg);
}
.home-hero__caption{
    position:absolute;
    right:0;
    bottom:0;
    max-width:330px;
    border-radius:1rem;
    padding:1rem 1.1rem;
    background:rgba(255,255,255,.94);
    color:#24112f;
    box-shadow:0 20px 50px rgba(0,0,0,.24);
}
.home-hero__caption strong,
.home-hero__caption span{
    display:block;
}
.home-hero__caption strong{
    color:var(--brand-2);
    margin-bottom:.25rem;
}
.home-hero__caption span{
    font-size:.9rem;
    color:#5f4767;
    line-height:1.45;
}
.home-play-strip{
    background:#fff;
}
.home-play-strip__grid{
    display:grid;
    grid-template-columns:minmax(280px,38%) minmax(0,1fr);
    gap:2rem;
    align-items:center;
    padding:1rem 0;
}
.home-play-strip__media{
    height:240px;
    border-radius:1.1rem;
    overflow:hidden;
    box-shadow:0 22px 44px rgba(15,23,42,.14);
}
.home-play-strip__media img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.home-play-strip__content{
    padding:1.25rem 0;
}
.home-play-strip__content h2{
    font-size:clamp(1.45rem,1.4vw + 1rem,2.25rem);
    font-weight:900;
    color:#24112f;
    margin-bottom:.65rem;
}
.home-play-strip__content p{
    max-width:720px;
    color:#5f4767;
    line-height:1.65;
    margin-bottom:1rem;
}
.home-play-strip__steps{
    display:flex;
    flex-wrap:wrap;
    gap:.7rem;
}
.home-play-strip__steps span{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.58rem .82rem;
    border-radius:.75rem;
    background:#f1efff;
    color:var(--brand-2);
    font-weight:700;
}

.home-feature-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:1rem;
}
.home-feature{
    border-radius:1rem;
   background:#fff;
    border:1px solid rgba(148,163,184,.25);
    padding:1.25rem;
    box-shadow:0 10px 24px rgba(15,23,42,.06);
    display:flex;
    flex-direction:column;
    gap:.6rem;
}
.home-favorite-card{
    border-radius:1.5rem;
    background:linear-gradient(135deg, rgba(var(--accent-rgb),.36), rgba(255,248,248,.94));
    border:1px solid rgba(var(--brand-rgb),.18);
    box-shadow:0 22px 40px rgba(var(--brand-rgb),.14);
}
.home-favorite-card .card-body{
    padding:2rem;
}
.favorite-card__icon{
    width:64px;
    height:64px;
    font-size:1.55rem;
    box-shadow:0 16px 32px rgba(249,115,22,.28);
}
@media (max-width: 991.98px){
    .home-favorite-card .card-body{
        padding:1.5rem;
    }
    .favorite-card__icon{
        width:52px;
        height:52px;
        font-size:1.35rem;
    }
}
.home-feature h3{
    font-size:1rem;
    font-weight:700;
    margin-bottom:0;
}
.home-feature p{
    font-size:.9rem;
    color:#475569;
    margin-bottom:0;
}
.home-feature .icon-circle{
    width:46px;
    height:46px;
    border-radius:14px;
    background:rgba(var(--brand-rgb),.1);
    color:var(--brand);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:1.25rem;
}

.home-section-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    margin-bottom:1.25rem;
}
.home-section-header .title{
    font-size:1.25rem;
    font-weight:700;
}
.home-section-header .subtitle{
    font-size:.88rem;
}

.home-cta__box{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    padding:2.25rem;
    border-radius:1.25rem;
    background:linear-gradient(130deg,rgba(var(--brand-rgb),.95),rgba(var(--brand-2-rgb),.86));
    color:#fff8f8;
    box-shadow:0 18px 40px rgba(var(--brand-rgb),.25);
}
.home-cta__box h2{
    font-weight:800;
    margin-bottom:.35rem;
}
.home-cta__box p{
    color:#d1fae5;
}

@media (max-width:1399.98px){
    .home-hero__grid{
        gap:1.5rem;
    }
    .home-hero__title{
        font-size:clamp(2.25rem,3vw + 1rem,4.2rem);
    }
    .home-hero__subtitle{
        font-size:1rem;
    }
    .home-hero__actions{
        gap:.85rem;
    }
    .home-hero__stats{
        gap:1.2rem;
    }
    .home-hero__stats .stat__value{
        font-size:1.55rem;
    }
    .home-hero__card-media img{
        max-height:240px;
    }
    .home-feature{
        padding:1.15rem;
    }
    .home-favorite-card .card-body{
        padding:1.75rem;
    }
    .cat-chip{
        min-width:110px;
        max-width:150px;
        height:110px;
    }
    .cat-chip--home{
        min-width:180px;
        padding:.95rem 1.1rem;
    }
    .cat-chip--home .cat-chip__thumb{
        width:56px;
        height:56px;
    }
    .popular-card{
        padding:1.35rem 1.1rem;
    }
    .popular-card__media{
        min-height:150px;
        padding:1rem;
    }
    .popular-card__thumb{
        max-height:120px;
    }
}

@media (max-width: 991px){
    .home-hero{
        padding:2.6rem 0 2rem;
    }
    .home-hero__grid{
        grid-template-columns:minmax(0,1fr);
    }
    .home-hero__content{
        max-width:720px;
    }
    .home-hero__subtitle{
        max-width:none;
    }
    .home-play-strip__grid{
        grid-template-columns:1fr;
        gap:1rem;
    }
    .home-play-strip__media{
        height:220px;
    }
}

@media (max-width: 767px){
    .home-hero{
        padding:2rem 0 1.6rem;
    }
    .home-hero__title{
        font-size:clamp(2.05rem,10vw,2.85rem);
        line-height:1;
    }
    .home-hero__actions{
        flex-direction:column;
        align-items:stretch;
    }
    .home-hero__actions .btn{
        width:100%;
        justify-content:center;
        white-space:normal;
        line-height:1.25;
        font-size:.96rem;
    }
    .home-hero__proof span{
        flex:1 1 100%;
        min-width:0;
        justify-content:center;
        text-align:center;
        white-space:normal;
        font-size:.84rem;
        padding:.5rem .7rem;
    }
    .home-play-strip__media{
        height:180px;
    }
    .home-play-strip__content h2{
        font-size:1.45rem;
    }
    .home-play-strip__steps span{
        flex:1 1 140px;
        justify-content:center;
    }
    .home-hero__stats{
        gap:1rem;
    }
    .home-hero__stats .stat__value{
        font-size:1.4rem;
    }
    .home-cta__box{
        align-items:flex-start;
    }
    .home-feature-grid{
        grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    }
}

/* =========================================================
   LAPTOP / FULL HD DENSITY
========================================================= */
@media (min-width: 992px) and (max-width: 1399.98px){
    .home-hero{
        padding:2.2rem 0 1.7rem;
    }
    .home-hero__grid{
        gap:1.25rem;
        grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);
    }
    .home-hero__title{
        font-size:clamp(2.55rem,3.4vw,3.45rem);
        line-height:.98;
        max-width:620px;
    }
    .home-hero__subtitle{
        font-size:.98rem;
        line-height:1.55;
        max-width:560px;
    }
    .home-hero__actions{
        margin:1.25rem 0 1rem;
        gap:.75rem;
    }
    .home-hero__actions .btn{
        padding:.68rem 1rem;
    }
    .home-hero__proof{
        gap:.5rem;
    }
    .home-hero__proof span{
        padding:.42rem .65rem;
        font-size:.84rem;
    }
    .home-hero__tableau{
        width:min(100%,440px);
        min-height:310px;
    }
    .home-hero__photo{
        inset:1rem 1rem 3.4rem 0;
        border-width:8px;
        border-radius:1rem;
    }
    .home-hero__playing-card{
        width:84px;
        height:116px;
        border-radius:.75rem;
        padding:.55rem;
    }
    .home-hero__playing-card--brand{
        padding:0;
    }
    .home-hero__playing-card span{
        font-size:1.08rem;
    }
    .home-hero__playing-card i{
        font-size:1.5rem;
    }
    .home-hero__caption{
        max-width:290px;
        padding:.8rem .9rem;
        border-radius:.85rem;
    }
    .home-play-strip{
        padding-top:1.25rem!important;
        padding-bottom:1.25rem!important;
    }
    .home-play-strip__grid{
        gap:1.6rem;
    }
    .home-play-strip__media{
        height:210px;
    }
    .home-play-strip__content h2{
        font-size:clamp(1.55rem,1.7vw + .8rem,2.2rem);
    }
    .home-featured-cats{
        padding-top:1.7rem!important;
        padding-bottom:1.8rem!important;
    }
    .home-section-header{
        margin-bottom:.9rem;
    }

    .category-hero{
        padding:1.35rem 1.7rem;
        margin-bottom:1.25rem!important;
    }
    .category-hero__breadcrumbs{
        margin-bottom:.65rem;
    }
    .category-hero__title{
        font-size:clamp(1.55rem,1.7vw + .55rem,2.1rem);
        margin-bottom:.35rem;
    }
    .category-subsection{
        padding:1.1rem;
        margin-bottom:2rem!important;
    }
    .category-subgrid{
        margin-top:.85rem;
        gap:.75rem;
    }
    .category-products-shell{
        padding:1rem;
        border-radius:1.05rem;
    }
    .category-products-shell .category-section-header{
        margin-bottom:.8rem!important;
    }
    .category-pagination{
        margin-bottom:.8rem!important;
    }

    .product-card{
        padding:.72rem;
        gap:.7rem;
        border-radius:.95rem;
    }
    .product-card__figure{
        padding:.9rem .7rem .65rem;
        border-radius:.95rem;
    }
    .product-card__media{
        border-radius:.78rem;
        padding:.28rem;
    }
    .product-card__title{
        min-height:3.05rem;
        font-size:.92rem;
        line-height:1.22;
    }
    .product-card__price{
        padding-top:.55rem;
        font-size:.84rem;
    }
    .product-card__price-note,
    .product-card__note{
        font-size:.76rem;
    }
    .product-card__type{
        font-size:.62rem;
        padding:.22rem .44rem;
    }

    .product-detail-redesign{
        padding-top:1rem;
        padding-bottom:3rem;
    }
    .product-detail-breadcrumb{
        margin-bottom:.75rem;
    }
    .product-detail-hero{
        min-height:150px;
        margin-bottom:1rem;
        padding:1.15rem 1.35rem;
        border-radius:1.05rem;
    }
    .product-detail-hero__mark{
        width:46px;
        height:64px;
        border-radius:.65rem;
    }
    .product-detail-hero h1{
        font-size:clamp(1.8rem,2.25vw,2.6rem);
        line-height:1;
    }
    .product-detail-hero p{
        margin-top:.45rem;
        font-size:.92rem;
        line-height:1.42;
        max-width:620px;
    }
    .product-detail-hero__badges span{
        padding:.38rem .58rem;
        font-size:.78rem;
    }
    .product-detail-gallery,
    .product-detail-panel{
        padding:1rem;
        border-radius:1.05rem;
    }
    .product-detail-gallery__image{
        padding:1.3rem;
    }
    .product-detail-panel__top{
        margin-bottom:.75rem;
    }
    .product-detail-panel h2{
        font-size:1.25rem;
    }
    .product-locked-card{
        padding:.8rem;
        margin-bottom:.8rem;
    }
    .product-detail-specs dl{
        gap:.6rem;
    }
    .product-detail-specs dl > div{
        padding:.68rem;
    }
}

@media (min-width: 992px) and (max-height: 820px){
    .site-footer{
        padding-top:2rem;
    }
    .sticky-cart{
        right:1rem;
        bottom:.75rem;
    }
}

/* =========================================================
   FOOTER / MISC
========================================================= */
.site-footer{
    position:relative;
    overflow:hidden;
    padding:3rem 0 5rem;
    border-top:1px solid rgba(99,8,82,.12);
    background:
        radial-gradient(circle at 10% 0%, rgba(var(--accent-rgb),.34), transparent 30%),
        radial-gradient(circle at 96% 8%, rgba(var(--brand-rgb),.14), transparent 28%),
        linear-gradient(180deg,#fff 0%,#fbf8ff 100%);
}
.site-footer::after{
    content:"";
    position:absolute;
    right:5%;
    bottom:-130px;
    width:170px;
    height:240px;
    border-radius:1.2rem;
    border:1px solid rgba(99,8,82,.12);
    background:rgba(255,255,255,.5);
    transform:rotate(12deg);
    pointer-events:none;
}
.site-footer__grid{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(260px,1.35fr) minmax(150px,.7fr) minmax(230px,1fr) minmax(190px,.85fr);
    gap:1.5rem;
    align-items:stretch;
    min-width:0;
}
.site-footer__brand,
.site-footer__section{
    min-width:0;
    border:1px solid rgba(99,8,82,.1);
    border-radius:1.15rem;
    background:rgba(255,255,255,.82);
    box-shadow:0 16px 36px rgba(99,8,82,.08);
}
.site-footer__brand{
    padding:1.35rem;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:1rem;
}
.site-footer__mark{
    width:58px;
    height:80px;
    border-radius:.8rem;
    background:#fff;
    color:var(--brand);
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:.55rem;
    box-shadow:0 14px 32px rgba(99,8,82,.16);
    border:1px solid rgba(99,8,82,.12);
    transform:rotate(-6deg);
    overflow:hidden;
}
.site-footer__mark img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:inherit;
}
.site-footer__mark span{
    font-weight:900;
    line-height:1;
}
.site-footer__mark i{
    align-self:flex-end;
}
.site-footer__logo{
    font-size:1.45rem;
    margin-bottom:.35rem;
}
.site-footer__brand p{
    color:#6f5b76;
    margin:0;
    line-height:1.55;
    overflow-wrap:break-word;
}
.site-footer__chips{
    grid-column:1 / -1;
    display:flex;
    flex-wrap:wrap;
    gap:.55rem;
    margin-top:.3rem;
}
.site-footer__chips span{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    min-width:0;
    padding:.45rem .65rem;
    border-radius:999px;
    background:#f1efff;
    color:var(--brand-2);
    font-size:.82rem;
    font-weight:700;
}
.site-footer__section{
    padding:1.25rem;
}
.site-footer__title{
    color:#24112f;
    font-weight:850;
    margin-bottom:.85rem;
}
.site-footer__links,
.site-footer__contact{
    list-style:none;
    padding:0;
    margin:0;
}
.site-footer__links{
    display:flex;
    flex-direction:column;
    gap:.45rem;
}
.site-footer__links a,
.site-footer__contact a{
    color:#5f4767;
    text-decoration:none;
}
.site-footer__links a:hover,
.site-footer__contact a:hover{
    color:var(--brand);
}
.site-footer__contact{
    display:flex;
    flex-direction:column;
    gap:.75rem;
    color:#5f4767;
}
.site-footer__contact li{
    display:flex;
    gap:.65rem;
    align-items:flex-start;
}
.site-footer__contact i{
    color:var(--brand);
    margin-top:.1rem;
}
.site-footer__contact small{
    display:block;
    color:#7c6a82;
    margin-top:.15rem;
}
.site-footer__payments{
    display:flex;
    flex-direction:column;
    gap:.55rem;
}
.site-footer__payments span{
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.58rem .7rem;
    border-radius:.75rem;
    background:#fff;
    border:1px solid rgba(99,8,82,.1);
    color:#5f4767;
    font-weight:700;
}
.site-footer__payments i{
    color:var(--brand-2);
}
.site-footer__bottom{
    position:relative;
    z-index:1;
    display:flex;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    margin-top:1rem;
    padding:.85rem 1rem;
    border-radius:1rem;
    color:#6f5b76;
    background:rgba(255,255,255,.55);
    border:1px solid rgba(99,8,82,.08);
    font-size:.88rem;
}

@media (max-width:1199.98px){
    .site-footer__grid{
        grid-template-columns:1fr 1fr;
    }
}

@media (max-width:767.98px){
    .site-footer{
        padding:2rem 0 5rem;
    }
    .site-footer__grid{
        grid-template-columns:minmax(0,1fr);
    }
    .site-footer__brand{
        grid-template-columns:1fr;
    }
    .site-footer__brand,
    .site-footer__section,
    .site-footer__bottom{
        width:100%;
        max-width:calc(100vw - 1.5rem);
    }
    .site-footer__mark{
        transform:none;
    }
    .site-footer__bottom{
        flex-direction:column;
    }
    .site-footer__chips span{
        white-space:normal;
    }
}

@media (max-width:575.98px){
    .catalog-hero__title,
    .search-hero__title{
        font-size:1.75rem;
    }
    .site-footer__brand,
    .site-footer__section{
        padding:1rem;
    }
    .site-footer__brand p{
        max-width:18rem;
        font-size:.95rem;
    }
    .site-footer__chips{
        flex-direction:column;
        align-items:flex-start;
        gap:.45rem;
    }
    .site-footer__chips span{
        font-size:.78rem;
        padding:.42rem .55rem;
    }
}

/* =========================================================
   LOGIN MODAL
========================================================= */
.login-modal .modal-content{
    border-radius:1.5rem;
    box-shadow:0 28px 60px rgba(15,23,42,.18);
}
.login-modal__content{
    background:#fff;
}
.login-modal__hero{
    background:linear-gradient(140deg,rgba(var(--brand-rgb),1),rgba(var(--brand-2-rgb),.88));
    position:relative;
    color:#f8fafc;
    padding:2.75rem 2.5rem;
    overflow:hidden;
}
.login-modal__hero::after{
    content:'';
    position:absolute;
    inset:auto -80px -120px auto;
    width:320px;
    height:320px;
    background:radial-gradient(circle at center,rgba(255,255,255,.18),transparent 65%);
    transform:rotate(12deg);
}
.login-modal__hero-inner{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    gap:1.4rem;
}
.login-modal__tag{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    padding:.35rem .85rem;
    border-radius:999px;
    background:rgba(248,250,252,.22);
    font-size:.78rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.1em;
}
.login-modal__hero-title{
    font-size:1.85rem;
    font-weight:700;
    line-height:1.15;
    margin:0;
}
.login-modal__hero-text{
    font-size:.95rem;
    color:rgba(248,250,252,.85);
    margin:0;
}
.login-modal__benefits{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:.6rem;
    font-size:.9rem;
}
.login-modal__benefits i{
    margin-right:.5rem;
    font-size:1rem;
    vertical-align:middle;
}
.login-modal__quote{
    margin-top:auto;
    padding:1.25rem 1.1rem;
    border-radius:1rem;
    background:rgba(248,250,252,.18);
    display:flex;
    flex-direction:column;
    gap:.5rem;
    font-size:.85rem;
}
.login-modal__quote i{
    font-size:1.4rem;
    opacity:.8;
}
.login-modal__quote span{
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-size:.72rem;
    opacity:.85;
}
.login-modal__main{
    padding:2.75rem 2.5rem 2.25rem;
    background:#fff;
    min-height:100%;
    display:flex;
    flex-direction:column;
    gap:1.75rem;
}
.login-modal__header{
    margin-bottom:1.75rem;
}
.login-modal__title{
    font-weight:700;
    font-size:1.65rem;
    margin:0 0 .35rem;
    color:#0f172a;
}
.login-modal__subtitle{
    margin:0;
    font-size:.95rem;
    color:var(--muted);
}
.login-modal__close{
    position:absolute;
    top:1.25rem;
    right:1.25rem;
    z-index:2;
    background:#fff;
    border-radius:999px;
    box-shadow:0 6px 18px rgba(15,23,42,.12);
    opacity:1;
}
.login-modal__close:focus-visible{
    outline:2px solid rgba(var(--brand-rgb),.55);
    outline-offset:2px;
}
.login-modal__form{
    flex:1 1 auto;
    display:flex;
}
.login-modal__form form{
    display:flex;
    flex-direction:column;
    width:100%;
}
.login-modal__form .form-floating>.form-control{
    border-radius:.9rem;
    border:1px solid rgba(148,163,184,.28);
    background:#f8fafc;
    transition:border-color .2s, box-shadow .2s, background .2s;
}
.login-modal__form .form-floating>.form-control:focus{
    border-color:rgba(var(--brand-rgb),.55);
    background:#fff;
    box-shadow:0 0 0 3px rgba(var(--brand-rgb),.15);
}
.login-modal__form .form-floating>label{
    color:rgba(71,85,105,.75);
}
.login-modal__toggle{
    position:absolute;
    top:50%;
    right:.65rem;
    transform:translateY(-50%);
    color:rgba(71,85,105,.65);
    text-decoration:none;
    font-size:1rem;
}
.login-modal__toggle:hover,
.login-modal__toggle.is-active{
    color:rgba(15,23,42,.85);
}
.login-modal__message .alert{
    border-radius:.85rem;
    border:0;
    box-shadow:0 10px 24px rgba(15,23,42,.12);
}
.login-modal__footer{
    margin-top:auto;
    text-align:center;
}
.login-modal__footer a{
    color:var(--brand);
}

@media (max-width: 991.98px){
    .login-modal .modal-content{
        border-radius:1.25rem;
    }
    .login-modal__main{
        padding:2.25rem 1.75rem 2rem;
    }
    .login-modal__title{
        font-size:1.45rem;
    }
    .login-modal__close{
        top:.85rem;
        right:.85rem;
    }
}
@media (max-width: 575.98px){
    .login-modal .modal-dialog{
        margin:1.5rem auto;
    }
    .login-modal__main{
        padding:2rem 1.5rem 1.75rem;
    }
}

/* =========================================================
   ACCESS SELECTOR MODAL
========================================================= */
.access-modal .modal-content{
    border-radius:1.5rem;
    background:#fff;
}
.access-modal__aside{
    background:linear-gradient(145deg,rgba(var(--brand-rgb),1),rgba(var(--brand-2-rgb),.9),rgba(var(--accent-rgb),.72));
    color:#f8fafc;
    padding:2.75rem 2.5rem;
    position:relative;
    overflow:hidden;
}
.access-modal__aside::after{
    content:'';
    position:absolute;
    inset:auto -90px -120px auto;
    width:320px;
    height:320px;
    background:radial-gradient(circle at center,rgba(255,255,255,.22),transparent 70%);
    transform:rotate(14deg);
}
.access-modal__aside-inner{
    position:relative;
    z-index:1;
    display:flex;
    flex-direction:column;
    gap:1.4rem;
    height:100%;
}
.access-modal__tag{
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    padding:.4rem .9rem;
    border-radius:999px;
    background:rgba(248,250,252,.2);
    font-size:.78rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.12em;
}
.access-modal__title{
    font-size:1.8rem;
    font-weight:700;
    line-height:1.15;
    margin:0;
}
.access-modal__text{
    margin:0;
    font-size:.95rem;
    color:rgba(248,250,252,.85);
}
.access-modal__list{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:.6rem;
    font-size:.9rem;
}
.access-modal__list li{
    display:flex;
    align-items:center;
    gap:.6rem;
}
.access-modal__list i{
    font-size:1.1rem;
    opacity:.9;
}
.access-modal__hint{
    margin-top:auto;
    padding:1.1rem 1rem;
    border-radius:1rem;
    background:rgba(248,250,252,.22);
    display:flex;
    gap:.65rem;
    font-size:.85rem;
    line-height:1.5;
}
.access-modal__hint i{
    font-size:1.2rem;
    flex:0 0 auto;
    margin-top:.1rem;
}
.access-modal__main{
    padding:2.75rem 2.5rem 2.25rem;
    display:flex;
    flex-direction:column;
    gap:1.5rem;
    min-height:100%;
    background:#fff;
}
.access-modal__close{
    position:absolute;
    top:1.25rem;
    right:1.25rem;
    z-index:2;
    background:#fff;
    border-radius:999px;
    box-shadow:0 6px 18px rgba(15,23,42,.12);
    opacity:1;
}
.access-modal__close:focus-visible{
    outline:2px solid rgba(var(--brand-rgb),.55);
    outline-offset:2px;
}
.access-modal__header p{
    font-size:.95rem;
}
.access-modal__status .badge{
    padding:.55rem .9rem;
    font-size:.82rem;
    font-weight:600;
    background:#f1f5f9;
    color:#0f172a;
}
.access-modal__status .badge.text-bg-success{
    background:rgba(var(--brand-rgb),.15) !important;
    color:var(--brand-2) !important;
}
.access-modal__status .badge.text-bg-secondary{
    background:rgba(100,116,139,.16) !important;
    color:#334155 !important;
}
.access-modal__body .form-select{
    border-radius:1rem;
    padding:.75rem 1rem;
    border:1px solid rgba(148,163,184,.28);
    transition:border-color .2s, box-shadow .2s;
}
.access-modal__body .form-select:focus{
    border-color:rgba(var(--brand-rgb),.55);
    box-shadow:0 0 0 3px rgba(var(--brand-rgb),.15);
}
.access-modal__body .form-text{
    color:var(--muted);
}
.access-modal__body .form-switch .form-check-input{
    width:3rem;
    height:1.5rem;
}
.access-modal__body .form-switch .form-check-input:focus{
    box-shadow:0 0 0 .25rem rgba(var(--brand-rgb),.15);
}
.access-modal__body .form-switch .form-check-input:checked{
    background-color:var(--brand);
    border-color:var(--brand);
}
.access-modal__loading p{
    font-size:.95rem;
}
.access-modal__empty{
    padding:3rem 1.5rem;
}
.access-modal__empty i{
    color:#c2410c;
}

@media (max-width: 991.98px){
    .access-modal .modal-content{
        border-radius:1.25rem;
    }
    .access-modal__main{
        padding:2.25rem 1.75rem 2rem;
    }
    .access-modal__close{
        top:.85rem;
        right:.85rem;
    }
}
@media (max-width: 575.98px){
    .access-modal .modal-dialog{
        margin:1.5rem auto;
    }
    .access-modal__main{
        padding:2rem 1.5rem 1.75rem;
    }
    .access-modal__status .badge{
        width:100%;
        justify-content:center;
    }
}

/* =========================================================
   HELP PAGES
========================================================= */
.section-hero-lite{
    padding:4rem 0 3rem;
    background:linear-gradient(140deg,#f8fafc 0%,#f1f5f9 60%,#ffffff 100%);
}
.section-hero-lite .badge{
    font-weight:600;
}
.help-card{
    border-radius:1.5rem;
    background:#fff;
}
.help-card .form-control{
    border-radius:.9rem;
    border:1px solid rgba(148,163,184,.28);
    transition:border-color .2s, box-shadow .2s;
}
.help-card .form-control:focus{
    border-color:rgba(var(--brand-rgb),.55);
    box-shadow:0 0 0 3px rgba(var(--brand-rgb),.15);
}
.help-form-note{
    line-height:1.5;
}
.help-info-tile{
    background:#fff;
    border-radius:1.25rem;
    border:1px solid rgba(148,163,184,.18);
    padding:1.75rem 1.6rem;
    box-shadow:0 14px 34px rgba(15,23,42,.08);
    height:100%;
    display:flex;
    flex-direction:column;
    gap:.75rem;
}
.help-info-tile h2{
    font-size:1.1rem;
    font-weight:700;
    margin:0;
}
.help-info-tile p{
    margin:0;
    color:var(--muted);
}
.help-info-icon{
    width:56px;
    height:56px;
    border-radius:1.25rem;
    display:grid;
    place-items:center;
    font-size:1.4rem;
}
.help-bullet-list{
    font-size:.95rem;
    color:#0f172a;
}
.help-bullet-list li{
    display:flex;
    align-items:center;
    gap:.65rem;
    background:#fff;
    border-radius:999px;
    padding:.55rem 1rem;
    box-shadow:0 10px 26px rgba(15,23,42,.07);
}
.help-bullet-list i{
    color:var(--brand);
    font-size:1.1rem;
}
.section-hero-lite + section{
    background:#fff;
}

/* =========================================================
   INVOICE HUB PAGE
========================================================= */
.invoice-hub-hero{
    padding:4rem 0 2.25rem;
    background:
        radial-gradient(circle at 18% 18%, rgba(var(--brand-rgb), .12), transparent 44%),
        radial-gradient(circle at 82% 12%, rgba(var(--accent-rgb), .22), transparent 38%),
        linear-gradient(160deg, #f8fafc 0%, #f1f5f9 58%, #ffffff 100%);
}
.invoice-hub-card{
    background:#fff;
    border:1px solid rgba(148,163,184,.2);
    border-radius:1.5rem;
    padding:2rem 1.75rem;
    box-shadow:0 20px 42px rgba(15,23,42,.08);
}
.invoice-hub-card--cta{
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.invoice-hub-card--slim{
    padding:1.25rem 1.35rem;
    border-radius:1.15rem;
}
.invoice-download-visual{
    position:relative;
    width:112px;
    height:112px;
    border-radius:1.4rem;
    background:linear-gradient(155deg, rgba(var(--brand-rgb), .14), rgba(var(--accent-rgb), .24));
    border:1px solid rgba(148,163,184,.24);
    display:grid;
    place-items:center;
    overflow:hidden;
}
.invoice-download-visual--sm{
    width:84px;
    height:84px;
    border-radius:1.1rem;
}
.invoice-download-visual--sm .invoice-download-icon{
    width:42px;
    height:42px;
    border-radius:.8rem;
    font-size:1.3rem;
}
.invoice-download-orb{
    position:absolute;
    border-radius:999px;
    filter:blur(2px);
    opacity:.8;
}
.invoice-download-orb--a{
    width:44px;
    height:44px;
    left:10px;
    top:12px;
    background:rgba(var(--brand-rgb),.22);
}
.invoice-download-orb--b{
    width:58px;
    height:58px;
    right:8px;
    bottom:10px;
    background:rgba(var(--accent-rgb),.3);
}
.invoice-download-orb--c{
    width:32px;
    height:32px;
    right:24px;
    top:16px;
    background:rgba(var(--brand-2-rgb),.18);
}
.invoice-download-icon{
    position:relative;
    z-index:1;
    width:54px;
    height:54px;
    border-radius:1rem;
    display:grid;
    place-items:center;
    background:#fff;
    color:var(--brand);
    font-size:1.75rem;
    box-shadow:0 12px 22px rgba(15,23,42,.14);
}
.invoice-hub-chip{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    border-radius:999px;
    background:rgba(var(--brand-rgb), .11);
    color:var(--brand);
    font-weight:700;
    font-size:.8rem;
    letter-spacing:.05em;
    padding:.45rem .85rem;
    text-transform:uppercase;
}
.invoice-hub-title{
    font-size:clamp(1.9rem, 3vw, 2.35rem);
    letter-spacing:-.01em;
}
.invoice-hub-card--slim .invoice-hub-title{
    font-size:clamp(1.35rem, 2.1vw, 1.75rem);
}
.invoice-hub-lead{
    color:#334155;
    font-size:1.05rem;
    line-height:1.7;
}
.invoice-hub-card--slim .invoice-hub-lead{
    font-size:.98rem;
    line-height:1.5;
}
.invoice-download-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:280px;
    min-height:86px;
    font-size:1.12rem;
    font-weight:700;
    padding:1rem 1.25rem;
    border-radius:.4rem;
    letter-spacing:.02em;
    text-transform:uppercase;
    background:var(--brand) !important;
    border-color:var(--brand) !important;
    box-shadow:0 10px 22px rgba(15,23,42,.16);
    transition:transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
.invoice-download-btn i{
    font-size:1.05em;
}
.invoice-download-btn:hover{
    transform:translateY(-1px);
    background:var(--brand-2) !important;
    border-color:var(--brand-2) !important;
    box-shadow:0 14px 26px rgba(15,23,42,.2);
}
.invoice-hub-points{
    display:grid;
    gap:.65rem;
    color:#0f172a;
    font-size:.95rem;
}
.invoice-hub-points span{
    display:flex;
    align-items:center;
    gap:.55rem;
}
.invoice-hub-points i{
    color:var(--brand);
}
.invoice-hub-reference{
    border-radius:.85rem;
    border:1px dashed rgba(148,163,184,.48);
    background:#f8fafc;
    color:#475569;
    padding:.65rem .85rem;
    font-size:.92rem;
}
.invoice-promos-section{
    background:
        radial-gradient(circle at 12% 0%, rgba(var(--brand-rgb),.08), transparent 34%),
        radial-gradient(circle at 88% 0%, rgba(var(--accent-rgb),.18), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.invoice-promo-card{
    border:2px solid rgba(var(--brand-rgb),.22);
    border-radius:1.25rem;
    overflow:hidden;
    background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    box-shadow:0 16px 34px rgba(15,23,42,.1);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.invoice-promo-card:hover{
    transform:translateY(-6px);
    border-color:rgba(var(--brand-rgb),.5);
    box-shadow:0 24px 40px rgba(15,23,42,.16);
}
.invoice-promo-card--shake{
    animation:invoice-promo-shake .58s cubic-bezier(.36,.07,.19,.97) both;
}
.invoice-promo-card__media{
    position:relative;
    display:block;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#f8fafc;
}
.invoice-promo-card__media img{
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(1.03);
}
.invoice-promo-card__media::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(2,6,23,.24) 100%);
    pointer-events:none;
}
.invoice-promo-card__badge{
    position:absolute;
    top:.7rem;
    left:.7rem;
    border-radius:999px;
    padding:.44rem .95rem;
    font-size:.92rem;
    letter-spacing:.04em;
    font-weight:900;
    background:var(--brand);
    color:#fff8f8;
    display:inline-flex;
    align-items:center;
    gap:.42rem;
    box-shadow:0 12px 24px rgba(var(--brand-rgb),.34);
    text-transform:uppercase;
}
.invoice-promo-card__badge i{
    font-size:.9em;
}
.invoice-promo-card__body{
    padding:1rem 1rem 1.05rem;
}
.invoice-promo-card__title{
    color:#0f172a;
    font-weight:800;
    text-decoration:none;
    line-height:1.35;
    display:block;
    min-height:2.8em;
    font-size:1rem;
}
.invoice-promo-card__title:hover{
    color:var(--brand);
}
.invoice-promo-card__price{
    border-radius:1rem;
    border:1px solid rgba(var(--brand-rgb),.32);
    background:linear-gradient(140deg, rgba(var(--brand-rgb),.12), rgba(var(--accent-rgb),.22));
    padding:.65rem .7rem;
    display:flex;
    flex-direction:column;
    gap:.1rem;
}
.invoice-promo-card__price-label{
    display:block;
    color:var(--brand-2);
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.07em;
}
.invoice-promo-card__price-value{
    display:block;
    color:#064e3b;
    font-size:1.52rem;
    font-weight:900;
    line-height:1.1;
    text-shadow:0 1px 0 rgba(255,255,255,.35);
}
.invoice-promo-card__price-value--muted{
    font-size:1.05rem;
    font-weight:700;
    color:#166534;
}
.invoice-hub-partner{
    background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}
.invoice-hub-partner-box{
    background:#fff;
    border:1px solid rgba(148,163,184,.24);
    border-radius:1.3rem;
    padding:1.5rem;
    box-shadow:0 18px 34px rgba(15,23,42,.08);
    display:flex;
    gap:1rem;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
}
.invoice-hub-partner--spotlight{
    background:linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}
.invoice-hub-partner-box--strong{
    background:linear-gradient(125deg, #0f172a 0%, #1e293b 55%, #334155 100%);
    border-color:rgba(148,163,184,.26);
    box-shadow:0 24px 48px rgba(15,23,42,.2);
    padding:2rem 1.75rem;
    gap:1.4rem;
}
.invoice-hub-partner-copy{
    color:#e2e8f0;
    max-width:740px;
}
.invoice-hub-partner-copy h2{
    color:#fff;
}
.invoice-hub-partner-copy p{
    margin:0;
    color:#cbd5e1;
    font-size:1.03rem;
}
.invoice-hub-partner-tag{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:.34rem .8rem;
    background:rgba(var(--accent-rgb),.22);
    color:#fff8f8;
    border:1px solid rgba(var(--accent-rgb),.42);
    font-weight:700;
    font-size:.8rem;
    text-transform:uppercase;
    letter-spacing:.05em;
    margin-bottom:.8rem;
}
.invoice-hub-partner-benefits{
    margin-top:1rem;
    display:flex;
    flex-wrap:wrap;
    gap:.55rem;
}
.invoice-hub-partner-benefits span{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    font-size:.9rem;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(148,163,184,.35);
    color:#e2e8f0;
    border-radius:999px;
    padding:.36rem .72rem;
}
.invoice-hub-partner-benefits i{
    color:#86efac;
}
.invoice-hub-partner-box--strong .btn-outline-secondary{
    border-color:rgba(226,232,240,.5);
    color:#e2e8f0;
}
.invoice-hub-partner-box--strong .btn-outline-secondary:hover{
    background:#fff;
    border-color:#fff;
    color:#0f172a;
}

@keyframes invoice-promo-shake{
    0%   { transform: translate3d(0, 0, 0) rotate(0deg); }
    15%  { transform: translate3d(-2px, 0, 0) rotate(-0.45deg); }
    30%  { transform: translate3d(3px, 0, 0) rotate(0.55deg); }
    45%  { transform: translate3d(-3px, 0, 0) rotate(-0.55deg); }
    60%  { transform: translate3d(2px, 0, 0) rotate(0.35deg); }
    75%  { transform: translate3d(-1px, 0, 0) rotate(-0.2deg); }
    100% { transform: translate3d(0, 0, 0) rotate(0deg); }
}

@media (prefers-reduced-motion: reduce){
    .invoice-promo-card,
    .invoice-promo-card:hover{
        transition:none;
    }
    .invoice-promo-card--shake{
        animation:none;
    }
}

@media (max-width: 991.98px){
    .section-hero-lite{
        padding:3.5rem 0 3rem;
    }
    .invoice-hub-hero{
        padding:3.2rem 0 2rem;
    }
    .invoice-hub-partner-box--strong{
        padding:1.5rem 1.2rem;
    }
}
@media (max-width: 575.98px){
    .section-hero-lite{
        padding:2.75rem 0 2.5rem;
    }
    .help-bullet-list{
        gap:.75rem;
    }
    .help-bullet-list li{
        width:100%;
        justify-content:flex-start;
    }
    .invoice-hub-card{
        padding:1.4rem 1.15rem;
    }
    .invoice-hub-card--slim{
        padding:1rem .95rem;
    }
    .invoice-hub-title{
        font-size:1.65rem;
    }
    .invoice-hub-card--slim .invoice-hub-title{
        font-size:1.25rem;
    }
    .invoice-download-btn{
        width:100%;
        min-height:74px;
        font-size:1rem;
        padding:.8rem 1rem;
    }
    .invoice-promo-card__body{
        padding:.85rem;
    }
    .invoice-promo-card__badge{
        font-size:.78rem;
        padding:.34rem .72rem;
    }
    .invoice-promo-card__price-value{
        font-size:1.18rem;
    }
    .invoice-promo-card__title{
        font-size:.93rem;
    }
    .invoice-hub-partner-benefits{
        gap:.45rem;
    }
    .invoice-hub-partner-benefits span{
        width:100%;
        justify-content:flex-start;
    }
}

.mini-skel{
    height:140px;
    background:linear-gradient(90deg,#f0f0f0,#fafafa,#f0f0f0);
    background-size:200% 100%;
    animation:sh 1.2s linear infinite
}
.modal .mini-skel { height: auto; }
.sticky-cart{ position:fixed; right:1rem; bottom:1rem; z-index:1030 }
.sticky-cart .btn{ border-radius:999px; box-shadow:0 8px 24px rgba(0,0,0,.15) }
.pulse { transform: scale(1.03); transition: transform .2s; }
.pulse:where(:not(:active)) { transform: scale(1); }

/* =========================================================
   MEDIA QUERIES
========================================================= */
@media (max-width: 991.98px){
    .search-dropdown{ left:-.5rem; right:-.5rem; border-radius:var(--radius); }
    .mega-dropdown .dropdown-menu{
        min-width:100vw; max-width:100vw;
        border-radius:0; border-left:0; border-right:0;
        padding:0;
    }
    .mega-menu-item{
        min-width:auto;
        max-width:none;
    }
    .mega-grid{
        grid-template-columns:1fr;
        padding:1.25rem 1rem;
        gap:1rem;
    }
    .mega-sidebar{
        background:#fff;
        border:1px solid rgba(148,163,184,.25);
    }
    .mega-root-list{
        max-height:220px;
        border-radius:1rem;
        border:1px solid rgba(148,163,184,.2);
        padding:.35rem .35rem .35rem .5rem;
        background:#f8fafc;
    }
    .mega-content{
        min-height:auto;
    }
    .mega-subpanel{
        padding:.5rem 0 0;
        gap:.75rem;
    }
    .mega-subgrid{
        grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
        gap:.75rem;
    }
    .mega-subcard{
        padding:.65rem .75rem;
    }
}

/* =========================================================
   ANIMATIONS
========================================================= */
@keyframes sh{
    0%{background-position:0 0}
    100%{background-position:200% 0}
}


/* STICKY CART – SIMPLE LINES */
.sc-item{ padding:.6rem 0; border-bottom:1px solid var(--border); }
.sc-item:last-child{ border-bottom-color:transparent; }

.sc-row{
    display:grid; grid-template-columns: 1fr auto auto;
    align-items:center; gap:.6rem; padding:.15rem 0;
}
.sc-top{
    grid-template-columns: 1fr auto; padding-bottom:.2rem;
}
.sc-name{ font-weight:700; line-height:1.2; font-size:.95rem; }
.sc-ctrls{ display:flex; align-items:center; }
.sc-ctrls .btn-group .btn{ min-width:2.1rem; padding:.25rem .5rem; }
.sc-ctrls [data-cart-qty]{ cursor:default; }

.sc-left{ color:var(--muted); }
.sc-mid, .sc-right{ white-space:nowrap; font-variant-numeric:tabular-nums; }
.sc-unit{ color:var(--muted); margin-left:.25rem; }
.sc-gross{ color:#15803d; font-weight:800; }
@media (prefers-color-scheme:dark){ .sc-gross{ color:#22c55e; } }

@media (max-width:576px){
    .sc-row{ grid-template-columns: 1fr auto; }
    .sc-left{ grid-column: 1 / -1; }
}
.search-dropdown .avatar{
    width:48px;
    height:48px;
    border-radius:12px;
    overflow:hidden;
    background:#f1f5f9;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    box-shadow:0 4px 12px rgba(15,23,42,.08);
}
.search-dropdown .avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.search-dropdown .item-info .sub .price{
    margin-left:.5rem;
    font-weight:700;
    color:var(--brand);
}

/* =========================================================
   SEASONAL THEMES & EFFECTS
========================================================= */
body.theme-winter,
body.theme-spring,
body.theme-summer,
body.theme-autumn,
body.theme-christmas{
    overflow-x:hidden;
}
body.theme-winter > *,
body.theme-spring > *,
body.theme-summer > *,
body.theme-autumn > *,
body.theme-christmas > *{
    position:relative;
    z-index:1;
}
body.theme-winter::after,
body.theme-spring::after,
body.theme-summer::after,
body.theme-autumn::after,
body.theme-christmas::after{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
}

body.theme-winter::before,
body.theme-winter::after{
    pointer-events:none;
    position:fixed;
    inset:0;
}
body.theme-winter::after{
    background:radial-gradient(circle at 20% 20%, rgba(255,255,255,.85) 0%, rgba(255,255,255,0) 45%),
               radial-gradient(circle at 80% 10%, rgba(224,242,254,.9) 0%, rgba(224,242,254,0) 40%),
               linear-gradient(180deg, rgba(14,165,233,.05) 0%, rgba(224,242,254,.9) 45%, rgba(255,255,255,.95) 100%);
    filter:hue-rotate(-5deg);
    backdrop-filter:blur(2px);
    z-index:0;
}
body.theme-winter::before{
    content:"";
    background-image:
        radial-gradient(circle, rgba(255,255,255,.9) 0, rgba(255,255,255,0) 55%),
        radial-gradient(circle, rgba(224,242,254,.9) 0, rgba(224,242,254,0) 45%),
        radial-gradient(circle, rgba(14,165,233,.4) 0, rgba(14,165,233,0) 55%);
    background-size:120px 120px, 200px 200px, 320px 320px;
    animation:snow-fall 26s linear infinite;
    opacity:.45;
    z-index:0;
}
body.theme-winter #openCart{
    position:relative;
    overflow:visible;
}
body.theme-winter #openCart::before{
    content:"";
    position:absolute;
    width:42px;
    height:42px;
    top:-46px;
    left:50%;
    transform:translateX(-50%);
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='46' r='14' fill='%23e0f2fe' stroke='%230369a1' stroke-width='2'/%3E%3Ccircle cx='32' cy='28' r='10' fill='%23f8fafc' stroke='%230369a1' stroke-width='2'/%3E%3Ccircle cx='28' cy='26' r='2' fill='%230369a1'/%3E%3Ccircle cx='36' cy='26' r='2' fill='%230369a1'/%3E%3Cpath d='M32 30 L40 32' stroke='%23f97316' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M25 20 L19 16' stroke='%230369a1' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M39 20 L45 16' stroke='%230369a1' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='32' cy='34' r='1.4' fill='%23b45309'/%3E%3Ccircle cx='32' cy='38' r='1.4' fill='%23b45309'/%3E%3Ccircle cx='32' cy='42' r='1.4' fill='%23b45309'/%3E%3C/svg%3E") no-repeat center/contain;
    animation:snowman-bob 4s ease-in-out infinite;
}

body.theme-spring::after{
    background-image:
        radial-gradient(circle, rgba(244,114,182,.4) 15%, transparent 60%),
        radial-gradient(circle, rgba(34,197,94,.25) 15%, transparent 55%),
        radial-gradient(circle, rgba(250,240,202,.22) 20%, transparent 65%);
    background-size:280px 280px, 360px 360px, 460px 460px;
    animation:petal-fall 22s linear infinite;
    opacity:.45;
}

body.theme-summer::after{
    background-image:
        radial-gradient(circle, rgba(253,224,71,.35) 20%, transparent 70%),
        radial-gradient(circle, rgba(249,115,22,.25) 15%, transparent 65%),
        radial-gradient(circle, rgba(255,255,255,.2) 10%, transparent 60%);
    background-size:260px 260px, 420px 420px, 180px 180px;
    animation:sun-glow 18s linear infinite;
    opacity:.4;
}

body.theme-autumn::after{
    background-image:
        radial-gradient(circle, rgba(180,83,9,.4) 18%, transparent 65%),
        radial-gradient(circle, rgba(234,88,12,.3) 20%, transparent 60%),
        radial-gradient(circle, rgba(250,204,21,.2) 15%, transparent 70%);
    background-size:300px 300px, 360px 360px, 500px 500px;
    animation:leaf-fall 28s linear infinite;
    opacity:.45;
}

body.theme-christmas::after{
    background-image:
        radial-gradient(circle, rgba(185,28,28,.45) 15%, transparent 60%),
        radial-gradient(circle, rgba(15,157,88,.4) 18%, transparent 65%),
        radial-gradient(circle, rgba(255,255,255,.8) 8%, transparent 55%);
    background-size:220px 220px, 340px 340px, 140px 140px;
    animation:twinkle 14s linear infinite;
    opacity:.55;
}

@keyframes snow-fall{
    0%{background-position:0 0,0 0,0 0;}
    100%{background-position:0 900px,0 600px,0 500px;}
}
@keyframes petal-fall{
    0%{background-position:0 -200px, 100px -100px, -80px -150px;}
    100%{background-position:-260px 700px, -60px 600px, -140px 650px;}
}
@keyframes sun-glow{
    0%{background-position:0 0, 0 0, 0 0;}
    50%{background-position:120px 120px, -140px 80px, 60px 60px;}
    100%{background-position:0 0, 0 0, 0 0;}
}
@keyframes leaf-fall{
    0%{background-position:0 -300px, 80px -200px, -120px -250px;}
    100%{background-position:-200px 800px, -40px 700px, -260px 750px;}
}
@keyframes twinkle{
    0%{background-position:0 0, 0 0, 0 0; opacity:.3;}
    50%{background-position:80px 120px, -60px 80px, 40px 40px; opacity:.7;}
    100%{background-position:0 0, 0 0, 0 0; opacity:.3;}
}
@keyframes snowman-bob{
    0%,100%{transform:translate(-50%,-2px);}
    50%{transform:translate(-50%,3px);}
}
