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

:root {
    --bg: #f0f4fb;
    --surface: #fff;
    --border: #dde4f0;
    --border2: #c8d3ea;
    --text: #1a2340;
    --muted: #7a88aa;
    --muted2: #a0aec0;
    --gold: #e8a500;
    --orange: #f05a28;
    --pink: #e8185a;
    --teal: #0a9e84;
    --blue: #1a56ff;
    --green: #16a34a;
    --red: #dc2626;
    --shadow: 0 2px 8px rgba(26, 35, 64, .07), 0 4px 14px rgba(26, 35, 64, .04);
    --mob-bottomnav-h: 64px;
}

html {
    overflow-x: hidden;
}

body {
    min-height: 100%;
    height: auto;
    font-family: 'Be Vietnam Pro', sans-serif;
    background: var(--bg);
    color: var(--text);
    overflow-x: hidden;
    -webkit-tap-highlight-color: transparent;
}

/* TOPBAR */
.mob-topbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    height: 54px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
    box-shadow: 0 2px 10px rgba(26, 35, 64, .07)
}

.tb-logo {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1;
}

.tb-logo-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    line-height: 0;
    min-width: 0;
}

.tb-logo-img {
    display: block;
    height: 48px;
    width: auto;
    max-width: min(180px, 55vw);
    object-fit: contain;
    object-position: left center;
}

.tb-actions {
    display: flex;
    align-items: center;
    gap: 8px
}

.tb-icon-btn {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    border: 1.5px solid var(--border2);
    background: var(--bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    cursor: pointer
}

.tb-spam-btn {
    background: linear-gradient(135deg, #e8185a, #f05a28);
    border: none;
    color: #fff;
    border-radius: 9px;
    padding: 7px 13px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(232, 24, 90, .35)
}

/* DRAWER */
.mob-drawer-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(10, 16, 36, .45);
    z-index: 150
}

.mob-drawer-overlay.open {
    display: block
}

.mob-drawer {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 260px;
    background: var(--surface);
    z-index: 151;
    transform: translateX(-100%);
    transition: transform .26s cubic-bezier(.4, 0, .2, 1);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    box-shadow: 4px 0 20px rgba(10, 16, 36, .15)
}

.mob-drawer.open {
    transform: translateX(0)
}

.mob-drawer-hd {
    position: sticky;
    top: 0;
    z-index: 3;
    flex-shrink: 0;
    padding: 16px;
    border-bottom: 1px solid var(--border);
    background: var(--surface);
    display: flex;
    align-items: center;
    justify-content: space-between
}

.mob-drawer-logo {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1;
    text-decoration: none;
    line-height: 0
}

.mob-drawer-logo-img {
    display: block;
    height: 48px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: left center
}

.mob-drawer-close {
    width: 30px;
    height: 30px;
    border-radius: 7px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center
}

.mob-drawer-user {
    --mob-du-ease: cubic-bezier(.4, 0, .2, 1);
    --mob-du-dur: .38s;
    position: relative;
    padding: 14px 16px 12px;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, #f8faff, #fff);
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-shrink: 0;
    overflow: hidden;
    transition: padding var(--mob-du-dur) var(--mob-du-ease), gap var(--mob-du-dur) var(--mob-du-ease);
}

.mob-drawer-user.is-animating {
    overflow: hidden;
}

.mob-du-toggle {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    border: 1px solid var(--border2);
    background: #fff;
    color: #7a88aa;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    line-height: 1;
    padding: 0;
    z-index: 2;
    transition: background .12s, border-color .12s, color .12s;
}

.mob-du-account {
    position: absolute;
    top: 8px;
    left: 8px;
    right: auto;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    border: 1px solid var(--border2);
    background: #fff;
    color: #7a88aa;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    line-height: 1;
    padding: 0;
    z-index: 2;
    transition: background .12s, border-color .12s, color .12s, opacity .2s;
}

.mob-du-account:hover {
    background: #e8efff;
    border-color: #1a56ff;
    color: #1a56ff;
}

.mob-drawer-user.is-compact .mob-du-account {
    display: none;
}

.mob-du-toggle:hover {
    background: #e8efff;
    border-color: #1a56ff;
    color: #1a56ff;
}

.mob-du-toggle-min,
.mob-du-toggle-max {
    position: absolute;
    transition: opacity .25s ease, transform .25s ease;
}

.mob-du-toggle-max {
    opacity: 0;
    transform: scale(.75);
}

.mob-drawer-user.is-compact .mob-du-toggle-min {
    opacity: 0;
    transform: scale(.75);
}

.mob-drawer-user.is-compact .mob-du-toggle-max {
    opacity: 1;
    transform: scale(1);
}

.mob-du-main {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    gap: 8px;
    justify-items: center;
    align-items: center;
    width: 100%;
    transition: grid-template-columns var(--mob-du-dur) var(--mob-du-ease),
        grid-template-rows var(--mob-du-dur) var(--mob-du-ease),
        gap var(--mob-du-dur) var(--mob-du-ease);
}

.mob-du-details {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 0;
    width: 100%;
    grid-column: 1;
    grid-row: 2;
    transition: grid-column var(--mob-du-dur) var(--mob-du-ease),
        grid-row var(--mob-du-dur) var(--mob-du-ease),
        align-items var(--mob-du-dur) var(--mob-du-ease);
}

.mob-du-actions {
    display: grid;
    grid-template-rows: 1fr;
    width: 100%;
    opacity: 1;
    pointer-events: auto;
    transition: grid-template-rows var(--mob-du-dur) var(--mob-du-ease), opacity .22s ease .06s;
}

.mob-du-actions-inner {
    overflow: hidden;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.mob-drawer-user.is-compact {
    padding: 10px 12px;
    gap: 0;
}

.mob-drawer-user.is-compact .mob-du-main {
    grid-template-columns: 40px minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 10px;
    justify-items: start;
    padding-right: 28px;
}

.mob-drawer-user.is-compact .mob-du-details {
    grid-column: 2;
    grid-row: 1;
    align-items: flex-start;
}

.mob-drawer-user.is-compact .user-avatar-chip--mob {
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
}

.mob-drawer-user.is-compact .mob-drawer-avatar {
    width: 40px;
    height: 40px;
    font-size: 16px;
}

.mob-drawer-user.is-compact .user-avatar-chip--mob .mob-drawer-avatar {
    width: 40px;
    height: 40px;
    font-size: 16px;
}

.mob-drawer-user.is-compact .mob-drawer-name {
    font-size: 12px;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.mob-drawer-user.is-compact .mob-du-meta {
    text-align: left;
    font-size: 9.5px;
    line-height: 1.35;
}

.mob-drawer-user.is-compact .mob-du-email,
.mob-drawer-user.is-compact .mob-du-phone {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.mob-drawer-user.is-compact .mob-du-actions {
    grid-template-rows: 0fr;
    opacity: 0;
    pointer-events: none;
    transition: grid-template-rows var(--mob-du-dur) var(--mob-du-ease), opacity .16s ease;
}

.mob-drawer-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--blue), var(--teal));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #fff;
    font-weight: 700;
    box-shadow: 0 3px 10px rgba(26, 86, 255, .25);
    transition: width var(--mob-du-dur) var(--mob-du-ease),
        height var(--mob-du-dur) var(--mob-du-ease),
        font-size var(--mob-du-dur) var(--mob-du-ease);
    overflow: hidden;
    position: relative;
}

.mob-drawer-user .user-avatar-chip {
    justify-self: center;
    width: 44px;
    height: 44px;
}

.mob-drawer-user .user-avatar-chip__camera svg {
    width: 16px;
    height: 16px;
}

.mob-drawer-user.is-compact .user-avatar-chip--mob {
    width: 40px;
    height: 40px;
}

.mob-drawer-user.is-compact .user-avatar-chip--mob .mob-drawer-avatar {
    width: 40px;
    height: 40px;
    font-size: 16px;
}

.mob-drawer-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--text);
    text-align: center;
    transition: font-size var(--mob-du-dur) var(--mob-du-ease);
}

