:root{
    --brand:#00a86b;
    --brand-2:#10b981;
    --brand-dark:#00885a;
    --accent:#f59e0b;
    --danger:#ef4444;
    --info:#3b82f6;
    --purple:#7c3aed;
    --text:#1f2937;
    --muted:#64748b;
    --muted-2:#94a3b8;
    --dark:#0f172a;
    --line:#e2e8f0;
    --border:#e5e7eb;
    --bg:#f8fafc;
    --bg-2:#f1f5f9;
    --bg-card:#ffffff;
    --bg-soft:#fcfefe;
    --glass:rgba(255,255,255,.72);
    --glass-strong:rgba(255,255,255,.90);
    --glass-border:rgba(255,255,255,.42);
    --overlay:rgba(15,23,42,.50);

    --shadow-2xs:0 1px 3px rgba(15,23,42,.04);
    --shadow-xs:0 2px 10px rgba(15,23,42,.05);
    --shadow-sm:0 8px 24px rgba(15,23,42,.06);
    --shadow:0 14px 32px rgba(15,23,42,.08);
    --shadow-md:0 18px 44px rgba(15,23,42,.10);
    --shadow-lg:0 24px 60px rgba(15,23,42,.14);
    --shadow-xl:0 34px 84px rgba(15,23,42,.18);
    --shadow-brand:0 18px 38px rgba(0,168,107,.22);
    --shadow-brand-lg:0 24px 58px rgba(0,168,107,.28);

    --radius-2xl:34px;
    --radius-xl:28px;
    --radius-lg:24px;
    --radius:22px;
    --radius-md:18px;
    --radius-sm:14px;
    --radius-xs:10px;

    --ring:0 0 0 4px rgba(0,168,107,.12);

    --grad-brand:linear-gradient(135deg,var(--brand),var(--brand-dark));
    --grad-brand-2:linear-gradient(135deg,var(--brand),var(--brand-2),var(--brand-dark));
    --grad-accent:linear-gradient(135deg,#fbbf24,#f59e0b);
    --grad-info:linear-gradient(135deg,#38bdf8,#2563eb);
    --grad-purple:linear-gradient(135deg,#8b5cf6,#7c3aed);
    --grad-danger:linear-gradient(135deg,#ef4444,#dc2626);
    --grad-dark:linear-gradient(135deg,#0f172a,#111827 60%,#0b1220);
    --grad-surface:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,255,255,.90));
    --grad-hero:linear-gradient(135deg,#dcfff2 0%,#ffffff 54%,#fff7db 100%);
    --grad-premium:linear-gradient(135deg,#020617 0%,#0f172a 50%,#1e293b 100%);
}

body.dark-mode{
    --text:#e5e7eb;
    --muted:#94a3b8;
    --muted-2:#64748b;
    --line:#1f2a3b;
    --border:#243041;
    --bg:#0b1220;
    --bg-2:#0f172a;
    --bg-card:#111827;
    --bg-soft:#111827;
    --glass:rgba(17,24,39,.70);
    --glass-strong:rgba(17,24,39,.90);
    --glass-border:rgba(255,255,255,.06);
    --overlay:rgba(2,6,23,.64);

    --shadow-2xs:0 1px 3px rgba(0,0,0,.10);
    --shadow-xs:0 2px 10px rgba(0,0,0,.14);
    --shadow-sm:0 8px 24px rgba(0,0,0,.18);
    --shadow:0 14px 32px rgba(0,0,0,.28);
    --shadow-md:0 18px 44px rgba(0,0,0,.32);
    --shadow-lg:0 24px 60px rgba(0,0,0,.38);
    --shadow-xl:0 34px 84px rgba(0,0,0,.44);

    --grad-surface:linear-gradient(180deg,rgba(17,24,39,.96),rgba(15,23,42,.94));
    --grad-hero:linear-gradient(135deg,rgba(0,168,107,.16),rgba(17,24,39,.96),rgba(245,158,11,.08));
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    color:var(--text);
    font-family:Inter, Arial, sans-serif;
    line-height:1.5;
    letter-spacing:.01em;
    background:
        radial-gradient(circle at top right, rgba(0,168,107,.05), transparent 22%),
        radial-gradient(circle at bottom left, rgba(59,130,246,.05), transparent 20%),
        var(--bg);
    transition:background .25s ease,color .25s ease;
}

::selection{
    background:rgba(0,168,107,.20);
    color:inherit;
}

h1,h2,h3,h4,h5,h6{
    color:var(--text);
    letter-spacing:-.03em;
}

.text-secondary,
.small.text-secondary,
.text-white-50{
    color:var(--muted) !important;
}

.container-fluid-wide{
    width:min(100%,1840px);
    margin:0 auto;
    padding:0 24px;
}

.layout-section{
    padding:28px 0 48px;
}

.card,
.left-panel,
.section-shell,
.subcat-chip-wrap,
.glass-panel,
.quick-view-card,
.command-card,
.side-drawer,
.chat-panel{
    background:var(--grad-surface);
    color:var(--text);
    border:1px solid var(--border);
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
    position:relative;
}

.card{
    overflow:hidden;
}

.card::before,
.left-panel::before,
.section-shell::before,
.subcat-chip-wrap::before,
.glass-panel::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 28%);
    opacity:.8;
}

body.dark-mode .card::before,
body.dark-mode .left-panel::before,
body.dark-mode .section-shell::before,
body.dark-mode .subcat-chip-wrap::before,
body.dark-mode .glass-panel::before{
    opacity:.12;
}

.left-panel,
.section-shell,
.subcat-chip-wrap{
    padding:18px;
}

.left-sticky-stack{
    top:108px;
    display:flex;
    flex-direction:column;
    gap:14px;
}

.panel-head,
.section-head,
.drawer-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:14px;
}

.micro-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:30px;
    padding:6px 12px;
    border-radius:999px;
    background:linear-gradient(135deg,rgba(16,185,129,.16),rgba(59,130,246,.06));
    color:#047857;
    font-size:11px;
    font-weight:900;
    letter-spacing:.04em;
    text-transform:uppercase;
    border:1px solid rgba(0,168,107,.12);
    white-space:nowrap;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}

body.dark-mode .micro-badge{
    color:#6ee7b7;
    border-color:rgba(16,185,129,.18);
}

.small-muted{
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
}

.bg-success.text-white.py-2.border-bottom{
    background:linear-gradient(90deg,#022c22,#065f46,#0f766e) !important;
    border-color:rgba(255,255,255,.08) !important;
    box-shadow:var(--shadow-xs);
}

.bg-success.text-white.py-2.border-bottom .badge.text-bg-warning{
    color:#111827 !important;
    font-weight:900;
}

.bg-success.text-white.py-2.border-bottom .badge.text-bg-dark{
    background:rgba(2,6,23,.78) !important;
}

.bg-white.border-bottom.py-2,
header.bg-white.sticky-top{
    background:var(--glass-strong) !important;
    backdrop-filter:blur(12px);
    border-color:var(--border) !important;
}

header.bg-white.sticky-top{
    box-shadow:0 10px 32px rgba(15,23,42,.06);
    z-index:1030;
}

header .bg-success.text-white.rounded-circle{
    background:var(--grad-brand-2) !important;
    box-shadow:var(--shadow-brand);
}

header .fw-bold.fs-5{
    color:var(--brand);
}

header .input-group{
    position:relative;
    border:1px solid var(--border);
    border-radius:20px;
    overflow:hidden;
    background:var(--bg-card);
    box-shadow:var(--shadow);
}

header .input-group .form-control,
header .input-group .btn{
    border:0 !important;
    box-shadow:none !important;
    background:transparent;
    color:var(--text);
}

.btn{
    border-radius:999px;
    font-weight:800;
    letter-spacing:.01em;
    transition:transform .18s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease,color .22s ease;
}

.btn:hover{
    transform:translateY(-1px);
}

.btn:active{
    transform:translateY(0);
}

.btn:focus,
.btn:focus-visible{
    box-shadow:var(--ring) !important;
    outline:none;
}

.btn-success,
.btn-brand{
    background:var(--grad-brand-2);
    border-color:transparent;
    color:#fff;
}

.btn-success:hover,
.btn-brand:hover{
    background:linear-gradient(135deg,var(--brand-dark),var(--brand),var(--brand-dark));
    border-color:transparent;
    color:#fff;
    box-shadow:var(--shadow-brand);
}

.btn-outline-secondary,
.btn-outline-dark,
.btn-outline-primary,
.btn-outline-warning,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-light{
    background:var(--bg-card);
    color:var(--text);
    border-color:var(--border);
}

.btn-outline-secondary:hover,
.btn-outline-dark:hover,
.btn-outline-primary:hover,
.btn-outline-warning:hover,
.btn-outline-success:hover,
.btn-outline-danger:hover,
.btn-outline-light:hover{
    background:var(--bg-card);
    border-color:rgba(0,168,107,.35);
    color:var(--brand);
    box-shadow:var(--shadow-sm);
}

.form-control,
.form-select,
textarea{
    border:1px solid var(--border);
    color:var(--text);
    background:var(--bg-card);
    border-radius:16px !important;
    box-shadow:none !important;
    min-height:46px;
}

.form-control::placeholder,
textarea::placeholder{
    color:var(--muted);
}

.form-control:focus,
.form-select:focus,
textarea:focus{
    border-color:rgba(0,168,107,.45);
    box-shadow:var(--ring), var(--shadow-xs) !important;
    background:var(--bg-card);
    color:var(--text);
}

.form-range{
    accent-color:var(--brand);
}

.badge{
    border-radius:999px;
    padding:.56rem .82rem;
    font-weight:800;
    letter-spacing:.02em;
}

.text-bg-light.border,
.badge.text-bg-light{
    background:var(--bg-card) !important;
    border:1px solid var(--border) !important;
    color:var(--text) !important;
}

.text-bg-success{background:var(--grad-brand-2) !important;color:#fff !important}
.text-bg-primary{background:var(--grad-info) !important;color:#fff !important}
.text-bg-danger{background:var(--grad-danger) !important;color:#fff !important}
.text-bg-warning{background:var(--grad-accent) !important;color:#111827 !important}
.text-bg-dark{background:var(--grad-dark) !important;color:#fff !important}
.text-bg-info{background:var(--grad-info) !important;color:#fff !important}

.brand-chip-wrap,
#recentSearchChipWrap,
#homeActiveFilterBadges,
#homeSelectedCategoryPath,
#productsActiveFilterBadges,
#productsSelectedCategoryPath{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.brand-chip,
.path-chip,
.active-badge{
    border:1px solid var(--border);
    background:var(--bg-card);
    color:var(--text);
    border-radius:999px;
    padding:8px 14px;
    font-size:12px;
    font-weight:800;
    transition:.2s ease;
    box-shadow:var(--shadow-2xs);
    cursor:pointer;
}

.brand-chip.active,
.brand-chip:hover,
.path-chip.active,
.active-badge.active{
    background:var(--brand);
    color:#fff;
    border-color:var(--brand);
    box-shadow:0 12px 24px rgba(0,168,107,.18);
}

.service-card-link{
    cursor:pointer;
    border:0;
}

#categoryTree .category-top-btn,
#categoryTree .mid-category-btn,
#categoryTree .end-category-btn{
    width:100%;
    text-align:left;
    border:1px solid var(--border);
    background:var(--bg-card);
    color:var(--text);
    display:flex;
    justify-content:space-between;
    align-items:center;
    transition:.22s ease;
    box-shadow:var(--shadow-2xs);
}

#categoryTree .category-top-btn{
    border-radius:16px;
    padding:13px 14px;
    font-weight:800;
    margin-bottom:10px;
}

#categoryTree .mid-category-btn,
#categoryTree .end-category-btn{
    border-radius:14px;
    padding:10px 12px;
    font-weight:700;
    margin-bottom:8px;
}

#categoryTree .category-top-btn.active,
#categoryTree .category-top-btn:hover,
#categoryTree .mid-category-btn.active,
#categoryTree .mid-category-btn:hover,
#categoryTree .end-category-btn.active,
#categoryTree .end-category-btn:hover{
    background:rgba(0,168,107,.08);
    color:#047857;
    border-color:#b7ebd2;
    box-shadow:0 10px 22px rgba(0,168,107,.08);
}

#categoryTree .mid-category-wrap,
#categoryTree .end-category-wrap{
    display:none;
}

#categoryTree .mid-category-wrap.show,
#categoryTree .end-category-wrap.show{
    display:block;
}

.card.border-0.shadow-sm.overflow-hidden{
    border-radius:var(--radius-2xl);
    box-shadow:var(--shadow-lg) !important;
}

.card.border-0.shadow-sm.overflow-hidden > .card-body{
    background:var(--grad-hero);
    position:relative;
    overflow:hidden;
}

.card.border-0.shadow-sm.overflow-hidden h1{
    font-size:clamp(2rem,3vw,3.15rem);
    line-height:1.05;
}

.border.rounded,
.border.rounded.p-3,
.border.rounded.p-2,
.border.rounded.h-100,
.border.rounded.p-4,
.border.rounded.mb-3,
.border.rounded.p-3.h-100{
    border-color:var(--border) !important;
    background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.94));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.38), var(--shadow-2xs);
}

body.dark-mode .border.rounded,
body.dark-mode .border.rounded.p-3,
body.dark-mode .border.rounded.p-2,
body.dark-mode .border.rounded.h-100,
body.dark-mode .border.rounded.p-4,
body.dark-mode .border.rounded.mb-3,
body.dark-mode .border.rounded.p-3.h-100{
    background:linear-gradient(180deg,rgba(17,24,39,.92),rgba(15,23,42,.96));
}

.bg-light{
    background:linear-gradient(135deg,#eafaf3,#f8fafc) !important;
}

body.dark-mode .bg-light{
    background:linear-gradient(135deg,rgba(0,168,107,.18),rgba(148,163,184,.08)) !important;
}

#homeProductGrid > [class*="col-"],
#productsGrid > [class*="col-"]{
    display:flex;
}

/* ===== PRODUCT CARD ===== */
.product-card{
    position:relative;
    width:100%;
    height:100%;
    display:flex;
    flex-direction:column;
    padding:10px;
    overflow:hidden;
    background:linear-gradient(180deg,var(--bg-card),var(--bg-soft));
    border:1px solid var(--border);
    border-radius:22px;
    transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, filter .22s ease;
}

.product-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-md);
    border-color:rgba(0,168,107,.22);
}

.product-thumb{
    position:relative;
    width:100%;
    height:220px;
    min-height:220px;
    max-height:220px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--brand);
    background:linear-gradient(135deg,#e2f8ef,#f8fafc);
    overflow:hidden;
    margin-bottom:10px;
}

body.dark-mode .product-thumb{
    background:linear-gradient(135deg,rgba(0,168,107,.18),rgba(148,163,184,.08));
}

.product-main{
    flex:1;
    display:flex;
    flex-direction:column;
}

.product-media-wrap{
    position:relative;
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.product-image{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    display:block;
    padding:10px;
    border-radius:12px;
    background:#fff;
}

body.dark-mode .product-image{
    background:#0f172a;
}

.product-image.d-none{
    display:none !important;
}

.product-fallback-icon{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    font-size:56px;
    color:#98a2b3;
    background:transparent;
}

.product-fallback-icon.d-none{
    display:none !important;
}

.product-image-loader{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.72);
    z-index:2;
}

body.dark-mode .product-image-loader{
    background:rgba(15,23,42,.72);
}

.product-image-loader.d-none{
    display:none !important;
}

.offer-ribbon,
.stock-badge,
.product-badge,
.wishlist-btn,
.quick-btn,
.compare-btn,
.promo-timer{
    position:absolute;
    z-index:3;
}

