@font-face {
    font-family: 'Barlow Condensed';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/barlow-condensed-700.woff2') format('woff2');
}

@font-face {
    font-family: 'Barlow Condensed';
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url('../fonts/barlow-condensed-800.woff2') format('woff2');
}

@font-face {
    font-family: 'Barlow Condensed';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url('../fonts/barlow-condensed-900.woff2') format('woff2');
}

@font-face {
    font-family: Bungee;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/bungee-400.woff2') format('woff2');
}

@font-face {
    font-family: Manrope;
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/manrope-latin.woff2') format('woff2');
}

@font-face {
    font-family: 'Noto Sans Bengali';
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
    src: url('../fonts/noto-sans-bengali.woff2') format('woff2');
    unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6,
        U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D,
        U+20B9, U+25CC, U+A8F1;
}

/* LinoLife brand system. Keep this final layer shared by the website and portals. */
:root {
    --ink: #111111;
    --muted: #5e6264;
    --lime: #d2fa05;
    --brand-pink: var(--aqua, #fd2e89);
    --brand-pink-soft: color-mix(in srgb, var(--brand-pink) 10%, white);
    --brand-pink-mid: color-mix(in srgb, var(--brand-pink) 23%, white);
    --brand-blue: #33ccff;
    --brand-black: #111111;
    --soft: #f6f7f3;
    --line: #daddd8;
    --brand-display: 'Barlow Condensed', Impact, sans-serif;
    --brand-body: Manrope, 'Noto Sans Bengali', Arial, sans-serif;
}

body {
    font-family: var(--brand-body);
    color: var(--ink);
}

h1, h2, h3, h4, h5, h6,
.portal-head h1, .panel-title h4, .section-head h2,
.plans-heading h1, .market-intro h1 {
    font-family: var(--brand-display);
    font-weight: 800;
    letter-spacing: .005em;
}

.brand-wordmark {
    display: inline-block;
    color: #fff !important;
    font-family: Bungee, Impact, sans-serif;
    font-size: 1.15em;
    line-height: 1;
    letter-spacing: -.07em;
    text-transform: uppercase;
    -webkit-text-stroke: 1.3px var(--brand-black);
    paint-order: stroke fill;
    filter: drop-shadow(3px 4px 0 var(--brand-pink));
}

.portal-side .brand-wordmark,
.footer .brand-wordmark {
    -webkit-text-stroke-color: #fff;
    color: var(--brand-black) !important;
}

.eyebrow, .section-head span, .market-intro span,
.result-tabs span, .footer-kicker {
    color: var(--brand-black);
    font-family: var(--brand-body);
    font-weight: 800;
    letter-spacing: .15em;
}

.btn-primary, .btn-success,
.filter-submit, .setup-tabs .nav-link.active,
.settings-tabs .nav-link.active, .report-type-tabs a.active {
    background: var(--aqua);
    border-color: var(--aqua);
    color: var(--brand-on-primary, var(--brand-black));
}

.btn-primary:hover, .btn-primary:focus,
.btn-success:hover, .btn-success:focus,
.filter-submit:hover {
    background: var(--brand-black);
    border-color: var(--brand-black);
    color: #fff;
}

.btn-outline-primary {
    color: var(--brand-black);
    border-color: var(--brand-black);
}

.btn-outline-primary:hover, .btn-outline-primary:focus {
    background: var(--brand-black);
    border-color: var(--brand-black);
    color: #fff;
}

.btn-dark, .btn-outline-dark,
.btn-light, .btn-outline-light {
    font-family: var(--brand-body);
}

a { accent-color: var(--brand-pink); }
a:hover { color: var(--brand-pink); }
::selection { color: var(--brand-black); background: var(--lime); }
:focus-visible { outline: 2px solid var(--brand-pink); outline-offset: 2px; }
.form-control:focus, .form-select:focus {
    border-color: var(--brand-pink);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--brand-pink) 18%, transparent);
}

.form-check-input:checked {
    background-color: var(--brand-pink);
    border-color: var(--brand-pink);
}

.brand-color-control { display: flex; align-items: stretch; gap: 10px; }
.brand-color-control input[type="color"] { flex: 0 0 52px; width: 52px; min-height: 46px; padding: 3px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; }
.brand-color-control .form-control { min-width: 0; }

.site-nav {
    background: rgba(255, 255, 255, .97);
    border-bottom: 2px solid var(--brand-black);
    box-shadow: none;
}

.site-nav-links {
    border-color: var(--brand-black);
    background: #fff;
}