.mob-du-meta {
    font-size: 11px;
    color: var(--muted);
    text-align: center;
}

.mob-du-email,
.mob-du-phone {
    display: block;
}

.mob-du-booking {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--bg);
    border: 1px solid var(--border2);
    border-radius: 6px;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 600;
    color: var(--muted);
}

.mob-du-action-btns {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
}

.mob-du-password {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    box-sizing: border-box;
    min-width: 0;
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--blue);
    background: rgba(26, 86, 255, .07);
    border: 1px solid rgba(26, 86, 255, .18);
    border-radius: 6px;
    cursor: pointer;
    transition: background .12s, transform .1s;
}

.mob-du-password:hover {
    background: rgba(26, 86, 255, .13);
}

.mob-du-password:active {
    transform: scale(.96);
}

.mob-du-logout {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 700;
    color: var(--red);
    background: rgba(220, 38, 38, .07);
    border: 1px solid rgba(220, 38, 38, .15);
    border-radius: 6px;
    padding: 6px 14px;
    cursor: pointer;
    text-decoration: none;
    transition: background .12s;
}

.mob-du-logout:hover {
    background: rgba(220, 38, 38, .13);
}

.mob-drawer-guest {
    gap: 10px;
    padding: 18px 16px;
}

.mob-drawer-guest-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, #94a3b8, #64748b);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    margin: 0 auto;
}

.mob-drawer-guest-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
    text-align: center;
}

.mob-drawer-login-btn {
    width: 100%;
    padding: 10px 14px;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--blue), #1340d4);
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(26, 86, 255, .25);
}

.mob-drawer-nav {
    flex: 1;
    padding: 8px 0
}

.mob-drawer-section {
    padding: 6px 14px 3px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--muted2)
}

.mob-drawer-link {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--muted);
    text-decoration: none;
    border-left: 2.5px solid transparent;
    transition: all .13s
}

.mob-drawer-link:hover,
.mob-drawer-link.active {
    background: #eff3ff;
    color: var(--blue);
    border-left-color: var(--blue);
    font-weight: 700
}

.mob-drawer-link .di {
    font-size: 15px;
    width: 18px;
    text-align: center
}

.mob-drawer-link.sb-link-chat .sb-link-text {
    flex: 1;
    min-width: 0;
}

.mob-drawer-link .sb-chat-badge {
    margin-left: auto;
}

/* Nhóm menu con (Cài đặt) */
.mob-drawer-collapse {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 500;
    color: var(--muted);
    background: none;
    border: none;
    border-left: 2.5px solid transparent;
    font-family: inherit;
    cursor: pointer;
    transition: all .13s
}

.mob-drawer-collapse:hover {
    background: #eff3ff;
    color: var(--blue)
}

.mob-drawer-collapse .nav-group-label {
    display: flex;
    align-items: center;
    gap: 9px
}

.mob-drawer-collapse .di {
    font-size: 15px;
    width: 18px;
    text-align: center
}

.mob-drawer-arrow {
    font-size: 10px;
    color: var(--muted2);
    transition: transform .2s
}

.mob-drawer-sub {
    padding-left: 14px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-6px);
    transition: max-height .28s ease, opacity .22s ease, transform .22s ease
}

.nav-group.open .mob-drawer-sub {
    max-height: 320px;
    opacity: 1;
    transform: translateY(0)
}

.nav-group.open .mob-drawer-arrow {
    transform: rotate(180deg)
}

.mob-drawer-spam {
    margin: 10px 16px;
    padding: 10px 13px;
    background: linear-gradient(135deg, #e8185a, #f05a28);
    color: #fff;
    border: none;
    border-radius: 9px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    width: calc(100% - 32px);
    text-align: left;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: 0 3px 12px rgba(232, 24, 90, .3)
}

/* MAIN */
.mob-main {
    padding-top: 54px;
    padding-bottom: calc(var(--mob-bottomnav-h) + env(safe-area-inset-bottom, 0px));
    min-height: 100vh
}

/* HERO */
.mob-hero {
    background: linear-gradient(135deg, #0b1220 0%, #141e36 60%, #1a1530 100%);
    padding: 20px 16px 18px;
    position: relative;
    overflow: hidden
}



.mob-hero::before {
    content: '';
    position: absolute;
    width: 300px;
    height: 300px;
    background: radial-gradient(#1a56ff, transparent 70%);
    top: -80px;
    right: -60px;
    opacity: .3;
    border-radius: 50%;
    filter: blur(60px)
}

.mob-hero::after {
    content: '';
    position: absolute;
    width: 200px;
    height: 200px;
    background: radial-gradient(#7c3aed, transparent 70%);
    bottom: -40px;
    left: 10%;
    opacity: .25;
    border-radius: 50%;
    filter: blur(50px)
}

.mob-hero-content {
    position: relative;
    z-index: 1
}

.mob-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 99px;
    padding: 3px 11px 3px 8px;
    margin-bottom: 12px;
    font-size: 10px;
    font-weight: 600;
    color: rgba(255, 255, 255, .7);
    letter-spacing: .07em;
    text-transform: uppercase
}

.mob-hero-dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--teal);
    box-shadow: 0 0 6px var(--teal);
    animation: blink 2s ease infinite
}

@keyframes blink {

    0%,
    100% {
        opacity: 1
    }

    50% {
        opacity: .3
    }
}

.mob-hero-title {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 26px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #fff;
    margin-bottom: 6px
}

.mob-hero-title .grad {
    background: linear-gradient(90deg, var(--gold), var(--orange), var(--pink));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.mob-hero-desc {
    font-size: 12.5px;
    color: rgba(255, 255, 255, .5);
    line-height: 1.6;
    margin-bottom: 16px
}

.mob-hero-stats {
    display: flex;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 14px
}

.mob-stat {
    flex: 1;
    padding: 10px 8px;
    text-align: center;
    border-right: 1px solid rgba(255, 255, 255, .08)
}

.mob-stat:last-child {
    border-right: none
}

.mob-sv {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 18px;
    font-weight: 900;
    background: linear-gradient(135deg, var(--gold), var(--orange));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.mob-sl {
    font-size: 10px;
    color: rgba(255, 255, 255, .4);
    margin-top: 2px;
    font-weight: 500
}

/* HERO FILTER */
.mob-hero-filter {
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 14px
}

.mob-hf-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    cursor: pointer;
    user-select: none
}

.mob-hf-label {
    font-size: 12px;
    font-weight: 700;
    color: rgba(255, 255, 255, .8);
    display: flex;
    align-items: center;
    gap: 7px
}

.mob-hf-caret {
    font-size: 11px;
    color: rgba(255, 255, 255, .5);
    transition: transform .22s
}

.mob-hero-filter.open .mob-hf-caret {
    transform: rotate(180deg)
}

.mob-hf-body {
    display: none;
    padding: 0 12px 12px;
    flex-direction: column;
    gap: 8px
}

.mob-hero-filter.open .mob-hf-body {
    display: flex
}

.mob-hf-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px
}

.mob-hf-row-search-status {
    grid-template-columns: minmax(0, 1fr) minmax(118px, 38%);
    align-items: stretch
}

.mob-hf-row-search-status .mob-hf-search {
    width: 100%;
    min-width: 0
}

.mob-hero-filter .mob-hf-row-full {
    grid-template-columns: 1fr;
}

.mob-hero-filter .mob-hf-row-full .mob-hf-sel,
.mob-hero-filter .mob-hf-row-full .select2-container {
    width: 100% !important;
    max-width: 100%;
}

.mob-hf-sel {
    appearance: none;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 8px;
    padding: 8px 10px;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, .85);
    cursor: pointer;
    width: 100%
}