.offer-ribbon{
    top:8px;
    left:8px;
    font-size:9px;
    font-weight:900;
    color:#fff;
    background:linear-gradient(90deg,#ef4444,#f97316);
    padding:4px 8px;
    border-radius:999px;
}

.promo-timer{
    top:32px;
    left:8px;
    font-size:9px;
    font-weight:900;
    padding:4px 7px;
    border-radius:999px;
    background:#0f172a;
    color:#fff;
}

.product-badge{
    bottom:8px;
    left:8px;
    font-size:9px;
    font-weight:900;
    color:#fff;
    background:var(--grad-purple);
    padding:4px 8px;
    border-radius:999px;
}

.stock-badge{
    top:8px;
    right:8px;
    font-size:9px;
    font-weight:900;
    color:#0f172a;
    background:rgba(255,255,255,.97);
    padding:4px 8px;
    border-radius:999px;
}

.wishlist-btn,
.quick-btn,
.compare-btn,
.icon-circle-btn{
    width:42px;
    height:42px;
    border-radius:50%;
    border:1px solid var(--border);
    background:var(--bg-card);
    color:var(--text);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transition:.2s ease;
}

.wishlist-btn,
.quick-btn,
.compare-btn{
    width:30px;
    height:30px;
    font-size:11px;
    background:rgba(255,255,255,.96);
    color:#334155;
}

.wishlist-btn:hover,
.quick-btn:hover,
.compare-btn:hover,
.icon-circle-btn:hover{
    transform:translateY(-1px);
    box-shadow:var(--shadow-sm);
}

.wishlist-btn{right:8px;bottom:74px}
.quick-btn{right:8px;bottom:40px}
.compare-btn{right:8px;bottom:8px}

.wishlist-btn.active{
    color:#ef4444;
    background:#fff1f2;
    border-color:#fecdd3;
}

.compare-btn.active{
    color:#7c3aed;
    background:#f5f3ff;
    border-color:#ddd6fe;
}

.product-tag,
.sub-tag,
.micro-tag,
.discount-badge{
    display:inline-block;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    padding:3px 7px;
}

.product-tag{
    background:#eff6ff;
    color:#1d4ed8;
}

.sub-tag,
.micro-tag{
    background:#f8fafc;
    color:#475569;
    border:1px solid #e2e8f0;
}

.discount-badge{
    background:#fee2e2;
    color:#b91c1c;
}

.product-name{
    font-size:13px;
    line-height:1.35;
    min-height:34px;
    margin-bottom:5px;
    font-weight:800;
    color:var(--text);
}

.product-brand{
    font-size:11px;
    color:var(--muted);
    margin-bottom:6px;
}

.price{
    font-size:17px;
    font-weight:900;
    letter-spacing:-.03em;
    color:var(--text);
}

.old-price{
    font-size:10px;
    color:var(--muted-2);
    text-decoration:line-through;
}

.rating-line{
    font-size:10px;
    color:#475569;
}

.progress-thin{
    height:5px;
    border-radius:999px;
    background:#edf2f7;
    overflow:hidden;
    margin:8px 0 10px;
}

.progress-thin span{
    display:block;
    height:100%;
    background:linear-gradient(90deg,var(--brand),#34d399);
}

.service-status-item,
.activity-item,
.cart-item,
.compare-item,
.recent-item,
.coupon-wallet-item{
    border:1px solid var(--border);
    border-radius:16px;
    padding:12px;
    margin-bottom:10px;
    background:linear-gradient(180deg,rgba(255,255,255,.84),rgba(255,255,255,.96));
    box-shadow:var(--shadow-2xs);
}

.side-drawer{
    position:fixed;
    top:0;
    right:-390px;
    width:370px;
    height:100vh;
    z-index:1090;
    padding:18px;
    display:flex;
    flex-direction:column;
    transition:right .3s ease;
    background:var(--glass-strong);
    backdrop-filter:blur(18px);
    border-left:1px solid var(--border);
    box-shadow:var(--shadow-xl);
}

.side-drawer.open{
    right:0;
}

.drawer-body{
    flex:1;
    overflow:auto;
    padding-top:10px;
}

.drawer-footer{
    border-top:1px solid var(--border);
    padding-top:14px;
    margin-top:8px;
}

.drawer-overlay{
    position:fixed;
    inset:0;
    background:var(--overlay);
    z-index:1085;
    display:none;
    backdrop-filter:blur(3px);
}

.drawer-overlay.show{
    display:block;
}

.quick-view-modal,
.command-palette{
    position:fixed;
    inset:0;
    z-index:1100;
    display:none;
    align-items:center;
    justify-content:center;
    background:var(--overlay);
    padding:18px;
    backdrop-filter:blur(4px);
}

.quick-view-modal.show,
.command-palette.show{
    display:flex;
}

.quick-view-card{
    max-width:980px;
    width:100%;
    padding:24px;
    background:var(--glass-strong);
    backdrop-filter:blur(18px);
    border-color:var(--glass-border);
    box-shadow:var(--shadow-xl);
}

.command-card{
    width:min(100%,720px);
    padding:18px;
    background:var(--glass-strong);
    backdrop-filter:blur(18px);
    border-color:var(--glass-border);
    box-shadow:var(--shadow-xl);
}

#commandInput{
    background:transparent !important;
    color:var(--text) !important;
}

.toast-box{
    position:fixed;
    left:20px;
    bottom:20px;
    z-index:1200;
    min-width:260px;
    max-width:340px;
    display:none;
    background:linear-gradient(135deg,#0f172a,#111827);
    color:#fff;
    padding:14px 16px;
    border-radius:18px;
    box-shadow:var(--shadow-xl);
}

.toast-box.show{
    display:block;
}













.bottom-mobile-nav{
    display:none;
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:1081;
    padding:10px 14px;
    background:var(--glass-strong);
    border:1px solid var(--border);
    border-radius:20px;
    box-shadow:var(--shadow-lg);
    backdrop-filter:blur(16px);
}

.custom-pagination .page-link{
    border-radius:999px !important;
    margin:0 4px;
    border:1px solid var(--border);
    color:var(--text);
    background:var(--bg-card);
    min-width:42px;
    text-align:center;
    box-shadow:var(--shadow-2xs);
}

.custom-pagination .page-item.active .page-link{
    background:var(--brand);
    border-color:var(--brand);
    color:#fff;
    box-shadow:0 12px 24px rgba(0,168,107,.18);
}

.table{
    --bs-table-bg:transparent;
    --bs-table-color:var(--text);
    --bs-table-border-color:var(--border);
    color:var(--text);
}

.table thead th{
    color:var(--muted);
    font-size:.80rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    border-color:var(--border);
}

.table tbody td{
    border-color:var(--border);
    vertical-align:middle;
}

.table-responsive{
    border-radius:18px;
    border:1px solid var(--border);
    background:linear-gradient(180deg,rgba(255,255,255,.04),transparent);
}

.list-group{
    border-radius:18px;
    overflow:hidden;
}

.list-group-item{
    background:var(--bg-card);
    color:var(--text);
    border-color:var(--border);
}

footer.bg-dark.text-white{
    background:var(--grad-dark) !important;
    color:#cbd5e1 !important;
    margin-top:42px;
    border-top:1px solid rgba(255,255,255,.05);
}

.bg-dark.text-white{
    background:var(--grad-premium) !important;
    color:#fff !important;
}

.small-circle{
    width:32px;
    height:32px;
}

.cursor-pointer{
    cursor:pointer;
}

.seat{
    border:1px solid #dee2e6;
    border-radius:8px;
    padding:10px;
    background:#fff;
    cursor:pointer;
    font-weight:500;
    width:100%;
}

.seat.selected{
    background:#198754;
    color:#fff;
    border-color:#198754;
}

.seat.booked{
    background:#dc3545;
    color:#fff;
    border-color:#dc3545;
    cursor:not-allowed;
}

/* ===== ULTRA CATEGORY ===== */
.category-toolbar-shell{
    border:1px solid var(--border);
    border-radius:18px;
    padding:12px;
    background:var(--bg-card);
    box-shadow:var(--shadow-xs);
}

body.dark-mode .category-toolbar-shell{
    background:var(--bg-card);
    border-color:var(--border);
}

.category-search-group{
    overflow:hidden;
    border-radius:16px;
}

.category-search-group .input-group-text{
    background:transparent;
    border-right:0;
    color:var(--muted);
}

.category-search-group .form-control{
    border-left:0;
}

.category-spotlight-wrap,
.category-preset-wrap,
.smart-preset-bar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.category-spotlight-card,
.category-preset-chip,
.smart-preset-chip,
.category-stat-card{
    border:1px solid var(--border);
    background:var(--bg-card);
    border-radius:18px;
    box-shadow:var(--shadow-xs);
}

body.dark-mode .category-spotlight-card,
body.dark-mode .category-preset-chip,
body.dark-mode .smart-preset-chip,
body.dark-mode .category-stat-card{
    background:var(--bg-card);
    border-color:var(--border);
}

.category-spotlight-card{
    flex:1 1 110px;
    min-width:0;
    padding:12px;
    position:relative;
    overflow:hidden;
}

.category-spotlight-card::before{
    content:"";
    position:absolute;
    inset:auto -24px -24px auto;
    width:74px;
    height:74px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(0,168,107,.14),transparent 70%);
}

.category-spotlight-title{
    font-size:11px;
    color:var(--muted);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.category-spotlight-value{
    font-size:18px;
    font-weight:900;
    letter-spacing:-.04em;
    color:var(--text);
}

.category-spotlight-sub{
    font-size:12px;
    color:var(--muted);
}

.category-preset-chip,
.smart-preset-chip{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    transition:.22s ease;
}

.category-preset-chip:hover,
.smart-preset-chip:hover,
.category-preset-chip.active,
.smart-preset-chip.active{
    border-color:rgba(0,168,107,.28);
    color:var(--brand);
    box-shadow:0 12px 26px rgba(0,168,107,.10);
    transform:translateY(-1px);
}

.category-preset-chip.active,
.smart-preset-chip.active{
    background:linear-gradient(135deg,rgba(16,185,129,.16),rgba(59,130,246,.06));
}

.category-group{
    margin-bottom:12px;
}

#categoryTree .category-top-btn,
#categoryTree .mid-category-btn,
#categoryTree .end-category-btn{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    border:1px solid var(--border);
    background:var(--bg-card);
    color:var(--text);
    transition:.22s ease;
    box-shadow:var(--shadow-xs);
}

#categoryTree .category-top-btn{
    padding:13px;
    border-radius:18px;
}

#categoryTree .mid-category-btn{
    padding:10px 12px;
    border-radius:14px;
    margin:8px 0;
}

#categoryTree .end-category-btn{
    padding:8px 10px;
    border-radius:12px;
    margin:0 0 8px;
}

.category-top-main,
.category-mid-main,
.category-end-main{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.category-icon-wrap,
.category-mini-icon,
.category-end-dot{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
}

.category-icon-wrap{
    width:42px;
    height:42px;
    background:rgba(0,168,107,.12);
    color:var(--brand-dark);
    font-size:18px;
}

.category-mini-icon{
    width:32px;
    height:32px;
    background:rgba(16,185,129,.10);
    color:var(--brand-dark);
    font-size:14px;
}

.category-end-dot{
    width:12px;
    height:12px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--brand),var(--brand-2));
    box-shadow:0 0 0 6px rgba(0,168,107,.08);
}

.category-top-copy,
.category-mid-copy,
.category-end-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
}

.category-top-line,
.category-mid-line,
.category-end-line{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
}

.category-label{
    font-weight:900;
    letter-spacing:-.02em;
    color:var(--text);
}

.category-subtext{
    font-size:12px;
    color:var(--muted);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.category-count-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    height:22px;
    padding:0 8px;
    border-radius:999px;
    background:rgba(59,130,246,.12);
    color:#1d4ed8;
    font-size:11px;
    font-weight:800;
}

.category-arrow-wrap{
    color:var(--muted);
}

#categoryTree .category-top-btn:hover,
#categoryTree .mid-category-btn:hover,
#categoryTree .end-category-btn:hover{
    transform:translateY(-1px);
    border-color:rgba(0,168,107,.24);
    background:rgba(0,168,107,.08);
    color:var(--brand-dark);
    box-shadow:0 14px 28px rgba(0,168,107,.10);
}

#categoryTree .category-top-btn.active,
#categoryTree .mid-category-btn.active,
#categoryTree .end-category-btn.active{
    transform:translateY(-1px);
    background:linear-gradient(135deg,rgba(0,168,107,.14),rgba(16,185,129,.10));
    border-color:rgba(0,168,107,.35);
    color:var(--brand-dark);
    box-shadow:0 10px 24px rgba(0,168,107,.12);
}

body.dark-mode #categoryTree .category-top-btn:hover,
body.dark-mode #categoryTree .mid-category-btn:hover,
body.dark-mode #categoryTree .end-category-btn:hover{
    background:rgba(16,185,129,.14);
    color:#6ee7b7;
}

body.dark-mode #categoryTree .category-top-btn.active,
body.dark-mode #categoryTree .mid-category-btn.active,
body.dark-mode #categoryTree .end-category-btn.active{
    background:rgba(16,185,129,.18);
    border-color:rgba(16,185,129,.30);
    color:#6ee7b7;
}

.products-result-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
    color:var(--muted);
    font-size:13px;
}

.products-result-pill{
    display:inline-flex;
    align-items:center;
    gap:6px;
    border:1px solid var(--border);
    background:var(--bg-card);
    border-radius:999px;
    padding:7px 12px;
    color:var(--text);
    font-weight:700;
}

.ultra-view-toggle .btn.active{
    background:var(--brand);
    color:#fff;
    border-color:var(--brand);
}

.category-stats-ribbon{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:10px;
}

.category-stat-card{
    padding:12px 14px;
}

.category-stat-label{
    font-size:11px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:800;
}

.category-stat-value{
    font-size:18px;
    font-weight:900;
    letter-spacing:-.03em;
    color:var(--text);
}

.discovery-spot-card{
    position:relative;
    border:1px solid var(--border);
    border-radius:20px;
    overflow:hidden;
    background:var(--bg-card);
    box-shadow:var(--shadow-xs);
}

body.dark-mode .discovery-spot-card{
    background:var(--bg-card);
    border-color:var(--border);
}

.discovery-spot-card .card-body{
    padding:16px;
}

.discovery-mini-icon{
    width:52px;
    height:52px;
    border-radius:16px;
    background:rgba(0,168,107,.08);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    color:var(--brand);
    box-shadow:var(--shadow-2xs);
}

body.dark-mode .discovery-mini-icon{
    background:rgba(16,185,129,.10);
}

#productsGrid.product-list-mode > [class*="col-"],
#homeProductGrid.product-list-mode > [class*="col-"]{
    flex:0 0 100%;
    max-width:100%;
}

#productsGrid.product-list-mode .product-card,
#homeProductGrid.product-list-mode .product-card{
    display:grid;
    grid-template-columns:220px minmax(0,1fr);
    gap:16px;
    align-items:center;
    padding:14px;
}

#productsGrid.product-list-mode .product-thumb,
#homeProductGrid.product-list-mode .product-thumb{
    height:190px;
    min-height:190px;
    max-height:190px;
    margin-bottom:0;
}

#productsGrid.product-list-mode .product-main,
#homeProductGrid.product-list-mode .product-main{
    min-width:0;
}

#productsGrid.product-list-mode .product-name,
#homeProductGrid.product-list-mode .product-name{
    font-size:18px;
    min-height:auto;
}

#productsGrid.product-list-mode .product-brand,
#homeProductGrid.product-list-mode .product-brand,
#productsGrid.product-list-mode .rating-line,
#homeProductGrid.product-list-mode .rating-line{
    font-size:13px;
}

#productsGrid.product-list-mode .d-flex.gap-2:last-child,
#homeProductGrid.product-list-mode .d-flex.gap-2:last-child{
    margin-top:10px;
}

.smart-preset-empty,
.category-empty-state{
    border:1px dashed var(--border);
    border-radius:16px;
    padding:14px;
    color:var(--muted);
    text-align:center;
}

@media (max-width:991.98px){
    .container-fluid-wide{padding:0 14px}
    .layout-section{padding:20px 0 36px}
    .left-sticky-stack{position:static}
    .side-drawer{width:100%;right:-100%}
    .bottom-mobile-nav{display:flex;justify-content:space-around;align-items:center}
    .floating-whatsapp-btn{bottom:146px}
    .back-to-top{bottom:214px}
}

@media (max-width:767.98px){
    .container-fluid-wide{padding:0 12px}
    .layout-section{padding:18px 0 28px}
    .left-panel,.section-shell,.subcat-chip-wrap{padding:14px}
    .quick-view-card,.command-card{padding:16px}
    .product-thumb{
        height:160px;
        min-height:160px;
        max-height:160px;
    }
    .product-name{font-size:11px;min-height:28px}
    .price{font-size:14px}
    .floating-cart-meta,.floating-help-meta{display:none}
    .floating-cart-extended,.floating-help-extended{padding:10px;border-radius:50%}
    .chat-panel{width:calc(100vw - 40px)}
    .card.border-0.shadow-sm.overflow-hidden h1{font-size:1.7rem}

    #productsGrid.product-list-mode .product-card,
    #homeProductGrid.product-list-mode .product-card{
        grid-template-columns:1fr;
    }

    .category-spotlight-card{
        flex:1 1 calc(50% - 10px);
    }

    .product-fallback-icon{
        font-size:42px;
    }
}

@media (max-width:575.98px){
    .container-fluid-wide{padding:0 10px}
    .layout-section{padding:16px 0 24px}
    .floating-cart-extended,.floating-help-extended{right:14px}
    #liveChatWidget{left:14px}
    .quick-view-modal,.command-palette{padding:12px}
}

