/* ==========================================================================
   TOYBAZAAR THEME — Modern toy-marketplace storefront overrides
   Brand system built around the Toyzen dino mascot: navy, sunshine yellow,
   jungle green, and a playful pink accent.
   Scoped entirely under body.theme-toybazaar so it never leaks into
   the default theme, Toyland, or Blockville.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@400;600;700;800&display=swap');

body.theme-toybazaar {
    --tb-navy: #0b1b3f;
    --tb-navy-dark: #071026;
    --tb-yellow: #ffd400;
    --tb-yellow-dark: #e6bd00;
    --tb-green: #1fae6b;
    --tb-green-dark: #148055;
    --tb-pink: #ff5c93;
    --tb-cream: #fff7de;
    --tb-ink: #14213d;
    --tb-muted: #667085;
    --tb-radius: 16px;
    font-family: 'Nunito', 'Hind Siliguri', sans-serif !important;
    padding-bottom: 0;
}
body.theme-toybazaar h1,
body.theme-toybazaar h2,
body.theme-toybazaar h3,
body.theme-toybazaar .tb-display {
    font-family: 'Fredoka', 'Nunito', sans-serif !important;
    font-weight: 600;
}

/* ---------- Top bar / header ---------- */
body.theme-toybazaar #navbar_top .top_header {
    background: var(--tb-navy) !important;
}
body.theme-toybazaar .main-search input,
body.theme-toybazaar .search_keyword {
    border-radius: 999px !important;
    border: 2px solid #e5e7eb !important;
}
body.theme-toybazaar .main-search input:focus,
body.theme-toybazaar .search_keyword:focus {
    border-color: var(--tb-yellow) !important;
}
body.theme-toybazaar .cart-dialog span {
    background: var(--tb-pink) !important;
    font-weight: 700;
}
body.theme-toybazaar .catagory_menu .cat_bar > a {
    border-radius: 999px !important;
    font-weight: 700;
    gap: 6px;
    transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .25s ease, box-shadow .25s ease, color .25s ease;
}
body.theme-toybazaar .catagory_menu .cat_bar > a:hover,
body.theme-toybazaar .catagory_menu .cat_bar.active > a {
    background: var(--tb-yellow) !important;
    color: var(--tb-navy) !important;
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 10px 22px rgba(11,27,63,.22);
}
/* Base CSS pins .cat_down with position:absolute + a hardcoded top offset, which
   is what breaks its size/alignment inside the pill button. The parent <a> is
   already a flex row (space-between), so letting the icon flow naturally there
   is what actually fixes it — a fixed offset can never match every screen size. */
body.theme-toybazaar .cat_bar > a .cat_down {
    position: static !important;
    top: auto !important;
    right: auto !important;
    font-size: 12px !important;
    transition: transform .3s ease;
}
body.theme-toybazaar .cat_bar:hover > a .cat_down,
body.theme-toybazaar .cat_bar.active > a .cat_down {
    transform: rotate(180deg);
}

/* ---------- Mega-menu dropdown (1st level: Cat_menu) ---------- */
body.theme-toybazaar .menu-area .Cat_menu {
    background: var(--tb-menu-green) !important;
    border: none !important;
    border-radius: 18px;
    box-shadow: 0 22px 46px rgba(11,27,63,.22);
    padding: 10px;
    width: 270px;
    transform: translateY(-14px);
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .3s ease, visibility .3s ease;
    overflow: hidden;
}
body.theme-toybazaar .catagory_menu li:hover .Cat_menu,
body.theme-toybazaar .main-header .menu-area .cat_bar:hover .Cat_menu,
body.theme-toybazaar .main-header.sticky .menu-area .cat_bar:hover .Cat_menu,
body.theme-toybazaar .main-header .menu-area .cat_bar.active .Cat_menu {
    transform: translateY(0);
}
body.theme-toybazaar ul.Cat_menu li {
    border-bottom: none !important;
    border-radius: 12px;
    padding: 11px 12px !important;
    transition: background .2s ease, transform .2s ease;
}
body.theme-toybazaar ul.Cat_menu li:hover {
    background: var(--tb-yellow);
    box-shadow: 0 2px 8px rgba(11,27,63,.18);
    transform: translateX(4px);
}
body.theme-toybazaar ul.Cat_menu li a {
    display: flex; align-items: center; justify-content: space-between;
}
body.theme-toybazaar ul.Cat_menu li a span {
    color: #fff;
    font-family: 'Fredoka', sans-serif;
    font-weight: 600;
    font-size: .92rem;
    transition: color .2s ease;
}
body.theme-toybazaar ul.Cat_menu li:hover a span {
    color: var(--tb-navy);
}
body.theme-toybazaar ul.Cat_menu li a i {
    position: static;
    font-size: 12px;
    color: rgba(255,255,255,.75);
    transition: transform .2s ease, color .2s ease;
}
body.theme-toybazaar ul.Cat_menu li:hover a i {
    transform: translateX(3px);
    color: var(--tb-navy);
}

/* ---------- Mega-menu flyout (2nd level: child_menu) ---------- */
body.theme-toybazaar .child_menu {
    background: var(--tb-menu-green) !important;
    border: none !important;
    border-radius: 18px;
    box-shadow: 0 22px 46px rgba(11,27,63,.22);
    padding: 10px;
    width: 270px;
    left: calc(100% + 8px);
    transform: translateX(-12px);
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), opacity .25s ease, visibility .25s ease;
}
body.theme-toybazaar [class*="cat_list_hover"]:hover .child_menu {
    transform: translateX(0);
}
body.theme-toybazaar ul.child_menu li {
    border-bottom: none !important;
    border-radius: 12px;
    padding: 8px 12px !important;
    transition: background .2s ease, transform .2s ease;
}
body.theme-toybazaar ul.child_menu li:hover {
    background: var(--tb-yellow);
    box-shadow: 0 2px 8px rgba(11,27,63,.18);
    transform: translateX(4px);
}
body.theme-toybazaar .child_main > a {
    color: #fff !important;
    font-family: 'Fredoka', sans-serif;
    font-weight: 600;
    transition: color .2s ease;
}
body.theme-toybazaar ul.child_menu li.child_main:hover > a {
    color: var(--tb-navy) !important;
}