.mob-hf-sel option {
    background: #1a2340;
    color: #fff
}

.mob-hf-search {
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 8px;
    padding: 8px 12px;
    font-family: inherit;
    font-size: 12px;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    width: 100%
}

.mob-hf-search::placeholder {
    color: rgba(255, 255, 255, .4)
}

.mob-hf-search:focus {
    outline: none;
    border-color: rgba(255, 255, 255, .4)
}

.mob-hf-apply {
    width: 100%;
    padding: 9px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--blue), #1340d4);
    color: #fff;
    border: none;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(26, 86, 255, .35)
}

/* BADGE GRID */
.mob-badge-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px
}

.mb-badge {
    border-radius: 8px;
    padding: 8px 6px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    transition: transform .15s;
    border: 1.5px solid rgba(255, 255, 255, .15)
}

.mb-badge:active {
    transform: scale(.95)
}

.mb-badge.flash {
    background: linear-gradient(145deg, #c05422, #7a2500)
}

.mb-badge.noshop {
    background: linear-gradient(135deg, #1b4d94, #0e2c5a)
}

.mb-badge.tet {
    background: linear-gradient(135deg, #941b4d, #5a0e2c)
}

.mb-badge.full {
    background: linear-gradient(135deg, #0c6e5e, #053c34)
}

.mb-badge.fam {
    background: linear-gradient(135deg, #2c6a1b, #163908)
}

.mb-badge.vip {
    background: linear-gradient(135deg, #7a5010, #402a06)
}

.mb-badge.sem {
    background: linear-gradient(135deg, #491b94, #270e5a)
}

.mb-badge.more {
    background: linear-gradient(135deg, #2c3e6e, #1a2445);
    border-style: dashed
}

.mb-icon {
    font-size: 16px;
    line-height: 1
}

.mb-icon-img {
    width: 16px;
    height: 16px;
    object-fit: cover;
    border-radius: 4px;
    display: inline-block;
    vertical-align: middle;
}

.mb-name {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 9px;
    font-weight: 800;
    color: #fff;
    text-align: center;
    line-height: 1.2
}

/* SEARCH BAR */
.mob-search-bar {
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    padding: 12px 16px;
    display: flex;
    gap: 8px;
    align-items: center;
    position: sticky;
    top: 54px;
    z-index: 90;
    box-shadow: 0 2px 8px rgba(26, 35, 64, .04)
}

.mob-search-input {
    flex: 1;
    border: 1.5px solid var(--border2);
    border-radius: 9px;
    padding: 9px 14px;
    font-family: inherit;
    font-size: 13px;
    background: var(--bg);
    color: var(--text);
    outline: none
}

.mob-search-input:focus {
    border-color: var(--blue)
}

.mob-filter-btn {
    width: 40px;
    height: 40px;
    border-radius: 9px;
    border: 1.5px solid var(--border2);
    background: var(--surface);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    cursor: pointer;
    flex-shrink: 0
}

/* QUICK STATS */
.mob-quick-stats {
    display: flex;
    margin: 12px 16px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
    box-shadow: var(--shadow)
}

.mob-qs {
    flex: 1;
    padding: 10px 8px;
    text-align: center;
    border-right: 1px solid var(--border)
}

.mob-qs:last-child {
    border-right: none
}

.mob-qs-val {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 16px;
    font-weight: 900;
    color: var(--blue)
}

.mob-qs-lbl {
    font-size: 10px;
    color: var(--muted);
    margin-top: 2px
}

/* UPCOMING */
.mob-upcoming {
    padding: 0 16px 4px
}

.mob-up-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px
}

.mob-up-title {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 15px;
    font-weight: 900;
    color: var(--text)
}

.mob-up-title span {
    background: linear-gradient(90deg, var(--blue), var(--teal));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text
}

.mob-up-more {
    font-size: 12px;
    font-weight: 700;
    color: var(--blue);
    background: none;
    border: none;
    padding: 0;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none
}

.mob-up-more:disabled,
.mob-up-more.is-active {
    opacity: .65;
    cursor: default;
    color: var(--mu)
}

.mob-up-list-wrap {
    position: relative;
    min-height: 88px;
}

.mob-up-loading {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 4;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(240, 244, 251, .85);
    backdrop-filter: blur(2px);
    border-radius: 10px;
    color: var(--mu);
    font-size: 12px;
    font-weight: 700;
}

.mob-up-list-wrap.is-loading .mob-up-loading {
    display: flex;
}

.mob-up-list-wrap.is-loading .mob-up-list {
    pointer-events: none;
    user-select: none;
}

.mob-up-spin {
    width: 30px;
    height: 30px;
    border: 3px solid #dbe4ff;
    border-top-color: var(--blue);
    border-radius: 50%;
    animation: mobUpSpin .7s linear infinite;
}

@keyframes mobUpSpin {
    to {
        transform: rotate(360deg);
    }
}

.mob-up-list {
    display: flex;
    flex-direction: column;
    gap: 8px
}

.mob-up-row {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 8px 12px;
    display: flex;
    align-items: stretch;
    gap: 7px;
    box-shadow: var(--shadow);
    cursor: pointer;
    transition: background .12s, border-color .12s
}

.mob-up-row.js-upcoming-row:active {
    background: #f0f4ff;
    border-color: #c8d8ff
}

.mob-up-date {
    text-align: center;
    flex-shrink: 0;
    width: 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-self: stretch
}

.mob-up-day {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 16px;
    font-weight: 900;
    color: var(--blue);
    line-height: 1
}

.mob-up-mon {
    font-size: 9.5px;
    color: var(--muted);
    font-weight: 700;
    margin-top: 2px;
    letter-spacing: .04em
}

.mob-up-divider {
    width: 1px;
    align-self: stretch;
    background: var(--border2);
    flex-shrink: 0
}

.mob-up-info,
.mob-up-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px
}

.mob-up-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px
}

.mob-up-head-text {
    flex: 1;
    min-width: 0
}

.mob-up-name {
    font-size: 11px;
    font-weight: 600;
    color: var(--text);
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-transform: none
}

.mob-up-sub {
    font-size: 9.5px;
    color: var(--muted);
    margin-top: 1px;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word
}

.mob-up-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0
}

.mob-up-price {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 12.5px;
    font-weight: 800;
    color: var(--orange);
    white-space: nowrap;
    line-height: 1.15;
    text-align: right;
    flex-shrink: 0;
    padding-top: 1px
}

.mob-up-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    min-width: 0
}

.mob-up-row .upt-status {
    display: inline-flex;
    flex-shrink: 0
}

.mob-up-row .upt-status span {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 99px;
    font-size: 9.5px;
    font-weight: 700;
    white-space: nowrap;
    line-height: 1.3
}

.mob-up-ppoint {
    display: inline-flex;
    flex-shrink: 0;
    margin-left: auto;
    margin-right: 4px;
}

.mob-up-ppoint .pp-badge {
    font-size: 9.5px;
    padding: 2px 7px;
}

.mob-seat-row {
    display: flex;
    align-items: center;
    gap: 5px;
    width: auto;
    margin-left: auto;
    flex-shrink: 0
}

.mob-seat-row.upt-seats-action {
    cursor: pointer;
}

.mob-seat-row.upt-seats-action:hover {
    filter: brightness(1.04);
}

.mob-seat-row.upt-seats-action:focus-visible {
    outline: 2px solid rgba(59, 130, 246, .55);
    outline-offset: 2px;
    border-radius: 6px;
}

.mob-seat-cube {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 28px;
    border-radius: 4px;
    padding: 2px 6px 1px;
    flex-shrink: 0;
    border: 1px solid rgba(0, 0, 0, .08)
}

.mob-seat-num {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 11px;
    font-weight: 900;
    color: #fff;
    line-height: 1
}

.mob-seat-lbl {
    font-size: 7px;
    font-weight: 700;
    color: rgba(255, 255, 255, .95);
    line-height: 1;
    margin-top: 1px;
    letter-spacing: .02em;
    text-transform: lowercase
}

.mob-seat-chot {
    background: linear-gradient(90deg, #16a34a, #22c55e)
}

.mob-seat-pend {
    background: linear-gradient(90deg, #ca8a04, #facc15)
}

.mob-seat-con {
    background: linear-gradient(90deg, #c2410c, #f97316)
}

.mob-seat-total {
    font-size: 9.5px;
    font-weight: 700;
    color: var(--muted);
    white-space: nowrap;
    padding-left: 2px
}

.msb {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    border-radius: 4px;
    font-family: 'Lexend Deca', sans-serif;
    font-size: 10px;
    font-weight: 800;
    padding: 0 3px
}

.msb-c {
    background: #16a34a;
    color: #fff
}

.msb-p {
    background: #d97706;
    color: #fff
}

.msb-r {
    background: #dc2626;
    color: #fff
}

.mob-up-total {
    font-size: 9.5px;
    font-weight: 700;
    color: var(--muted);
    white-space: nowrap;
    padding-left: 1px
}

.mob-up-badge {
    font-size: 9.5px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px
}

.ub-con {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0
}

.ub-sap {
    background: #fff7ed;
    color: #c2410c;
    border: 1px solid #fdba74
}

.ub-full {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca
}

/* DIVIDER */
.mob-divider {
    height: 2px;
    background: linear-gradient(90deg, var(--blue), var(--teal), var(--pink));
    margin: 14px 16px;
    border-radius: 99px;
    opacity: .18
}

/* TOUR SECTIONS */
.mob-sec {
    margin-bottom: 4px
}

.mob-sec-hd {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 16px;
    background: var(--surface);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    user-select: none;
    position: sticky;
    top: 54px;
    z-index: 50
}

.mob-sec-emoji {
    font-size: 18px;
    flex-shrink: 0
}

.mob-sec-name {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    flex: 1
}

.mob-sec-name .tg-group-badge {
    font-size: inherit;
    font-weight: inherit;
}

.mob-sec-count {
    font-size: 11px;
    font-weight: 700;
    color: var(--blue);
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 99px;
    padding: 2px 9px;
    flex-shrink: 0
}

.mob-sec-arrow {
    font-size: 11px;
    color: var(--muted2);
    transition: transform .22s;
    flex-shrink: 0
}

.mob-sec.collapsed .mob-sec-arrow {
    transform: rotate(-90deg)
}

.mob-sec.collapsed .mob-sec-body {
    display: none
}

/* ROUTE */
.mob-route {
    background: var(--surface);
    margin: 8px 12px;
    border-radius: 10px;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    overflow: hidden
}

.mob-route-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 14px;
    background: linear-gradient(90deg, #f8faff, #fff);
    border-bottom: 1px solid var(--border)
}

.mob-route-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--blue);
    flex: 1;
    cursor: pointer;
    user-select: none
}

.mob-route-hd-acts {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0
}

.mob-route-filter-btn {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: rgba(26, 86, 255, .08);
    border: 1px solid rgba(26, 86, 255, .2);
    color: var(--blue);
    font-size: 13px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center
}

.mob-route-filter-btn.act {
    background: var(--blue);
    color: #fff
}

.mob-route-arrow {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: rgba(26, 86, 255, .06);
    border: 1px solid rgba(26, 86, 255, .12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: var(--blue);
    cursor: pointer;
    transition: transform .22s;
    user-select: none;
    flex-shrink: 0
}

.mob-route.r-collapsed .mob-route-arrow {
    transform: rotate(-90deg)
}

.mob-route.r-collapsed .mob-route-body {
    display: none
}

.mob-route-body {
    display: block
}

/* CARD */
.mob-card {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border)
}

.mob-card.js-tour-item .mact-btn,
.mob-card.js-tour-item .mdc,
.mob-card.js-tour-item .mcal-nav-btn {
    cursor: pointer;
}

.mob-card:last-child {
    border-bottom: none
}

.mcard-tour {
    margin-bottom: 8px;
}

.mcard-line-name {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.45;
    margin-bottom: 5px;
}

.mcard-line-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    font-size: 11px;
    line-height: 1.4;
    margin-bottom: 5px;
}

.mcard-line-price {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 14px;
    color: var(--orange);
    font-weight: 700;
    margin-bottom: 8px;
    line-height: 1.2;
}

.mcard-line-price strong {
    color: var(--orange);
    font-weight: 900;
}

.mlbl {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 4px
}

.lbl-fl {
    background: linear-gradient(145deg, #bf5520, #7a2500);
    color: #fff
}

.lbl-ns {
    background: #1c4f96;
    color: #fff
}

.lbl-lt {
    background: #961c4f;
    color: #fff
}

.lbl-fc {
    background: #0d7060;
    color: #fff
}

.lbl-vip {
    background: linear-gradient(135deg, #7a5010, #4a3008);
    color: #fde68a
}

.lbl-fam {
    background: #2d6b1c;
    color: #fff
}

.lbl-sem {
    background: #491b94;
    color: #fff
}

.mcard-price {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 8px
}

.mcard-price strong {
    color: var(--orange);
    font-weight: 800;
    font-size: 13px
}

/* CALENDAR */
.mcard-calendar {
    margin-bottom: 0;
}

.mcal-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 9px;
    gap: 6px
}

.mcal-nav-pill {
    display: flex;
    align-items: center;
    background: #f0f4fb;
    border: 1.5px solid var(--border2);
    border-radius: 99px;
    overflow: hidden;
}

.mcal-nav-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 26px;
    border: none;
    background: transparent;
    color: var(--blue);
    font-size: 15px;
    font-weight: 900;
    cursor: pointer;
    transition: background .13s;
    line-height: 1
}

.mcal-nav-btn:hover:not(:disabled) {
    background: var(--blue);
    color: #fff
}

.mcal-nav-btn:disabled {
    opacity: .3;
    cursor: default;
    pointer-events: none
}

.mcal-nav-sep {
    width: 1px;
    background: var(--border2);
    align-self: stretch
}

.mcal-nav-lbl {
    font-size: 11px;
    font-weight: 800;
    color: var(--text);
    padding: 0 10px;
    white-space: nowrap;
    min-width: 90px;
    text-align: center
}

.mcal-pages {
    display: flex;
    flex-direction: column;
    gap: 5px
}

.mcal-grp {
    display: none;
    flex-direction: column;
    gap: 5px
}

.mcal-grp.show {
    display: flex
}

.mcard-month {
    display: flex;
    align-items: flex-start;
    flex-wrap: nowrap;
}

.mmonth-lbl {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--muted);
    white-space: nowrap;
    width: 112px;
    flex-shrink: 0;
    padding-top: 3px
}

.mmonth-chips {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    flex: 1;
    min-width: 0;
    margin-bottom: 4px;
}

.mdc {
    width: 26px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    background: #f0f4fb;
    border: 1px solid var(--border2);
    color: var(--text);
    cursor: pointer;
    transition: background .1s
}

.mdc:active {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff
}

.mdc.mdc-con {
    background: #f0fdf4;
    border-color: #86efac;
    color: #16a34a;
}

.mdc.mdc-sap {
    background: #fefce8;
    border-color: #fde047;
    color: #ca8a04;
}

.mdc.mdc-it {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #dc2626;
    font-weight: 800;
}

.mdc.mdc-past {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #94a3b8;
    opacity: .85;
    cursor: default;
}

.mdc.mdc-past:active {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #94a3b8;
}

.mdc.js-group-schedule-day:focus-visible {
    outline: 2px solid var(--blue);
    outline-offset: 1px;
}

/* CARD ACTIONS – 3 nút 1 hàng */
.mcard-acts {
    display: flex;
    gap: 6px;
    margin-top: 10px;
}

.mact-btn {
    flex: 1;
    padding: 8px 4px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    border: 1.5px solid var(--border2);
    background: var(--surface);
    color: var(--muted);
    transition: all .13s;
    text-align: center;
    white-space: nowrap
}

.mact-btn:active {
    background: var(--bg)
}

.mact-share {
    background: #f0fdf4;
    border-color: #bbf7d0;
    color: #15803d
}

.mact-share:active {
    background: #dcfce7
}

.mact-consult {
    background: linear-gradient(135deg, var(--blue), #1340d4);
    color: #fff;
    border: none;
    box-shadow: 0 3px 10px rgba(26, 86, 255, .25)
}

.mact-consult:active {
    opacity: .9
}

/* FOOTER */
.mob-footer {
    background: #0d1829;
    padding: 24px 16px;
    margin-top: 16px
}

.mob-footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 16px
}

.mob-feat {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 10px;
    padding: 14px 12px;
    text-align: center
}

.mob-feat-icon {
    font-size: 20px;
    margin-bottom: 6px
}

.mob-feat-name {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 3px
}

.mob-feat-desc {
    font-size: 11px;
    color: rgba(255, 255, 255, .42);
    line-height: 1.5
}

.mob-footer-copy {
    font-size: 11px;
    color: rgba(255, 255, 255, .35);
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding-top: 14px
}

.mob-footer-copy span {
    color: var(--gold)
}

/* BOTTOM NAV */
.mob-bottomnav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--surface);
    border-top: 1px solid var(--border);
    display: flex;
    box-shadow: 0 -4px 16px rgba(26, 35, 64, .08);
    padding-bottom: env(safe-area-inset-bottom)
}