@media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,
    *::before,
    *::after{
        animation:none !important;
        transition:none !important;
    }

    .btn-warning{
        color:#111 !important;
        font-weight:700;
    }

    .message-thread {
        display: flex;
        flex-direction: column;
        gap: 1rem;
        max-height: 520px;
        overflow-y: auto;
        padding-right: 0.25rem;
    }

    .message-bubble {
        max-width: 82%;
        border-radius: 1.25rem;
        padding: 0.9rem 1rem;
        position: relative;
        box-shadow: 0 8px 24px rgba(15,23,42,0.06);
        border: 1px solid rgba(15,23,42,0.06);
    }

    .message-bubble.user {
        align-self: flex-end;
        background: linear-gradient(180deg, #198754 0%, #157347 100%);
        color: #fff;
        border-bottom-right-radius: 0.4rem;
    }

    .message-bubble.agent {
        align-self: flex-start;
        background: #fff;
        color: #111827;
        border-bottom-left-radius: 0.4rem;
    }

    .message-bubble-header {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        align-items: center;
        margin-bottom: 0.45rem;
        font-size: 0.82rem;
    }

    .message-bubble.user .message-bubble-header {
        color: rgba(255,255,255,0.9);
    }

    .message-bubble.agent .message-bubble-header {
        color: #6b7280;
    }

    .message-bubble-body {
        font-size: 0.95rem;
        line-height: 1.55;
        word-break: break-word;
    }

    .message-attachment {
        margin-top: 0.75rem;
        padding: 0.75rem;
        border-radius: 1rem;
        background: rgba(255,255,255,0.14);
    }

    .message-bubble.agent .message-attachment {
        background: #f8fafc;
    }

    .message-attachment img {
        max-width: 220px;
        border-radius: 0.85rem;
        display: block;
    }

    .message-audio {
        margin-top: 0.75rem;
    }

    .message-attachment-preview {
        border: 1px dashed rgba(15,23,42,0.15);
        border-radius: 1rem;
        padding: 1rem;
        background: #fcfcfd;
    }

    .message-preview-image {
        max-width: 180px;
        border-radius: 0.75rem;
        display: block;
    }

    @media (max-width: 767.98px) {
        .message-bubble {
            max-width: 100%;
        }
    }

    .servicepro-header {
        backdrop-filter: blur(10px);
        background: rgba(255,255,255,.95);
    }

    .servicepro-logo-circle {
        width: 46px;
        height: 46px;
        font-size: 1rem;
        flex: 0 0 46px;
    }

    .servicepro-search-group .btn,
    .servicepro-search-group .form-control {
        height: 48px;
        border-radius: 14px !important;
    }

    .servicepro-search-group {
        gap: 8px;
    }

    .servicepro-search-group > * {
        border-radius: 14px !important;
    }

    .mobile-icon-btn {
        width: 42px;
        height: 42px;
        border-radius: 14px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        border: 1px solid rgba(0,0,0,.08);
    }

    .mobile-login-btn {
        height: 42px;
        font-size: .85rem;
        font-weight: 600;
    }

    .mobile-promo-title {
        font-size: .85rem;
        font-weight: 600;
    }

    .mobile-flash-badge {
        font-size: .72rem;
    }

    .mobile-top-links::-webkit-scrollbar {
        display: none;
    }

    .mobile-top-links {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    .mobile-link-chip {
        display: inline-flex;
        align-items: center;
        white-space: nowrap;
        padding: 8px 12px;
        border-radius: 999px;
        background: #f8f9fa;
        border: 1px solid #e9ecef;
        color: #6c757d;
        font-size: .8rem;
        font-weight: 500;
    }

    .min-w-0 {
        min-width: 0;
    }

    @media (max-width: 767.98px) {
        .servicepro-header .container-fluid {
            padding-left: 12px !important;
            padding-right: 12px !important;
        }

        .servicepro-brand-wrap {
            gap: 10px !important;
        }

        .servicepro-logo-circle {
            width: 40px;
            height: 40px;
            flex-basis: 40px;
            font-size: .95rem;
        }

        .servicepro-search-wrap {
            margin-top: 2px;
        }

        .servicepro-search-input {
            font-size: .92rem;
            padding-left: 14px;
            padding-right: 14px;
        }

        .servicepro-search-group .btn,
        .servicepro-search-group .form-control {
            height: 44px;
        }

        .mobile-header-actions {
            gap: 8px !important;
        }
    }

    .mobile-service-nav::-webkit-scrollbar {
        display: none;
    }
    .mobile-service-nav {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
    .mobile-service-nav .service-btn {
        white-space: nowrap;
        flex: 0 0 auto;
    }
    @media (max-width: 767.98px) {
        .mobile-service-nav-wrap .container-fluid {
            padding-left: 12px !important;
            padding-right: 12px !important;
        }
        .mobile-service-nav .service-btn {
            font-size: .82rem;
            padding: .45rem .9rem;
        }
    }

    /* Hide text in mobile */
    @media (max-width: 767.98px) {
        .mobile-service-nav .service-text {
            display: none;
        }

        .mobile-service-nav .service-btn {
            width: 52px;
            height: 52px;
            padding: 0;
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .mobile-service-nav .service-btn i {
            font-size: 20px;
        }
    }

    /* Desktop normal */
    @media (min-width: 768px) {
        .mobile-service-nav .service-btn {
            display: inline-flex;
            align-items: center;
            gap: 6px;
        }
    }

    .mobile-service-nav .service-btn {
        background: #f8f9fa;
        border: 1px solid #e9ecef;
        transition: all 0.2s ease;
    }

    .mobile-service-nav .service-btn.active {
        background: #00a86b;
        color: #fff;
        border-color: #00a86b;
    }

    .mobile-service-nav .service-btn:hover {
        transform: translateY(-2px);
    }

    .mobile-service-nav-wrap{
        background: var(--glass-strong) !important;
        backdrop-filter: blur(12px);
        border-color: var(--border) !important;
    }

    .mobile-service-nav-shell{
        position: relative;
    }

    .mobile-service-nav{
        padding-bottom: 2px;
        scroll-behavior: smooth;
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    .mobile-service-nav::-webkit-scrollbar{
        display: none;
    }

    .mobile-service-nav .service-btn{
        flex: 0 0 auto;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        white-space: nowrap;
        border-radius: 18px;
        min-height: 50px;
        padding: 0 16px;
        background: var(--bg-card);
        border: 1px solid var(--border);
        box-shadow: var(--shadow-xs);
        color: var(--text);
    }

    .mobile-service-nav .service-icon-wrap{
        width: 28px;
        height: 28px;
        border-radius: 12px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: rgba(0,168,107,.08);
        color: var(--brand);
        transition: all .22s ease;
        flex: 0 0 28px;
    }

    .mobile-service-nav .service-btn i{
        font-size: 1rem;
        line-height: 1;
    }

    .mobile-service-nav .service-text{
        font-size: .84rem;
        font-weight: 800;
        letter-spacing: .01em;
    }

    .mobile-service-nav .service-btn.active{
        background: var(--grad-brand-2);
        border-color: transparent;
        color: #fff;
        box-shadow: var(--shadow-brand);
    }

    .mobile-service-nav .service-btn.active .service-icon-wrap{
        background: rgba(255,255,255,.16);
        color: #fff;
    }

    .mobile-service-nav .service-btn:hover{
        transform: translateY(-2px);
        box-shadow: var(--shadow-sm);
    }

    .mobile-service-nav .service-btn:focus-visible{
        box-shadow: var(--ring), var(--shadow-sm) !important;
    }

    @media (max-width: 767.98px){
        .mobile-service-nav-wrap .container-fluid{
            padding-left: 12px !important;
            padding-right: 12px !important;
        }

        .mobile-service-nav{
            gap: 10px !important;
        }

        .mobile-service-nav .service-btn{
            width: 58px;
            min-width: 58px;
            height: 58px;
            min-height: 58px;
            padding: 0;
            border-radius: 18px;
            flex-direction: column;
            gap: 4px;
        }

        .mobile-service-nav .service-icon-wrap{
            width: 30px;
            height: 30px;
            border-radius: 12px;
            background: transparent;
        }

        .mobile-service-nav .service-btn.active .service-icon-wrap{
            background: transparent;
        }

        .mobile-service-nav .service-btn i{
            font-size: 1.15rem;
        }

        .mobile-service-nav .service-text{
            display: none;
        }
    }

    @media (min-width: 768px){
        .mobile-service-nav .service-btn{
            padding: 0 16px;
        }
    }


}

/* =========================
   FINAL HARDENING PATCH
   ========================= */
.mobile-service-nav .service-btn{
    transition:all .2s ease;
}

.mobile-service-nav .service-btn:hover{
    background:#eefaf5;
    border-color:rgba(0,168,107,.28);
    color:var(--brand);
}

.mobile-service-nav .service-btn.active{
    background:linear-gradient(135deg,var(--brand),var(--brand-2));
    color:#fff;
    border-color:transparent;
    box-shadow:0 10px 22px rgba(0,168,107,.18);
}


:root{
    --sp-brand:#00a86b;
    --sp-brand-dark:#00875a;
    --sp-bg:#f5f7fb;
    --sp-card:#ffffff;
    --sp-border:#e8edf3;
    --sp-text:#18212f;
    --sp-muted:#6b7280;
    --sp-shadow:0 10px 35px rgba(16,24,40,.08);
    --sp-shadow-soft:0 6px 24px rgba(16,24,40,.06);
    --sp-radius:18px;
    --sp-radius-lg:22px;
}

.servicepro-header{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(14px);
    box-shadow:0 8px 30px rgba(15,23,42,.06);
    z-index:1035;
}

.servicepro-brand-wrap{
    min-width:0;
}

.servicepro-logo-circle{
    width:48px;
    height:48px;
    font-size:1rem;
    flex:0 0 48px;
    box-shadow:0 8px 18px rgba(0,168,107,.22);
}

.brand-title{
    font-size:1.08rem;
    letter-spacing:-.02em;
}

.brand-subtitle{
    line-height:1.1;
}

.header-lang-select{
    width:118px;
    border-radius:999px;
    border-color:rgba(255,255,255,.35);
}

.servicepro-search-wrap{
    width:100%;
}

.servicepro-search-group{
    border:1px solid var(--sp-border);
    background:#fff;
    border-radius:999px;
    overflow:hidden;
    box-shadow:var(--sp-shadow-soft);
}

.servicepro-search-group .btn,
.servicepro-search-group .form-control{
    border:0;
}

.servicepro-search-input{
    min-height:56px;
    font-size:.98rem;
    box-shadow:none !important;
    padding-left:1rem;
    padding-right:1rem;
}

.servicepro-search-group .btn{
    min-width:48px;
}

.action-pill-btn,
.desktop-login-btn,
.desktop-account-btn{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-shadow:var(--sp-shadow-soft);
}

.desktop-counter-chip{
    background:#f8fafc;
    border:1px solid var(--sp-border);
    padding:.7rem 1rem;
    border-radius:999px;
    line-height:1;
}

.mobile-icon-btn{
    width:42px;
    height:42px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid var(--sp-border);
    box-shadow:var(--sp-shadow-soft);
}

.mobile-login-btn{
    min-height:42px;
    font-weight:600;
}

.mobile-promo-bar,
.tablet-promo-bar{
    position:relative;
    z-index:1036;
}

.mobile-promo-title{
    max-width:160px;
    font-weight:600;
}

.mobile-top-links{
    scrollbar-width:none;
    -ms-overflow-style:none;
}
.mobile-top-links::-webkit-scrollbar,
.responsive-service-nav::-webkit-scrollbar{
    display:none;
}

.mobile-link-chip{
    white-space:nowrap;
    background:#f8fafc;
    border:1px solid var(--sp-border);
    color:var(--sp-text);
    border-radius:999px;
    padding:.55rem .9rem;
    font-size:.84rem;
    font-weight:500;
    box-shadow:var(--sp-shadow-soft);
}

.mobile-service-nav-wrap{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(10px);
}

.responsive-service-nav{
    display:flex;
    gap:.75rem;
    overflow:auto hidden;
    flex-wrap:nowrap;
    scrollbar-width:none;
    padding-bottom:.1rem;
}

.service-btn{
    white-space:nowrap;
    min-height:46px;
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    padding:.72rem 1rem;
    border-width:1px;
    font-weight:600;
    box-shadow:var(--sp-shadow-soft);
}

.service-btn i{
    font-size:1rem;
    line-height:1;
}

.service-btn.active,
.service-btn.btn-success{
    background:linear-gradient(135deg,var(--sp-brand),var(--sp-brand-dark));
    border-color:transparent;
}

.dropdown-menu{
    box-shadow:0 18px 45px rgba(15,23,42,.12);
}

@media (min-width:768px) and (max-width:991.98px){
    .servicepro-logo-circle{
        width:46px;
        height:46px;
        flex-basis:46px;
    }

    .brand-title{
        font-size:1rem;
    }

    .servicepro-search-input{
        min-height:52px;
        font-size:.95rem;
    }

    .responsive-service-nav{
        gap:.65rem;
    }

    .service-btn{
        min-height:44px;
        padding:.65rem .9rem;
        font-size:.9rem;
    }

    .mobile-header-actions{
        gap:.55rem !important;
    }
}

@media (max-width:767.98px){
    .servicepro-header{
        box-shadow:0 6px 22px rgba(15,23,42,.06);
    }

    .servicepro-logo-circle{
        width:42px;
        height:42px;
        flex-basis:42px;
        font-size:.92rem;
    }

    .brand-title{
        font-size:.98rem;
    }

    .servicepro-search-input{
        min-height:48px;
        font-size:.92rem;
        padding-left:.8rem;
        padding-right:.8rem;
    }

    .servicepro-search-group .btn{
        min-width:42px;
        padding-left:.7rem;
        padding-right:.7rem;
    }

    .mobile-icon-btn{
        width:40px;
        height:40px;
        border-radius:12px;
    }

    .mobile-login-btn{
        min-height:40px;
        padding-inline:.9rem;
        font-size:.9rem;
    }

    .service-btn{
        min-height:42px;
        padding:.62rem .85rem;
        font-size:.87rem;
        gap:.4rem;
    }

    .service-text{
        font-size:.86rem;
    }

    .mobile-promo-title{
        max-width:118px;
        font-size:.9rem;
    }

    .mobile-flash-badge{
        font-size:.76rem;
    }
}

@media (max-width:575.98px){
    .container-fluid{
        --bs-gutter-x:1rem;
    }

    .brand-title{
        max-width:110px;
    }

    .servicepro-search-input::placeholder{
        font-size:.86rem;
    }

    .service-btn{
        padding:.6rem .8rem;
    }

    .service-text{
        font-size:.82rem;
    }

    .mobile-link-chip{
        font-size:.8rem;
        padding:.5rem .78rem;
    }
}

@media (min-width:1200px){
    .servicepro-search-input{
        min-height:58px;
    }

    .service-btn{
        min-height:48px;
        padding:.75rem 1.05rem;
    }
}

#headerNotificationBtn,
#headerCartBtn {
    overflow: hidden;
}

#headerNotificationBtn .badge,
#headerCartBtn .badge {
    top: 6px !important;
    right: 5px !important;
    left: auto !important;
    transform: none !important;
    font-size: .64rem;
    min-width: 17px;
    height: 17px;
    line-height: 17px;
    padding: 0 4px;
    border: 1.5px solid #fff;
    box-shadow: none;
}

@media (max-width: 767.98px) {
    #headerNotificationBtn .badge,
    #headerCartBtn .badge {
        top: 5px !important;
        right: 4px !important;
        font-size: .62rem;
        min-width: 16px;
        height: 16px;
        line-height: 16px;
        padding: 0 4px;
    }
}

.servicepro-header{
    position: sticky;
    top: 0;
    z-index: 1035;
}

.mobile-service-nav-wrap{
    position: sticky;
    top: 90px; /* header/search এর নিচে বসবে */
    z-index: 1030;
    background: #fff;
}

@media (max-width: 767.98px){
    .mobile-service-nav-wrap{
        top: 118px; /* mobile promo + header/search height অনুযায়ী */
    }
}

@media (min-width: 768px) and (max-width: 991.98px){
    .mobile-service-nav-wrap{
        top: 126px; /* tablet header/search নিচে */
    }
}

.category-toggle-btn{
    min-width: 46px;
    font-weight: 600;
    white-space: nowrap;
}

.mobile-category-overlay{
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: .25s ease;
    z-index: 1040;
}

.mobile-category-overlay.show{
    opacity: 1;
    visibility: visible;
}

@media (max-width: 991.98px){
    .mobile-category-sidebar{
        position: fixed;
        top: 0;
        left: 0;
        width: min(88vw, 360px);
        height: 100vh;
        overflow-y: auto;
        background: #fff;
        z-index: 1045;
        padding: 14px;
        box-shadow: 0 20px 50px rgba(0,0,0,.18);
        transform: translateX(-104%);
        transition: transform .28s ease;
    }

    .mobile-category-sidebar.show{
        transform: translateX(0);
    }

    .mobile-category-sidebar .left-sticky-stack{
        position: static !important;
    }

    body.category-drawer-open{
        overflow: hidden;
    }
}

@media (min-width: 992px){
    .mobile-category-sidebar{
        position: static;
        transform: none !important;
        height: auto;
        width: auto;
        background: transparent;
        box-shadow: none;
        padding: 0;
    }
}

/* =========================================================
   PRODUCTS SECTION - PROFESSIONAL RESPONSIVE DESIGN
   Desktop + Tablet + Mobile
========================================================= */

.section-shell{
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 10px 35px rgba(15, 23, 42, 0.06);
}

.section-head{
    padding-bottom: 14px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

#productsSectionTitle{
    font-size: 1.5rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
}

#productsCountText{
    font-size: 0.95rem;
    color: #64748b !important;
}

.section-head .btn{
    min-height: 40px;
    font-weight: 700;
    border-width: 1px;
    transition: all .25s ease;
    box-shadow: none;
}

.section-head .btn:hover{
    transform: translateY(-1px);
}

#productsSearchInput,
#sortFilter,
#stockFilter,
#deliveryFilter{
    min-height: 48px;
    border-radius: 14px;
    border: 1px solid #dbe3ee;
    background: #fff;
    box-shadow: none;
    font-size: 0.95rem;
    padding-left: 14px;
    padding-right: 14px;
}

#productsSearchInput:focus,
#sortFilter:focus,
#stockFilter:focus,
#deliveryFilter:focus{
    border-color: #16a34a;
    box-shadow: 0 0 0 0.2rem rgba(22, 163, 74, 0.12);
}

.form-label.small.fw-semibold{
    margin-bottom: 8px;
    color: #334155;
    font-size: 0.82rem;
    letter-spacing: .02em;
}

#resetAllFiltersBtn{
    min-height: 48px;
    border-radius: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.16);
}

.ultra-products-toolbar{
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    padding: 16px 18px;
}