.site-nav .nav-link i,
.site-nav .nav-login-icon { color: var(--brand-pink); }
.site-nav .nav-link.active {
    color: var(--brand-on-primary) !important;
    background: var(--aqua);
    box-shadow: none;
}
.site-nav .nav-link.active i { color: inherit; }
.site-nav .nav-link:hover,
.site-nav .nav-link:focus-visible,
.site-nav .nav-link.active:hover,
.site-nav .nav-link.active:focus-visible {
    color: #fff !important;
    background: var(--brand-black);
    box-shadow: none;
}
.site-nav .nav-link:hover i,
.site-nav .nav-link:focus-visible i { color: var(--aqua); }
.site-nav .nav-login-icon {
    flex: 0 0 34px; line-height: 1;
    color: var(--aqua); background: var(--brand-on-primary);
}
.site-nav .nav-login {
    display: inline-flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 9px;
    min-height: 48px; padding: 5px 14px 5px 5px;
    border: 0; color: var(--brand-on-primary); background: var(--aqua);
    border-radius: 999px; box-shadow: 4px 4px 0 var(--brand-black); transform: none;
    font-size: .84rem; font-weight: 700;
    white-space: nowrap;
}
.site-nav .nav-login > span:last-child { white-space: nowrap; }
.site-nav .nav-login:hover,
.site-nav .nav-login:focus-visible {
    border: 0; color: #fff; background: var(--brand-black);
    box-shadow: 4px 4px 0 var(--brand-black); transform: none;
}
.site-nav .nav-login:focus-visible { outline: 2px solid var(--brand-pink); outline-offset: 2px; }
.site-nav .nav-login:hover .nav-login-icon,
.site-nav .nav-login:focus-visible .nav-login-icon { color: var(--brand-on-primary); background: var(--aqua); }
.site-nav .avatar-btn { background: var(--lime); color: var(--brand-black); border: 1px solid var(--brand-black); }
.site-nav .nav-join { min-height: 48px; box-shadow: 4px 4px 0 var(--brand-black); }
.credit-pill { color: var(--brand-black); background: var(--lime); border: 1px solid var(--brand-black); }

.hero {
    position: relative;
    background: var(--lime);
    border-bottom: 2px solid var(--brand-black);
}

.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .13;
    background: repeating-linear-gradient(132deg, transparent 0 96px, #111 97px 99px, transparent 100px 193px);
}

.hero .container { position: relative; }
.hero h1 {
    max-width: 760px;
    font-family: var(--brand-display);
    font-size: clamp(4.5rem, 9vw, 8.8rem);
    font-weight: 900;
    line-height: .83;
    letter-spacing: -.025em;
    text-transform: uppercase;
}

.hero h1 em {
    color: #fff;
    font-family: inherit;
    font-style: normal;
    -webkit-text-stroke: 2px var(--brand-black);
    text-shadow: 5px 5px 0 var(--brand-pink);
}

.hero .lead { color: var(--brand-black); font-weight: 600; }
.hero .searchbox {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(130px, .4fr) auto;
    align-items: center; gap: 8px; width: 100%; max-width: 700px;
    padding: 8px; border: 0; border-radius: 18px; background: #fff; box-shadow: none;
}
.hero .searchbox > div { min-width: 0; }
.hero .searchbox .hero-search-field {
    display: flex; align-items: center; min-height: 48px; padding: 0 12px;
    border-radius: 11px; background: #fff;
}
.hero .searchbox .hero-search-field > i {
    position: static; flex: 0 0 20px; transform: none;
    color: #59616a; font-size: 1rem; line-height: 1; pointer-events: none;
}
.hero .searchbox .hero-search-field .form-control {
    flex: 1 1 auto; width: 100%; min-width: 0; height: 48px;
    padding: 0 0 0 10px; border: 0 !important; border-radius: 0;
    background: transparent; box-shadow: none !important;
}
.hero .searchbox .hero-search-field .form-control:focus { border: 0 !important; outline: 0; box-shadow: none !important; }
.hero .searchbox .hero-search-field:focus-within > i { color: var(--brand-pink); }
.hero .searchbox .hero-search-city { border-radius: 11px; }
.hero .searchbox .hero-search-city:focus-within { background: var(--brand-pink-soft); }
.hero .searchbox .hero-search-city .form-select,
.hero .searchbox .hero-search-city .form-select:focus {
    display: block; width: 100%; height: 48px; padding: 0 32px 0 12px;
    border: 0 !important; border-radius: 11px; outline: 0; box-shadow: none !important;
    background-color: transparent;
}
.hero .searchbox .hero-search-submit .btn { min-width: 136px; min-height: 48px; }
@media (max-width: 575.98px) {
    .hero .searchbox { grid-template-columns: minmax(0, 1fr) minmax(112px, .7fr); }
    .hero .searchbox .hero-search-query { grid-column: 1 / -1; }
    .hero .searchbox .hero-search-submit .btn { min-width: 0; }
}
.hero-art { padding-left: 3rem; }
.hero-art > img {
    display: block;
    width: min(100%, 440px);
    height: auto;
    margin-inline: auto;
    border: 3px solid var(--brand-black);
    border-radius: 18px;
    box-shadow: 14px 14px 0 var(--brand-pink);
}
.float-card {
    bottom: 55px;
    border: 2px solid var(--brand-black);
    box-shadow: 5px 5px 0 var(--brand-blue);
}
.float-card > i { color: var(--brand-pink); }