.mob-bn-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 8px 4px 6px;
    cursor: pointer;
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
    gap: 3px;
    text-decoration: none;
    transition: color .13s
}

.mob-bn-item.active {
    color: var(--blue)
}

.mob-bn-icon {
    font-size: 20px;
    line-height: 1
}

.mob-bn-item.spam-nav {
    color: var(--pink)
}

.mob-bn-spacer {
    height: 70px
}

/* ROUTE FILTER BOTTOM SHEET */
.mob-rfo {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 300;
    background: rgba(10, 16, 36, .5);
    backdrop-filter: blur(2px)
}

.mob-rfo.open {
    display: block
}

.mob-rfp {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--surface);
    border-radius: 16px 16px 0 0;
    padding: 16px 18px 32px;
    transform: translateY(110%);
    transition: transform .26s cubic-bezier(.4, 0, .2, 1);
    z-index: 301;
    max-height: 80vh;
    overflow-y: auto
}

.mob-rfo.open .mob-rfp {
    transform: translateY(0)
}

.mob-rfp-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px
}

.mob-rfp-title {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 15px;
    font-weight: 900;
    color: var(--text)
}

.mob-rfp-close {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center
}

.mob-rfp-lbl {
    font-size: 11px;
    font-weight: 700;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 6px;
    margin-top: 12px
}