.products-result-meta{
    font-size: 0.95rem;
    font-weight: 600;
    color: #475569;
}

.ultra-view-toggle{
    border-radius: 999px;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
}

.ultra-view-toggle .btn{
    min-width: 42px;
    min-height: 38px;
    border: 0;
    font-size: 1rem;
}

.ultra-view-toggle .btn.active,
.ultra-view-toggle .btn:hover{
    background: #16a34a;
    color: #fff;
}

#smartShuffleBtn{
    min-height: 38px;
    padding-inline: 16px;
    font-weight: 700;
    border-width: 1px;
}

.smart-preset-bar{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.smart-preset-bar .btn,
.smart-preset-bar .chip,
.smart-preset-bar button{
    border-radius: 999px;
    min-height: 36px;
    padding: 8px 14px;
    font-size: 0.85rem;
    font-weight: 700;
}

#productsDiscoveryRail:empty,
#productsActiveFilterBadges:empty,
#productsEmptyStateWrap:empty{
    display: none;
}

#productsActiveFilterBadges{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#productsActiveFilterBadges .badge,
#productsActiveFilterBadges .btn,
#productsActiveFilterBadges span{
    border-radius: 999px !important;
    padding: 8px 12px;
    font-size: 0.82rem;
    font-weight: 700;
}

#productsGrid{
    --bs-gutter-x: 1.2rem;
    --bs-gutter-y: 1.2rem;
}

.custom-pagination{
    gap: 8px;
    flex-wrap: wrap;
}

.custom-pagination .page-link{
    min-width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px !important;
    border: 1px solid rgba(15, 23, 42, 0.08);
    color: #334155;
    font-weight: 700;
    background: #fff;
    box-shadow: none;
}

.custom-pagination .page-item.active .page-link{
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
}

.custom-pagination .page-link:hover{
    background: #f1f5f9;
    color: #0f172a;
}

/* =========================================================
   LARGE DESKTOP
========================================================= */
@media (min-width: 1400px){
    .section-shell{
        padding: 28px;
    }

    #productsSectionTitle{
        font-size: 1.7rem;
    }

    .ultra-products-toolbar{
        padding: 18px 20px;
    }
}

/* =========================================================
   TABLET
========================================================= */
@media (max-width: 991.98px){
    .section-shell{
        padding: 20px;
        border-radius: 20px;
    }

    .section-head{
        gap: 14px !important;
    }

    .section-head > div:first-child{
        width: 100%;
    }

    .section-head > div:last-child{
        width: 100%;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px !important;
    }

    .section-head > div:last-child .btn{
        width: 100%;
        justify-content: center;
    }

    .ultra-products-toolbar > .d-flex{
        flex-direction: column;
        align-items: stretch !important;
    }

    .ultra-products-toolbar .d-flex.flex-wrap.gap-2.align-items-center{
        justify-content: space-between;
    }
}

/* =========================================================
   MOBILE
========================================================= */
@media (max-width: 767.98px){
    .section-shell{
        padding: 16px;
        border-radius: 18px;
        box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    }

    #productsSectionTitle{
        font-size: 1.2rem;
        line-height: 1.25;
    }

    #productsCountText{
        font-size: 0.84rem;
    }

    .section-head{
        margin-bottom: 14px;
        padding-bottom: 12px;
    }

    .section-head > div:last-child{
        grid-template-columns: 1fr;
    }

    .section-head .btn{
        width: 100%;
        min-height: 42px;
        font-size: 0.9rem;
    }

    .row.g-3.mb-3.mt-1{
        --bs-gutter-x: 0.8rem;
        --bs-gutter-y: 0.8rem;
    }



    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn{
        min-height: 46px;
        border-radius: 12px;
        font-size: 0.92rem;
    }

    .ultra-products-toolbar{
        padding: 14px;
        border-radius: 16px;
    }

    .products-result-meta{
        width: 100%;
        font-size: 0.86rem;
    }

    .ultra-products-toolbar .d-flex.flex-wrap.gap-2.align-items-center{
        width: 100%;
        justify-content: space-between;
        gap: 10px !important;
    }

    .ultra-view-toggle{
        flex: 0 0 auto;
    }

    #smartShuffleBtn{
        flex: 1 1 auto;
        justify-content: center;
        min-height: 40px;
        font-size: 0.88rem;
    }

    .smart-preset-bar{
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .smart-preset-bar::-webkit-scrollbar{
        display: none;
    }

    .smart-preset-bar > *{
        flex: 0 0 auto;
        white-space: nowrap;
    }

    #productsGrid{
        --bs-gutter-x: 0.85rem;
        --bs-gutter-y: 0.95rem;
    }

    .custom-pagination{
        gap: 6px;
    }

    .custom-pagination .page-link{
        min-width: 38px;
        height: 38px;
        font-size: 0.88rem;
        border-radius: 10px !important;
    }
}

/* =========================================================
   SMALL MOBILE
========================================================= */
@media (max-width: 479.98px){
    .section-shell{
        padding: 14px;
    }

    #productsSectionTitle{
        font-size: 1.08rem;
    }

    #productsCountText{
        font-size: 0.8rem;
    }

    .section-head .btn{
        font-size: 0.85rem;
        padding-inline: 12px;
    }

    .form-label.small.fw-semibold{
        font-size: 0.77rem;
    }

    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn{
        min-height: 44px;
        font-size: 0.88rem;
    }

    .ultra-products-toolbar{
        padding: 12px;
    }

    #smartShuffleBtn{
        font-size: 0.84rem;
        padding-inline: 12px;
    }

    .custom-pagination .page-link{
        min-width: 36px;
        height: 36px;
    }
}
/* =========================================================
   PRODUCTS SECTION - PROFESSIONAL RESPONSIVE DESIGN
   Desktop + Tablet + Mobile
========================================================= */

.section-shell{
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 10px 35px rgba(15, 23, 42, 0.06);
}

.section-head{
    padding-bottom: 14px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

#productsSectionTitle{
    font-size: 1.5rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
}

#productsCountText{
    font-size: 0.95rem;
    color: #64748b !important;
}

.section-head .btn{
    min-height: 40px;
    font-weight: 700;
    border-width: 1px;
    transition: all .25s ease;
    box-shadow: none;
}

.section-head .btn:hover{
    transform: translateY(-1px);
}

#productsSearchInput,
#sortFilter,
#stockFilter,
#deliveryFilter{
    min-height: 48px;
    border-radius: 14px;
    border: 1px solid #dbe3ee;
    background: #fff;
    box-shadow: none;
    font-size: 0.95rem;
    padding-left: 14px;
    padding-right: 14px;
}

#productsSearchInput:focus,
#sortFilter:focus,
#stockFilter:focus,
#deliveryFilter:focus{
    border-color: #16a34a;
    box-shadow: 0 0 0 0.2rem rgba(22, 163, 74, 0.12);
}

.form-label.small.fw-semibold{
    margin-bottom: 8px;
    color: #334155;
    font-size: 0.82rem;
    letter-spacing: .02em;
}

#resetAllFiltersBtn{
    min-height: 48px;
    border-radius: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.16);
}

.ultra-products-toolbar{
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    padding: 16px 18px;
}

.products-result-meta{
    font-size: 0.95rem;
    font-weight: 600;
    color: #475569;
}

.ultra-view-toggle{
    border-radius: 999px;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.08);
    background: #fff;
}

.ultra-view-toggle .btn{
    min-width: 42px;
    min-height: 38px;
    border: 0;
    font-size: 1rem;
}

.ultra-view-toggle .btn.active,
.ultra-view-toggle .btn:hover{
    background: #16a34a;
    color: #fff;
}

#smartShuffleBtn{
    min-height: 38px;
    padding-inline: 16px;
    font-weight: 700;
    border-width: 1px;
}

.smart-preset-bar{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.smart-preset-bar .btn,
.smart-preset-bar .chip,
.smart-preset-bar button{
    border-radius: 999px;
    min-height: 36px;
    padding: 8px 14px;
    font-size: 0.85rem;
    font-weight: 700;
}

#productsDiscoveryRail:empty,
#productsActiveFilterBadges:empty,
#productsEmptyStateWrap:empty{
    display: none;
}

#productsActiveFilterBadges{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#productsActiveFilterBadges .badge,
#productsActiveFilterBadges .btn,
#productsActiveFilterBadges span{
    border-radius: 999px !important;
    padding: 8px 12px;
    font-size: 0.82rem;
    font-weight: 700;
}

#productsGrid{
    --bs-gutter-x: 1.2rem;
    --bs-gutter-y: 1.2rem;
}

.custom-pagination{
    gap: 8px;
    flex-wrap: wrap;
}

.custom-pagination .page-link{
    min-width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px !important;
    border: 1px solid rgba(15, 23, 42, 0.08);
    color: #334155;
    font-weight: 700;
    background: #fff;
    box-shadow: none;
}

.custom-pagination .page-item.active .page-link{
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
}

.custom-pagination .page-link:hover{
    background: #f1f5f9;
    color: #0f172a;
}

/* =========================================================
   LARGE DESKTOP
========================================================= */
@media (min-width: 1400px){
    .section-shell{
        padding: 28px;
    }

    #productsSectionTitle{
        font-size: 1.7rem;
    }

    .ultra-products-toolbar{
        padding: 18px 20px;
    }
}

/* =========================================================
   TABLET
========================================================= */
@media (max-width: 991.98px){
    .section-shell{
        padding: 20px;
        border-radius: 20px;
    }

    .section-head{
        gap: 14px !important;
    }

    .section-head > div:first-child{
        width: 100%;
    }

    .section-head > div:last-child{
        width: 100%;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px !important;
    }

    .section-head > div:last-child .btn{
        width: 100%;
        justify-content: center;
    }

    .ultra-products-toolbar > .d-flex{
        flex-direction: column;
        align-items: stretch !important;
    }

    .ultra-products-toolbar .d-flex.flex-wrap.gap-2.align-items-center{
        justify-content: space-between;
    }
}

/* =========================================================
   MOBILE
========================================================= */
@media (max-width: 767.98px){
    .section-shell{
        padding: 16px;
        border-radius: 18px;
        box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    }
    .section-head-actions{
        display: none !important;
    }

    #productsSectionTitle{
        font-size: 1.2rem;
        line-height: 1.25;
    }

    #productsCountText{
        font-size: 0.84rem;
    }

    .section-head{
        margin-bottom: 14px;
        padding-bottom: 12px;
    }

    .section-head > div:last-child{
        grid-template-columns: 1fr;
    }

    .section-head .btn{
        width: 100%;
        min-height: 42px;
        font-size: 0.9rem;
    }

    .row.g-3.mb-3.mt-1{
        --bs-gutter-x: 0.8rem;
        --bs-gutter-y: 0.8rem;
    }

    .row.g-3.mb-3.mt-1 > .col-12,
    .row.g-3.mb-3.mt-1 > .col-6{
        width: 100%;
        flex: 0 0 100%;
    }

    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn{
        min-height: 46px;
        border-radius: 12px;
        font-size: 0.92rem;
    }

    .ultra-products-toolbar{
        padding: 14px;
        border-radius: 16px;
    }

    .products-result-meta{
        width: 100%;
        font-size: 0.86rem;
    }

    .ultra-products-toolbar .d-flex.flex-wrap.gap-2.align-items-center{
        width: 100%;
        justify-content: space-between;
        gap: 10px !important;
    }

    .ultra-view-toggle{
        flex: 0 0 auto;
    }

    #smartShuffleBtn{
        flex: 1 1 auto;
        justify-content: center;
        min-height: 40px;
        font-size: 0.88rem;
    }

    .smart-preset-bar{
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .smart-preset-bar::-webkit-scrollbar{
        display: none;
    }

    .smart-preset-bar > *{
        flex: 0 0 auto;
        white-space: nowrap;
    }

    #productsGrid{
        --bs-gutter-x: 0.85rem;
        --bs-gutter-y: 0.95rem;
    }

    .custom-pagination{
        gap: 6px;
    }

    .custom-pagination .page-link{
        min-width: 38px;
        height: 38px;
        font-size: 0.88rem;
        border-radius: 10px !important;
    }
}

/* =========================================================
   SMALL MOBILE
========================================================= */
@media (max-width: 479.98px){
    .section-shell{
        padding: 14px;
    }

    #productsSectionTitle{
        font-size: 1.08rem;
    }

    #productsCountText{
        font-size: 0.8rem;
    }

    .section-head .btn{
        font-size: 0.85rem;
        padding-inline: 12px;
    }

    .form-label.small.fw-semibold{
        font-size: 0.77rem;
    }

    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn{
        min-height: 44px;
        font-size: 0.88rem;
    }

    .ultra-products-toolbar{
        padding: 12px;
    }

    #smartShuffleBtn{
        font-size: 0.84rem;
        padding-inline: 12px;
    }

    .custom-pagination .page-link{
        min-width: 36px;
        height: 36px;
    }
}

/* =========================================================
   PROFESSIONAL PRODUCTS RESPONSIVE SECTION
   Desktop + Tablet + Mobile
========================================================= */

.products-responsive-shell,
.section-shell {
    position: relative;
    background: linear-gradient(180deg, #ffffff 0%, #fcfdfd 100%);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 26px;
    padding: 26px;
    box-shadow:
        0 10px 30px rgba(15, 23, 42, 0.05),
        0 1px 2px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.products-responsive-shell::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 5px;
    background: linear-gradient(90deg, #16a34a, #22c55e, #0ea5e9);
    opacity: 0.95;
}

.section-head {
    position: relative;
    padding-bottom: 18px;
    margin-bottom: 20px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
}

.section-head-content {
    max-width: 680px;
}

.section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(22, 163, 74, 0.08);
    color: #15803d;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

#productsSectionTitle {
    font-size: 1.55rem;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

#productsCountText {
    font-size: 0.95rem;
    color: #64748b !important;
    max-width: 540px;
}

.section-head-actions {
    justify-content: flex-end;
}

.section-head-actions .btn {
    min-height: 42px;
    padding-inline: 16px;
    font-weight: 700;
    border-width: 1px;
    transition: all 0.25s ease;
    box-shadow: none;
}

.section-head-actions .btn:hover {
    transform: translateY(-1px);
}

.filters-shell {
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 20px;
    padding: 18px;
    margin-bottom: 18px;
}

.form-label.small.fw-semibold {
    margin-bottom: 8px;
    font-size: 0.82rem;
    color: #334155;
    letter-spacing: 0.02em;
}

.input-icon-wrap {
    position: relative;
}

.input-icon {
    position: absolute;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
    color: #64748b;
    font-size: 1rem;
    pointer-events: none;
}

#productsSearchInput,
#sortFilter,
#stockFilter,
#deliveryFilter {
    min-height: 50px;
    border-radius: 14px;
    border: 1px solid #dbe3ee;
    background: #fff;
    box-shadow: none;
    font-size: 0.95rem;
    color: #0f172a;
}

#productsSearchInput::placeholder {
    color: #94a3b8;
}

#productsSearchInput:focus,
#sortFilter:focus,
#stockFilter:focus,
#deliveryFilter:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 0.2rem rgba(34, 197, 94, 0.13);
}

.reset-filter-btn,
#resetAllFiltersBtn {
    min-height: 50px;
    border-radius: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(220, 38, 38, 0.14);
}

.ultra-products-toolbar {
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid rgba(148, 163, 184, 0.15);
    border-radius: 20px;
    padding: 16px 18px;
}

.toolbar-main {
    min-height: 44px;
}

.products-result-meta {
    font-size: 0.95rem;
    font-weight: 700;
    color: #475569;
}

.toolbar-actions {
    justify-content: flex-end;
}

.ultra-view-toggle {
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 999px;
    overflow: hidden;
    background: #fff;
}

.ultra-view-toggle .btn {
    min-width: 44px;
    min-height: 40px;
    border: 0;
    font-size: 1rem;
    box-shadow: none;
}

.ultra-view-toggle .btn.active,
.ultra-view-toggle .btn:hover {
    background: #16a34a;
    color: #fff;
}

.smart-mix-btn,
#smartShuffleBtn {
    min-height: 40px;
    padding-inline: 16px;
    font-weight: 700;
}

.smart-preset-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.smart-preset-bar > * {
    flex: 0 0 auto;
}

.smart-preset-bar .btn,
.smart-preset-bar button,
.smart-preset-bar .chip,
.smart-preset-bar span {
    min-height: 36px;
    padding: 8px 14px;
    border-radius: 999px !important;
    font-size: 0.84rem;
    font-weight: 700;
}

#productsActiveFilterBadges {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#productsActiveFilterBadges .badge,
#productsActiveFilterBadges button,
#productsActiveFilterBadges span {
    border-radius: 999px !important;
    padding: 8px 12px;
    font-size: 0.82rem;
    font-weight: 700;
}

#productsDiscoveryRail:empty,
#productsActiveFilterBadges:empty,
#productsEmptyStateWrap:empty {
    display: none;
}

#productsGrid {
    --bs-gutter-x: 1.2rem;
    --bs-gutter-y: 1.2rem;
}

.custom-pagination {
    gap: 8px;
    flex-wrap: wrap;
}

.custom-pagination .page-link {
    min-width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px !important;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: #fff;
    color: #334155;
    font-weight: 700;
    box-shadow: none;
    transition: all 0.2s ease;
}

.custom-pagination .page-link:hover {
    background: #f1f5f9;
    color: #0f172a;
    transform: translateY(-1px);
}

.custom-pagination .page-item.active .page-link {
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
}