/* ---------- Mobile off-canvas menu (brand-match the desktop menu bar) ---------- */
body.theme-toybazaar .mobile-menu-logo {
    border-bottom: 2px solid var(--tb-navy) !important;
}
body.theme-toybazaar .mobile-menu-close {
    color: var(--tb-navy) !important;
}
body.theme-toybazaar .first-nav li a:hover {
    background: var(--tb-cream) !important;
    color: var(--tb-navy) !important;
    border-left: 4px solid var(--tb-yellow) !important;
}
body.theme-toybazaar .menu-category-toggle,
body.theme-toybazaar .menu-subcategory-toggle {
    color: var(--tb-navy) !important;
    opacity: .8;
}
body.theme-toybazaar .second-nav,
body.theme-toybazaar .third-nav {
    border-left: 2px solid var(--tb-yellow) !important;
}

/* ---------- Section headings (always centered) ---------- */
body.theme-toybazaar .tb-section-title {
    font-family: 'Fredoka', sans-serif;
    font-size: 1.6rem;
    font-weight: 600;
    color: var(--tb-navy);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
}
body.theme-toybazaar .tb-section-title .tb-badge-dot {
    width: 10px; height: 10px; border-radius: 50%;
    background: var(--tb-pink); display: inline-block;
    position: relative;
    animation: tb-dot-pulse 2.2s ease-in-out infinite;
}
body.theme-toybazaar .tb-section-title .tb-badge-dot::before {
    content: ''; position: absolute; inset: -6px; border-radius: 50%;
    border: 2px solid var(--tb-pink);
    animation: tb-dot-ring 2.2s ease-out infinite;
}
@keyframes tb-dot-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.25); }
}
@keyframes tb-dot-ring {
    0% { transform: scale(.6); opacity: .6; }
    100% { transform: scale(1.6); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    body.theme-toybazaar .tb-section-title .tb-badge-dot,
    body.theme-toybazaar .tb-section-title .tb-badge-dot::before { animation: none; }
}
body.theme-toybazaar .tb-section-sub {
    color: var(--tb-muted);
    font-size: .9rem;
    margin-top: -6px;
    text-align: center;
}

/* ---------- Product cards ---------- */
body.theme-toybazaar .tb-card {
    background: #fff;
    border-radius: var(--tb-radius);
    border: 1px solid #eef0f2;
    box-shadow: 0 4px 16px rgba(11, 27, 63, .07);
    overflow: hidden;
    position: relative;
    transition: transform .2s ease, box-shadow .2s ease;
}
body.theme-toybazaar .tb-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(11, 27, 63, .14);
}
body.theme-toybazaar .tb-card-img {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f9fafb;
}
body.theme-toybazaar .tb-card-img img {
    width: 100%; height: 100%; object-fit: cover;
}
body.theme-toybazaar .tb-ribbon {
    position: absolute; top: 10px; left: 10px; z-index: 2;
    background: var(--tb-pink); color: #fff;
    font-size: 11px; font-weight: 700; letter-spacing: .03em;
    padding: 4px 10px; border-radius: 999px;
}
body.theme-toybazaar .tb-ribbon.tb-ribbon-sale { background: #dc2626; }
body.theme-toybazaar .tb-wishlist-btn {
    position: absolute; top: 8px; right: 8px; z-index: 2;
    width: 32px; height: 32px; border-radius: 50%;
    background: rgba(255,255,255,.94); border: none;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 2px 8px rgba(11,27,63,.15);
    cursor: pointer; transition: transform .15s ease;
}
body.theme-toybazaar .tb-wishlist-btn:hover { transform: scale(1.1); }
body.theme-toybazaar .tb-wishlist-btn i { color: #9ca3af; font-size: 14px; transition: color .15s ease; }
body.theme-toybazaar .tb-wishlist-btn.is-active i { color: var(--tb-pink); }
body.theme-toybazaar .tb-card-body { padding: 12px 14px 14px; }
body.theme-toybazaar .tb-card-title {
    font-size: .92rem; font-weight: 700; color: var(--tb-ink);
    display: block; margin-bottom: 6px; text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
body.theme-toybazaar .tb-card-price del { color: var(--tb-muted); font-size: .85rem; margin-right: 6px; }
body.theme-toybazaar .tb-card-price span { color: var(--tb-green-dark); font-weight: 800; font-size: 1.05rem; }
body.theme-toybazaar .tb-add-btn {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    width: 100%; margin-top: 10px;
    background: var(--tb-navy); color: var(--tb-yellow); border: none;
    border-radius: 999px; padding: 9px; font-weight: 700; font-size: .88rem;
    text-align: center; text-decoration: none; cursor: pointer;
    transition: background .2s ease, transform .15s ease;
}
body.theme-toybazaar .tb-add-btn:hover { background: var(--tb-navy-dark); color: var(--tb-yellow); transform: translateY(-2px); }
body.theme-toybazaar .tb-add-btn:active { transform: scale(.96); }
body.theme-toybazaar .tb-add-btn.tb-btn-added {
    background: var(--tb-green) !important; color: #fff !important;
}
/* ---------- Add to cart: fly-to-cart + cart bounce ---------- */
.tb-fly-dot {
    position: fixed; z-index: 99999; pointer-events: none;
    width: 16px; height: 16px; border-radius: 50%;
    background: var(--tb-pink, #ff5c93);
    box-shadow: 0 0 0 4px rgba(255,92,147,.25);
    transition: transform .65s cubic-bezier(.34,.04,.7,.98), opacity .65s ease .35s;
}
@keyframes tb-cart-bounce {
    0%, 100% { transform: scale(1); }
    30% { transform: scale(1.35) rotate(-8deg); }
    55% { transform: scale(.9) rotate(6deg); }
    75% { transform: scale(1.12); }
}
.tb-cart-bounce { animation: tb-cart-bounce .5s ease; }

/* ---------- Confetti burst pieces (spawned by JS on celebratory actions) ---------- */
.tb-confetti-piece {
    position: fixed; top: 0; left: 0; z-index: 100000; pointer-events: none;
}

body.theme-toybazaar .tb-add-btn .tb-btn-check {
    display: inline-flex; opacity: 0; transform: scale(0);
    transition: opacity .2s ease, transform .3s cubic-bezier(.34,1.56,.64,1);
}
body.theme-toybazaar .tb-add-btn.tb-btn-added .tb-btn-check {
    opacity: 1; transform: scale(1);
}

/* ---------- Shop by Age (shared partial) — playful pop cards ---------- */
body.theme-toybazaar .sba-grid { gap: 20px; }
body.theme-toybazaar .tb-age-card {
    background: var(--tb-cream);
    box-shadow: 0 6px 16px rgba(11,27,63,.08);
    border-radius: 22px;
    padding: 26px 12px 18px;
    position: relative;
    overflow: hidden;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease, background .35s ease;
}
body.theme-toybazaar .tb-age-card:nth-child(5n+2) { background: #fff0f5; }
body.theme-toybazaar .tb-age-card:nth-child(5n+3) { background: #eafaf1; }
body.theme-toybazaar .tb-age-card:nth-child(5n+4) { background: #eef2fb; }
body.theme-toybazaar .tb-age-card:nth-child(5n+5) { background: #fffbe0; }
body.theme-toybazaar .tb-age-card::before {
    content: ''; position: absolute; top: -30px; right: -30px;
    width: 70px; height: 70px; border-radius: 50%;
    background: rgba(11,27,63,.05);
    transition: transform .4s ease;
}
body.theme-toybazaar .tb-age-card:hover::before { transform: scale(2.4); }
body.theme-toybazaar .tb-age-card .sba-cta-chip {
    display: inline-block;
    position: absolute; left: 50%; bottom: 10px; z-index: 2;
    transform: translate(-50%, 14px); opacity: 0;
    background: var(--tb-navy); color: var(--tb-yellow);
    font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .72rem;
    padding: 4px 14px; border-radius: 999px; white-space: nowrap;
    transition: transform .3s cubic-bezier(.34,1.56,.64,1), opacity .3s ease;
}
body.theme-toybazaar .tb-age-card:hover .sba-cta-chip {
    transform: translate(-50%, 0); opacity: 1;
}
body.theme-toybazaar .tb-age-card:hover {
    transform: translateY(-8px) scale(1.05);
    box-shadow: 0 16px 30px rgba(11,27,63,.18);
}
body.theme-toybazaar .tb-age-card .sba-photo,
body.theme-toybazaar .tb-age-card .sba-emoji {
    width: 84px; height: 84px; border-radius: 50%;
    border: 4px solid var(--tb-navy);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.9rem; background: #fff;
    box-shadow: 0 4px 12px rgba(11,27,63,.12);
    margin-bottom: 10px;
    position: relative; z-index: 1;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1);
}
body.theme-toybazaar .tb-age-card::after {
    content: ''; position: absolute; z-index: 0;
    top: 26px; left: 50%; width: 84px; height: 84px;
    transform: translateX(-50%); border-radius: 50%;
    border: 3px solid var(--tb-navy); opacity: 0;
    animation: tb-age-ping 2.2s ease-out infinite;
}
body.theme-toybazaar .tb-age-card:hover::after { animation-play-state: running; }
body.theme-toybazaar .tb-age-card:not(:hover)::after { animation-play-state: paused; opacity: 0; }
body.theme-toybazaar .tb-age-card:hover .sba-photo,
body.theme-toybazaar .tb-age-card:hover .sba-emoji {
    animation: tb-age-bounce .6s cubic-bezier(.34,1.56,.64,1);
}
body.theme-toybazaar .tb-age-card:nth-child(2n) .sba-photo,
body.theme-toybazaar .tb-age-card:nth-child(2n) .sba-emoji,
body.theme-toybazaar .tb-age-card:nth-child(2n)::after { border-color: var(--tb-pink); }
body.theme-toybazaar .tb-age-card:nth-child(3n) .sba-photo,
body.theme-toybazaar .tb-age-card:nth-child(3n) .sba-emoji,
body.theme-toybazaar .tb-age-card:nth-child(3n)::after { border-color: var(--tb-green); }
body.theme-toybazaar .tb-age-card:nth-child(4n) .sba-photo,
body.theme-toybazaar .tb-age-card:nth-child(4n) .sba-emoji,
body.theme-toybazaar .tb-age-card:nth-child(4n)::after { border-color: var(--tb-yellow-dark); }
body.theme-toybazaar .tb-age-card .sba-label {
    font-family: 'Fredoka', sans-serif; font-size: 1rem; font-weight: 600; color: var(--tb-navy);
    position: relative; z-index: 1;
}
@keyframes tb-age-ping {
    0% { transform: translateX(-50%) scale(.85); opacity: .6; }
    100% { transform: translateX(-50%) scale(1.35); opacity: 0; }
}
@keyframes tb-age-bounce {
    0% { transform: scale(1) rotate(0deg); }
    35% { transform: scale(1.16) rotate(-6deg); }
    65% { transform: scale(.96) rotate(4deg); }
    100% { transform: scale(1.08) rotate(0deg); }
}
@media (prefers-reduced-motion: reduce) {
    body.theme-toybazaar .tb-age-card::after { animation: none; }
    body.theme-toybazaar .tb-age-card:hover .sba-photo,
    body.theme-toybazaar .tb-age-card:hover .sba-emoji { animation: none; transform: scale(1.08); }
}

/* ---------- Category cards — full-bleed interactive image tiles ---------- */
body.theme-toybazaar .tb-cat-card {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: var(--tb-radius);
    overflow: hidden;
    background: var(--tb-cream);
    border: 3px solid #fff;
    box-shadow: 0 6px 18px rgba(11,27,63,.1);
    transition: transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease, border-color .3s ease;
}
body.theme-toybazaar .tb-cat-card:hover {
    transform: translateY(-6px) scale(1.03);
    border-color: var(--tb-yellow);
    box-shadow: 0 18px 30px rgba(11,27,63,.2);
}
body.theme-toybazaar .tb-cat-card img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; margin: 0;
    transition: transform .4s ease;
}
body.theme-toybazaar .tb-cat-card:hover img {
    transform: scale(1.15) rotate(-2deg);
}
body.theme-toybazaar .tb-cat-card::before {
    content: '';
    position: absolute; left: 0; right: 0; bottom: 0; height: 65%;
    background: linear-gradient(to top, rgba(11,27,63,.88), transparent);
    z-index: 1;
}
body.theme-toybazaar .tb-cat-card .tb-cat-name {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    padding: 14px 10px; text-align: center;
    font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .95rem; color: #fff;
}

/* ---------- Ways to Play (colorful spotlight stage) ---------- */
body.theme-toybazaar .tb-play-section {
    background: #fff;
    padding: 50px 0 60px;
}
body.theme-toybazaar .tb-play-stage {
    position: relative;
    overflow: hidden;
    margin-top: 26px;
    padding: 44px 20px 34px;
    border-radius: 32px;
    background: var(--tb-play-bg, var(--tb-cream));
    background: linear-gradient(155deg, var(--tb-play-bg, var(--tb-cream)), color-mix(in srgb, var(--tb-play-bg, var(--tb-cream)) 65%, #000 18%));
    box-shadow: 0 24px 50px -12px rgba(11,27,63,.28);
}
body.theme-toybazaar .tb-play-stage::before {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: radial-gradient(rgba(255,255,255,.5) 2px, transparent 2px);
    background-size: 28px 28px;
    opacity: .5;
    -webkit-mask-image: radial-gradient(ellipse at center, #000 55%, transparent 90%);
    mask-image: radial-gradient(ellipse at center, #000 55%, transparent 90%);
}
body.theme-toybazaar .tb-play-aurora {
    position: absolute; inset: 0; z-index: 0; pointer-events: none;
    overflow: hidden;
}
body.theme-toybazaar .tb-play-aurora span {
    position: absolute; border-radius: 50%; filter: blur(40px);
    background: rgba(255,255,255,.55);
    animation: tb-aurora-drift 15s ease-in-out infinite;
}
body.theme-toybazaar .tb-play-aurora span.a1 {
    top: -14%; left: 2%; width: 200px; height: 200px; animation-delay: 0s;
}
body.theme-toybazaar .tb-play-aurora span.a2 {
    top: 25%; right: 4%; width: 240px; height: 240px;
    animation-delay: 3s; animation-duration: 19s;
}
body.theme-toybazaar .tb-play-aurora span.a3 {
    bottom: -18%; left: 36%; width: 220px; height: 220px;
    animation-delay: 6s; animation-duration: 21s;
}
@keyframes tb-aurora-drift {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(20px, -16px) scale(1.1); }
    66% { transform: translate(-16px, 14px) scale(.92); }
}
@media (prefers-reduced-motion: reduce) {
    body.theme-toybazaar .tb-play-aurora span { animation: none; }
}
body.theme-toybazaar .tb-play-carousel { position: relative; z-index: 1; }
body.theme-toybazaar .tb-play-tile {
    background: #fff; border-radius: 16px; padding: 8px 8px 14px;
    box-shadow: 0 10px 22px rgba(11,27,63,.2);
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
}
body.theme-toybazaar .tb-play-carousel .owl-item:nth-child(odd) .tb-play-tile { transform: rotate(-2.5deg); }
body.theme-toybazaar .tb-play-carousel .owl-item:nth-child(even) .tb-play-tile { transform: rotate(2.5deg); }
body.theme-toybazaar .tb-play-tile:hover {
    transform: rotate(0deg) translateY(-6px) scale(1.04) !important;
    box-shadow: 0 18px 34px rgba(11,27,63,.32);
}
body.theme-toybazaar .tb-play-media {
    position: relative; border-radius: 10px; overflow: hidden;
    aspect-ratio: 4 / 5; background: #000;
}
body.theme-toybazaar .tb-play-media .tb-play-video { width: 100%; height: 100%; object-fit: cover; display: block; }
body.theme-toybazaar .tb-play-link { position: absolute; inset: 0; z-index: 1; }
body.theme-toybazaar .tb-play-caption {
    display: block; text-align: center; margin-top: 10px;
    font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .95rem; color: var(--tb-navy);
}
body.theme-toybazaar .tb-play-mute {
    position: absolute; bottom: 10px; right: 10px; z-index: 2;
    width: 32px; height: 32px; border-radius: 50%; border: none;
    background: rgba(11,27,63,.6); color: #fff; font-size: 12px;
    display: flex; align-items: center; justify-content: center; cursor: pointer;
    transition: background .2s ease;
}
body.theme-toybazaar .tb-play-mute:hover { background: rgba(11,27,63,.85); }
body.theme-toybazaar .tb-play-mute.is-unmuted { color: var(--tb-yellow); }
body.theme-toybazaar .owl-nav button {
    background: #fff !important; color: var(--tb-navy) !important;
    width: 38px; height: 38px; border-radius: 50%;
    box-shadow: 0 4px 12px rgba(11,27,63,.2);
}
body.theme-toybazaar .tb-play-carousel { position: relative; padding: 0 52px; }
body.theme-toybazaar .tb-play-carousel .owl-nav { margin-top: 0; }
body.theme-toybazaar .tb-play-carousel .owl-nav button.owl-prev,
body.theme-toybazaar .tb-play-carousel .owl-nav button.owl-next {
    position: absolute !important; top: 50%; transform: translateY(-50%);
    width: 42px; height: 42px; font-size: 15px; margin: 0 !important;
}
body.theme-toybazaar .tb-play-carousel .owl-nav button.owl-prev { left: 0; }
body.theme-toybazaar .tb-play-carousel .owl-nav button.owl-next { right: 0; }
@media (max-width: 575px) {
    body.theme-toybazaar .tb-play-carousel { padding: 0 38px; }
    body.theme-toybazaar .tb-play-carousel .owl-nav button.owl-prev,
    body.theme-toybazaar .tb-play-carousel .owl-nav button.owl-next { width: 32px; height: 32px; font-size: 12px; }
}

/* ---------- Instagram / social strip (continuous left-to-right auto-scroll) ---------- */
body.theme-toybazaar .tb-social-scroll {
    margin-top: 20px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}
body.theme-toybazaar .tb-social-track {
    display: flex;
    gap: 14px;
    width: max-content;
    animation: tb-social-marquee 28s linear infinite;
}
body.theme-toybazaar .tb-social-scroll:hover .tb-social-track {
    animation-play-state: paused;
}
@keyframes tb-social-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
body.theme-toybazaar .tb-social-tile {
    position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 1/1;
    display: block; flex: 0 0 220px; width: 220px;
    border: 3px solid #fff; box-shadow: 0 4px 14px rgba(11,27,63,.12);
}
@media (max-width: 575px) { body.theme-toybazaar .tb-social-tile { flex-basis: 160px; width: 160px; } }
body.theme-toybazaar .tb-social-tile img { width: 100%; height: 100%; object-fit: cover; }
body.theme-toybazaar .tb-social-ribbon {
    position: absolute; top: 10px; left: -28px; transform: rotate(-45deg);
    background: var(--tb-pink); color: #fff; font-size: 10px; font-weight: 700;
    padding: 3px 32px; box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
body.theme-toybazaar .tb-social-handle {
    display: inline-block; margin-top: 18px; background: var(--tb-yellow); color: var(--tb-navy);
    font-weight: 700; font-size: .85rem; padding: 8px 22px; border-radius: 999px; text-decoration: none;
    border: 2px solid var(--tb-navy);
}
body.theme-toybazaar .tb-social-handle:hover { color: var(--tb-navy); background: var(--tb-yellow-dark); }

/* ---------- Trust badges ---------- */
body.theme-toybazaar .tb-trust-strip {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
@media (max-width: 767px) { body.theme-toybazaar .tb-trust-strip { grid-template-columns: repeat(2, 1fr); } }
body.theme-toybazaar .tb-trust-item {
    background: var(--tb-trust-bg, var(--tb-cream)); border-radius: var(--tb-radius);
    padding: 20px 14px; text-align: center;
}
body.theme-toybazaar .tb-trust-item .tb-trust-icon {
    width: 46px; height: 46px; border-radius: 50%; background: var(--tb-navy);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 10px; font-size: 1.2rem; color: var(--tb-yellow);
    box-shadow: 0 2px 8px rgba(11,27,63,.15);
}
body.theme-toybazaar .tb-trust-item h6 { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .9rem; margin-bottom: 2px; color: var(--tb-navy); }
body.theme-toybazaar .tb-trust-item p { font-size: .78rem; color: var(--tb-muted); margin: 0; text-align: center; }

/* ---------- Mobile bottom nav (restyles the site-wide bar for this theme) ---------- */
body.theme-toybazaar .mobile_bottom_nav .nav_item.active,
body.theme-toybazaar .mobile_bottom_nav .nav_item:hover {
    color: var(--tb-navy) !important;
}
body.theme-toybazaar .mobile_bottom_nav .home_fab {
    background: var(--tb-navy) !important;
}
body.theme-toybazaar .mobile_bottom_nav .cart_badge {
    background: var(--tb-pink) !important;
}

/* ---------- Hero badge pill ---------- */
body.theme-toybazaar .tb-hero-badge {
    background: var(--tb-yellow) !important;
    color: var(--tb-navy) !important;
    border: 2px solid var(--tb-navy);
}

/* ---------- Countdown / urgency strip ---------- */
body.theme-toybazaar .tb-countdown {
    background: var(--tb-pink);
    color: #fff;
    padding: 10px 0;
    text-align: center;
}
body.theme-toybazaar .tb-countdown-inner {
    display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap;
}
body.theme-toybazaar .tb-countdown-label {
    font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .95rem;
}
body.theme-toybazaar .tb-countdown-timer { display: flex; gap: 6px; }
body.theme-toybazaar .tb-countdown-timer .tb-cd-unit {
    background: rgba(255,255,255,.2); border-radius: 8px; padding: 4px 9px;
    font-weight: 800; font-size: .95rem; min-width: 40px; text-align: center;
}
body.theme-toybazaar .tb-countdown-timer .tb-cd-sep { font-weight: 800; align-self: center; }

/* ---------- Hero ---------- */
body.theme-toybazaar .tb-hero-outer { position: relative; }

/* ---------- Section title squiggle underline ---------- */
body.theme-toybazaar .tb-section-title-wrap { margin-bottom: 6px; }
body.theme-toybazaar .tb-squiggle { display: block; margin-top: 4px; }
body.theme-toybazaar .tb-squiggle svg { height: 10px; }

/* ---------- Decorative dotted section backgrounds ---------- */
body.theme-toybazaar .tb-section-dots {
    background-image: radial-gradient(var(--tb-cream) 2px, transparent 2px);
    background-size: 22px 22px;
    background-position: -8px -8px;
}

/* ---------- Product rating row ---------- */
body.theme-toybazaar .tb-card-rating {
    display: flex; align-items: center; gap: 4px; margin-bottom: 6px;
    color: var(--tb-yellow-dark); font-size: .72rem;
}
body.theme-toybazaar .tb-card-rating span { color: var(--tb-muted); font-weight: 600; }
body.theme-toybazaar .tb-stock-chip {
    position: absolute; bottom: 8px; left: 8px; z-index: 2;
    background: rgba(11,27,63,.85); color: var(--tb-yellow);
    font-size: 10px; font-weight: 700; padding: 3px 9px; border-radius: 999px;
}

/* ---------- Footer reskin ---------- */
body.theme-toybazaar footer {
    background: var(--tb-navy) !important;
}
body.theme-toybazaar footer .footer-menu .title,
body.theme-toybazaar footer .newsletter-title,
body.theme-toybazaar footer .footer-social-title {
    color: var(--tb-yellow) !important;
    font-family: 'Fredoka', sans-serif;
}
body.theme-toybazaar footer .footer-menu ul li a {
    color: rgba(255,255,255,.75) !important;
}
body.theme-toybazaar footer .footer-menu ul li a:hover {
    color: var(--tb-yellow) !important;
}
body.theme-toybazaar footer .footer-newsletter-input {
    border-radius: 999px !important;
    border: 2px solid rgba(255,255,255,.25) !important;
}
body.theme-toybazaar footer .footer-newsletter-btn {
    border-radius: 999px !important;
    background: var(--tb-yellow) !important;
    color: var(--tb-navy) !important;
    font-weight: 700 !important;
    border: none !important;
}
body.theme-toybazaar footer .social_link .social_list a {
    background: rgba(255,255,255,.1) !important;
    color: var(--tb-yellow) !important;
}
body.theme-toybazaar footer .social_link .social_list a:hover {
    background: var(--tb-yellow) !important;
    color: var(--tb-navy) !important;
}
body.theme-toybazaar .footer-bottom {
    background: var(--tb-navy-dark) !important;
}

/* ---------- Scroll-reveal ---------- */
body.theme-toybazaar .tb-reveal {
    opacity: 0; transform: translateY(28px);
    transition: opacity .6s ease, transform .6s ease;
}
body.theme-toybazaar .tb-reveal.is-visible {
    opacity: 1; transform: translateY(0);
}

/* ---------- Load More (See More) button ---------- */
body.theme-toybazaar .tb-loadmore-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; color: var(--tb-navy); border: 2px solid var(--tb-navy);
    border-radius: 999px; padding: 12px 32px; font-weight: 700; font-size: .92rem;
    cursor: pointer; transition: background .2s ease, color .2s ease, transform .15s ease;
}
body.theme-toybazaar .tb-loadmore-btn:hover { background: var(--tb-navy); color: #fff; transform: translateY(-2px); }
body.theme-toybazaar .tb-loadmore-btn:disabled { opacity: .7; cursor: not-allowed; transform: none; }

/* ---------- Gift Finder (interactive widget) ---------- */
body.theme-toybazaar .tb-finder {
    background: linear-gradient(135deg, var(--tb-finder-bg, var(--tb-cream)), #fff);
    border-radius: 24px;
    padding: 36px 30px;
    text-align: center;
    border: 3px dashed var(--tb-navy);
    position: relative;
    overflow: hidden;
}
body.theme-toybazaar .tb-finder-mascot {
    width: 70px; margin-bottom: 10px;
    animation: tb-mascot-bob 3.2s ease-in-out infinite;
}
body.theme-toybazaar .tb-finder-title {
    font-family: 'Fredoka', sans-serif; font-size: 1.5rem; font-weight: 600; color: var(--tb-navy);
}
body.theme-toybazaar .tb-finder-sub { color: var(--tb-muted); margin: 0 auto 20px; text-align: center; max-width: 480px; }
body.theme-toybazaar .tb-finder-row {
    display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; align-items: center;
}
body.theme-toybazaar .tb-finder-select {
    border-radius: 999px; border: 2px solid var(--tb-navy); padding: 12px 20px;
    font-weight: 700; color: var(--tb-navy); background: #fff; min-width: 200px;
    font-family: 'Nunito', sans-serif;
}
body.theme-toybazaar .tb-finder-btn {
    border-radius: 999px; border: none; padding: 13px 28px; font-weight: 700;
    background: var(--tb-navy); color: var(--tb-yellow); cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px; transition: transform .15s ease;
}
body.theme-toybazaar .tb-finder-btn:hover { transform: translateY(-2px); }
body.theme-toybazaar .tb-finder-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* ---------- Category card hover reveal ---------- */
body.theme-toybazaar .tb-cat-card {
    position: relative;
}
body.theme-toybazaar .tb-cat-card img {
    transition: transform .3s ease;
}
body.theme-toybazaar .tb-cat-card:hover img {
    transform: scale(1.12) rotate(-3deg);
}

/* ---------- Product card 3D tilt + add-to-cart pulse ---------- */
body.theme-toybazaar .tb-card { will-change: transform; }
body.theme-toybazaar .tb-card-img img { transition: transform .35s ease; }
body.theme-toybazaar .tb-card:hover .tb-card-img img { transform: scale(1.08); }
body.theme-toybazaar .tb-add-btn.tb-btn-pulse {
    animation: tb-pulse .5s ease;
}
@keyframes tb-pulse {
    0% { transform: scale(1); }
    40% { transform: scale(.94); background: var(--tb-green); color: #fff; }
    100% { transform: scale(1); }
}

/* ---------- Toy Spotlight — twin wide banner slideshow ---------- */
body.theme-toybazaar .tb-spotlight-twin {
    display: grid; grid-template-columns: 1fr 1fr; gap: 20px;
}
@media (max-width: 767px) { body.theme-toybazaar .tb-spotlight-twin { grid-template-columns: 1fr; } }
body.theme-toybazaar .tb-spotlight-square {
    position: relative; aspect-ratio: 16 / 9; border-radius: var(--tb-radius);
    overflow: hidden; box-shadow: 0 10px 26px rgba(11,27,63,.16);
    transition: transform .4s ease, box-shadow .4s ease;
}
body.theme-toybazaar .tb-spotlight-square:hover {
    transform: translateY(-6px); box-shadow: 0 20px 40px rgba(11,27,63,.26);
}
body.theme-toybazaar .tb-spotlight-slides { position: relative; width: 100%; height: 100%; }
body.theme-toybazaar .tb-spotlight-slide {
    position: absolute; inset: 0; display: block;
    opacity: 0; transition: opacity .8s ease;
}
body.theme-toybazaar .tb-spotlight-slide.active { opacity: 1; z-index: 1; }
body.theme-toybazaar .tb-spotlight-slide img {
    width: 100%; height: 100%; object-fit: cover; transition: transform 6s ease;
}
body.theme-toybazaar .tb-spotlight-slide.active img { transform: scale(1.08); }
body.theme-toybazaar .tb-spotlight-square:hover .tb-spotlight-slide.active img {
    transform: scale(1.2);
    transition: transform .7s cubic-bezier(.25,.8,.25,1);
}
body.theme-toybazaar .tb-spotlight-square::before {
    content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background: linear-gradient(to top, rgba(11,27,63,.35), transparent 55%);
    opacity: 0; transition: opacity .4s ease;
}
body.theme-toybazaar .tb-spotlight-square:hover::before { opacity: 1; }
body.theme-toybazaar .tb-spotlight-cta {
    position: absolute; left: 20px; bottom: 20px; z-index: 3;
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--tb-yellow); color: var(--tb-navy); font-weight: 700; font-size: .9rem;
    padding: 11px 24px; border-radius: 999px; text-decoration: none;
    box-shadow: 0 6px 16px rgba(0,0,0,.25);
    transition: background .2s ease, transform .15s ease;
}
body.theme-toybazaar .tb-spotlight-cta:hover { background: var(--tb-yellow-dark); color: var(--tb-navy); transform: translateY(-2px); }
body.theme-toybazaar .tb-spotlight-dots {
    position: absolute; left: 0; right: 0; bottom: 14px; z-index: 2;
    display: flex; justify-content: center; gap: 6px;
}
body.theme-toybazaar .tb-spotlight-square .tb-spotlight-dots { bottom: auto; top: 14px; }
body.theme-toybazaar .tb-spotlight-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(255,255,255,.55); border: 1.5px solid rgba(11,27,63,.4);
    transition: background .2s ease, transform .2s ease;
}
body.theme-toybazaar .tb-spotlight-dot.active {
    background: var(--tb-yellow); transform: scale(1.25);
}

/* ==========================================================================
   PRODUCT LISTING CARDS (category / subcategory / brand / hot-deals / search)
   Re-skins the shared .product_item markup used across these pages — no
   Blade/PHP changes needed, purely visual.
   ========================================================================== */
body.theme-toybazaar .category-product,
body.theme-toybazaar .main_product_inner {
    gap: 20px !important;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important;
}
body.theme-toybazaar .product_item {
    border: none !important;
    border-radius: 18px;
    background: var(--tb-card-bg, #fff);
    box-shadow: 0 6px 18px rgba(11,27,63,.08);
    padding: 10px 10px 66px;
    overflow: visible;
    transition: transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
}
body.theme-toybazaar .product_item:hover {
    border-color: transparent !important;
    transform: translateY(-8px);
    box-shadow: 0 18px 34px rgba(11,27,63,.18);
}
body.theme-toybazaar .product_item_inner {
    border-radius: 12px;
    overflow: hidden;
}
body.theme-toybazaar .pro_img {
    border-radius: 12px;
    overflow: hidden;
    background: #f4f5f7;
    height: auto;
    aspect-ratio: 1 / 1;
}
body.theme-toybazaar .pro_img img {
    object-fit: cover;
}
/* Overrides master.blade.php's site-wide "Premium Discount Badge" inline <style>
   (uses admin's secondary_color + a pulse animation) with ToyBazaar's own look. */
body.theme-toybazaar .sale-badge {
    background: var(--tb-navy) !important;
    top: 10px !important;
    right: 10px !important;
    padding: 5px 11px !important;
    border-radius: 999px !important;
    border: none !important;
    animation: none !important;
    box-shadow: 0 4px 10px rgba(11,27,63,.35) !important;
}
body.theme-toybazaar .sale-badge-inner,
body.theme-toybazaar .sale-badge-box {
    background: transparent !important;
    width: auto !important;
    height: auto !important;
}
body.theme-toybazaar .sale-badge-text {
    font-family: 'Fredoka', sans-serif;
    font-size: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 3px !important;
}
body.theme-toybazaar .sale-badge-text p {
    font-size: 11px !important;
    font-weight: 700 !important;
    margin: 0 !important;
    color: #fff !important;
}
body.theme-toybazaar .sale-badge-text::after {
    content: "off";
    font-size: 10px;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .2px;
}
body.theme-toybazaar .pro_name {
    height: auto;
    min-height: 42px;
    margin-top: 10px;
}
body.theme-toybazaar .pro_name a {
    color: var(--tb-navy);
    font-family: 'Fredoka', sans-serif;
    font-weight: 600;
    font-size: .95rem;
}
body.theme-toybazaar .pro_name a:hover {
    color: var(--tb-pink);
    text-decoration: none;
}
body.theme-toybazaar .product_item .fa-star,
body.theme-toybazaar .product_item .fa-star-half-alt {
    color: var(--tb-yellow-dark);
    font-size: .8rem;
}
body.theme-toybazaar .product_item .far.fa-star {
    color: #d9dde5;
    font-size: .8rem;
}
body.theme-toybazaar .pro_price p {
    color: var(--tb-green) !important;
    font-family: 'Fredoka', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
}
body.theme-toybazaar .pro_price del {
    color: #9aa3b2 !important;
    font-weight: 400;
}
body.theme-toybazaar .pro_btn {
    position: absolute !important;
    left: 10px !important; right: 10px !important; bottom: 10px !important;
    width: calc(100% - 20px) !important;
    display: flex !important;
    align-items: stretch !important;
    gap: 8px !important;
    min-width: 0;
}
body.theme-toybazaar .pro_btn form,
body.theme-toybazaar .pro_btn > a.order-btn-link,
body.theme-toybazaar .pro_btn > *:first-child {
    min-width: 0;
    flex: 1 1 auto !important;
}
body.theme-toybazaar .pro_btn > *:last-child:not(:first-child) {
    flex: 0 0 40px !important;
    max-width: 40px !important;
    width: 40px !important;
}
body.theme-toybazaar .pro_btn button.order-btn,
body.theme-toybazaar .order-btn,
body.theme-toybazaar .order-btn-link {
    background: var(--tb-order-btn-color, var(--tb-navy)) !important;
    color: #fff !important;
    border-radius: 999px !important;
    font-family: 'Fredoka', sans-serif;
    font-weight: 600;
    font-size: 0 !important;
    text-transform: none !important;
    letter-spacing: .2px;
    padding: 10px 0 !important;
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: transform .25s cubic-bezier(.34,1.56,.64,1), background .2s ease;
}
body.theme-toybazaar .pro_btn button.order-btn::before,
body.theme-toybazaar .order-btn::before,
body.theme-toybazaar .order-btn-link::before {
    content: var(--tb-order-btn-text, "অর্ডার করুন");
    font-size: .8rem;
    font-family: 'Hind Siliguri', 'Fredoka', sans-serif;
}
body.theme-toybazaar .pro_btn button.order-btn:hover,
body.theme-toybazaar .order-btn:hover,
body.theme-toybazaar .order-btn-link:hover {
    filter: brightness(1.15);
    color: var(--tb-yellow) !important;
    transform: scale(1.04);
}
body.theme-toybazaar .cart-icon-btn,
body.theme-toybazaar .cart-icon-link,
body.theme-toybazaar .product_item .cart-icon-btn,
body.theme-toybazaar .product_item .cart-icon-link,
body.theme-toybazaar .product_item .pro_btn button.cart-icon-btn {
    background: var(--tb-cart-btn-color, var(--tb-yellow)) !important;
    border-radius: 999px !important;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px;
    display: flex !important;
    align-items: center; justify-content: center;
    padding: 0 !important;
    transition: transform .25s cubic-bezier(.34,1.56,.64,1), filter .2s ease;
}
body.theme-toybazaar .cart-icon-btn:hover,
body.theme-toybazaar .cart-icon-link:hover,
body.theme-toybazaar .product_item .cart-icon-btn:hover,
body.theme-toybazaar .product_item .cart-icon-link:hover,
body.theme-toybazaar .product_item .pro_btn button.cart-icon-btn:hover {
    background: var(--tb-cart-btn-color, var(--tb-yellow)) !important;
    filter: brightness(1.1);
    transform: scale(1.1) rotate(-6deg);
}
body.theme-toybazaar .cart-icon-btn i,
body.theme-toybazaar .cart-icon-link i {
    color: var(--tb-navy) !important;
}
@media (max-width: 420px) {
    body.theme-toybazaar .category-product,
    body.theme-toybazaar .main_product_inner {
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
    }
}
body.theme-toybazaar .quick_view_hard a {
    border-radius: 50%;
    border-color: var(--tb-cream);
    background: #fff;
    box-shadow: 0 4px 10px rgba(11,27,63,.15);
}
body.theme-toybazaar .quick_view_hard a:hover {
    background: var(--tb-pink);
    border-color: var(--tb-pink);
    color: #fff;
}