.mob-rfp-sel {
    width: 100%;
    appearance: none;
    background: var(--bg);
    border: 1.5px solid var(--border2);
    border-radius: 9px;
    padding: 9px 13px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--text)
}

.mob-rfp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px
}

.mob-rfp-chip {
    padding: 8px 12px;
    border-radius: 8px;
    border: 1.5px solid var(--border2);
    background: var(--bg);
    font-size: 12px;
    font-weight: 700;
    color: var(--muted);
    cursor: pointer;
    text-align: center;
    transition: all .13s
}

.mob-rfp-chip.active {
    background: var(--blue);
    border-color: var(--blue);
    color: #fff
}

.mob-rfp-apply {
    width: 100%;
    margin-top: 16px;
    padding: 12px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--blue), #1340d4);
    color: #fff;
    border: none;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 3px 12px rgba(26, 86, 255, .3)
}

/* NM PANEL */
.nm-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 500;
    background: rgba(10, 16, 36, .55);
    backdrop-filter: blur(3px)
}

.nm-overlay.open {
    display: block
}

.nm-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(420px, 100vw);
    background: var(--bg);
    box-shadow: -8px 0 40px rgba(10, 16, 36, .2);
    display: flex;
    flex-direction: column;
    z-index: 501;
    transform: translateX(110%);
    transition: transform .28s cubic-bezier(.4, 0, .2, 1)
}

.nm-overlay.open .nm-panel {
    transform: translateX(0)
}

.nm-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 18px 12px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0
}

.nm-title {
    font-family: 'Lexend Deca', sans-serif;
    font-size: 15px;
    font-weight: 900;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 7px
}

.nm-close {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center
}

.nm-toolbar {
    padding: 10px 18px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    flex-shrink: 0
}

.nm-add-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    background: linear-gradient(135deg, var(--blue), #1340d4);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 7px 14px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(26, 86, 255, .28)
}