/* =========================
   DESKTOP XL
========================= */
@media (min-width: 1400px) {
    .products-responsive-shell,
    .section-shell {
        padding: 30px;
    }

    #productsSectionTitle {
        font-size: 1.75rem;
    }

    .filters-shell {
        padding: 20px;
    }

    .ultra-products-toolbar {
        padding: 18px 20px;
    }
}

/* =========================
   LAPTOP / SMALL DESKTOP
========================= */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .section-head-actions .btn {
        padding-inline: 14px;
        font-size: 0.9rem;
    }

    #productsSectionTitle {
        font-size: 1.4rem;
    }
}

/* =========================
   TABLET
========================= */
@media (max-width: 991.98px) {
    .products-responsive-shell,
    .section-shell {
        padding: 20px;
        border-radius: 22px;
    }

    .section-head {
        padding-bottom: 16px;
        margin-bottom: 18px;
    }

    .section-head-content,
    .section-head-actions {
        width: 100%;
    }

    .section-head-actions {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px !important;
    }

    .section-head-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .filters-shell {
        padding: 16px;
        border-radius: 18px;
    }

    .toolbar-main {
        flex-direction: column;
        align-items: stretch !important;
    }

    .products-result-meta,
    .toolbar-actions {
        width: 100%;
    }

    .toolbar-actions {
        justify-content: space-between;
    }
}

/* =========================
   MOBILE
========================= */
@media (max-width: 767.98px) {
    .products-responsive-shell,
    .section-shell {
        padding: 16px;
        border-radius: 18px;
    }

    .section-kicker {
        font-size: 0.72rem;
        padding: 5px 10px;
        margin-bottom: 7px;
    }

    #productsSectionTitle {
        font-size: 1.2rem;
    }

    #productsCountText {
        font-size: 0.84rem;
    }

    .section-head {
        padding-bottom: 14px;
        margin-bottom: 16px;
    }

    .section-head-actions {
        grid-template-columns: 1fr !important;
    }

    .section-head-actions .btn {
        width: 100%;
        min-height: 42px;
        font-size: 0.9rem;
    }

    .filters-shell {
        padding: 14px;
        border-radius: 16px;
    }

    .filters-shell .row {
        --bs-gutter-x: 0.8rem;
        --bs-gutter-y: 0.8rem;
    }

    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    .reset-filter-btn,
    #resetAllFiltersBtn {
        min-height: 46px;
        font-size: 0.92rem;
        border-radius: 12px;
    }

    .ultra-products-toolbar {
        padding: 14px;
        border-radius: 16px;
    }

    .products-result-meta {
        font-size: 0.86rem;
    }

    .toolbar-actions {
        gap: 10px !important;
        align-items: stretch !important;
    }

    .ultra-view-toggle {
        flex: 0 0 auto;
    }

    .smart-mix-btn,
    #smartShuffleBtn {
        flex: 1 1 auto;
        justify-content: center;
        font-size: 0.88rem;
    }

    .smart-preset-bar {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: none;
    }

    .smart-preset-bar::-webkit-scrollbar {
        display: none;
    }

    .smart-preset-bar > * {
        white-space: nowrap;
    }

    #productsGrid {
        --bs-gutter-x: 0.9rem;
        --bs-gutter-y: 1rem;
    }

    .custom-pagination {
        gap: 6px;
    }

    .custom-pagination .page-link {
        min-width: 38px;
        height: 38px;
        font-size: 0.88rem;
        border-radius: 10px !important;
    }
}

/* =========================
   SMALL MOBILE
========================= */
@media (max-width: 479.98px) {
    .products-responsive-shell,
    .section-shell {
        padding: 14px;
    }

    #productsSectionTitle {
        font-size: 1.08rem;
    }

    #productsCountText {
        font-size: 0.8rem;
    }

    .form-label.small.fw-semibold {
        font-size: 0.77rem;
    }

    .section-head-actions .btn {
        font-size: 0.85rem;
        padding-inline: 12px;
    }

    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    .reset-filter-btn,
    #resetAllFiltersBtn {
        min-height: 44px;
        font-size: 0.88rem;
    }

    .ultra-products-toolbar {
        padding: 12px;
    }

    .smart-mix-btn,
    #smartShuffleBtn {
        font-size: 0.84rem;
        padding-inline: 12px;
    }

    .custom-pagination .page-link {
        min-width: 36px;
        height: 36px;
    }
}

@media (min-width: 1200px){
    .mobile-category-sidebar .left-sticky-stack::-webkit-scrollbar{
        width: 6px;
    }

    .mobile-category-sidebar .left-sticky-stack::-webkit-scrollbar-thumb{
        background: rgba(0,0,0,.15);
        border-radius: 999px;
    }

    .mobile-category-sidebar .left-sticky-stack::-webkit-scrollbar-track{
        background: transparent;
    }
}

@media (min-width: 1200px){
    .mobile-category-sidebar{
        position: relative;
    }

    .mobile-category-sidebar .left-sticky-stack{
        position: sticky;
        top: 110px; /* header height অনুযায়ী adjust করতে পারেন */
        max-height: calc(100vh - 130px);
        overflow-y: auto;
        display: flex;
        flex-direction: column;
        gap: 14px;
    }
}

/* =========================================================
   HEADER SEARCH BAR FIX
========================================================= */

.servicepro-search-wrap{
    width: 100%;
}

.servicepro-search-group{
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(15,23,42,.10);
    border-radius: 22px;
    padding: 6px;
    overflow: hidden;
    box-shadow:
        0 10px 30px rgba(15,23,42,.08),
        0 2px 8px rgba(15,23,42,.04);
    transition: all .25s ease;
}

.servicepro-search-group:focus-within{
    border-color: rgba(22,163,74,.35);
    box-shadow:
        0 0 0 4px rgba(22,163,74,.10),
        0 16px 36px rgba(15,23,42,.10);
}

.servicepro-search-group .btn,
.servicepro-search-group .form-control{
    border: 0 !important;
    box-shadow: none !important;
    background: transparent;
}

.category-toggle-btn,
.command-btn,
.search-icon-btn{
    height: 46px;
    min-width: 46px;
    border-radius: 16px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #334155;
    background: transparent;
    transition: all .22s ease;
    font-weight: 700;
}

.category-toggle-btn{
    padding-inline: 14px;
    gap: 6px;
    min-width: auto;
}

.command-btn{
    color: #475569;
}

.search-icon-btn{
    font-size: 1rem;
}

.category-toggle-btn:hover,
.command-btn:hover,
.search-icon-btn:hover{
    background: #f1f5f9 !important;
    color: #16a34a !important;
}

.servicepro-search-input{
    flex: 1 1 auto;
    height: 52px;
    min-width: 0;
    padding-inline: 14px;
    font-size: 0.96rem;
    font-weight: 500;
    color: #0f172a;
    background: transparent !important;
}

.servicepro-search-input::placeholder{
    color: #94a3b8;
    font-weight: 500;
}

.search-submit-btn{
    height: 48px;
    border-radius: 16px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    white-space: nowrap;
    background: linear-gradient(135deg, #16a34a, #22c55e) !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(22,163,74,.22);
}

.search-submit-btn:hover{
    background: linear-gradient(135deg, #15803d, #16a34a) !important;
    color: #fff !important;
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(22,163,74,.28);
}

/* =========================
   LARGE DESKTOP
========================= */
@media (min-width: 1200px){
    .servicepro-search-group{
        min-height: 64px;
    }

    .servicepro-search-input{
        font-size: 1rem;
    }
}

/* =========================
   TABLET
========================= */
@media (max-width: 991.98px){
    .servicepro-search-group{
        border-radius: 18px;
        padding: 5px;
    }

    .servicepro-search-input{
        height: 48px;
        font-size: 0.92rem;
    }

    .category-toggle-btn,
    .command-btn,
    .search-icon-btn,
    .search-submit-btn{
        height: 44px;
    }

    .category-toggle-btn{
        padding-inline: 12px;
    }
}

/* =========================
   MOBILE
========================= */
@media (max-width: 767.98px){
    .servicepro-search-group{
        border-radius: 16px;
        padding: 4px;
        gap: 2px;
    }

    .servicepro-search-input{
        height: 44px;
        padding-inline: 10px;
        font-size: 0.88rem;
    }

    .category-toggle-btn,
    .search-icon-btn,
    .search-submit-btn{
        height: 40px;
        min-width: 40px;
        border-radius: 12px !important;
        padding-inline: 10px;
    }

    .category-toggle-btn span{
        display: none !important;
    }

    .search-submit-btn{
        padding-inline: 12px !important;
    }
}

/* =========================
   SMALL MOBILE
========================= */
@media (max-width: 479.98px){
    .servicepro-search-group{
        border-radius: 14px;
    }

    .servicepro-search-input{
        font-size: 0.84rem;
    }

    .category-toggle-btn,
    .search-icon-btn,
    .search-submit-btn{
        height: 38px;
        min-width: 38px;
    }
}

/* Dashboard + Logout menu top position */
.mobile-profile-dropup{
    position: relative;
}

.mobile-profile-dropup .dropdown-menu{
    position: absolute !important;
    bottom: auto !important;
    top: -110px !important;   /* উপরে উঠবে */
    right: 0 !important;
    left: auto !important;
    transform: none !important;
    min-width: 180px;
    border-radius: 14px;
    z-index: 1060;
    box-shadow: 0 12px 30px rgba(0,0,0,.12);
}



/* =========================================
   FLOATING ACTION BUTTONS
   whatsapp always right side
========================================= */

.chat-toggle-btn,
.floating-whatsapp-btn,
.back-to-top{
    position: fixed;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    transition: transform .22s ease, box-shadow .22s ease, opacity .22s ease;
}

.chat-toggle-btn:hover,
.floating-whatsapp-btn:hover,
.back-to-top:hover{
    transform: translateY(-2px);
}

/* desktop */
.chat-toggle-btn{
    left: 18px;
    right: auto;
    bottom: 46px;
    width: 58px;
    height: 58px;
    background: var(--grad-brand-2);
    box-shadow: var(--shadow-brand);
    z-index: 1084;
}

.floating-whatsapp-btn{
    right: 18px;
    left: auto;
    bottom: 46px;
    width: 56px;
    height: 56px;
    background: #25D366;
    color: #fff;
    font-size: 24px;
    box-shadow: var(--shadow-lg);
    z-index: 1083;
}

.back-to-top{
    right: 20px;
    left: auto;
    bottom: 122px;
    width: 52px;
    height: 52px;
    background: #0f172a;
    color: #fff;
    font-size: 20px;
    box-shadow: var(--shadow-lg);
    z-index: 1082;
    display: none;
}

.back-to-top.show{
    display: inline-flex;
}

/* tablet */
@media (max-width: 991.98px){
    .chat-toggle-btn{
        left: 14px;
        bottom: 84px;
        width: 54px;
        height: 54px;
    }

    .floating-whatsapp-btn{
        right: 14px;
        left: auto;
        bottom: 85px;
        width: 52px;
        height: 52px;
        font-size: 22px;
    }

    .back-to-top{
        right: 14px;
        bottom: 76px;
        width: 48px;
        height: 48px;
        font-size: 18px;
    }
}

/* mobile */
@media (max-width: 575.98px){
    .chat-toggle-btn{
        left: 10px;
        bottom: 72px;
        width: 48px;
        height: 48px;
    }

    .floating-whatsapp-btn{
        right: 10px;
        left: auto;
        bottom: 73px;
        width: 46px;
        height: 46px;
        font-size: 20px;
    }

    .back-to-top{
        right: 10px;
        bottom: 130px;
        width: 42px;
        height: 42px;
        font-size: 16px;
    }
}
/* =========================================
   LIVE CHAT WIDGET WRAPPER
========================================= */
#liveChatWidget{
    position: fixed;
    left: 18px;
    bottom: 90px;
    z-index: 1089;
}

/* =========================================
   CHAT PANEL
========================================= */
.chat-panel{
    width: 320px;
    display: none;
    margin-bottom: 12px;
    overflow: hidden;
    background: var(--glass-strong);
    backdrop-filter: blur(16px);
    border: 1px solid var(--glass-border);
    border-radius: 18px;
    box-shadow: var(--shadow-lg);
}

.chat-panel.open{
    display: block;
}

.chat-header{
    padding: 12px 14px;
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.chat-messages{
    height: 260px;
    overflow: auto;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.chat-msg{
    max-width: 80%;
    padding: 10px 12px;
    border-radius: 14px;
    box-shadow: var(--shadow-2xs);
}

.chat-msg.agent{
    background: #eef2ff;
    align-self: flex-start;
    color: #1e293b;
}

.chat-msg.user{
    background: rgba(0,168,107,.08);
    align-self: flex-end;
}

.chat-input-row{
    display: flex;
    gap: 10px;
    padding: 12px;
    border-top: 1px solid var(--border);
}

/* =========================================
   FLOATING CART BUTTON
========================================= */
.floating-cart-extended{
    position: fixed;
    top: 50%;
    right: 16px;
    left: auto;
    bottom: auto;
    transform: translateY(-50%);
    z-index: 1080;

    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;

    width: 90px;
    min-width: 90px;
    max-width: 90px;
    min-height: 102px;
    padding: 10px 8px;

    border: 0;
    outline: none;
    border-radius: 18px;
    cursor: pointer;
    user-select: none;

    background: var(--grad-brand-2);
    color: #fff;
    box-shadow: 0 16px 34px rgba(0,168,107,.24);

    text-align: center;
    line-height: 1;
    transition: transform .22s ease, box-shadow .22s ease, opacity .22s ease;
}

.floating-cart-extended:hover{
    transform: translateY(calc(-50% - 2px));
    box-shadow: 0 20px 42px rgba(0,168,107,.30);
}

.floating-cart-extended:focus,
.floating-cart-extended:focus-visible{
    outline: none;
    box-shadow:
        0 0 0 4px rgba(0,168,107,.14),
        0 20px 42px rgba(0,168,107,.30);
}

.floating-cart-icon{
    width: 40px;
    height: 40px;
    min-width: 40px;
    max-width: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border-radius: 14px;
    background: rgba(255,255,255,.16);
    color: #fff;
}

.floating-cart-icon i{
    font-size: 20px;
    line-height: 1;
}

.floating-cart-meta{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 100%;
    margin: 0;
    padding: 0;
    line-height: 1;
}

#floatingCartCount{
    display: block;
    margin: 0;
    padding: 0;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.1;
    color: rgba(255,255,255,.95);
    white-space: nowrap;
    text-align: center;
}

#floatingCartPrice{
    display: block;
    margin: 0;
    padding: 0;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.1;
    color: #fff;
    white-space: nowrap;
    text-align: center;
    letter-spacing: -.02em;
}

#floatingCartSubtext{
    display: block;
    margin: 2px 0 0 0;
    padding: 0;
    font-size: 7px;
    line-height: 1.1;
    color: rgba(255,255,255,.86);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: center;
    width: 100%;
}

/* =========================================
   FLOATING ACTION BUTTONS
========================================= */


.chat-toggle-btn:hover,
.floating-whatsapp-btn:hover,
.back-to-top:hover{
    transform: translateY(-2px);
}





/* =========================================
   TABLET
========================================= */
@media (max-width: 991.98px){
    #liveChatWidget{
        left: 14px;
        bottom: 84px;
    }

    .floating-cart-extended{
        top: 50%;
        right: 16px;
        width: 90px;
        min-width: 90px;
        max-width: 90px;
        min-height: 102px;
        padding: 10px 8px;
        border-radius: 18px;
        gap: 6px;
    }

    .floating-cart-icon{
        width: 40px;
        height: 40px;
        min-width: 40px;
        max-width: 40px;
        border-radius: 14px;
    }

    .floating-cart-icon i{
        font-size: 20px;
    }

    #floatingCartCount{
        font-size: 11px;
    }

    #floatingCartPrice{
        font-size: 13px;
    }

    #floatingCartSubtext{
        font-size: 7px;
    }


}

/* =========================================
   MOBILE
========================================= */
@media (max-width: 575.98px){
    #liveChatWidget{
        left: 10px;
        bottom: 72px;
    }

    .floating-cart-extended{
        top: 50%;
        right: 10px;
        width: 55px;
        min-width: 55px;
        max-width: 55px;
        min-height: 76px;
        padding: 7px 5px;
        border-radius: 14px;
        gap: 4px;
    }

    .floating-cart-icon{
        width: 30px;
        height: 30px;
        min-width: 30px;
        max-width: 30px;
        border-radius: 10px;
    }

    .floating-cart-icon i{
        font-size: 15px;
    }

    .floating-cart-meta{
        gap: 2px;
    }

    #floatingCartCount{
        font-size: 6px;
        line-height: 1.05;
    }

    #floatingCartPrice{
        font-size: 8px;
        line-height: 1.05;
    }

    #floatingCartSubtext{
        font-size: 5px;
        line-height: 1;
        margin-top: 1px;
    }


}