.category-card, .venue-card, .result-card,
.plans-showcase .plan-card, .auth-card {
    border-color: var(--brand-black);
    box-shadow: 4px 4px 0 rgba(17, 17, 17, .09);
}
.home-visuals { background: #fff; overflow: hidden; }
.home-visuals-controls { display: flex; gap: .65rem; }
.home-visuals-arrow {
    display: grid; place-items: center; width: 44px; height: 44px;
    border: 2px solid var(--brand-black); border-radius: 50%;
    color: var(--brand-black); background: var(--lime);
}
.home-visuals-arrow:hover { background: var(--brand-pink); }
.home-visuals-track {
    display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory;
    scrollbar-width: thin; padding: 4px 4px 18px;
}
.home-visuals-track.is-auto-scrolling { scroll-snap-type: none; }
.home-visual-card {
    flex: 0 0 clamp(220px, 22vw, 320px); margin: 0; overflow: hidden;
    border: 2px solid var(--brand-black); border-radius: 16px;
    scroll-snap-align: start; background: #f5f5f2;
}
.home-visual-card img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center; background: #fff; }
.home-visual-card figcaption { padding: 12px 16px; font-weight: 800; }
.home-visual-admin-card > img {
    display: block; width: 100%; height: 240px; object-fit: contain;
    background: #f4f4f0; border: 1px solid #d9ddda; border-radius: 12px;
}
.home-visual-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; }
.home-visual-actions .btn { white-space: nowrap; }
.category-card:hover, .venue-card:hover, .result-card:hover {
    border-color: var(--brand-black);
    box-shadow: 7px 7px 0 var(--brand-blue);
}
.category-card > i:first-child, .step,
.plans-heading-note > i, .plan-symbol { background: var(--lime); color: var(--brand-black); }
.category-see-all:hover { background: var(--lime); color: var(--brand-black); }
.how { background: #f5f5f2; color: var(--brand-black); }
.how p { color: var(--muted); }

.market-intro { background: linear-gradient(110deg, var(--brand-blue), #eefaff 80%); }
.market-intro h1 { color: var(--brand-black); }
.market-search { border-bottom: 2px solid var(--brand-black); }
.market-search-top, .results-pane, .map-pane { border-color: var(--brand-black); }
.market-layout { background: #f1f5f5; }
.search-field-icon, .result-tabs em { color: var(--brand-black); background: var(--lime); }
.result-category { color: var(--brand-pink); }

.plans-showcase { background: linear-gradient(145deg, var(--brand-pink-soft), #fff 58%, #eafaff); }
.plan-card-top { background: var(--brand-blue); }
.popular .plan-card-top { color: var(--brand-black); background: var(--lime); }
.popular .plan-symbol { color: var(--brand-black); background: #fff; }
.plans-showcase .plan-card.popular { border: 2px solid var(--brand-black); box-shadow: 8px 8px 0 var(--brand-pink); }
.plans-showcase .plan-card .badge { background: var(--brand-pink); color: var(--brand-on-primary, var(--brand-black)); }
.auth-wrap { background: radial-gradient(circle at 15% 20%, #e5fa83, transparent 35%), radial-gradient(circle at 85% 75%, #a9edff, transparent 32%), #fff; }

.portal-body { background: #f7f7f3; }
.portal-side { background: var(--brand-black); }
.portal-side > small { color: var(--brand-blue); }
.portal-side nav a { color: #e2e2e2; }
.portal-side nav a.active,
.portal-side nav a:hover { background: var(--lime); color: var(--brand-black); font-weight: 800; }
.portal-side nav a.active i,
.portal-side nav a:hover i { color: var(--brand-black); }
.portal-side nav i { color: var(--brand-pink); }
.portal-user { border-top-color: #4b4b4b; }
.portal-user small { color: #c0c0c0; }
.portal-user button { color: var(--brand-blue); }
.portal-user button:hover { color: var(--lime); }
.portal-head .eyebrow { color: var(--brand-pink); }
.metric, .panel { border-color: #cbd0ca; box-shadow: 3px 3px 0 rgba(17, 17, 17, .04); }
.metric i, .setup-icon { background: var(--lime); color: var(--brand-black); }
.metric:nth-child(3n + 2) i { background: var(--brand-blue); }
.metric:nth-child(3n) i { background: var(--brand-pink-mid); }
.panel-title span { background: var(--lime); color: var(--brand-black); }
.settings-tabs .nav-link.active,
.setup-tabs .nav-link.active,
.report-type-tabs a.active { color: var(--brand-black) !important; }
.table thead th, table thead th { color: var(--brand-black); }
.table-hover tbody tr:hover { background: #f7ffdb; }

.footer { background: var(--brand-black); color: #fff; }
.footer-action-card { background: var(--brand-blue); color: var(--brand-black); box-shadow: 8px 8px 0 var(--brand-pink); }
.footer-kicker, .footer-action-card p { color: var(--brand-black); }
.footer-action-buttons .btn-light { border: 2px solid var(--brand-black); background: var(--lime); color: var(--brand-black); }
.footer-text-link { color: var(--brand-black); }
.footer-nav-card { border-color: #505050; }
.footer-nav-icon { color: var(--brand-black); background: var(--lime); }
.footer-nav-card a:hover, .footer-contact:hover,
.footer-developer a:hover { color: var(--lime); }
.footer .socials a { background: var(--brand-pink); color: var(--brand-black); }
.footer .socials a:hover { background: var(--lime); color: var(--brand-black); }
.footer .legal a i { color: var(--brand-blue); }
.footer-credit-line { color: #c3c3c3; }

.mobile-tab-bar, .mobile-header-actions, .mobile-view-switch { display: none; }

@media (max-width: 991.98px) {
    .site-body { padding-bottom: calc(74px + env(safe-area-inset-bottom)); }
    .site-nav { min-height: 64px; padding: 7px 0; }
    .site-nav > .container { flex-wrap: wrap; gap: 8px; }
    .site-nav .navbar-brand { min-width: 0; margin-right: auto; }
    .site-nav .brand-wordmark { font-size: 1.1rem; }
    .mobile-header-actions { display: flex; align-items: center; }
    .mobile-credit-pill, .mobile-header-login {
        display: inline-flex; align-items: center; justify-content: center; gap: 5px;
        min-width: 42px; height: 42px; padding: 0 12px; border-radius: 999px;
        background: var(--lime); border: 1px solid var(--brand-black);
        color: var(--brand-black); text-decoration: none; font-weight: 800;
    }
    .mobile-header-login { background: var(--aqua); color: var(--brand-on-primary); }
    .site-nav .navbar-toggler {
        width: 42px; height: 42px; padding: 8px; border: 1px solid #d9ddda;
        border-radius: 13px; box-shadow: none;
    }
    .site-nav .navbar-collapse {
        flex-basis: 100%; max-height: calc(100dvh - 165px); overflow-y: auto;
        padding: 10px 0 16px; border-top: 1px solid #eceeea;
    }
    .site-nav-links { flex-direction: column; border: 0; border-radius: 16px; background: #f6f7f3; }
    .site-nav .nav-link { min-height: 48px; font-size: .9rem !important; }
    .site-nav-actions { margin: 12px 0 0; flex-wrap: wrap; }
    .site-nav-actions .nav-login { width: auto; }
    .mobile-tab-bar {
        position: fixed; z-index: 1050; inset: auto 0 0; display: flex;
        min-height: calc(70px + env(safe-area-inset-bottom));
        padding: 7px max(8px, env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-right));
        background: rgba(255,255,255,.97); border-top: 1px solid #dfe2dd;
        box-shadow: 0 -10px 30px rgba(17,17,17,.08); backdrop-filter: blur(18px);
    }
    .mobile-tab-bar a {
        display: flex; flex: 1 1 0; min-width: 0; align-items: center; justify-content: center;
        flex-direction: column; gap: 2px; border-radius: 13px;
        color: #626a65; text-decoration: none; font-size: .68rem; font-weight: 800;
    }
    .mobile-tab-bar a i { font-size: 1.25rem; line-height: 1.2; }
    .mobile-tab-bar a.active { color: var(--brand-black); background: var(--lime); }
    .mobile-tab-bar a:focus-visible, .mobile-view-switch button:focus-visible {
        outline: 3px solid var(--brand-pink); outline-offset: 2px;
    }
}

@media (max-width: 900px) {
    .portal-side {
        position: sticky; top: 0; z-index: 1040; gap: 7px;
        padding: 12px 16px 10px; box-shadow: 0 8px 24px rgba(0,0,0,.13);
    }
    .portal-side > small { display: none; }
    .portal-side > .logo { font-size: 1.15rem; }
    .portal-side nav { gap: 6px; margin-inline: -16px; padding: 0 16px 4px; scrollbar-width: none; }
    .portal-side nav a {
        flex: 0 0 auto; margin: 0; padding: 8px 12px; border: 1px solid #3c4544;
        border-radius: 999px; color: #e4e9e8; white-space: nowrap; font-size: .78rem;
    }
    .portal-side nav a.active { background: var(--lime); border-color: var(--lime); color: var(--brand-black); }
    .portal-side nav a i { margin-right: 5px; }
    .portal-user { gap: 8px; margin: 0; padding: 0; border: 0; font-size: .78rem; }
    .portal-user small { display: none; }
    .portal-user form { margin-left: auto; }
    .portal-user button { padding: 3px 0; font-size: .78rem; }
    .portal-main { padding: 20px 16px 40px; }
    .portal-head { flex-wrap: wrap; }
    .portal-head h1 { font-size: 2rem; }
}

@media (max-width: 991.98px) {
    .hero-art { padding: 1rem 1rem 3rem; }
    .hero-art > img { width: min(100%, 440px); }
    .site-nav-links { border-radius: 18px; }
}

@media (max-width: 600px) {
    .home-visual-card { flex-basis: min(78vw, 300px); }
    .hero h1 { font-size: clamp(4rem, 16vw, 6rem); }
    .hero h1 em { -webkit-text-stroke-width: 1px; text-shadow: 3px 3px 0 var(--brand-pink); }
    .hero-art > img { width: min(100%, 360px); }
    .float-card { bottom: 16px; left: 0; }
    .footer-action-card { box-shadow: 5px 5px 0 var(--brand-pink); }
}

.venue-content .home-booking-form {
    flex: 0 1 360px;
    width: 360px;
    max-width: 100%;
}
.booking-policy-consent {
    padding: .55rem .7rem .55rem 2.25rem !important;
    margin-bottom: .5rem !important;
    font-size: .78rem;
    line-height: 1.35;
}
.booking-policy-consent .form-check-input {
    width: .95rem;
    height: .95rem;
    margin-left: -1.5rem;
}

@media (max-width: 767.98px) {
    .venue-content > .row {
        margin-right: 0;
        margin-left: 0;
    }
    .venue-content > .row > * {
        padding-right: 0;
        padding-left: 0;
    }
    .venue-content .session,
    .venue-content .home-booking-form,
    .venue-content .home-service-fields {
        width: 100%;
        min-width: 0 !important;
    }
    .venue-content .home-booking-form { flex-basis: 100%; }
    .venue-content .session .flex-grow-1,
    .venue-content .session .text-end {
        min-width: 0;
        overflow-wrap: anywhere;
    }
    .site-body { background: #f8f9f5; }
    .hero .min-vh-75 { min-height: 0; }
    .hero .row > .col-lg-6:first-child { padding: 28px 14px 8px !important; }
    .hero h1 { max-width: 420px; font-size: clamp(3.45rem, 15vw, 5.6rem); }
    .hero .lead { margin: 18px 0 22px; font-size: .95rem; line-height: 1.55; }
    .hero .searchbox { margin: 0; padding: 8px; gap: 6px; border-radius: 16px; box-shadow: none; }
    .hero .searchbox .hero-search-field .form-control { padding-left: 10px; border: 0 !important; }
    .hero .searchbox button { min-height: 48px; border-radius: 11px; }
    .hero-art { padding: 26px 16px 36px; }
    .hero-art > img { width: min(70%, 260px); max-height: 280px; object-fit: cover; object-position: top; box-shadow: 8px 8px 0 var(--brand-pink); }
    .section { padding: 45px 0; }
    .section-head { align-items: end; gap: 8px; margin-bottom: 20px; }
    .section-head h2, .how h2 { margin-bottom: 0; font-size: clamp(1.8rem, 7vw, 2.5rem); }
    .category-card { min-height: 90px; padding: 11px; gap: 9px; border-radius: 15px; background: #fff; }
    .category-card > i:first-child { padding: 8px; font-size: 1.2rem; }
    .category-card > i:last-child { display: none; }
    .category-card b { font-size: .8rem; line-height: 1.2; }
    .category-card small { margin-top: 3px; font-size: .67rem; }
    .bg-soft .row.g-4 { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 14px; }
    .bg-soft .row.g-4 > div { flex: 0 0 min(80vw, 330px); scroll-snap-align: start; }
    .venue-img { height: 190px; }
    .how { padding: 55px 0; }
    .how .row { gap: 22px !important; margin-inline: 0; }
    .market-intro { padding: 25px 16px 18px; }
    .market-intro h1 { font-size: clamp(2.4rem, 10vw, 3.5rem); line-height: .96; }
    .market-search { padding: 12px 16px; box-shadow: none; }
    .market-search-top { height: auto; padding: 0; border: 0; box-shadow: none; }
    .market-search-top .query-field, .market-search-top .location-field {
        width: 100%; min-width: 0; border: 1px solid #dfe3dc; border-radius: 13px; background: #fff;
    }
    .market-search-top > .btn { width: 100%; margin: 0; }
    .market-filters { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-inline: contain; padding-bottom: 8px; scrollbar-width: none; }
    .market-filters::-webkit-scrollbar { display: none; }
    .market-filters select, .market-filters input, .market-filters button, .market-filters a { flex: 0 0 auto; white-space: nowrap; min-height: 42px; }
    .market-filters select { max-width: 150px; }
    .market-filters a { display: inline-flex; align-items: center; }
    .mobile-view-switch { display: flex; gap: 4px; width: max-content; margin: 12px 16px 0; padding: 4px; border: 1px solid #dfe3dc; border-radius: 999px; background: #fff; }
    .mobile-view-switch button { min-width: 90px; padding: 8px 14px; border: 0; border-radius: 999px; background: transparent; font-weight: 800; }
    .mobile-view-switch button.active { background: var(--brand-black); color: #fff; }
    .market-layout { padding: 12px 16px 20px; background: #f8f9f5; }
    .market-layout .map-pane { display: none; }
    .market-layout.show-mobile-map .results-pane { display: none; }
    .market-layout.show-mobile-map .map-pane { display: block; min-height: min(68dvh, 620px); }
    .market-layout.show-mobile-map .map-pane #venueMap { min-height: min(68dvh, 620px); }
    .results-pane { border-radius: 20px; }
    .result-tabs { padding: 19px 16px 10px; }
    .result-tabs h2 { font-size: 1.9rem; }
    .result-list { gap: 12px; padding: 12px; }
    .result-card img { height: 190px; }
    .dash-head { padding: 24px; border: 2px solid var(--brand-black); background: var(--lime); }
    .dash-head h1 { font-size: 2.5rem; }
    .dash-head .balance { width: 100%; display: flex; align-items: baseline; gap: 7px; padding: 13px 17px; text-align: left; }
    .dash-head .balance b { margin-left: auto; font-size: 2rem; }
    .booking-row { position: relative; gap: 12px; padding: 13px; border-radius: 16px; background: #fff; }
    .booking-row img { width: 72px; height: 72px; }
    .booking-row .flex-grow-1 { min-width: calc(100% - 90px); }
    .booking-row h5 { margin: 4px 0; font-size: 1rem; }
    .booking-row p { font-size: .76rem; }
    .booking-row > b { margin-left: auto; font-size: .8rem; }
    .settings-wrap { padding: 20px 0 40px; }
    .settings-layout { gap: 0; }
    .settings-layout main { padding: 20px 16px; border-radius: 18px; }
    .settings-layout main h1 { font-size: 2.15rem; }
    .plans-showcase { padding: 44px 0 55px; }
    .plans-heading h1 { font-size: clamp(2.8rem, 12vw, 4rem); }
    .footer { padding-bottom: 45px; }
}

/* Shared responsive guards for public, account and portal screens. */
html,
body {
    max-width: 100%;
    overflow-x: clip;
}

img,
svg,
video,
canvas {
    max-width: 100%;
}

.site-body main,
.portal-main,
.panel,
.info-card,
.auth-card,
.settings-layout main,
.row > * {
    min-width: 0;
}

.site-body input,
.site-body select,
.site-body textarea,
.site-body button,
.portal-body input,
.portal-body select,
.portal-body textarea,
.portal-body button {
    max-width: 100%;
}

.cms-rich-content,
.panel,
.info-card,
.booking-row,
.session {
    overflow-wrap: anywhere;
}

.refund-request-modal {
    border: 0;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 28px 80px rgb(15 20 24 / 22%);
}
.refund-request-modal .modal-header,
.refund-request-modal .modal-footer { padding: 20px 24px; }
.refund-request-modal .modal-body { padding: 24px; }
.refund-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border: 1px solid color-mix(in srgb, var(--aqua) 34%, var(--line));
    border-radius: 16px;
    background: color-mix(in srgb, var(--aqua) 9%, white);
}
.refund-summary span { color: var(--muted); }
.refund-summary strong { font-size: 1.2rem; }
.refund-review-details {
    min-width: 220px;
    max-width: 290px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--soft);
    overflow-wrap: anywhere;
}
.refund-review-details > span,
.refund-review-details > strong,
.refund-review-details > small { display: block; }
.refund-review-details > span { margin-bottom: 3px; color: var(--muted); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.refund-review-details > strong { margin-bottom: 10px; }
.refund-review-details > p { margin: 0 0 8px; white-space: pre-line; }
.refund-review-details > small { color: var(--muted); }

.cms-rich-content table,
.table-responsive table {
    margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
    .home-visuals-track { scroll-behavior: auto; }
}

.home-classes { padding: 52px 0; background: #fff; }
.home-classes .section-head { gap: 16px; margin-bottom: 22px; }
.home-classes .section-head > div { min-width: 0; }
.home-classes .section-head h2 { margin: 3px 0 0; line-height: 1.12; }
.home-classes .section-head a { flex: 0 0 auto; white-space: nowrap; }
.home-classes-intro { margin: 5px 0 0; color: #53575b; line-height: 1.45; }
.home-class-filters { display: flex; gap: 10px; overflow-x: auto; padding: 0 0 10px; margin-bottom: 10px; scrollbar-width: thin; }
.home-class-filter { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 10px 17px; border: 1px solid #dce1df; border-radius: 999px; background: #fff; color: var(--brand-black); font-weight: 700; }
.home-class-filter.active, .home-class-filter:hover { border-color: var(--brand-black); background: var(--brand-black); color: #fff; }
.home-class-filter i { color: var(--brand-pink); }
.home-class-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.home-class-card { min-width: 0; border: 1px solid #e1e5e2; border-radius: 20px; overflow: hidden; background: #fff; transition: transform .2s ease, box-shadow .2s ease; }
.home-class-card:hover { transform: translateY(-3px); box-shadow: 7px 7px 0 var(--brand-pink); }
.home-class-card[hidden] { display: none !important; }
.home-class-card > a { display: block; height: 100%; color: inherit; text-decoration: none; }
.home-class-image { position: relative; aspect-ratio: 1.65; background: #f2f3ef; overflow: hidden; }
.home-class-image img { width: 100%; height: 100%; object-fit: cover; }
.home-class-image-meta { position: absolute; inset: auto 12px 12px; display: flex; gap: 7px; flex-wrap: wrap; }
.home-class-image-meta span { padding: 5px 9px; border-radius: 7px; background: rgba(0,0,0,.78); color: #fff; font-size: .78rem; font-weight: 700; }
.home-class-details { padding: 17px 18px 18px; }
.home-class-category { color: var(--brand-pink); font-size: .73rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.home-class-details h3 { margin: 7px 0 3px; font-size: 1.22rem; line-height: 1.25; }
.home-class-details p { margin: 0; color: #666; font-size: .88rem; }
.home-class-bottom { display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 12px; border-top: 1px solid #e8e9e7; font-size: .85rem; }
.home-class-bottom span { font-weight: 700; }
.home-classes-empty { padding: 30px; border: 1px solid #e1e5e2; border-radius: 20px; background: #f8faf7; }
.home-classes-empty p { margin-bottom: 14px; }
@media (max-width: 991.98px) { .home-class-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
    .home-classes { padding: 36px 0; }
    .home-classes .section-head { align-items: flex-start; margin-bottom: 16px; }
    .home-classes .section-head a { align-self: flex-end; font-size: .8rem; }
    .home-class-grid { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 4px 12px 0; }
    .home-class-card { flex: 0 0 min(82vw, 330px); scroll-snap-align: start; }
    .home-class-image { aspect-ratio: 1.45; }
    .home-class-filters { margin-right: -12px; }
}

/* Keep the complete homepage on one consistent spacing rhythm. */
.home-page .hero .min-vh-75 { min-height: 0; }
.home-page .hero .row > .col-lg-6:first-child { padding-top: 48px !important; padding-bottom: 48px !important; }
.home-page .hero-art { padding-top: 36px; padding-bottom: 36px; }
.home-page .hero .lead { margin: 18px 0 24px; line-height: 1.5; }
.home-page .section { padding-top: 54px; padding-bottom: 54px; }
.home-page .section-head { gap: 16px; margin-bottom: 24px; }
.home-page .section-head h2 { margin: 4px 0 0; line-height: 1.12; }
.home-page .section-head > div { min-width: 0; }
.home-page .section-head > a { flex: 0 0 auto; white-space: nowrap; }
.home-page .home-visuals-track { padding-bottom: 8px; }
.home-page .home-visual-card img { max-height: 360px; }
.home-page .category-card { min-height: 92px; }
.home-page .how { padding: 58px 0 64px; }
.home-page .how h2 { margin: 6px 0 0; line-height: 1.12; }
.home-page .how .row { margin-top: 20px !important; row-gap: 26px !important; }
.home-page .how .step { margin-bottom: 12px; }
.home-page .how h4 { margin-bottom: 7px; }
.home-page .how p { margin-bottom: 0; }
.home-page .how .btn { margin-top: 28px !important; }
.booking-flow-switch { justify-content: center; gap: 8px; margin: 0 auto 28px; }
.booking-flow-switch-button { min-height: 44px; padding: 9px 20px; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font-weight: 800; transition: background .18s ease, color .18s ease, transform .18s ease; }
.booking-flow-switch-button:hover { transform: translateY(-1px); }
.booking-flow-switch-button.active { background: var(--aqua); color: var(--brand-on-primary); }
.booking-flow-content { min-height: 302px; }
.session-booking-status { display: inline-flex; width: min(100%, 150px); max-width: 150px; align-items: flex-start; justify-content: center; line-height: 1.2; text-align: center; white-space: normal; }
.session-booking-status > i { flex: 0 0 auto; }
.session-booking-status-copy { display: grid; gap: 2px; min-width: 0; }
.session-booking-status-copy > span { display: block; white-space: nowrap; }
@media (max-width: 767.98px) {
    .home-page .hero .row > .col-lg-6:first-child { padding-top: 28px !important; padding-bottom: 8px !important; }
    .home-page .hero-art { padding-top: 22px; padding-bottom: 28px; }
    .home-page .section { padding-top: 36px; padding-bottom: 36px; }
    .home-page .section-head { margin-bottom: 18px; }
    .home-page .section-head h2 { line-height: 1.15; }
    .home-page .section-head > a { font-size: .8rem; }
    .home-page .home-visual-card img { max-height: 300px; }
    .home-page .how { padding: 42px 0 50px; }
    .home-page .how .row { margin-top: 14px !important; }
    .booking-flow-switch { margin-bottom: 22px; }
    .booking-flow-switch-button { flex: 1 1 135px; padding-inline: 14px; }
    .booking-flow-content { min-height: 0; }
}

/* Public-site theme toggle and dark surfaces. The brand accent remains admin-controlled. */
.site-nav .theme-toggle {
    display: inline-grid; flex: 0 0 42px; place-items: center;
    width: 42px; height: 42px; padding: 0;
    border: 1px solid var(--brand-black); border-radius: 50%;
    background: #fff; color: var(--brand-black);
    font-size: 1.15rem; cursor: pointer;
}
.site-nav .theme-toggle:hover { border-color: var(--brand-pink); color: var(--brand-pink); }
.site-nav .theme-toggle:focus-visible { outline: 3px solid var(--brand-pink); outline-offset: 3px; }
.theme-icon-light { display: none; }
html[data-theme="dark"] .theme-icon-dark { display: none; }
html[data-theme="dark"] .theme-icon-light { display: inline; }

html[data-theme="dark"] {
    --ink: #f3f5f5;
    --muted: #b4bdc3;
    --soft: #20262b;
    --line: #414b53;
    color-scheme: dark;
}
html[data-theme="dark"] .site-body { background: #171b20; color: var(--ink); }
html[data-theme="dark"] .site-nav { background: rgba(23, 27, 32, .97); border-bottom-color: #39434a; }
html[data-theme="dark"] .site-nav-links,
html[data-theme="dark"] .site-nav .nav-login,
html[data-theme="dark"] .site-nav .theme-toggle,
html[data-theme="dark"] .site-nav .dropdown-menu { background: #242b31; color: var(--ink); border-color: #49545c; }
html[data-theme="dark"] .site-nav .nav-link,
html[data-theme="dark"] .site-nav .nav-login,
html[data-theme="dark"] .site-nav .dropdown-item { color: var(--ink) !important; }
html[data-theme="dark"] .site-nav .dropdown-item:hover { background: #333c43; }
html[data-theme="dark"] .site-nav .nav-link.active {
    color: var(--brand-on-primary) !important;
    background: var(--aqua);
}
html[data-theme="dark"] .site-nav .nav-link:hover,
html[data-theme="dark"] .site-nav .nav-link:focus-visible,
html[data-theme="dark"] .site-nav .nav-link.active:hover,
html[data-theme="dark"] .site-nav .nav-link.active:focus-visible {
    color: #fff !important;
    background: var(--brand-black);
}
html[data-theme="dark"] .site-nav .nav-login { color: var(--brand-on-primary) !important; background: var(--aqua); border: 0; }
html[data-theme="dark"] .site-nav .nav-login-icon { color: var(--aqua); background: var(--brand-on-primary); }
html[data-theme="dark"] .site-nav .nav-login:hover,
html[data-theme="dark"] .site-nav .nav-login:focus-visible { color: #fff !important; background: var(--brand-black); border: 0; }
html[data-theme="dark"] .site-nav .theme-toggle:hover { color: var(--brand-pink); }
html[data-theme="dark"] .hero { color: var(--brand-black); }
html[data-theme="dark"] .hero .searchbox { background: #242b31; }
html[data-theme="dark"] .hero .searchbox .hero-search-field { background: #242b31; border-color: #46515a; }
html[data-theme="dark"] .hero .searchbox .hero-search-field > i { color: #c2ccd1; }
html[data-theme="dark"] .hero .searchbox .hero-search-field:focus-within > i { color: var(--brand-pink); }
html[data-theme="dark"] .hero .searchbox input,
html[data-theme="dark"] .hero .searchbox select { color: var(--ink); background: #242b31; }
html[data-theme="dark"] .hero .searchbox .hero-search-field .form-control { background: transparent; }
html[data-theme="dark"] .hero .searchbox .hero-search-city .form-select { background-color: transparent; }
html[data-theme="dark"] .home-visuals,
html[data-theme="dark"] .home-classes,
html[data-theme="dark"] .category-section { background: #171b20; }
html[data-theme="dark"] .bg-soft,
html[data-theme="dark"] .how { background: #1d2328; color: var(--ink); }
html[data-theme="dark"] .section-head span,
html[data-theme="dark"] .eyebrow,
html[data-theme="dark"] .how p { color: var(--muted); }
html[data-theme="dark"] .home-class-filter,
html[data-theme="dark"] .home-class-card,
html[data-theme="dark"] .home-classes-empty,
html[data-theme="dark"] .category-card,
html[data-theme="dark"] .venue-card,
html[data-theme="dark"] .home-visual-card { background: #252c32; color: var(--ink); border-color: #46515a; }
html[data-theme="dark"] .home-class-filter.active,
html[data-theme="dark"] .home-class-filter:hover { background: var(--brand-pink); color: var(--brand-on-primary); border-color: var(--brand-pink); }
html[data-theme="dark"] .home-classes-intro,
html[data-theme="dark"] .home-class-details p,
html[data-theme="dark"] .category-card small,
html[data-theme="dark"] .venue-card p { color: var(--muted); }
html[data-theme="dark"] .home-class-bottom { border-top-color: #46515a; }
html[data-theme="dark"] .home-visual-card img { background: #252c32; }
html[data-theme="dark"] .market-intro { background: linear-gradient(120deg, #252e38, #1b2329); }
html[data-theme="dark"] .market-intro h1,
html[data-theme="dark"] .market-intro span { color: var(--ink); }
html[data-theme="dark"] .market-search,
html[data-theme="dark"] .market-search-top,
html[data-theme="dark"] .market-layout,
html[data-theme="dark"] .results-pane,
html[data-theme="dark"] .map-pane,
html[data-theme="dark"] .result-card { background: #20262b; color: var(--ink); border-color: #414b53; }
html[data-theme="dark"] .market-filters select,
html[data-theme="dark"] .market-filters input,
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select,
html[data-theme="dark"] .input-group-text { background-color: #262e35; color: var(--ink); border-color: #46515a; }
html[data-theme="dark"] .form-control::placeholder { color: #a9b4ba; }
html[data-theme="dark"] .auth-wrap,
html[data-theme="dark"] .plans-showcase { background: #171b20; }
html[data-theme="dark"] .auth-card,
html[data-theme="dark"] .settings-layout main,
html[data-theme="dark"] .booking-row,
html[data-theme="dark"] .plans-showcase .plan-card,
html[data-theme="dark"] .plans-heading-note { background: #252c32; color: var(--ink); border-color: #46515a; }
html[data-theme="dark"] .plans-heading-note b,
html[data-theme="dark"] .category-card b { color: var(--ink); }
html[data-theme="dark"] .plan-card-top { color: var(--brand-black); }
html[data-theme="dark"] .settings-wrap,
html[data-theme="dark"] .plans,
html[data-theme="dark"] .empty { background: #171b20; }
html[data-theme="dark"] .info-card,
html[data-theme="dark"] .balance,
html[data-theme="dark"] .current-plan,
html[data-theme="dark"] .dash-head { background: #252c32; color: var(--ink); border-color: #46515a; }
html[data-theme="dark"] .lead-sm { color: var(--muted); }
html[data-theme="dark"] .venue-title > span { color: var(--brand-black); }
html[data-theme="dark"] .result-card small { background: #354127; color: #d9f4b0; }
html[data-theme="dark"] .mobile-tab-bar { background: rgba(23, 27, 32, .97); border-top-color: #414b53; }
html[data-theme="dark"] .mobile-tab-bar a { color: #b4bdc3; }
html[data-theme="dark"] .mobile-tab-bar a.active { color: var(--brand-black); }
@media (max-width: 991.98px) {
    .mobile-header-actions { gap: 8px; }
    html[data-theme="dark"] .site-nav .navbar-collapse,
    html[data-theme="dark"] .site-nav-links { background: #242b31; border-color: #414b53; }
}