.nm-fsel {
    appearance: none;
    background: var(--bg);
    border: 1.5px solid var(--border2);
    border-radius: 7px;
    padding: 6px 10px;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text);
    cursor: pointer;
    flex: 1;
    min-width: calc(50% - 4px)
}

.nm-search {
    border: 1.5px solid var(--border2);
    border-radius: 7px;
    padding: 7px 12px;
    font-family: inherit;
    font-size: 12px;
    background: var(--bg);
    color: var(--text);
    width: 100%
}

.nm-search:focus {
    outline: none;
    border-color: var(--blue)
}

.nm-stats {
    display: flex;
    gap: 6px;
    width: 100%
}

.nm-stat {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 10.5px;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 6px;
    flex: 1;
    justify-content: center
}

.nms-t {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe
}

.nms-a {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0
}

.nms-p {
    background: #fffbeb;
    color: #b45309;
    border: 1px solid #fde68a
}

.nm-body {
    flex: 1;
    overflow-y: auto;
    padding: 12px 16px
}

.nm-list {
    display: flex;
    flex-direction: column;
    gap: 9px
}

.nm-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 14px;
    box-shadow: var(--shadow);
    position: relative;
    overflow: hidden
}

.nm-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 3px
}

.nm-card.sa::before {
    background: var(--green)
}

.nm-card.sp::before {
    background: var(--gold)
}

.nm-card.se::before {
    background: var(--muted2)
}

.nm-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 7px
}

.nm-card-title {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text);
    line-height: 1.4;
    flex: 1
}

.nm-card-badges {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    flex-shrink: 0
}

.nmbg {
    font-size: 9.5px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 5px
}

.nmbg-a {
    background: #dcfce7;
    color: #15803d;
    border: 1px solid #86efac
}

.nmbg-p {
    background: #fef9c3;
    color: #854d0e;
    border: 1px solid #fde047
}

.nmbg-e {
    background: #f4f4f5;
    color: #71717a;
    border: 1px solid #d4d4d8
}

.nmbg-fl {
    background: linear-gradient(145deg, #bf5520, #7a2500);
    color: #fff
}

.nmbg-ns {
    background: #1c4f96;
    color: #fff
}

.nmbg-lt {
    background: #961c4f;
    color: #fff
}

.nmbg-fc {
    background: #0d7060;
    color: #fff
}

.nm-card-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 10.5px;
    color: var(--muted);
    margin-bottom: 7px
}

.nm-card-desc {
    font-size: 11.5px;
    color: var(--muted);
    line-height: 1.6;
    border-top: 1px solid var(--border);
    padding-top: 7px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden
}

.nm-card-acts {
    display: flex;
    gap: 5px;
    margin-top: 9px;
    flex-wrap: wrap
}

.nm-ab {
    font-size: 11px;
    font-weight: 700;
    padding: 5px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 3px
}

.nm-ab-ed {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe
}

.nm-ab-sh {
    background: #f0fdf4;
    color: #15803d;
    border: 1px solid #bbf7d0
}

.nm-ab-dl {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca
}

.nm-ab-pb {
    background: linear-gradient(135deg, #e8185a, #f05a28);
    color: #fff;
    border: none
}

.nm-empty {
    text-align: center;
    padding: 40px 20px;
    color: var(--muted);
    font-size: 13px
}

.nm-empty-icon {
    font-size: 36px;
    margin-bottom: 10px
}

/* ROUTE HEADER IMAGE */
.mob-route-hd {
    display: flex;
    align-items: stretch;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    overflow: hidden;
    min-height: 54px;
}

.mob-route-hd-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    flex: 1;
    min-width: 0;
    gap: 8px;
}

.mob-route-title {
    font-size: 12.5px;
    font-weight: 800;
    color: var(--blue);
    flex: 1;
    min-width: 0;
    cursor: pointer;
    user-select: none;
    line-height: 1.3
}


.mob-route-hd-acts {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0
}

.mob-route-filter-btn {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: rgba(26, 86, 255, .08);
    border: 1px solid rgba(26, 86, 255, .2);
    color: var(--blue);
    font-size: 13px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center
}

.mob-route-filter-btn.act {
    background: var(--blue);
    color: #fff
}

.mob-route-arrow {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: rgba(26, 86, 255, .06);
    border: 1px solid rgba(26, 86, 255, .12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: var(--blue);
    cursor: pointer;
    transition: transform .22s;
    user-select: none;
    flex-shrink: 0
}

.mob-route.r-collapsed .mob-route-arrow {
    transform: rotate(-90deg)
}

.mob-route.r-collapsed .mob-route-body {
    display: none
}

/* ── Select2 trong bộ lọc hero mobile ── */
.mob-hf-row .select2-container {
    flex: 1;
    min-width: 0;
    width: 100% !important;
}

.mob-hero-filter .select2-container .select2-selection--single {
    height: 34px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 8px;
    outline: none;
}

.mob-hero-filter .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 32px;
    padding-left: 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, .85);
}

.mob-hero-filter .select2-container .select2-selection--single .select2-selection__arrow {
    height: 32px;
}

.mob-hero-filter .select2-dropdown {
    font-size: 11.5px;
}

.mob-search-page .mob-search-result-count {
    font-size: 11px;
    font-weight: 700;
    color: var(--muted);
}

/* ── Trang /tour-search mobile: theme sáng (không dùng style hero tối) ── */
.mob-search-page {
    background: var(--bg);
    padding-bottom: 20px;
}

.mob-search-page-hd {
    padding: 12px 16px 14px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}

.mob-search-page-title {
    margin: 0;
    font-family: 'Lexend Deca', sans-serif;
    font-size: 18px;
    font-weight: 900;
    color: var(--text);
    line-height: 1.25;
}

.mob-search-page-title span {
    background: linear-gradient(90deg, var(--blue), var(--teal));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.mob-search-page .mob-hero-filter.mob-search-filter {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: var(--shadow);
    margin: 12px 16px 14px;
    overflow: visible;
}

.mob-search-page .mob-hf-toggle {
    padding: 11px 14px;
    border-bottom: 1px solid var(--border);
}

.mob-search-page .mob-hf-label {
    color: var(--text);
    font-size: 12.5px;
}

.mob-search-page .mob-hf-caret {
    color: var(--muted);
}

.mob-search-page .mob-hf-body {
    padding: 14px;
}

.mob-search-page #mobHsSearchForm {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mob-search-page .mob-hf-row {
    gap: 10px;
}

.mob-search-page .mob-hf-row-search-status {
    grid-template-columns: minmax(0, 1fr) minmax(118px, 38%);
    align-items: stretch;
}

.mob-search-page .mob-hf-row-search-status .mob-hf-search {
    width: 100%;
    min-width: 0;
}

.mob-search-page .mob-hf-row-full {
    grid-template-columns: 1fr;
}

.mob-search-page .mob-hf-row-full .mob-hf-sel,
.mob-search-page .mob-hf-row-full .select2-container {
    width: 100% !important;
}

.mob-search-page .mob-hf-sel {
    background: #f5f7fd;
    border: 1px solid var(--border2);
    color: var(--text);
    min-height: 36px;
    padding: 9px 10px;
}

.mob-search-page .mob-hf-sel option {
    background: #fff;
    color: var(--text);
}