/* =========================================================
   PRODUCTS MOBILE HIDE + ONE LINE FILTER FINAL PATCH
========================================================= */
@media (max-width: 767.98px){

    /* hide top quick action buttons */
    .section-head-actions{
        display: none !important;
    }

    /* hide products toolbar */
    .ultra-products-toolbar{
        display: none !important;
    }

    /* keep filter row in single horizontal line */
    .filters-shell .row.g-3.mb-0,
    .row.g-3.mb-3.mt-1{
        --bs-gutter-x: .55rem;
        --bs-gutter-y: .4rem;
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        overflow-y: hidden;
        align-items: flex-end;
        padding-bottom: 4px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .filters-shell .row.g-3.mb-0::-webkit-scrollbar,
    .row.g-3.mb-3.mt-1::-webkit-scrollbar{
        display: none;
    }

    /* remove old full width mobile behavior */
    .filters-shell .row.g-3.mb-0 > [class*="col-"],
    .row.g-3.mb-3.mt-1 > .col-12,
    .row.g-3.mb-3.mt-1 > .col-6,
    .row.g-3.mb-3.mt-1 > .col-md-4,
    .row.g-3.mb-3.mt-1 > .col-xl-2{
        width: auto !important;
        max-width: none !important;
        flex: 0 0 155px !important;
    }

    /* search একটু বড় */
    .filters-shell .row.g-3.mb-0 > .col-12.col-xl-4,
    .filters-shell .row.g-3.mb-0 > .col-12.col-lg-4,
    .row.g-3.mb-3.mt-1 > .col-12.col-lg-4{
        flex: 0 0 220px !important;
    }

    /* reset button fixed width */
    .filters-shell .row.g-3.mb-0 > .col-6.col-xl-2.d-flex.align-items-end,
    .row.g-3.mb-3.mt-1 > .col-6.col-xl-2.d-flex.align-items-end{
        flex: 0 0 150px !important;
    }

    .filters-shell .form-label,
    .row.g-3.mb-3.mt-1 .form-label{
        font-size: .72rem;
        margin-bottom: 6px;
        white-space: nowrap;
    }

    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn,
    .reset-filter-btn{
        min-height: 42px !important;
        height: 42px;
        font-size: .85rem;
        border-radius: 12px !important;
    }

    #resetAllFiltersBtn,
    .reset-filter-btn{
        white-space: nowrap;
        padding-left: 10px;
        padding-right: 10px;
    }
}

/* =========================================================
   SMALL MOBILE
========================================================= */
@media (max-width: 479.98px){

    .filters-shell .row.g-3.mb-0 > [class*="col-"],
    .row.g-3.mb-3.mt-1 > .col-12,
    .row.g-3.mb-3.mt-1 > .col-6,
    .row.g-3.mb-3.mt-1 > .col-md-4,
    .row.g-3.mb-3.mt-1 > .col-xl-2{
        flex: 0 0 145px !important;
    }

    .filters-shell .row.g-3.mb-0 > .col-12.col-xl-4,
    .filters-shell .row.g-3.mb-0 > .col-12.col-lg-4,
    .row.g-3.mb-3.mt-1 > .col-12.col-lg-4{
        flex: 0 0 200px !important;
    }

    .filters-shell .row.g-3.mb-0 > .col-6.col-xl-2.d-flex.align-items-end,
    .row.g-3.mb-3.mt-1 > .col-6.col-xl-2.d-flex.align-items-end{
        flex: 0 0 138px !important;
    }

    #productsSearchInput,
    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn,
    .reset-filter-btn{
        min-height: 40px !important;
        height: 40px;
        font-size: .82rem;
    }
}

@media (max-width: 767.98px){
    .products-responsive-shell .section-head-actions{
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }
}

.section-head-content{
    position: relative;
    padding-right: 120px;
}

.section-head-content .section-kicker{
    position: absolute;
    top: 2px;
    right: 0;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

/* =========================================================
   PRODUCTS FILTERS MOBILE FINAL
   - Search hide
   - Other filters small width
========================================================= */
@media (max-width: 767.98px){

    /* search block hide */
    .filters-shell .row.g-3.mb-0 > .col-12.col-xl-4{
        display: none !important;
    }

    /* remaining filters single line */
    .filters-shell .row.g-3.mb-0{
        --bs-gutter-x: .5rem;
        --bs-gutter-y: .4rem;
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        overflow-y: hidden;
        align-items: flex-end;
        padding-bottom: 4px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .filters-shell .row.g-3.mb-0::-webkit-scrollbar{
        display: none;
    }

    /* small filter boxes */
    .filters-shell .row.g-3.mb-0 > .col-6.col-md-4.col-xl-2{
        flex: 0 0 135px !important;
        width: 135px !important;
        max-width: 135px !important;
    }

    /* reset button width */
    .filters-shell .row.g-3.mb-0 > .col-6.col-xl-2.d-flex.align-items-end{
        flex: 0 0 145px !important;
        width: 145px !important;
        max-width: 145px !important;
    }

    .filters-shell .form-label{
        font-size: .72rem;
        margin-bottom: 6px;
        white-space: nowrap;
    }

    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn{
        min-height: 40px !important;
        height: 40px;
        font-size: .82rem;
        border-radius: 12px !important;
    }

    #resetAllFiltersBtn{
        white-space: nowrap;
        padding-left: 10px;
        padding-right: 10px;
    }
}

/* extra small mobile */
@media (max-width: 479.98px){
    .filters-shell .row.g-3.mb-0 > .col-6.col-md-4.col-xl-2{
        flex: 0 0 124px !important;
        width: 124px !important;
        max-width: 124px !important;
    }

    .filters-shell .row.g-3.mb-0 > .col-6.col-xl-2.d-flex.align-items-end{
        flex: 0 0 136px !important;
        width: 136px !important;
        max-width: 136px !important;
    }

    #sortFilter,
    #stockFilter,
    #deliveryFilter,
    #resetAllFiltersBtn{
        min-height: 38px !important;
        height: 38px;
        font-size: .78rem;
    }
}

.discovery-spot-card .btn[data-discovery-open]{
    white-space: nowrap;
}

@media (max-width: 767.98px){
    #productsDiscoveryRail{
        display: none !important;
    }
}

@media (max-width: 767.98px){
    .product-card{
        height: 100%;
    }

    .product-main{
        padding: 10px;
    }

    .product-name{
        font-size: 14px;
        line-height: 1.35;
    }

    .price{
        font-size: 15px;
    }

    .old-price{
        font-size: 12px;
    }

    .tag-row{
        gap: 4px;
    }

    .micro-tag{
        font-size: 10px;
        padding: 2px 6px;
    }

    .product-main .btn{
        font-size: 12px;
        padding: 6px 10px;
    }
}

@media (max-width: 767.98px){
    .product-card .sub-tag,
    .product-card .product-main .small.text-secondary.mb-1,
    .product-card .product-brand{
        display: none !important;
    }
}
@media (max-width: 767.98px){
    #productsDiscoveryRail{
        display:none !important;
    }

    .product-card{
        height:100%;
        border-radius:16px;
        overflow:hidden;
        box-shadow:0 8px 20px rgba(15, 23, 42, 0.06);
    }

    .product-main{
        padding:10px;
    }

    .product-name{
        font-size:13px;
        line-height:1.35;
        min-height:36px;
        margin-bottom:4px;
    }

    .product-card .sub-tag,
    .product-card .product-unit,
    .product-card .product-sku{
        display:none !important;
    }

    .product-brand,
    .product-variant{
        font-size:11px;
        margin-bottom:4px !important;
        line-height:1.35;
    }

    .product-tag{
        font-size:10px;
        padding:3px 7px;
    }

    .price{
        font-size:15px;
    }

    .old-price{
        font-size:11px;
    }

    .discount-badge{
        font-size:10px;
        padding:3px 8px;
    }

    .rating-line{
        font-size:11px;
        margin-bottom:6px;
        line-height:1.4;
    }

    .tag-row{
        gap:4px;
        margin-bottom:8px !important;
    }

    .micro-tag{
        font-size:9px;
        padding:2px 6px;
    }

    .progress-thin{
        height:5px;
        margin-bottom:10px;
    }

    .product-action-row{
        gap:6px !important;
    }

    .product-action-row .btn{
        min-height:34px;
        font-size:11px;
        padding:6px 10px;
    }

    .offer-ribbon,
    .promo-timer,
    .stock-badge,
    .product-badge{
        font-size:9px;
        padding:3px 6px;
    }

    .wishlist-btn,
    .quick-btn,
    .compare-btn{
        width:30px;
        height:30px;
        font-size:12px;
    }

    .product-name{
        font-size:10px;
        line-height:1.3;
        min-height:31px;
        margin-bottom:4px;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }

    .product-card .price{
        font-size:10px;
    }

    .product-card .old-price{
        font-size:8px;
    }

    .product-card .product-main .d-flex.align-items-center.gap-2.mb-1{
        gap:4px !important;
        margin-bottom:4px !important;
    }
    .product-card .discount-badge {
        display: none !important;
    }
    .product-card .stock-badge{
        top:auto !important;
        right:auto !important;
        left:8px !important;
        bottom:8px !important;
    }

    .product-card .product-action-row{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:6px !important;
    }

    .product-card .product-action-row .btn{
        width:100%;
        height:34px;
        min-height:34px;
        padding:6px 8px;
        font-size:11px;
        line-height:1;
        border-radius:999px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        white-space:nowrap;
    }
}

.promo-timer-top{
    top:8px !important;
}

.customer-dashboard-card{
    border-radius: 24px;
}

.customer-stat-card{
    transition: all .2s ease;
}

.customer-stat-card:hover{
    transform: translateY(-2px);
}

@media (max-width: 767.98px){
    .customer-dashboard-card{
        border-radius:14px;
    }

    .customer-dashboard-card .card-body{
        padding:10px !important;
    }

    .customer-dashboard-head{
        margin-bottom:10px !important;
        gap:8px !important;
    }

    .customer-dashboard-title{
        font-size:15px;
        line-height:1.15;
        margin-bottom:2px !important;
    }

    .customer-dashboard-subtitle{
        font-size:10px;
        line-height:1.35;
    }

    .customer-dashboard-badges{
        gap:4px !important;
    }

    .customer-dashboard-badges .badge{
        font-size:9px;
        padding:4px 8px;
    }

    #customerStatsCards{
        --bs-gutter-x:.35rem;
        --bs-gutter-y:.35rem;
    }

    #customerStatsCards > [class*="col-"]{
        width:25%;
        flex:0 0 25%;
    }

    .customer-stat-card{
        padding:8px !important;
        border-radius:12px !important;
        text-align:center;
    }

    .customer-stat-label{
        font-size:8px;
        line-height:1.2;
        margin-bottom:3px;
    }

    .customer-stat-value{
        font-size:15px !important;
        line-height:1;
    }

    .customer-stat-note{
        display:none !important;
    }
}
.customer-dashboard-menu-card{
    border-radius:24px;
}

.customer-dashboard-menu{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.customer-dashboard-menu .btn{
    min-height:42px;
    padding:8px 14px;
    font-weight:700;
}

@media (max-width: 767.98px){
    .customer-dashboard-menu-card{
        border-radius:16px;
    }

    .customer-dashboard-menu-card .card-body{
        padding:10px !important;
    }

    .customer-dashboard-menu{
        display:flex;
        flex-wrap:nowrap !important;
        gap:6px !important;
        overflow-x:auto;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        scrollbar-width:none;
        padding-bottom:2px;
    }

    .customer-dashboard-menu::-webkit-scrollbar{
        display:none;
    }

    .customer-dashboard-menu .btn{
        flex:0 0 auto !important;
        min-height:32px;
        padding:5px 10px;
        font-size:11px;
        line-height:1;
        white-space:nowrap;
        border-radius:999px;
    }
}

@media (max-width: 767.98px){
    .customer-profile-panel{
        border-radius:14px;
    }

    .customer-profile-panel .card-body{
        padding:10px !important;
    }

    .customer-profile-head{
        margin-bottom:8px !important;
    }

    .customer-profile-title{
        font-size:15px;
        line-height:1.15;
    }

    .customer-profile-head .badge{
        font-size:9px;
        padding:4px 8px;
    }

    .customer-profile-top{
        margin-bottom:10px !important;
    }

    .customer-avatar{
        width:56px;
        height:56px;
        font-size:20px;
        margin-bottom:8px !important;
    }

    .customer-profile-name{
        font-size:13px;
        line-height:1.15;
        margin-bottom:2px !important;
    }

    .customer-profile-mobile{
        font-size:10px;
        line-height:1.2;
    }

    .customer-profile-list .list-group-item{
        padding-top:7px;
        padding-bottom:7px;
        font-size:11px;
        line-height:1.25;
    }

    .customer-profile-list .list-group-item strong{
        font-size:11px;
        max-width:48%;
        text-align:right;
    }

    .customer-profile-progress-wrap{
        margin-top:10px !important;
    }

    .customer-profile-progress-wrap .small{
        font-size:10px;
    }

    .customer-profile-progress{
        height:6px;
    }

    .customer-profile-actions{
        margin-top:10px !important;
        gap:6px !important;
    }

    .customer-profile-actions .btn{
        min-height:34px;
        font-size:11px;
        padding:6px 10px;
    }
}

.customer-profile-panel{
    border-radius:24px;
}

.customer-avatar{
    width:88px;
    height:88px;
    font-size:30px;
}

.customer-profile-progress{
    height:8px;
    border-radius:999px;
    overflow:hidden;
}

.customer-profile-actions .btn{
    min-height:44px;
    font-weight:700;
}


/*CheckOut Desktop Tab Mobile*/

/* =========================
   CHECKOUT MODAL RESPONSIVE
   Desktop + Tablet + Mobile
========================= */

#checkoutModal .modal-dialog{
    max-width: 1280px;
    margin: 1rem auto;
}

#checkoutModal .modal-content{
    border-radius: 24px;
    overflow: hidden;
}

#checkoutModal .modal-header{
    padding: 1.25rem 1.25rem 0.75rem;
}

#checkoutModal .modal-body{
    padding: 1rem 1.25rem 1.25rem;
}

#checkoutModal .modal-title{
    font-size: 1.5rem;
    line-height: 1.2;
}

#checkoutModal .small{
    line-height: 1.4;
}

/* step bar */
#checkoutStepBar{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#checkoutStepBar .checkout-step-btn{
    min-height: 44px;
    padding: 0.65rem 1rem;
    font-size: 0.95rem;
    font-weight: 600;
    white-space: nowrap;
    border-width: 1px;
}

/* common cards */
#checkoutModal .card{
    border-radius: 22px;
}

#checkoutModal .card-body{
    padding: 1.25rem;
}

/* inputs */
#checkoutModal .form-control,
#checkoutModal .form-select{
    min-height: 48px;
    font-size: 0.95rem;
}

#checkoutModal textarea.form-control{
    min-height: 110px;
    resize: vertical;
}

#checkoutModal .rounded-pill{
    border-radius: 999px !important;
}

#checkoutModal .rounded-4{
    border-radius: 1.25rem !important;
}

/* payment methods */
#checkoutPaymentMethods{
    gap: 12px;
}

#checkoutPaymentMethods .payment-method-option{
    gap: 14px;
    cursor: pointer;
    transition: all 0.25s ease;
}

#checkoutPaymentMethods .payment-method-option.active,
#checkoutPaymentMethods .payment-method-option:hover{
    border-color: #00a86b !important;
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}

/* summary section */
#checkoutSummaryItems{
    max-height: 320px;
    overflow: auto;
    padding-right: 4px;
}

#checkoutModal .position-sticky{
    top: 20px !important;
}

/* footer nav buttons */
#checkoutPrevBtn,
#checkoutNextBtn{
    min-width: 140px;
    min-height: 46px;
    font-weight: 600;
}

#placeOrderFinalBtn{
    min-height: 50px;
    font-weight: 700;
    font-size: 1rem;
}

/* ===== Large desktop ===== */
@media (min-width: 1400px){
    #checkoutModal .modal-dialog{
        max-width: 1340px;
    }

    #checkoutModal .card-body{
        padding: 1.5rem;
    }
}

/* ===== Desktop ===== */
@media (min-width: 992px){
    #checkoutModal .modal-body .row.g-4{
        --bs-gutter-x: 1.5rem;
        --bs-gutter-y: 1.5rem;
    }

    #checkoutModal .col-lg-8{
        width: 66.66666667%;
    }

    #checkoutModal .col-lg-4{
        width: 33.33333333%;
    }

    #checkoutModal .modal-body{
        max-height: calc(100vh - 110px);
        overflow-y: auto;
    }
}

/* ===== Tablet ===== */
@media (max-width: 991.98px){
    #checkoutModal .modal-dialog{
        max-width: calc(100% - 24px);
        margin: 12px auto;
    }

    #checkoutModal .modal-content{
        border-radius: 20px;
    }

    #checkoutModal .modal-header{
        padding: 1rem 1rem 0.5rem;
    }

    #checkoutModal .modal-body{
        padding: 0.9rem 1rem 1rem;
    }

    #checkoutModal .card-body{
        padding: 1rem;
    }

    #checkoutModal .position-sticky{
        position: relative !important;
        top: auto !important;
    }

    #checkoutSummaryItems{
        max-height: none;
        overflow: visible;
    }

    #checkoutStepBar{
        gap: 8px;
    }

    #checkoutStepBar .checkout-step-btn{
        flex: 1 1 calc(50% - 8px);
        text-align: center;
        justify-content: center;
        font-size: 0.92rem;
        padding: 0.7rem 0.8rem;
    }
}