.mob-search-page .mob-hf-search {
    background: #f5f7fd;
    border: 1px solid var(--border2);
    color: var(--text);
    min-height: 36px;
    padding: 9px 12px;
}

.mob-search-page .mob-hf-search::placeholder {
    color: var(--muted2);
}

.mob-search-page .mob-hf-search:focus {
    outline: none;
    border-color: var(--blue);
    background: #fff;
}

.mob-search-page .mob-hf-apply {
    margin-top: 2px;
    min-height: 40px;
}

.mob-search-page .mob-hf-row .select2-container {
    width: 100% !important;
    min-width: 0;
}

.mob-search-page .mob-hero-filter .select2-container .select2-selection--single {
    height: 36px;
    background: #f5f7fd;
    border: 1px solid var(--border2);
    border-radius: 8px;
}

.mob-search-page .mob-hero-filter .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 34px;
    padding-left: 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text);
}

.mob-search-page .mob-hero-filter .select2-container .select2-selection--single .select2-selection__arrow {
    height: 34px;
}

.mob-search-page .mob-hero-filter .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: var(--muted2);
}

.mob-search-page .select2-dropdown {
    border-color: var(--border2);
    font-size: 11.5px;
}

.mob-search-page .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--blue);
}

.mob-search-page .mob-upcoming {
    padding: 0 16px 4px;
}

.mob-search-page .mob-search-results-hd {
    justify-content: flex-end;
    margin-bottom: 8px;
}

.mob-search-pagination {
    padding: 12px 10px 20px;
}

.mob-search-pagination .pag {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}

.mob-search-pagination .pg-btn {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    border: 1.5px solid var(--border2);
    background: var(--surface);
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-sizing: border-box;
}

.mob-search-pagination .pg-btn.active {
    background: #0ea5e9;
    border-color: #0ea5e9;
    color: #fff;
}

.mob-search-pagination .pg-btn-disabled {
    opacity: .4;
    pointer-events: none;
}