/* ===== Mobile ===== */
@media (max-width: 767.98px){
    #checkoutModal .modal-dialog{
        max-width: 100%;
        margin: 0;
        height: 100%;
    }

    #checkoutModal .modal-content{
        min-height: 100vh;
        height: 100vh;
        border-radius: 0;
    }

    #checkoutModal .modal-header{
        padding: 0.9rem 0.9rem 0.5rem;
    }

    #checkoutModal .modal-body{
        padding: 0.75rem 0.75rem 1rem;
        overflow-y: auto;
    }

    #checkoutModal .modal-title{
        font-size: 1.2rem;
    }

    #checkoutModal .card,
    #checkoutModal .rounded-4{
        border-radius: 18px !important;
    }

    #checkoutModal .card-body{
        padding: 0.9rem;
    }

    #checkoutStepBar{
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        margin-bottom: 1rem !important;
    }

    #checkoutStepBar .checkout-step-btn{
        width: 100%;
        min-height: 42px;
        font-size: 0.85rem;
        padding: 0.6rem 0.7rem;
    }

    #checkoutModal .form-control,
    #checkoutModal .form-select{
        min-height: 44px;
        font-size: 0.92rem;
    }

    #checkoutModal textarea.form-control{
        min-height: 96px;
    }

    #checkoutModal .btn{
        font-size: 0.92rem;
    }

    #checkoutModal .d-flex.justify-content-between.mt-4{
        gap: 10px;
        flex-direction: column;
    }

    #checkoutPrevBtn,
    #checkoutNextBtn{
        width: 100%;
        min-width: 100%;
    }

    #checkoutModal .badge{
        font-size: 0.72rem;
    }

    #checkoutModal .payment-method-option{
        align-items: flex-start !important;
        padding: 0.9rem !important;
    }

    #checkoutModal .payment-method-option .form-check-input{
        margin-top: 4px;
        flex-shrink: 0;
    }

    #checkoutModal .input-group .form-control{
        border-top-left-radius: 999px !important;
        border-bottom-left-radius: 999px !important;
    }

    #checkoutModal .input-group .btn{
        border-top-right-radius: 999px !important;
        border-bottom-right-radius: 999px !important;
        white-space: nowrap;
        padding-left: 1rem;
        padding-right: 1rem;
    }

    #checkoutModal .border-top.pt-3{
        padding-top: 0.9rem !important;
    }

    #placeOrderFinalBtn{
        min-height: 48px;
        font-size: 0.95rem;
    }
}
/* ===== Small mobile ===== */
/* =========================
   CHECKOUT MOBILE FIX PATCH
   1 line + no scrolling
========================= */

@media (max-width: 767.98px){

    /* 1) Step bar mobile e 1 line no scrolling */
    #checkoutStepBar{
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 6px !important;
        margin-bottom: 12px !important;
        overflow: hidden !important;
    }

    #checkoutStepBar .checkout-step-btn{
        width: 100% !important;
        min-width: 0 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        text-align: center !important;
        font-size: 10px !important;
        line-height: 1.1 !important;
        padding: 7px 3px !important;
        min-height: 36px !important;
        border-radius: 10px !important;
    }

    /* 2) Step panel + address card aro small */
    .checkout-step-panel .card{
        border-radius: 14px !important;
    }

    .checkout-step-panel .card-body{
        padding: 12px !important;
    }

    .checkout-step-panel h5{
        font-size: 16px;
        margin-bottom: 2px !important;
    }

    .checkout-step-panel .small{
        font-size: 12px;
        line-height: 1.35;
    }

    .checkout-step-panel .form-label{
        font-size: 13px;
        margin-bottom: 6px;
    }

    .checkout-step-panel .form-control,
    .checkout-step-panel .form-select{
        min-height: 40px !important;
        font-size: 13px;
    }

    .checkout-step-panel textarea.form-control{
        min-height: 78px !important;
        padding: 10px 12px;
    }

    #checkoutAddressList{
        gap: 10px !important;
    }

    #openAddAddressModalBtn{
        padding: 6px 10px !important;
        font-size: 12px !important;
        min-height: 34px !important;
        white-space: nowrap;
    }

    .checkout-summary-card{
        top: 0 !important;
    }

    /* header row compact */
    .checkout-step-panel .d-flex.justify-content-between.align-items-center.mb-3{
        gap: 10px;
        margin-bottom: 10px !important;
    }

    .checkout-step-panel .d-flex.justify-content-between.align-items-center.mb-3 > div:first-child{
        min-width: 0;
        flex: 1 1 auto;
    }

    /* 3) Previous + Next 1 line */
    #checkoutPrevBtn,
    #checkoutNextBtn{
        width: auto !important;
        min-width: 0 !important;
        flex: 1 1 0;
        min-height: 40px !important;
        font-size: 13px !important;
        padding: 8px 12px !important;
    }

    #checkoutPrevBtn + #checkoutNextBtn{
        margin-left: 8px;
    }

    .d-flex.justify-content-between.mt-4{
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 0 !important;
        margin-top: 12px !important;
    }
}

/* extra small mobile */
@media (max-width: 479.98px){
    #checkoutStepBar{
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 4px !important;
    }

    #checkoutStepBar .checkout-step-btn{
        font-size: 9px !important;
        padding: 6px 2px !important;
        min-height: 34px !important;
        border-radius: 8px !important;
    }

    .checkout-step-panel .card-body{
        padding: 10px !important;
    }

    .checkout-step-panel h5{
        font-size: 15px !important;
    }

    #openAddAddressModalBtn{
        font-size: 11px !important;
        padding: 5px 8px !important;
        min-height: 32px !important;
    }

    #checkoutPrevBtn,
    #checkoutNextBtn{
        font-size: 12px !important;
        min-height: 38px !important;
        padding: 7px 10px !important;
    }
}

/* =========================================
   PROFESSIONAL MOBILE CHECKOUT + ADDRESS UI
========================================= */

/* ===================================
   ADD ADDRESS - PROFESSIONAL MOBILE UI
=================================== */

#addAddressModal .modal-dialog{
    max-width: 900px;
}

#addAddressModal .modal-content{
    border-radius: 24px;
    overflow: hidden;
}

#addAddressModal .modal-header{
    padding: 1rem 1rem 0.75rem;
}

#addAddressModal .modal-body{
    padding: 0.9rem 1rem 1rem;
}

#addAddressModal .row.g-3{
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
}

#addAddressModal .form-label{
    font-size: 0.88rem;
    font-weight: 600;
    margin-bottom: 0.38rem;
    color: #334155;
}

#addAddressModal .form-control,
#addAddressModal .form-select{
    min-height: 44px;
    border-radius: 999px !important;
    font-size: 0.9rem;
    border: 1px solid #dbe2ea;
    box-shadow: none;
}

#addAddressModal textarea.form-control{
    min-height: 90px;
    border-radius: 18px !important;
    resize: vertical;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

#addAddressModal .form-control:focus,
#addAddressModal .form-select:focus{
    border-color: #00a86b;
    box-shadow: 0 0 0 0.18rem rgba(0, 168, 107, 0.12);
}

/* map label row */
.address-map-label{
    margin-bottom: 0.45rem !important;
    gap: 8px;
    flex-wrap: wrap;
}

.address-map-label-text{
    font-size: 0.84rem;
    font-weight: 600;
    color: #334155;
    line-height: 1.2;
}

#useCurrentLocationBtn{
    min-height: 32px;
    padding: 0.28rem 0.72rem !important;
    font-size: 0.75rem !important;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}

#useCurrentLocationBtn i{
    font-size: 0.8rem;
}

.address-map-help{
    font-size: 0.74rem;
    margin-top: 0.38rem;
    line-height: 1.35;
    color: #64748b;
}

/* smaller map */
#addressMapPreview{
    height: 240px;
    width: 100%;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid #dee2e6;
    background: #f8fafc;
}

/* footer buttons */
#addAddressModal .d-flex.justify-content-end.gap-2.mt-4{
    margin-top: 0.9rem !important;
}

#addAddressModal .d-flex.justify-content-end.gap-2.mt-4 .btn{
    min-height: 42px;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 0.88rem;
    font-weight: 600;
}

/* =========================
   Tablet + Mobile
========================= */
@media (max-width: 767.98px){
    #addAddressModal .modal-dialog{
        max-width: 100%;
        margin: 0;
        height: 100%;
    }

    #addAddressModal .modal-content{
        min-height: 100vh;
        height: 100vh;
        border-radius: 0 !important;
    }

    #addAddressModal .modal-header{
        padding: 0.85rem 0.8rem 0.55rem;
    }


    #addAddressModal .modal-body{
        padding: 0.75rem 0.8rem 0.9rem;
        overflow-y: auto;
        background: #f8fafc;
    }

    #addAddressModal .row.g-3{
        --bs-gutter-x: 0.65rem;
        --bs-gutter-y: 0.7rem;
    }

    /* 1 line e 2 ta fields */
    #addAddressModal .col-6.col-md-4{
        width: 50%;
    }

    #addAddressModal .form-label{
        font-size: 0.76rem;
        margin-bottom: 0.3rem;
    }

    #addAddressModal .form-control,
    #addAddressModal .form-select{
        min-height: 40px;
        font-size: 0.8rem;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    #addAddressModal textarea.form-control{
        min-height: 82px;
        border-radius: 16px !important;
    }

    .address-map-label{
        align-items: center !important;
        justify-content: space-between !important;
        margin-bottom: 0.35rem !important;
        gap: 6px;
    }

    .address-map-label-text{
        font-size: 0.75rem;
        flex: 1 1 auto;
        min-width: 0;
    }

    #useCurrentLocationBtn{
        min-height: 28px;
        padding: 0.22rem 0.58rem !important;
        font-size: 0.68rem !important;
        border-radius: 999px !important;
        flex-shrink: 0;
    }

    #useCurrentLocationBtn i{
        font-size: 0.72rem;
    }

    #addressMapPreview{
        height: 190px;
        border-radius: 14px;
    }

    .address-map-help{
        font-size: 0.68rem;
        margin-top: 0.3rem;
    }

    #addAddressModal .d-flex.justify-content-end.gap-2.mt-4{
        gap: 8px !important;
    }

    #addAddressModal .d-flex.justify-content-end.gap-2.mt-4 .btn{
        flex: 1 1 0;
        min-width: 0;
        min-height: 40px;
        font-size: 0.8rem;
        border-radius: 14px !important;
    }
}

/* =========================
   Small Mobile
========================= */
@media (max-width: 479.98px){
    #addAddressModal .modal-header{
        padding: 1rem 0.65rem 0.45rem !important;
    }

    #addAddressModal .modal-body{
        padding: 0.6rem 0.65rem 0.8rem;
    }

    #addAddressModal .row.g-3{
        --bs-gutter-x: 0.5rem;
        --bs-gutter-y: 0.55rem;
    }

    /* map - only one block */
    #addressMapPreview{
        height: 175px !important;
        width: 100%;
        border-radius: 10px;
        overflow: hidden;
        border: 1px solid #dee2e6;
    }

    #addAddressModal .form-label{
        font-size: 0.68rem;
        margin-bottom: 0.22rem;
    }

    #addAddressModal .form-control,
    #addAddressModal .form-select{
        min-height: 34px !important;
        height: 34px !important;
        font-size: 0.72rem !important;
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }

    #addressLineInput{
        min-height: 36px !important;
        height: 36px !important;
        padding-top: 6px !important;
        padding-bottom: 6px !important;
        resize: none;
        line-height: 1.2;
    }

    .address-map-label{
        gap: 4px !important;
        margin-bottom: 0.25rem !important;
    }

    .address-map-label-text{
        font-size: 0.66rem;
        line-height: 1.15;
    }

    #useCurrentLocationBtn{
        min-height: 24px;
        padding: 0.14rem 0.42rem !important;
        font-size: 0.6rem !important;
        line-height: 1;
    }

    #useCurrentLocationBtn i{
        font-size: 0.64rem;
    }

    .address-map-help{
        font-size: 0.6rem;
        line-height: 1.2;
        margin-top: 0.22rem;
    }

    .address-default-check{
        padding-left: 1.05rem;
        margin-top: -2px;
    }

    .address-default-check .form-check-input{
        width: 0.76rem;
        height: 0.76rem;
        margin-top: 0.1rem;
    }

    .address-default-check .form-check-label{
        font-size: 10px;
        line-height: 1.15;
    }

    #addAddressModal .d-flex.justify-content-end.gap-2.mt-4{
        gap: 6px !important;
        margin-top: 0.65rem !important;
    }

    #addAddressModal .d-flex.justify-content-end.gap-2.mt-4 .btn{
        min-height: 34px !important;
        font-size: 0.72rem !important;
        padding: 0.38rem 0.55rem !important;
        border-radius: 10px !important;
    }

    #addAddressModal .modal-title{
        margin-top: 6px !important;
    }

    #addAddressModal .btn-close{
        margin-top: 6px !important;
    }
    #addAddressModal .modal-header{
        padding-top: 3rem !important;
    }
}


/* =========================
   CHECKOUT OPTION CARDS
   full final mobile version
========================= */

.checkout-option-cards{
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.75rem;
}

.checkout-option-card{
    transition: all 0.2s ease;
}

.checkout-option-card .form-check{
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding-left: 0 !important;
    margin-top: 0.75rem !important;
    min-height: auto;
}

.checkout-option-card .form-check-input{
    margin: 0 !important;
    flex-shrink: 0;
}

.checkout-option-card .form-check-label{
    margin: 0 !important;
    line-height: 1;
}

/* mobile */
@media (max-width: 767.98px){
    .checkout-option-cards{
        --bs-gutter-x: 0.4rem;
        --bs-gutter-y: 0.4rem;
    }

    .checkout-option-cards > [class*="col-"]{
        width: 33.333333% !important;
        flex: 0 0 33.333333% !important;
        max-width: 33.333333% !important;
    }

    .checkout-option-card{
        padding: 0.5rem !important;
        border-radius: 12px !important;
        text-align: center;
    }

    .checkout-option-card .fw-semibold{
        font-size: 0.68rem !important;
        line-height: 1.15;
        margin-bottom: 0;
    }

    .checkout-option-card .small{
        font-size: 0.58rem !important;
        line-height: 1.15;
        margin-top: 0.15rem !important;
    }

    .checkout-option-card .form-check{
        justify-content: center;
        gap: 5px;
        margin-top: 0.35rem !important;
    }

    .checkout-option-card .form-check-input{
        width: 1.9rem;
        height: 1rem;
    }

    .checkout-option-card .form-check-label{
        font-size: 0.58rem !important;
    }

    #giftMessageInput{
        min-height: 64px !important;
        font-size: 0.78rem !important;
    }
}

/* small mobile */
@media (max-width: 479.98px){
    .checkout-option-cards{
        --bs-gutter-x: 0.3rem;
        --bs-gutter-y: 0.3rem;
    }

    .checkout-option-card{
        padding: 0.4rem !important;
        border-radius: 10px !important;
    }

    .checkout-option-card .fw-semibold{
        font-size: 0.62rem !important;
    }

    .checkout-option-card .small{
        font-size: 0.54rem !important;
    }

    .checkout-option-card .form-check{
        gap: 4px;
        margin-top: 0.28rem !important;
    }

    .checkout-option-card .form-check-input{
        width: 1.7rem;
        height: 0.9rem;
    }

    .checkout-option-card .form-check-label{
        font-size: 0.54rem !important;
    }

    #giftMessageInput{
        min-height: 56px !important;
        font-size: 0.72rem !important;
    }
}
.home-service-pro-card{
    border-radius: 28px;
    background: #fff;
}

.home-service-hero{
    background:
        radial-gradient(circle at top right, rgba(0,168,107,.10), transparent 28%),
        radial-gradient(circle at bottom left, rgba(25,135,84,.08), transparent 32%),
        linear-gradient(180deg, #f8fffb 0%, #ffffff 100%);
    border-bottom: 1px solid rgba(0,0,0,.05);
}

.home-service-title{
    font-size: clamp(1.7rem, 2.2vw, 2.6rem);
    line-height: 1.2;
    color: #132218;
}

.home-service-subtitle{
    max-width: 760px;
    font-size: 1rem;
    line-height: 1.75;
}

.mini-stat-box{
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 18px;
    padding: 16px 14px;
    text-align: center;
    height: 100%;
    box-shadow: 0 10px 30px rgba(16, 24, 40, 0.05);
}

.mini-stat-value{
    font-size: 1.1rem;
    font-weight: 800;
    color: #00a86b;
    margin-bottom: 4px;
}

.mini-stat-label{
    font-size: .84rem;
    color: #6c757d;
}

.service-hero-side-card{
    background: rgba(255,255,255,.9);
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 18px 40px rgba(16, 24, 40, .08);
}

.service-benefit-list{
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.benefit-item{
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: .94rem;
    color: #495057;
}

.benefit-item i{
    margin-top: 2px;
    font-size: 1rem;
}

.service-category-card{
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 14px 32px rgba(16,24,40,.05);
    transition: all .25s ease;
    position: relative;
    overflow: hidden;
}

.service-category-card:hover{
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(16,24,40,.10);
    border-color: rgba(0,168,107,.22);
}

.service-icon-box{
    width: 62px;
    height: 62px;
    border-radius: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.55rem;
    margin-bottom: 16px;
}

.service-tags{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.service-tags span{
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 999px;
    background: #f5f7f9;
    border: 1px solid rgba(0,0,0,.05);
    font-size: .78rem;
    color: #495057;
    font-weight: 600;
}

.popular-service-strip{
    background: linear-gradient(180deg, #fcfffd 0%, #f8faf9 100%);
    border: 1px solid rgba(0,0,0,.06);
    border-radius: 24px;
    padding: 22px;
}

.quick-service-box{
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border-radius: 18px;
    padding: 16px;
    border: 1px solid rgba(0,0,0,.06);
    height: 100%;
    box-shadow: 0 10px 24px rgba(16,24,40,.05);
}

.quick-service-box i{
    width: 46px;
    height: 46px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,168,107,.12);
    color: #00a86b;
    font-size: 1.15rem;
    flex-shrink: 0;
}

@media (max-width: 991.98px){
    .home-service-hero{
        padding: 1.25rem !important;
    }

    .service-hero-side-card{
        padding: 18px;
        border-radius: 20px;
    }

    .service-category-card{
        border-radius: 20px;
        padding: 18px;
    }

    .popular-service-strip{
        padding: 18px;
        border-radius: 20px;
    }
}


.bus-booking-shell-pro{
    border-radius:30px;
    overflow:visible;
    background:
        radial-gradient(circle at top right, rgba(59,130,246,.08), transparent 24%),
        radial-gradient(circle at top left, rgba(16,185,129,.10), transparent 22%),
        linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.92));
    box-shadow:0 24px 70px rgba(15,23,42,.10);
}

body.dark-mode .bus-booking-shell-pro{
    background:
        radial-gradient(circle at top right, rgba(59,130,246,.12), transparent 24%),
        radial-gradient(circle at top left, rgba(16,185,129,.12), transparent 22%),
        linear-gradient(180deg, rgba(17,24,39,.96), rgba(15,23,42,.94));
}

.bus-hero-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    flex-wrap:wrap;
}

.bus-kicker{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(16,185,129,.12);
    color:#047857;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
    margin-bottom:10px;
}

body.dark-mode .bus-kicker{
    color:#6ee7b7;
    background:rgba(16,185,129,.16);
}

.bus-hero-side{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}

.bus-booking-main-grid{
    --bs-gutter-x:1.25rem;
    --bs-gutter-y:1.25rem;
}

.bus-search-card,
.bus-service-board,
.bus-seat-sticky-card{
    position:relative;
    border:1px solid var(--border);
    border-radius:24px;
    background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.98));
    box-shadow:var(--shadow-sm);
}

body.dark-mode .bus-search-card,
body.dark-mode .bus-service-board,
body.dark-mode .bus-seat-sticky-card{
    background:linear-gradient(180deg,rgba(17,24,39,.94),rgba(15,23,42,.98));
}

.bus-search-card{
    padding:18px;
}

.bus-service-board{
    padding:18px;
    min-height:100%;
}

.bus-seat-sticky-card{
    padding:18px;
    position:sticky;
    top:112px;
}

.bus-panel-head{
    display:flex;
    align-items:center;
    gap:12px;
}

.bus-mini-icon{
    width:44px;
    height:44px;
    border-radius:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg, rgba(16,185,129,.18), rgba(59,130,246,.10));
    color:#0f766e;
    font-size:1rem;
    flex:0 0 auto;
}

.bus-search-stack{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.bus-control{
    min-height:42px !important;
    border-radius:14px !important;
    font-size:.92rem;
}

.bus-search-btn,
.bus-confirm-btn{
    min-height:46px;
    font-weight:800;
}

.bus-search-summary{
    padding:14px 16px;
    border-radius:18px;
    background:linear-gradient(180deg, rgba(248,250,252,.95), rgba(255,255,255,.95));
    border:1px solid rgba(15,23,42,.06);
}

body.dark-mode .bus-search-summary{
    background:linear-gradient(180deg, rgba(15,23,42,.95), rgba(17,24,39,.95));
}

.bus-selected-name{
    font-size:1rem;
}

.bus-board-head,
.bus-seat-panel-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
    flex-wrap:wrap;
}

.bus-board-chip{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:9px 14px;
    border-radius:999px;
    background:rgba(59,130,246,.10);
    color:#1d4ed8;
    font-size:.82rem;
    font-weight:700;
    white-space:nowrap;
}

body.dark-mode .bus-board-chip{
    color:#93c5fd;
    background:rgba(59,130,246,.14);
}

.bus-services-wrap{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.bus-time-group{
    border:1px solid rgba(15,23,42,.08);
    border-radius:20px;
    overflow:hidden;
    background:rgba(255,255,255,.80);
}

body.dark-mode .bus-time-group{
    background:rgba(15,23,42,.62);
    border-color:rgba(255,255,255,.06);
}

.bus-time-head{
    padding:12px 16px;
    background:linear-gradient(90deg, rgba(16,185,129,.10), rgba(59,130,246,.06));
    border-bottom:1px solid rgba(15,23,42,.06);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.bus-service-card{
    padding:16px;
    border-bottom:1px solid rgba(15,23,42,.06);
    transition:.22s ease;
}

.bus-service-card:last-child{
    border-bottom:0;
}

.bus-service-card:hover{
    background:rgba(16,185,129,.05);
}

.bus-service-card.active{
    background:linear-gradient(90deg, rgba(16,185,129,.08), rgba(59,130,246,.04));
    box-shadow:inset 3px 0 0 #10b981;
}

.bus-service-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:nowrap;
}

.bus-service-top > div:first-child{
    flex:1 1 auto;
    min-width:0;
}

.bus-service-title{
    font-size:1rem;
    font-weight:800;
    margin-bottom:4px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.bus-service-meta{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:6px;
    margin-top:8px;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    padding-bottom:2px;
    scrollbar-width:thin;
}

.bus-service-meta::-webkit-scrollbar{
    height:4px;
}

.bus-service-meta::-webkit-scrollbar-thumb{
    background:rgba(15,23,42,.16);
    border-radius:999px;
}

.bus-meta-chip{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:6px 9px;
    border-radius:999px;
    border:1px solid rgba(15,23,42,.06);
    background:#f8fafc;
    color:#64748b;
    font-size:.74rem;
    line-height:1;
    white-space:nowrap;
    flex:0 0 auto;
}

body.dark-mode .bus-meta-chip{
    background:#0f172a;
    color:#cbd5e1;
    border-color:rgba(255,255,255,.06);
}

.bus-select-btn{
    min-width:112px;
    white-space:nowrap;
    flex:0 0 auto;
}

.bus-seat-booking-panel-pro{
    display:block !important;
}

.bus-seat-legend-wrap{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.seat-legend-item{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:.78rem;
    color:var(--muted);
}

.seat-dot{
    width:11px;
    height:11px;
    border-radius:50%;
    display:inline-block;
}

.seat-dot.available{ background:#dbe4ea; }
.seat-dot.selected{ background:#10b981; }
.seat-dot.booked{ background:#ef4444; }

.bus-seat-layout-wrap{
    margin-top:14px;
    padding:16px;
    border-radius:22px;
    background:linear-gradient(180deg, #f8fafc, #ffffff);
    border:1px dashed rgba(15,23,42,.12);
}

body.dark-mode .bus-seat-layout-wrap{
    background:linear-gradient(180deg, #0f172a, #111827);
    border-color:rgba(255,255,255,.10);
}

.bus-seat-top-bar{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:16px;
}

.driver-box{
    min-width:124px;
    padding:11px 16px;
    border-radius:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:linear-gradient(135deg, #111827, #0f172a);
    color:#fff;
    font-size:.92rem;
    font-weight:800;
    box-shadow:0 12px 30px rgba(15,23,42,.18);
}

.driver-box i{
    font-size:1rem;
}

#busSeatMap .seat{
    width:100%;
    min-height:46px;
    border:1px solid rgba(15,23,42,.08);
    border-radius:14px;
    background:#fff;
    font-size:.84rem;
    font-weight:800;
    transition:.18s ease;
    box-shadow:var(--shadow-2xs);
}

#busSeatMap .seat:hover{
    transform:translateY(-1px);
    box-shadow:var(--shadow-xs);
}

#busSeatMap .seat.selected{
    background:linear-gradient(135deg, #10b981, #059669);
    color:#fff;
    border-color:#10b981;
}

#busSeatMap .seat.booked{
    background:linear-gradient(135deg, #ef4444, #dc2626);
    color:#fff;
    border-color:#ef4444;
    cursor:not-allowed;
}

.bus-booking-summary-card{
    padding:16px;
    border-radius:20px;
    border:1px solid rgba(15,23,42,.06);
    background:linear-gradient(180deg, rgba(248,250,252,.96), rgba(255,255,255,.98));
}

body.dark-mode .bus-booking-summary-card{
    background:linear-gradient(180deg, rgba(15,23,42,.96), rgba(17,24,39,.98));
    border-color:rgba(255,255,255,.06);
}

.bus-summary-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:10px 0;
    border-bottom:1px dashed rgba(15,23,42,.08);
    font-size:.94rem;
}

.bus-summary-row:last-of-type{
    border-bottom:0;
}

.bus-summary-row.total-row{
    margin-top:4px;
    padding-top:14px;
    font-size:1rem;
}

.bus-summary-row span{
    color:var(--muted);
}

@media (max-width: 1399.98px){
    .bus-booking-main-grid > .col-xl-3{ order:1; }
    .bus-booking-main-grid > .col-xl-5{ order:2; }
    .bus-booking-main-grid > .col-xl-4{ order:3; }
}

@media (max-width: 1199.98px){
    .bus-seat-sticky-card{
        position:relative;
        top:auto;
    }
}

@media (max-width: 991.98px){
    .bus-booking-shell-pro{
        border-radius:24px;
    }

    .bus-service-top{
        flex-wrap:wrap;
        align-items:flex-start;
    }

    .bus-select-btn{
        min-width:100%;
    }

    .bus-seat-legend-wrap{
        gap:6px;
    }
}

@media (max-width: 575.98px){
    .bus-search-card,
    .bus-service-board,
    .bus-seat-sticky-card{
        padding:14px;
        border-radius:20px;
    }

    .bus-meta-chip{
        font-size:.70rem;
        padding:5px 8px;
    }

    .driver-box{
        min-width:110px;
        padding:10px 14px;
        border-radius:14px;
    }
}
.bus-service-card{
    border:1px solid rgba(15,23,42,.08);
    border-radius:22px;
    padding:16px;
    background:linear-gradient(180deg,#ffffff,#f8fbff);
    transition:all .25s ease;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
}

.bus-service-card:hover{
    transform:translateY(-2px);
    box-shadow:0 18px 36px rgba(15,23,42,.10);
    border-color:rgba(0,168,107,.22);
}

.bus-service-card.active{
    border-color:#00a86b;
    box-shadow:0 18px 38px rgba(0,168,107,.12);
    background:linear-gradient(180deg,#f5fffb,#ffffff);
}

.bus-service-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.bus-service-main{
    flex:1 1 auto;
    min-width:0;
}

.bus-service-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}

.bus-service-title{
    font-weight:800;
    font-size:1rem;
    line-height:1.2;
    margin:0;
    color:#0f172a;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.bus-route-line{
    font-size:.84rem;
    color:#64748b;
    margin-bottom:8px;
}

.bus-service-meta{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:6px;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    scrollbar-width:thin;
    padding-bottom:2px;
}

.bus-meta-chip{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:6px 9px;
    border-radius:999px;
    background:#f8fafc;
    border:1px solid rgba(15,23,42,.08);
    color:#475569;
    font-size:.74rem;
    font-weight:700;
    white-space:nowrap;
    flex:0 0 auto;
}

.bus-select-btn{
    min-width:112px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    border-radius:999px;
    font-weight:800;
    flex:0 0 auto;
}

@media (max-width: 767.98px){
    .bus-service-head{
        align-items:flex-start;
        gap:10px;
    }

    .bus-service-title{
        font-size:.93rem;
    }

    .bus-select-btn{
        min-width:96px;
        height:36px;
        font-size:.82rem;
        padding:0 12px;
    }
}

.bus-booking-shell{
    overflow:visible !important;
}

.bus-booking-shell .row.g-4{
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 1rem;
}

/* 3-column layout */
.bus-search-col{
    flex:0 0 22%;
    max-width:22%;
}

.bus-services-col{
    flex:0 0 50%;
    max-width:50%;
}

.bus-booking-col{
    flex:0 0 28%;
    max-width:28%;
}

/* sticky left + right */
.bus-search-sticky,
.bus-booking-sticky{
    position:sticky;
    top:118px;
    z-index:5;
}

.bus-search-panel,
.bus-services-panel,
.bus-booking-panel{
    border:1px solid rgba(15,23,42,.08);
    border-radius:24px;
    background:linear-gradient(180deg,#ffffff,#f8fbff);
    box-shadow:0 16px 40px rgba(15,23,42,.06);
}

.bus-search-panel{
    padding:16px;
}

.bus-services-panel{
    padding:18px;
    min-height:100%;
}

.bus-booking-panel{
    padding:16px;
}

/* search smaller */
.bus-search-panel .form-label{
    font-size:.78rem;
    font-weight:700;
    margin-bottom:6px;
}

.bus-search-panel .form-control,
.bus-search-panel .form-select{
    min-height:42px;
    font-size:.92rem;
}

.bus-search-panel .btn{
    min-height:44px;
}

/* services area bigger */
.bus-services-panel .section-title{
    font-size:1.15rem;
    font-weight:800;
    margin-bottom:2px;
}

.bus-services-panel .section-subtitle{
    font-size:.86rem;
    color:#64748b;
}

.bus-services-wrap{
    display:flex;
    flex-direction:column;
    gap:14px;
}

/* service group */
.bus-time-group{
    border:1px solid rgba(15,23,42,.08);
    border-radius:22px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.04);
}

.bus-time-head{
    padding:12px 16px;
    background:linear-gradient(180deg,#f8fafc,#f1f5f9);
    border-bottom:1px solid rgba(15,23,42,.06);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.bus-service-card{
    border-bottom:1px solid rgba(15,23,42,.06);
    padding:16px;
    transition:all .25s ease;
    cursor:pointer;
    background:linear-gradient(180deg,#ffffff,#fbfdff);
}

.bus-service-card:last-child{
    border-bottom:0;
}

.bus-service-card:hover{
    background:#f7fffb;
    transform:translateY(-1px);
}

.bus-service-card.active{
    background:#ecfff5;
    box-shadow:inset 4px 0 0 #00a86b;
}

.bus-service-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.bus-service-main{
    flex:1 1 auto;
    min-width:0;
}

.bus-service-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}

.bus-service-title{
    font-size:1rem;
    font-weight:800;
    line-height:1.2;
    color:#0f172a;
    margin:0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.bus-route-line{
    font-size:.84rem;
    color:#64748b;
    margin-bottom:8px;
}

.bus-service-meta{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:6px;
    overflow-x:auto;
    overflow-y:hidden;
    white-space:nowrap;
    scrollbar-width:thin;
    padding-bottom:2px;
}

.bus-service-meta::-webkit-scrollbar{
    height:4px;
}

.bus-service-meta::-webkit-scrollbar-thumb{
    background:rgba(15,23,42,.18);
    border-radius:999px;
}

.bus-meta-chip{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:6px 9px;
    border-radius:999px;
    background:#f8fafc;
    border:1px solid rgba(15,23,42,.08);
    color:#475569;
    font-size:.74rem;
    font-weight:700;
    white-space:nowrap;
    flex:0 0 auto;
}

.bus-select-btn{
    min-width:112px;
    height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    border-radius:999px;
    font-weight:800;
    flex:0 0 auto;
}

/* right booking smaller */
.bus-booking-panel .booking-title{
    font-size:1rem;
    font-weight:800;
}

.bus-booking-panel .small,
.bus-booking-panel .text-secondary{
    font-size:.82rem !important;
}

.bus-booking-panel .btn{
    min-height:42px;
}

/* seat area */
.bus-seat-layout-wrap{
    background:#fcfcfd;
    border:1px dashed rgba(15,23,42,.12);
    border-radius:20px;
    padding:16px;
}

.bus-seat-top-bar{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:18px;
}

.driver-box{
    min-width:118px;
    text-align:center;
    padding:10px 16px;
    border-radius:16px;
    background:#111827;
    color:#fff;
    font-size:.92rem;
    font-weight:800;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    box-shadow:0 10px 22px rgba(0,0,0,.14);
}

/* fix right-side blank after A4/B4 */
#busSeatMap{
    display:grid !important;
    grid-template-columns:repeat(5, minmax(54px, 1fr));
    gap:10px 12px;
    align-items:start;
}

#busSeatMap .seat-col{
    width:100%;
}

#busSeatMap .aisle-gap{
    pointer-events:none;
}

.seat{
    border:1px solid #dbe3ea;
    border-radius:12px;
    padding:10px 6px;
    background:#fff;
    cursor:pointer;
    font-weight:700;
    width:100%;
    min-height:46px;
    transition:.2s ease;
}

.seat:hover{
    transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(15,23,42,.08);
}

.seat.selected{
    background:#198754;
    color:#fff;
    border-color:#198754;
}

.seat.booked{
    background:#dc3545;
    color:#fff;
    border-color:#dc3545;
    cursor:not-allowed;
}

/* desktop/tablet/mobile */
@media (max-width: 1199.98px){
    .bus-search-col{
        flex:0 0 26%;
        max-width:26%;
    }
    .bus-services-col{
        flex:0 0 46%;
        max-width:46%;
    }
    .bus-booking-col{
        flex:0 0 28%;
        max-width:28%;
    }
}

@media (max-width: 991.98px){
    .bus-search-col,
    .bus-services-col,
    .bus-booking-col{
        flex:0 0 100%;
        max-width:100%;
    }

    .bus-search-sticky,
    .bus-booking-sticky{
        position:relative;
        top:auto;
    }

    .bus-service-head{
        align-items:flex-start;
    }

    #busSeatMap{
        grid-template-columns:repeat(5, minmax(48px, 1fr));
        gap:8px 10px;
    }
}