/* Schedule detail modal — mobile bottom sheet */
@media (max-width: 767px) {
    .home-sched-detail-ov {
        align-items: flex-end;
        padding: 0;
        background: rgba(10, 18, 40, .55);
    }

    .home-sched-detail-modal {
        width: 100%;
        max-height: 92vh;
        border-radius: 16px 16px 0 0;
        transform: translateY(100%);
    }

    .home-sched-detail-ov.open .home-sched-detail-modal {
        transform: translateY(0);
    }

    .home-sched-detail-hd {
        background: #eef2f8;
        padding: 10px 15px 9px;
    }

    .home-sched-detail-title {
        color: #3a4a64;
    }

    .home-sched-detail-body {
        padding: 11px 11px 14px;
    }

    .hsd-page {
        gap: 9px;
    }

    .hsd-page-hd {
        padding: 2px 2px 0;
    }

    .hsd-page-title {
        font-size: 16px;
    }

    .hsd-meta-card {
        border-radius: 11px;
    }

    .hsd-mg-cell .tg-group-badge {
        white-space: normal;
        word-break: break-word;
        max-width: 100%;
        border-radius: 8px;
        line-height: 1.35;
        font-size: 11px;
        font-weight: 600;
    }

    .hsd-mg-cell .hsd-mg-val {
        font-size: 11.5px;
        line-height: 1.35;
        white-space: normal;
        word-break: break-word;
    }

    .hsd-meta-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .hsd-mg-cell {
        padding: 9px 12px;
        border-right: 1px solid #e6e9ef;
        border-bottom: 1px solid #e6e9ef;
    }

    .hsd-mg-cell:nth-child(2n) {
        border-right: none;
    }

    .hsd-mg-cell.full {
        grid-column: 1 / -1;
        border-right: none;
    }

    .hsd-mg-cell.full.last,
    .hsd-mg-cell:last-child {
        border-bottom: none;
    }

    .hsd-card-hd-title {
        font-size: 10.5px;
        color: #4a5870;
    }

    .hsd-dep-date-col {
        border-right: 1px solid #e6e9ef;
    }

    .hsd-dep-date {
        min-width: 64px;
        padding: 13px 12px;
        background: linear-gradient(160deg, #eef3fb, #e2eaf8);
    }

    .hsd-dep-day {
        font-size: 24px;
        color: #3a6bc4;
    }

    .hsd-dep-mo {
        font-size: 9.5px;
        color: #6a84b0;
    }

    .hsd-dep-yr {
        font-size: 8.5px;
        color: #a0b0d0;
    }

    .hsd-dn-btn {
        padding: 5px 2px;
        font-size: 8.5px;
    }

    .hsd-dep-info {
        padding: 10px 12px;
    }

    .hsd-dep-route {
        font-size: 11.5px;
        margin-bottom: 5px;
    }

    .hsd-dep-tag-air {
        font-size: 9.5px;
        background: #eef3fb;
        color: #3a6bc4;
        border-color: #c8d8f0;
    }

    .hsd-dep-price-bar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 7px 12px;
        background: #faf8f4;
        border-top: 1px solid #ede8d8;
    }

    .hsd-dep-from {
        font-size: 9px;
        color: #8a96aa;
        margin-bottom: 1px;
    }

    .hsd-dep-price-bar .hsd-dep-price {
        font-size: 17px;
    }

    .hsd-seat-pill {
        display: inline-block;
        margin-top: 3px;
        padding: 2px 9px;
        border-radius: 99px;
        font-size: 10px;
        font-weight: 600;
    }

    .hsd-seat-wrap {
        padding: 7px 12px;
        gap: 6px;
    }

    .hsd-seat-bar {
        min-width: 80px;
        max-width: none;
        height: 16px;
    }

    .seat-bar-seg {
        min-width: 18px;
    }

    .hsd-quick-actions {
        padding: 13px 12px;
    }

    .hsd-qa-inner {
        width: 90%;
        min-width: 0;
        gap: 8px;
    }

    .hsd-qa-btn {
        padding: 13px 6px 10px;
        font-size: 10.5px;
        gap: 6px;
        border-radius: 10px;
    }

    .hsd-qa-btn:hover {
        transform: none;
    }

    .hsd-qa-btn:active {
        transform: scale(.96);
    }

    .hsd-qa-icobox {
        width: 34px;
        height: 34px;
        border-radius: 9px;
        font-size: 16px;
    }

    .hsd-book-actions {
        padding: 13px 12px;
    }

    .hsd-ba-inner {
        width: 92%;
        min-width: 0;
        gap: 9px;
    }

    .hsd-ba-inner--single {
        grid-template-columns: 1fr;
        width: auto;
        max-width: 280px;
        margin: 0 auto;
    }

    .hsd-btn-giucho,
    .hsd-btn-booking {
        padding: 16px 10px 12px;
        border-radius: 12px;
        gap: 7px;
    }

    .hsd-btn-giucho:hover,
    .hsd-btn-booking:hover {
        transform: none;
    }

    .hsd-btn-giucho:active,
    .hsd-btn-booking:active {
        transform: scale(.97);
    }

    .hsd-bgc-icobox {
        width: 38px;
        height: 38px;
        border-radius: 10px;
        font-size: 18px;
    }

    .hsd-bgc-main {
        font-size: 11.5px;
        text-align: center;
    }

    .hsd-bgc-sub {
        font-size: 9px;
        text-align: center;
    }

    .hsd-bgc-arr {
        top: 9px;
        right: 11px;
        font-size: 12px;
    }

    .hsd-hs-block {
        border-bottom: none;
    }

    .hsd-hs-main {
        display: flex;
        align-items: stretch;
        background: #fdfbf6;
    }

    .hsd-hs-info {
        flex: 1;
        padding: 9px 12px;
    }

    .hsd-hs-cd-wrap {
        padding: 9px 12px;
        border-left: 1px solid #e6e9ef;
    }

    .hsd-cd-box {
        background: #eef2f8;
        color: #3a4a64;
        border: 1px solid #d4dce8;
        font-size: 13px;
        min-width: 26px;
        padding: 4px 7px;
    }

    .hsd-stat-row {
        display: flex;
        border-top: 1px solid #e6e9ef;
    }

    .hsd-stat-cell {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 9px 8px;
        border-right: 1px solid #e6e9ef;
        cursor: pointer;
        gap: 2px;
        position: relative;
        background: #fff;
    }

    .hsd-stat-cell:last-child {
        border-right: none;
    }

    .hsd-stat-cell:active {
        background: #eef3fb;
    }

    .hsd-stat-cell::after {
        content: '↗';
        position: absolute;
        top: 6px;
        right: 7px;
        font-size: 8.5px;
        color: #b8c0cc;
    }

    .hsd-stat-ico {
        font-size: 14px;
        opacity: .8;
    }

    .hsd-stat-num {
        font-size: 20px;
    }

    .hsd-stat-lbl {
        font-size: 9.5px;
    }

    .hsd-pr.diamond::before {
        background: #5c3898;
    }

    .hsd-pr.silver::before { background: #8a96a8; }
    .hsd-pr.gold::before { background: #9a7018; }
    .hsd-pr.platinum::before { background: #3a6bc4; }

    .hsd-pr.silver .hsd-pr-lbl { color: #6a7690; }
    .hsd-pr.gold .hsd-pr-lbl { color: #9a7018; }
    .hsd-pr.platinum .hsd-pr-lbl { color: #3a6bc4; }
    .hsd-pr.diamond .hsd-pr-lbl { color: #5c3898; }

    .hsd-card-footer {
        padding: 9px 12px;
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .home-sched-detail-ft .hsd-modal-footer {
        justify-content: stretch;
        gap: 8px;
        padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    }

    .home-sched-detail-ft .hsd-modal-footer .hsd-sf-btn {
        flex: 1;
        justify-content: center;
        min-height: 40px;
    }

    .hsd-sf-btn {
        font-size: 11px;
        padding: 6px 11px;
    }

    .hsd-price-list {
        border-bottom: 1px solid #e6e9ef;
    }

    .hsd-pr {
        display: flex;
        align-items: center;
        padding: 9px 13px;
        border-bottom: 1px solid #e6e9ef;
        position: relative;
    }

    .hsd-pr:last-child {
        border-bottom: none;
    }

    .hsd-pr::before {
        content: '';
        position: absolute;
        left: 0;
        top: 0;
        bottom: 0;
        width: 3px;
        border-radius: 0 2px 2px 0;
    }

    .hsd-pr-left {
        flex: 1;
    }

    .hsd-pr-lbl {
        font-size: 9.5px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .05em;
        margin-bottom: 1px;
    }

    .hsd-pr-sub {
        font-size: 9.5px;
        color: #8a96aa;
    }

    .hsd-pr-val {
        font-family: 'Lexend Deca', sans-serif;
        font-size: 14.5px;
        font-weight: 800;
        color: #252e3e;
    }

    .hsd-pp-row {
        display: flex;
        align-items: center;
        gap: 9px;
        padding: 9px 13px;
        background: #f4fbf8;
        border-top: 1px solid #d0ece4;
    }

    .hsd-pp-ico {
        font-size: 17px;
        opacity: .85;
    }

    .hsd-pp-info .hsd-pp-lbl {
        font-size: 9px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .07em;
        color: #228070;
    }

    .hsd-pp-info .hsd-pp-val {
        font-family: 'Lexend Deca', sans-serif;
        font-size: 15px;
        font-weight: 800;
        color: #228070;
        line-height: 1.1;
    }

    .hsd-pp-row .hsd-pp-note {
        margin-left: auto;
        font-size: 9.5px;
        color: #8a96aa;
    }

    .hsd-notes-wrap {
        padding: 10px 12px;
        gap: 6px;
    }

    .hsd-note {
        font-size: 11.5px;
        padding: 8px 11px;
    }

    .hsd-ntag {
        font-size: 9px;
        padding: 1.5px 6px;
    }

    .home-sched-sub-ov {
        align-items: flex-end;
        padding: 0;
    }

    .home-sched-sub-modal {
        width: 100%;
        max-height: 75vh;
        border-radius: 16px 16px 0 0;
    }

    .home-sched-sub-pill {
        display: block;
        width: 34px;
        height: 4px;
        border-radius: 2px;
        background: #d4d9e4;
        margin: 9px auto 0;
    }

    .home-sched-sub-hd {
        background: #fff;
        padding: 10px 15px 9px;
    }

    .home-sched-sub-title {
        font-size: 13px;
        font-weight: 800;
        color: #252e3e;
    }

    .home-sched-sub-close {
        width: 24px;
        height: 24px;
        background: #faf2f2;
        border-color: #e0b8b8;
        color: #a83030;
    }

    .home-sched-sub-body {
        padding: 9px 13px 20px;
    }
}

/* Tour item detail modal — bottom sheet on home */
html.home-ti-detail-open,
body.home-ti-detail-open {
    overflow: hidden !important;
    overscroll-behavior: none;
    touch-action: none;
}

.page-home-mobile .ti-modals-root #detailOv {
    align-items: flex-end;
    justify-content: center;
    padding: 0;
}

.page-home-mobile .ti-modals-root #detailOv .ti-detail-mbox {
    width: 100%;
    max-width: 100%;
    max-height: min(92vh, 900px);
    border-radius: 16px 16px 0 0;
    transform: translateY(100%);
    transition: transform .28s ease;
}

.page-home-mobile .ti-modals-root #detailOv.open .ti-detail-mbox {
    transform: translateY(0);
}

@media (max-width: 767px) {
    .hsd-seat-wrap--action {
        cursor: pointer;
        border-radius: 8px;
        transition: background .12s;
    }

    .hsd-seat-wrap--action:active {
        background: rgba(26, 86, 255, .06);
    }
}

/* ── Homepage custom banner (mobile) ── */
.mob-hero.mob-hero-has-banner {
    background: transparent !important;
    background-image: none !important;
}

.mob-hero-banner-img,
.mob-hero-banner-dim {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.mob-hero-banner-img {
    z-index: 0;
    object-fit: cover !important;
    object-position: center;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
}

.mob-hero-banner-dim {
    z-index: 1;
    background: linear-gradient(
        160deg,
        rgba(8, 15, 30, .78) 0%,
        rgba(12, 20, 40, .62) 55%,
        rgba(15, 23, 42, .72) 100%
    );
}

.mob-hero.mob-hero-has-banner::before,
.mob-hero.mob-hero-has-banner::after {
    display: none !important;
}

.mob-hero.mob-hero-has-banner .mob-hero-content {
    position: relative;
    z-index: 2;
}
