/*============================================================================================
  MODERN UI LAYER (front)
  style.css / vendors.css / custom.css uzerine yuklenen, sadece gorunumu yumusatan katman.
  Renkler lokasyon temasindan (--theme-color / --theme-color-alternate) turetilir.
  Geri almak icin config/themes/default.php icindeki 'modern' satirlarini kaldirmak yeterlidir.
============================================================================================*/

/*-------- 1. Tokens --------*/
:root {
    --m-primary: var(--theme-color, #e63733);
    --m-primary-strong: var(--theme-color-alternate, var(--theme-color, #e63733));
    --m-primary-50: color-mix(in srgb, var(--m-primary) 6%, #fff);
    --m-primary-100: color-mix(in srgb, var(--m-primary) 12%, #fff);
    --m-primary-200: color-mix(in srgb, var(--m-primary) 24%, #fff);
    --m-primary-border: color-mix(in srgb, var(--m-primary) 50%, #fff);
    --m-primary-ring: color-mix(in srgb, var(--m-primary) 18%, transparent);
    --m-primary-glow: color-mix(in srgb, var(--m-primary) 35%, transparent);

    --m-ink: #0f172a;
    --m-ink-2: #2f3747;
    --m-muted: #667085;
    --m-border: #e4e7ee;
    --m-border-strong: #d0d5dd;
    --m-surface: #fff;
    --m-surface-2: #f7f8fb;
    --m-bg: #f5f6f9;
    --m-footer-bg: color-mix(in srgb, var(--m-primary) 10%, #0f1722);

    --m-radius-xs: 6px;
    --m-radius-sm: 10px;
    --m-radius-md: 14px;
    --m-radius-lg: 18px;
    --m-radius-xl: 24px;
    --m-radius-pill: 999px;

    --m-shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);
    --m-shadow-sm: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04);
    --m-shadow-md: 0 8px 20px -6px rgba(16, 24, 40, .10), 0 2px 6px -2px rgba(16, 24, 40, .05);
    --m-shadow-lg: 0 18px 36px -10px rgba(16, 24, 40, .16), 0 4px 10px -4px rgba(16, 24, 40, .06);
    --m-shadow-xl: 0 28px 56px -16px rgba(16, 24, 40, .24);

    --m-ease: cubic-bezier(.2, .7, .2, 1);
    --m-dur: .2s;
    --m-gap: 1rem;

    --m-font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    --bs-border-radius: var(--m-radius-sm);
    --bs-border-radius-sm: 8px;
    --bs-border-radius-lg: var(--m-radius-md);
    --bs-border-radius-xl: var(--m-radius-lg);
    --bs-border-radius-xxl: var(--m-radius-xl);
    --bs-body-font-family: var(--m-font);
    --bs-box-shadow-sm: var(--m-shadow-sm);
    --bs-box-shadow: var(--m-shadow-md);
    --bs-box-shadow-lg: var(--m-shadow-lg);
}

html[dir="rtl"] {
    --m-font: "Inter", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", Tahoma, Arial, sans-serif;
}

/*-------- 2. Base --------*/
html {
    scrollbar-color: #c4cad6 transparent;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--m-font);
    color: var(--m-ink-2);
    background-color: var(--m-bg);
    font-optical-sizing: auto;
    text-rendering: optimizeLegibility;
    overflow-x: clip;
}

main {
    background-color: var(--m-bg);
}

h1, h2, h3, h4, h5, h6,
:is(.h1, .h2, .h3, .h4, .h5, .h6):not([class*="fa-"]) {
    font-family: var(--m-font);
    line-height: 1.25;
}

h1, h2, h3, :is(.h1, .h2, .h3):not([class*="fa-"]) {
    font-weight: 700;
}

h4, h5, h6, :is(.h4, .h5, .h6):not([class*="fa-"]) {
    font-weight: 600;
}

html:not([dir="rtl"]) h1, html:not([dir="rtl"]) h2, html:not([dir="rtl"]) h3,
html:not([dir="rtl"]) .h1, html:not([dir="rtl"]) .h2, html:not([dir="rtl"]) .h3 {
    letter-spacing: -.015em;
}

button, input, select, textarea, optgroup,
.lobibox, .lobibox-notify, .marker_info, .pac-container, .leaflet-popup-content {
    font-family: var(--m-font);
}

.daterangepicker {
    font-family: var(--m-font) !important;
}

::selection {
    background-color: var(--m-primary-200);
    color: var(--m-ink);
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.btn_1:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--m-primary-border);
    outline-offset: 2px;
}

hr {
    border-color: var(--m-border);
}

/*-------- 3. Header & navigation --------*/
header.header {
    transition: background-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease);
}

header.header.sticky {
    background-color: #fff;
    border-bottom-color: rgba(16, 24, 40, .06);
    box-shadow: 0 6px 24px -12px rgba(16, 24, 40, .18);
}


@media only screen and (min-width: 991px) {
    header.header {
        display: flex;
        align-items: center;
        gap: 1.25rem;
    }

    header.header > #logo {
        flex: 0 0 auto;
        order: 0;
        float: none;
    }

    header.header > nav#menu.main-menu:not(.mm-opened) {
        display: flex !important;
        flex: 1 1 0;
        justify-content: center;
        order: 1;
        min-width: 0;
        float: none;
        top: auto;
        right: auto;
    }

    header.header > ul#top_menu {
        flex: 0 0 auto;
        order: 2;
        float: none;
    }

    header.header > .btn_mobile {
        display: none;
    }

    .main-menu:not(.mm-opened) > ul {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
    }

    header.header > nav#menu.main-menu:not(.mm-opened):not(.menu-ready) > ul {
        visibility: hidden;
        animation: m-menu-reveal 0s linear 1.5s forwards;
    }

    .main-menu:not(.mm-opened) > ul > li {
        flex: 0 0 auto;
    }

    .main-menu:not(.mm-opened) > ul > li span > a,
    .main-menu:not(.mm-opened) > ul > li > a {
        padding: .6rem .65rem;
        font-weight: 600;
        line-height: 1.2;
        letter-spacing: .005em;
    }

    .main-menu:not(.mm-opened) ul ul {
        border: 1px solid var(--m-border);
        border-radius: var(--m-radius-md);
        box-shadow: var(--m-shadow-lg);
    }

    .main-menu:not(.mm-opened) ul ul::before {
        content: "";
        top: -8px;
        bottom: auto;
        left: 22px;
        width: 14px;
        height: 14px;
        margin: 0;
        background-color: #fff;
        border: 1px solid var(--m-border);
        border-right: 0;
        border-bottom: 0;
        border-radius: 3px 0 0 0;
        box-shadow: -2px -2px 4px rgba(16, 24, 40, .05);
        transform: rotate(45deg);
    }

    .main-menu:not(.mm-opened) ul ul ul::before {
        display: none;
    }

    .main-menu:not(.mm-opened) > ul > li.menu-more > ul {
        right: 0;
        left: auto;
    }

    .main-menu:not(.mm-opened) > ul > li.menu-more > ul::before {
        right: 22px;
        left: auto;
    }

    .main-menu:not(.mm-opened) li.menu-more ul ul {
        top: -1px;
        right: calc(100% + 6px);
        left: auto;
    }

    .main-menu:not(.mm-opened) li.menu-more > span > a::after {
        content: "";
        display: inline-block;
        margin-inline-start: .35rem;
        vertical-align: .15em;
        border-top: .3em solid currentColor;
        border-inline: .3em solid transparent;
        opacity: .75;
    }

    html[dir="rtl"] .main-menu:not(.mm-opened) > ul > li.menu-more > ul {
        right: auto;
        left: 0;
    }

    html[dir="rtl"] .main-menu:not(.mm-opened) > ul > li.menu-more > ul::before {
        right: auto;
        left: 22px;
    }

    html[dir="rtl"] .main-menu:not(.mm-opened) li.menu-more ul ul {
        right: auto;
        left: calc(100% + 6px);
    }

    .main-menu:not(.mm-opened) ul ul li a {
        font-size: .8125rem;
        border-bottom-color: #f0f2f6;
    }

    .main-menu:not(.mm-opened) ul ul li:first-child > a,
    .main-menu:not(.mm-opened) ul ul li:first-child > a:hover,
    .main-menu:not(.mm-opened) ul ul li:first-child > span > a {
        border-start-start-radius: calc(var(--m-radius-md) - 1px);
        border-start-end-radius: calc(var(--m-radius-md) - 1px);
    }

    .main-menu:not(.mm-opened) ul ul li:last-child > a,
    .main-menu:not(.mm-opened) ul ul li:last-child > a:hover,
    .main-menu:not(.mm-opened) ul ul li:last-child > span > a {
        border-end-start-radius: calc(var(--m-radius-md) - 1px);
        border-end-end-radius: calc(var(--m-radius-md) - 1px);
    }

    .main-menu:not(.mm-opened) ul ul li:hover > a {
        background-color: var(--m-primary-50);
    }
}

.mm-menu .mm-listview > li > a,
.mm-menu .mm-listview > li > span {
    font-weight: 500;
}

ul#top_menu {
    display: flex;
    align-items: center;
    gap: .5rem;
    float: right;
    margin: 0;
}

html[dir="rtl"] ul#top_menu {
    float: left;
}

ul#top_menu > li.top-menu-item {
    display: block;
    float: none;
    margin: 0;
    line-height: 1;
}

#top_menu .top-menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    width: auto;
    height: 2.125rem;
    padding: 0 .7rem;
    color: #fff;
    font-size: .8125rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-decoration: none;
    white-space: nowrap;
    background-color: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: var(--m-radius-pill);
    opacity: 1;
    transition: background-color var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease), color var(--m-dur) var(--m-ease);
}

#top_menu .top-menu-toggle:hover,
#top_menu .top-menu-toggle[aria-expanded="true"] {
    color: #fff;
    opacity: 1;
    background-color: rgba(255, 255, 255, .22);
    border-color: rgba(255, 255, 255, .45);
}

#top_menu .top-menu-toggle:focus:not(:focus-visible) {
    outline: 0;
}

#top_menu .top-menu-toggle.dropdown-toggle::after {
    margin: 0;
    border-top-width: .3em;
    border-inline: .3em solid transparent;
    opacity: .75;
}

#top_menu .top-menu-toggle .flag {
    flex: 0 0 auto;
    border-radius: 2px;
}

header.header.sticky #top_menu .top-menu-toggle,
header.header.map_view #top_menu .top-menu-toggle {
    color: var(--m-ink-2);
    background-color: var(--m-surface);
    border-color: var(--m-border-strong);
}

header.header.sticky #top_menu .top-menu-toggle:hover,
header.header.sticky #top_menu .top-menu-toggle[aria-expanded="true"],
header.header.map_view #top_menu .top-menu-toggle:hover,
header.header.map_view #top_menu .top-menu-toggle[aria-expanded="true"] {
    color: var(--m-ink);
    background-color: var(--m-primary-50);
    border-color: var(--m-primary-200);
}

#top_menu .top-menu-symbol {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    font-weight: 700;
}

#top_menu .dropdown-menu {
    min-width: 12rem;
    margin-top: .5rem !important;
    padding: .375rem !important;
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md) !important;
    box-shadow: var(--m-shadow-lg);
}

#top_menu .dropdown-menu.show {
    overflow: visible;
}

#top_menu .dropdown-menu::before {
    content: "";
    position: absolute;
    top: -8px;
    inset-inline-end: 16px;
    width: 14px;
    height: 14px;
    background-color: #fff;
    border: 1px solid var(--m-border);
    border-right: 0;
    border-bottom: 0;
    border-radius: 3px 0 0 0;
    box-shadow: -2px -2px 4px rgba(16, 24, 40, .05);
    transform: rotate(45deg);
}

#top_menu .dropdown-menu li {
    float: none;
    margin: 1px 0;
    line-height: inherit;
}

#top_menu .top-menu-scroll {
    max-height: min(70vh, 26rem);
    overflow-y: auto;
}

#top_menu .dropdown-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .55rem .75rem !important;
    color: var(--m-ink-2);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.3;
    border-radius: 8px;
    opacity: 1;
}

#top_menu .dropdown-menu .dropdown-item:hover,
#top_menu .dropdown-menu .dropdown-item:focus {
    color: var(--m-ink);
    background-color: var(--m-primary-50);
}

#top_menu .dropdown-menu .dropdown-item.active,
#top_menu .dropdown-menu .dropdown-item.active:hover {
    color: var(--m-primary);
    font-weight: 600;
    background-color: var(--m-primary-50);
}

#top_menu .dropdown-menu .dropdown-item.active::after {
    content: "\f00c";
    margin-inline-start: auto;
    padding-inline-start: .75rem;
    font-family: "Font Awesome 7 Free", "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
    font-size: .75rem;
    font-weight: 900;
}

#top_menu .dropdown-menu .top-menu-label small {
    margin-inline-start: .25rem;
    color: var(--m-muted);
    font-size: .75rem;
    font-weight: 400;
}

#top_menu .top-menu-currency .top-menu-symbol {
    color: var(--m-primary);
}

#top_menu .top-menu-toggle .top-menu-symbol {
    color: inherit;
}

@media (max-width: 991.98px) {
    ul#top_menu {
        gap: .35rem;
    }

    #top_menu .top-menu-toggle {
        height: 1.875rem;
        padding: 0 .55rem;
        font-size: .75rem;
    }
}

@media (max-width: 575.98px) {
    ul#top_menu {
        gap: .25rem;
    }

    #top_menu .top-menu-toggle {
        justify-content: center;
        min-width: 2rem;
        padding: 0 .45rem;
    }

    #top_menu .top-menu-toggle .top-menu-code,
    #top_menu .top-menu-toggle.dropdown-toggle::after {
        display: none;
    }
}

.dropdown-menu {
    --bs-dropdown-border-color: var(--m-border);
    --bs-dropdown-border-radius: var(--m-radius-md);
    --bs-dropdown-box-shadow: var(--m-shadow-lg);
    --bs-dropdown-link-hover-bg: var(--m-primary-50);
    --bs-dropdown-link-active-bg: var(--m-primary);
    box-shadow: var(--bs-dropdown-box-shadow);
}

.dropdown-menu-dark {
    --bs-dropdown-border-color: rgba(255, 255, 255, .08);
    --bs-dropdown-link-hover-bg: rgba(255, 255, 255, .08);
}

@keyframes m-menu-reveal {
    to {
        visibility: visible;
    }
}

/*-------- 4. Buttons --------*/
.btn_1,
a.btn_1 {
    border-radius: var(--m-radius-sm);
    font-weight: 600;
    letter-spacing: .01em;
    box-shadow: 0 6px 16px -8px rgba(16, 24, 40, .35);
    transition: background-color var(--m-dur) var(--m-ease), color var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease), transform var(--m-dur) var(--m-ease);
}

.btn_1:not(:disabled):not(.disabled):hover,
a.btn_1:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -10px rgba(16, 24, 40, .45);
}

.btn_1:not(:disabled):not(.disabled):active,
a.btn_1:active {
    transform: translateY(0);
    box-shadow: 0 4px 10px -6px rgba(16, 24, 40, .35);
}

.btn_1.outline,
a.btn_1.outline,
.btn_1.full-width.wishlist,
a.btn_1.full-width.wishlist {
    box-shadow: none;
}

.btn {
    font-weight: 500;
    --bs-btn-focus-box-shadow: 0 0 0 .25rem var(--m-primary-ring);
    transition: color var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.btn-primary,
.btn-theme {
    box-shadow: 0 6px 16px -10px var(--m-primary-glow);
}

.btn-close:focus {
    box-shadow: 0 0 0 .25rem var(--m-primary-ring);
}

/*-------- 5. Forms --------*/
.form-control,
.form-select {
    border-color: var(--m-border-strong);
    border-radius: var(--m-radius-sm);
    transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease);
}

.form-control:hover:not(:focus):not(:disabled),
.form-select:hover:not(:focus):not(:disabled) {
    border-color: #b9c0cc;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--m-primary-border);
    box-shadow: 0 0 0 4px var(--m-primary-ring);
}

.form-control::placeholder {
    color: #98a2b3;
}

.input-group-text {
    border-color: var(--m-border-strong);
    background-color: var(--m-surface-2);
    color: var(--m-muted);
}

.form-label,
.control-label {
    font-weight: 600;
}

.form-check-input {
    border-color: var(--m-border-strong);
}

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

.form-check-input:focus {
    border-color: var(--m-primary-border);
    box-shadow: 0 0 0 .25rem var(--m-primary-ring);
}

/* account person (use my account information) card */
.form-group:has(> .controls > .m-acct) > .control-label {
    display: none;
}

.m-acct {
    position: relative;
    isolation: isolate;
}

.m-acct .m-acct-input,
.m-acct .m-acct-input.form-control {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

.m-acct-frame {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
    box-shadow: var(--m-shadow-xs);
    pointer-events: none;
    transition: border-color var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.m-acct .m-acct-head {
    display: flex;
    width: 100%;
    font-weight: 400;
    align-items: center;
    gap: .875rem;
    min-height: 64px;
    margin: 0;
    padding: .875rem 1rem;
    cursor: pointer;
    user-select: none;
    border-radius: var(--m-radius-md);
}

.m-acct:hover > .m-acct-frame {
    border-color: var(--m-primary-border);
}

.m-acct-avatar {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--m-surface-2);
    border: 1px solid var(--m-border);
    color: var(--m-muted);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .02em;
    transition: background-color var(--m-dur) var(--m-ease), color var(--m-dur) var(--m-ease);
}

.m-acct-text {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}

.m-acct-title {
    color: var(--m-ink);
    font-weight: 600;
    line-height: 1.3;
}

.m-acct-desc {
    color: var(--m-muted);
    font-size: .8125rem;
    line-height: 1.4;
}

.m-acct .m-acct-switch {
    display: block;
    position: relative;
    flex: 0 0 auto;
    width: 48px;
    height: 28px;
    border-radius: var(--m-radius-pill);
    background: var(--m-border-strong);
    transition: background-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.m-acct .m-acct-switch::after {
    content: "";
    position: absolute;
    inset-block-start: 3px;
    inset-inline-start: 3px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    box-shadow: var(--m-shadow-sm);
    transition: inset-inline-start var(--m-dur) var(--m-ease);
}

.m-acct-summary {
    display: none;
    margin: 0 1rem;
    padding: .75rem 0 1rem;
    border-top: 1px dashed var(--m-primary-200);
}

.m-acct-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.m-acct-list li {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
    color: var(--m-ink-2);
    font-size: .875rem;
    line-height: 1.4;
}

.m-acct-list li > i {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--m-radius-xs);
    background: var(--m-surface);
    border: 1px solid var(--m-primary-200);
    color: var(--m-primary);
    font-size: .75rem;
}

.m-acct-list li > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.m-acct-missing {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .5rem;
    margin-top: .75rem;
    padding: .5rem .75rem;
    border-radius: var(--m-radius-sm);
    background: color-mix(in srgb, #dc6803 8%, #fff);
    color: var(--m-ink-2);
    font-size: .8125rem;
}

.m-acct-missing > i {
    color: #dc6803;
}

.m-acct-missing > a {
    color: var(--m-primary);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.m-acct-input:checked ~ .m-acct-frame {
    border-color: var(--m-primary);
    background: var(--m-primary-100);
    box-shadow: inset 0 0 0 1px var(--m-primary), 0 0 0 4px var(--m-primary-ring);
}

.m-acct-input:checked ~ .m-acct-head .m-acct-avatar {
    background: var(--m-primary);
    border-color: var(--m-primary);
    color: #fff;
}

.m-acct-input:checked ~ .m-acct-head .m-acct-title {
    color: var(--m-primary-strong);
}

.m-acct .m-acct-input:checked ~ .m-acct-head .m-acct-switch {
    background: var(--m-primary);
}

.m-acct .m-acct-input:checked ~ .m-acct-head .m-acct-switch::after {
    inset-inline-start: 23px;
}

.m-acct .m-acct-input:checked ~ .m-acct-head .m-acct-switch::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset-block-start: 9px;
    inset-inline-start: 31px;
    width: 5px;
    height: 9px;
    border: solid var(--m-primary);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

html[dir="rtl"] .m-acct .m-acct-input:checked ~ .m-acct-head .m-acct-switch::before {
    transform: rotate(45deg) scaleX(-1);
}

.m-acct-input:checked ~ .m-acct-summary {
    display: block;
}

.m-acct-input:focus-visible ~ .m-acct-head .m-acct-switch {
    box-shadow: 0 0 0 4px var(--m-primary-ring);
}

.m-acct-input:focus-visible ~ .m-acct-head {
    outline: 2px solid var(--m-primary);
    outline-offset: 2px;
}

.m-acct-input:disabled ~ .m-acct-head {
    cursor: not-allowed;
    opacity: .6;
}

/* icon + floating input groups (login, signup, password forms) */
.input-group.error-validation-label {
    border-radius: var(--m-radius-sm);
    transition: box-shadow var(--m-dur) var(--m-ease);
}

.input-group.error-validation-label > .input-group-text {
    width: 3rem;
    justify-content: center;
    border-start-end-radius: 0;
    border-end-end-radius: 0;
    border-inline-end: 0;
}

.input-group.error-validation-label > .form-floating .form-control {
    border-start-start-radius: 0 !important;
    border-end-start-radius: 0 !important;
    border-inline-start: 0;
    box-shadow: none !important;
}

.input-group.error-validation-label:focus-within {
    box-shadow: 0 0 0 4px var(--m-primary-ring);
}

.input-group.error-validation-label:focus-within > .input-group-text,
.input-group.error-validation-label:focus-within .form-control {
    border-color: var(--m-primary-border);
}

.input-group.error-validation-label > .invalid-feedback {
    display: block;
    width: 100%;
    margin-top: .35rem;
}

.input-group.error-validation-label.error-validation:focus-within {
    box-shadow: none;
}

.input-group.error-validation-label.error-validation > .input-group-text,
.input-group.error-validation-label.error-validation .form-control {
    border-color: #dc3545 !important;
}

.input-group.error-validation-label .hideShowPassword-field {
    padding-inline-end: 4.5rem !important;
    background-image: none !important;
}

.input-group.error-validation-label .my-toggle {
    right: .5rem !important;
    left: auto !important;
    z-index: 5;
    padding: .3rem .5rem;
    color: var(--m-muted);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    background: transparent;
    border: 0;
    border-radius: 6px;
}

html[dir="rtl"] .input-group.error-validation-label .my-toggle {
    right: auto !important;
    left: .5rem !important;
}

.input-group.error-validation-label .my-toggle:hover {
    color: var(--m-primary);
    background: var(--m-primary-50);
}

/* select2 */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    border-color: var(--m-border-strong);
    border-radius: var(--m-radius-sm);
    transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--m-primary-border);
    box-shadow: 0 0 0 4px var(--m-primary-ring);
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #98a2b3;
}

.select2-dropdown {
    border-color: var(--m-primary-border);
    border-radius: var(--m-radius-sm);
    box-shadow: var(--m-shadow-lg);
    overflow: hidden;
}

.select2-results__option {
    padding: 8px 12px;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: var(--m-primary);
    color: #fff;
}

.select2-container--default .select2-results__option--selected {
    background-color: var(--m-primary-100);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    border: 1px solid var(--m-border-strong);
    border-radius: 8px;
    padding: 6px 10px;
    outline: 0;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--m-primary-border);
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
    border-color: var(--m-primary-200);
    background-color: var(--m-primary-50);
    border-radius: 6px;
}

/* date pickers */
.daterangepicker {
    border-color: var(--m-border);
    border-radius: var(--m-radius-md);
    box-shadow: var(--m-shadow-lg);
}

.daterangepicker td.available,
.daterangepicker th.available {
    border-radius: 8px;
}

.daterangepicker td.in-range {
    background-color: var(--m-primary-100);
}

.daterangepicker td.active,
.daterangepicker td.active:hover {
    border-radius: 8px;
}

.dtp > .dtp-content {
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-xl);
}

.dtp > .dtp-content > .dtp-date-view > header.dtp-header {
    border-start-start-radius: var(--m-radius-lg);
    border-start-end-radius: var(--m-radius-lg);
}

.panel-dropdown .panel-dropdown-content {
    border-color: var(--m-border);
    border-radius: var(--m-radius-md);
    box-shadow: var(--m-shadow-lg);
}

/*-------- 6. Cards & listings --------*/
.card {
    --bs-card-border-color: var(--m-border);
    --bs-card-cap-bg: var(--m-surface-2);
}

.box_grid {
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-md);
    transition: box-shadow .25s var(--m-ease), transform .25s var(--m-ease);
}

.box_grid > figure:first-child {
    border-start-start-radius: var(--m-radius-lg);
    border-start-end-radius: var(--m-radius-lg);
}

.box_grid ul,
.box_list ul {
    border-top-color: #eef0f4;
}

.box_grid figure small,
.box_list figure small,
.box_grid figure ul.small li {
    border-radius: var(--m-radius-pill);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.box_grid figure .read_more span,
.box_list figure .read_more span,
article.blog figure .preview span {
    box-shadow: var(--m-shadow-sm);
}

.box_list {
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-md);
}

.box_list > .row > [class*="col"]:first-child > figure {
    border-start-start-radius: var(--m-radius-lg);
    border-end-start-radius: var(--m-radius-lg);
}

@media (max-width: 991.98px) {
    .box_list > .row > [class*="col"]:first-child > figure {
        border-end-start-radius: 0;
        border-start-end-radius: var(--m-radius-lg);
    }
}

@media (hover: hover) {
    .box_grid:has(> figure):hover,
    main article.blog:hover {
        transform: translateY(-3px);
        box-shadow: var(--m-shadow-lg);
    }
}

.box_detail {
    background-color: #fff;
    border-color: var(--m-border);
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-sm);
}

.box_detail .price {
    border-bottom-color: #eef0f4;
}

.box_cart {
    background-color: #fff;
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-sm);
    padding: 1.5rem;
}

.box_cart .box_cart {
    border: 0;
    box-shadow: none;
    padding: 0;
    background: transparent;
}

.box_cart hr {
    border-color: var(--m-border);
}

.form_title h3 {
    font-weight: 700;
}

.form_title h3 strong {
    box-shadow: 0 6px 14px -6px var(--m-primary-glow);
}

.box_general,
.box_style_cat {
    border-radius: var(--m-radius-lg);
}

main article.blog {
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-md);
    transition: box-shadow .25s var(--m-ease), transform .25s var(--m-ease);
}

main article.blog .post_info h3 a:hover {
    color: var(--m-primary);
}

a.box_news figure {
    border-radius: var(--m-radius-sm);
}

@media (max-width: 767.98px) {
    a.box_news {
        border-radius: var(--m-radius-sm);
        padding: .5rem .5rem .75rem;
    }

    a.box_news figure {
        height: auto;
        aspect-ratio: 16 / 9;
        margin-bottom: .5rem;
    }

    a.box_news figure img,
    a.box_news figure img.fullframe {
        position: static;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        transform: none;
    }

    a.box_news:hover figure img {
        transform: none;
    }

    a.box_news figure figcaption {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        top: .5rem;
        right: auto;
        inset-inline-end: .5rem;
        width: auto;
        min-width: 3rem;
        height: auto;
        padding: .375rem .5rem;
        border-radius: var(--m-radius-sm);
        font-size: .75rem;
        line-height: 1.1;
        box-shadow: var(--m-shadow-sm);
    }

    a.box_news figure figcaption strong {
        font-size: 1.125rem;
    }

    a.box_news ul,
    a.box_news .title,
    a.box_news p {
        padding-inline: .25rem;
    }

    a.box_news .title {
        margin-top: .375rem;
        margin-bottom: .25rem;
    }

    a.box_news p {
        margin-bottom: 0;
    }
}

.container.author .author-thumb {
    border-radius: var(--m-radius-md);
}

.main_title_2 span,
.main_title_3 span,
.main_title_2 span em,
.main_title_3 span em {
    border-radius: var(--m-radius-pill);
}

/* FAQ / accordion */
.accordion {
    --bs-accordion-border-color: var(--m-border);
    --bs-accordion-border-radius: var(--m-radius-md);
    --bs-accordion-inner-border-radius: calc(var(--m-radius-md) - 1px);
    --bs-accordion-active-bg: var(--m-primary-50);
    --bs-accordion-active-color: var(--m-ink);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem var(--m-primary-ring);
}

.accordion-button {
    font-weight: 600;
}

.accordion_2 .card {
    border-radius: var(--m-radius-md);
    box-shadow: var(--m-shadow-sm);
    margin-bottom: .625rem;
    border: 1px solid var(--m-border);
}

.accordion_2 .card .card-header {
    background-color: #fff;
    border-bottom-color: var(--m-border);
    border-start-start-radius: var(--m-radius-md);
    border-start-end-radius: var(--m-radius-md);
}

.accordion_2 .card .card-header:last-child {
    border-radius: var(--m-radius-md);
}

@media (max-width: 991.98px) {
    .hotel_list.box_list .wrapper {
        padding: 1.25rem 1.25rem .75rem;
        overflow-wrap: anywhere;
    }

    .hotel_list .booknow_section {
        padding: 1rem 1.25rem;
    }

    .hotel_list .booknow_section li,
    .hotel_list .booknow_section li:first-child,
    .hotel_list .booknow_section li:last-child {
        display: block;
        margin: 0;
        line-height: 1.4;
    }

    .hotel_list .booknow_section li:last-child {
        margin-top: .75rem;
    }

    .hotel_list .booknow_section .score {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: .5rem;
        margin-top: 0;
    }

    .hotel_list .booknow_section .score span {
        top: 0;
        margin: 0;
        text-align: start;
    }

    .hotel_list .booknow_section .score strong {
        white-space: nowrap;
    }

    .hotel_list .booknow_section .score .book_now {
        margin-inline-start: auto;
        min-height: 40px;
    }
}

/*-------- 7. Hero & search --------*/
.hero_in.hero-page-view .wrapper {
    background-image: linear-gradient(to bottom, rgba(15, 23, 42, .7), rgba(15, 23, 42, 0) 200px);
}

.hero_in .breadcrumb {
    display: inline-flex;
    max-width: 100%;
    padding: .375rem 1rem;
    border-radius: var(--m-radius-pill);
    background-color: rgba(255, 255, 255, .12);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

.hero_in .wrapper h1.main_header:before {
    border-radius: var(--m-radius-pill);
}

#tab-container .custom-tabs .nav-link {
    transition: background-color var(--m-dur) var(--m-ease), color var(--m-dur) var(--m-ease);
}

#tab-container .owl-carousel .owl-nav button.owl-prev,
#tab-container .owl-carousel .owl-nav button.owl-next {
    box-shadow: var(--m-shadow-md);
}

/* inline search bar (AirportHotel step 2) */
.ah-search.custom-search-input-2 .brd {
    border-right: 0;
    border-inline-end: 1px solid #d2d8dd;
}

.ah-search.custom-search-input-2 .brd > .unbound {
    inset-inline-start: 15px;
}

.ah-search .panel-dropdown-content .select2-container {
    max-width: 100%;
}

#hotel-area .box_list figure a img,
#hotel-area .box_list figure > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    transform: none;
}

#hotel-area .box_list:hover figure a img,
#hotel-area .box_list:hover figure > img {
    transform: scale(1.05);
}

.ah-search input[type=time]::-webkit-calendar-picker-indicator {
    display: none;
}

.ah-search .ah-dropdown-head {
    display: flex;
    justify-content: flex-end;
    margin: -5px -5px 8px;
}

.ah-search .ah-dropdown-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background-color: #000;
    color: #fff;
    font-size: .875rem;
    line-height: 1;
    transition: opacity var(--m-dur) var(--m-ease);
}

.ah-search .ah-dropdown-x i {
    position: static;
    display: inline-block;
    width: auto;
    height: auto;
    padding: 0;
    border-radius: 0;
    background-color: transparent;
    color: inherit;
    font-size: inherit;
    line-height: 1;
}

.ah-search .ah-dropdown-x:hover {
    opacity: .8;
}

.ah-search .ah-dropdown-x:focus-visible {
    outline: 2px solid var(--m-primary-border);
    outline-offset: 2px;
}

.ah-search .ah-dropdown-foot {
    margin: 5px 0 15px;
}

.ah-search .ah-dropdown-foot .btn_1 {
    margin-bottom: 0;
    border-radius: var(--m-radius-sm);
}

@media (max-width: 991.98px) {
    .ah-search.custom-search-input-2 {
        row-gap: 1rem;
        margin-top: 0;
    }

    .ah-search.custom-search-input-2 .brd {
        border-inline-end: 0;
    }

    .ah-search .input_date > .row > .brd + .brd {
        padding-inline-start: .5rem;
    }

    .ah-search.custom-search-input-2 .brd > .unbound {
        position: static;
        display: block;
        margin: 0 0 .375rem;
        color: var(--m-ink-2);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .ah-search.custom-search-input-2 .form-group {
        margin-bottom: 0;
    }

    .ah-search .brd > .input-group,
    .ah-search .brd > .panel-dropdown {
        position: relative;
        background-color: var(--m-surface);
        border-radius: var(--m-radius-sm);
    }

    .ah-search .brd > .input-group::before,
    .ah-search .brd > .panel-dropdown::before {
        content: "";
        position: absolute;
        inset-inline: 0;
        top: 0;
        height: 50px;
        border: 1px solid var(--m-border-strong);
        border-radius: var(--m-radius-sm);
        pointer-events: none;
        z-index: 10;
        transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
    }

    .ah-search .brd > .input-group:focus-within::before,
    .ah-search .brd > .panel-dropdown.active::before {
        border-color: var(--m-primary-border);
        box-shadow: 0 0 0 4px var(--m-primary-ring);
    }

    .ah-search .brd > .input-group > .form-control {
        background-color: transparent;
        border-radius: var(--m-radius-sm);
        min-width: 0;
        padding-inline-end: 40px;
        font-size: 1rem;
    }

    .ah-search.custom-search-input-2 .input-group i {
        top: 1px;
        height: 48px;
        line-height: 48px;
        background-color: transparent;
    }

    .ah-search .brd > .panel-dropdown {
        height: auto;
        min-height: 50px;
        padding: 0;
        padding-inline: 15px 10px;
    }

    .ah-search .brd > .panel-dropdown > a {
        display: flex;
        align-items: center;
        gap: .5rem;
        min-height: 50px;
        padding-inline-end: 1.75rem;
    }

    .ah-search .brd > .panel-dropdown > a::after {
        top: 50%;
        right: auto;
        inset-inline-end: 0;
        line-height: 1;
        transform: translateY(-50%);
    }

    .ah-search .brd > .panel-dropdown.active > a::after {
        transform: translateY(-50%) rotate(180deg);
    }

    .ah-search .panel-dropdown-content > .unbound:empty {
        display: none;
    }

    .ah-search .qtyButtons .qtyInc,
    .ah-search .qtyButtons .qtyDec {
        width: 40px;
        height: 40px;
        line-height: 40px;
    }

    .ah-search .panel-dropdown .panel-dropdown-content {
        inset-inline: 0;
        width: auto;
        max-width: 100%;
    }

    .ah-search .error-validation-label > .invalid-feedback {
        margin-top: .375rem;
    }

    .ah-search > .ah-search-submit {
        display: flex;
        align-items: flex-end;
    }

    .ah-search.custom-search-input-2 input[type=submit].btn_search {
        margin: 0;
        height: 50px;
        border-radius: var(--m-radius-sm);
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .ah-search > :nth-child(odd) {
        padding-inline-end: .5rem;
    }

    .ah-search > :nth-child(even) {
        padding-inline-start: .5rem;
    }
}

.ah-search .panel-dropdown-content .age-area {
    margin-inline: 0;
}

.alert.ah-notice {
    --bs-alert-bg: var(--m-surface-2);
    --bs-alert-border-color: var(--m-border);
    --bs-alert-color: var(--m-ink-2);
    --bs-alert-link-color: var(--m-primary);
    margin: 0 15px 30px;
    padding: 1.25rem 1.5rem;
    border-radius: var(--m-radius-md);
    box-shadow: inset 3px 0 0 var(--m-primary), var(--m-shadow-xs);
    overflow-wrap: anywhere;
}

html[dir="rtl"] .alert.ah-notice {
    box-shadow: inset -3px 0 0 var(--m-primary), var(--m-shadow-xs);
}

.alert.ah-notice .alert-heading {
    margin: 0 0 .375rem;
    color: var(--m-ink);
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.35;
}

.alert.ah-notice p {
    margin: 0;
    color: var(--m-ink-2);
    font-size: .9375rem;
    line-height: 1.6;
}

.alert.ah-notice p img {
    box-sizing: content-box;
    width: 1.5rem;
    height: 1.5rem;
    padding: .375rem;
    margin-inline-end: .625rem;
    vertical-align: middle;
    object-fit: contain;
    background-color: var(--m-primary-50);
    border: 1px solid var(--m-primary-100);
    border-radius: var(--m-radius-sm);
}

.alert.ah-notice a {
    font-weight: 600;
}

@media (max-width: 767.98px) {
    .ah-search.custom-search-input-2.inner {
        margin-bottom: 1.5rem;
    }

    .ah-search.custom-search-input-2 input[type=submit].btn_search {
        font-size: 1rem;
    }

    .alert.ah-notice {
        margin-bottom: 1.25rem;
        padding: 1rem 1.125rem;
    }

    .alert.ah-notice .alert-heading {
        font-size: 1rem;
    }

    .alert.ah-notice p {
        font-size: .875rem;
    }

    #hotel-area .box_list {
        min-height: 0;
        margin-bottom: 1.25rem;
    }

    #hotel-area .box_list figure small {
        max-width: calc(100% - 30px);
        white-space: normal;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    #hotel-area .box_list .wrapper h3 {
        font-size: 1.125rem;
    }
}

@media (max-width: 575.98px) {
    #hotel-area .booknow_section .score strong {
        margin-inline-start: auto;
    }

    #hotel-area .booknow_section .score .book_now {
        flex: 1 1 100%;
        margin-inline-start: 0;
        min-height: 44px;
    }
}

/*-------- 8. Checkout wizard --------*/
.bs-wizard > .bs-wizard-step > .bs-wizard-dot {
    box-shadow: 0 8px 20px -6px rgba(0, 0, 0, .35);
}

.bs-wizard > .bs-wizard-step > .progress {
    border-radius: var(--m-radius-pill);
    background-color: rgba(255, 255, 255, .35);
}

.bs-wizard > .bs-wizard-step .bs-wizard-stepnum {
    letter-spacing: .03em;
}

html[dir="rtl"] .bs-wizard > .bs-wizard-step .bs-wizard-stepnum {
    letter-spacing: 0;
}

@media (max-width: 767.98px) {
    .bs-wizard > .bs-wizard-step .bs-wizard-stepnum {
        margin-inline-start: .75rem;
    }

    .bs-wizard > .bs-wizard-step:nth-child(n) > .progress > .progress-bar {
        width: 100% !important;
        height: 0;
        transform: none;
    }

    .bs-wizard > .bs-wizard-step.active:not(:first-child, :last-child) > .progress > .progress-bar {
        height: 50%;
    }

    .bs-wizard > .bs-wizard-step.complete > .progress > .progress-bar,
    .bs-wizard > .bs-wizard-step.active:last-child > .progress > .progress-bar,
    .bs-wizard > .bs-wizard-step.active:has(+ .bs-wizard-step.active) > .progress > .progress-bar {
        height: 100%;
    }

    .error-validation-container {
        padding-inline: 1rem;
    }
}

#price_box .price,
#total_cart {
    border-color: var(--m-border);
}

.step-summary .step-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding-bottom: .625rem;
    margin-bottom: .75rem;
    border-bottom: 1px solid var(--m-border);
}

.step-summary .step-summary-head a {
    color: var(--theme-color);
    white-space: nowrap;
}

.step-summary ul.cart_details {
    margin-bottom: 1rem;
    border-color: var(--m-border);
}

.step-summary .step-summary-title {
    font-weight: 600;
    color: var(--m-ink);
    text-align:center;
}

.step-summary .step-summary-total {
    font-size: 1.25rem;
    font-weight: 500;
    line-height: 1.2;
}

.step-summary .step-summary-total del {
    font-size: .875rem;
    color: var(--m-ink-2);
    margin-inline-end: .25rem;
}

.step-summary .step-summary-total-info {
    display: block;
    clear: both;
    padding-top: .25rem;
    font-size: .8125rem;
    font-weight: 400;
    color: var(--m-muted);
    text-align: end;
}

.box_detail .checkout-summary {
    margin-bottom: 1rem;
}

.box_detail .checkout-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding-bottom: .75rem;
    margin-bottom: .75rem;
    border-bottom: 1px solid var(--m-border);
}

.box_detail .checkout-summary-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--m-ink);
}

.box_detail .checkout-summary-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 .5rem;
    border-radius: var(--m-radius-pill);
    background-color: var(--m-primary-100);
    color: var(--m-primary-strong);
    font-size: .8125rem;
    font-weight: 600;
}

.box_detail ul.checkout-summary-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.box_detail ul.checkout-summary-list + ul.checkout-summary-list {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--m-border);
}

.box_detail ul li.checkout-summary-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin: 0;
    padding: .3125rem 0;
    font-size: .9375rem;
    line-height: 1.45;
    color: var(--m-ink-2);
}

.box_detail ul li.checkout-summary-row::after,
.box_detail ul li.checkout-summary-package::after {
    content: none;
    display: none;
}

.box_detail .checkout-summary-label {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

.box_detail .checkout-summary-value {
    flex: 0 1 auto;
    max-width: 62%;
    text-align: end;
    font-weight: 500;
    color: var(--m-ink);
    overflow-wrap: anywhere;
}

.box_detail ul li.checkout-summary-row--full {
    display: block;
    text-align: start;
    overflow-wrap: anywhere;
}

.box_detail ul li.checkout-summary-row--title,
.box_detail ul li.checkout-summary-row--header,
.box_detail ul li.checkout-summary-row--center {
    display: block;
    padding-top: .5rem;
    font-weight: 600;
    color: var(--m-ink);
    text-align: start;
    overflow-wrap: anywhere;
}

.box_detail .checkout-summary-row hr {
    margin: .25rem 0;
    border-color: var(--m-border);
}

.box_detail .checkout-summary-row--coupon .checkout-summary-value {
    color: var(--bs-success, #198754);
}

.box_detail ul li.checkout-summary-row--total {
    margin-top: .375rem;
    padding-top: .5rem;
    border-top: 1px dashed var(--m-border);
    font-weight: 600;
    color: var(--m-ink);
}

.box_detail .checkout-summary-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .25rem .75rem;
    margin-top: .875rem;
    padding-top: .875rem;
    border-top: 2px solid var(--m-border);
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--m-ink);
}

.box_detail .checkout-summary-total-value {
    margin-inline-start: auto;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--m-primary-strong);
    text-align: end;
    white-space: nowrap;
}

.box_detail .checkout-summary-total-value del {
    margin-inline-end: .375rem;
    font-size: .875rem;
    font-weight: 400;
    color: var(--m-muted);
}

.box_detail ul.checkout-summary-list--packages {
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
    overflow: hidden;
}

.box_detail ul li.checkout-summary-package {
    margin: 0;
    border: 0;
    border-bottom: 1px solid var(--m-border);
    border-radius: 0;
    background-color: transparent;
}

.box_detail ul li.checkout-summary-package:last-child {
    border-bottom: 0;
}

.box_detail .checkout-summary-package-head.accordion-button {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem .875rem;
    background-color: transparent;
    color: var(--m-ink);
    font-size: .9375rem;
    font-weight: 500;
    box-shadow: none;
    border-radius: 0;
}

.box_detail .checkout-summary-package-head.accordion-button:not(.collapsed) {
    background-color: var(--m-surface-2);
    color: var(--m-ink);
    box-shadow: inset 0 -1px 0 var(--m-border);
}

.box_detail .checkout-summary-package-head.accordion-button::after {
    flex-shrink: 0;
    margin-inline-start: 0;
    width: 1rem;
    height: 1rem;
    background-size: 1rem;
}

.box_detail .checkout-summary-package-name {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: .125rem;
    min-width: 0;
    text-align: start;
    overflow-wrap: anywhere;
}

.box_detail .checkout-summary-package-name strong {
    font-weight: 600;
}

.box_detail .checkout-summary-package-name small {
    font-size: .8125rem;
    color: var(--m-muted);
}

.box_detail .checkout-summary-package-price {
    flex: 0 0 auto;
    font-weight: 600;
    white-space: nowrap;
}

.box_detail ul.checkout-summary-list--inner {
    padding: .5rem .875rem .75rem;
}

@media (max-width: 575.98px) {
    .box_detail .checkout-summary-value {
        max-width: 55%;
    }

    .box_detail .checkout-summary-value:has(.taxi-summary-car) {
        max-width: 72%;
    }

    .box_detail .taxi-summary-car {
        gap: .5rem;
    }

    .box_detail .taxi-summary-car img {
        width: 52px;
        height: 36px;
    }

    .box_detail .checkout-summary-total-value {
        font-size: 1rem;
    }
}

.boxPersons {
    margin-bottom: 30px;
}

.boxPersons .person-box-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .75rem;
}

.boxPersons .person-box-title {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--m-ink);
}

.boxPersons .person-box-title i {
    color: var(--m-primary);
}

.boxPersons .person-box-count {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 .5rem;
    font-size: .8125rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background-color: var(--m-primary);
    border-radius: var(--m-radius-pill);
}

.boxPersons ul.cbp_tmtimeline {
    display: flex;
    flex-direction: column;
    gap: .625rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.boxPersons .cbp_tmtimeline::before,
.boxPersons .cbp_tmtimeline > li .cbp_tmlabel::after {
    content: none;
    display: none;
}

.boxPersons .cbp_tmtimeline > li {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    min-width: 0;
    padding: .75rem .875rem;
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
    box-shadow: var(--m-shadow-sm);
    transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.boxPersons .cbp_tmtimeline > li:hover {
    border-color: var(--m-border-strong);
    box-shadow: var(--m-shadow-md);
}

.boxPersons .cbp_tmtimeline > li.active {
    background-color: var(--m-primary-50);
    border-color: var(--m-primary-border);
}

.boxPersons .cbp_tmtimeline > li .cbp_tmicon {
    position: static;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    margin: 0;
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1;
    color: var(--m-primary);
    background-color: var(--m-primary-100);
    border-radius: 50%;
    box-shadow: none;
    float: none;
}

.boxPersons .cbp_tmtimeline > li.active .cbp_tmicon {
    color: #fff;
    background-color: var(--m-primary);
}

.boxPersons .cbp_tmtimeline > li .cbp_tmlabel {
    display: flex;
    flex: 1 1 auto;
    align-items: flex-start;
    gap: .5rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: none;
    border-radius: 0;
}

.boxPersons .person-card-info {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    min-height: 2.5rem;
}

.boxPersons .person-card-info .title {
    overflow: hidden;
    font-size: .9375rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--m-ink);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.boxPersons .person-card-name {
    display: flex;
    align-items: center;
    gap: .375rem;
    min-width: 0;
}

.boxPersons .person-card-name .title {
    flex: 0 1 auto;
    min-width: 0;
}

.boxPersons .person-card-lead,
.form_title .person-lead-hint {
    align-items: center;
    gap: .25rem;
    padding: .1875rem .5rem;
    font-size: .6875rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    color: #fff;
    text-transform: uppercase;
    white-space: nowrap;
    background-color: var(--m-primary);
    border-radius: var(--m-radius-pill);
}

.boxPersons .person-card-lead {
    display: none;
    flex: 0 1 auto;
    max-width: 55%;
    min-width: 0;
    overflow: hidden;
}

.boxPersons .person-card-lead span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.boxPersons .person-card-lead i,
.form_title .person-lead-hint i {
    flex: 0 0 auto;
    font-size: .625rem;
}

.boxPersons .cbp_tmtimeline > li:first-child .person-card-lead {
    display: inline-flex;
}

.form_title .person-lead-hint {
    display: inline-flex;
    margin-inline-start: .5rem;
    vertical-align: middle;
}

.boxPersons .person-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .375rem;
    min-width: 0;
    margin-top: .375rem;
}

.boxPersons .person-card-meta:empty {
    display: none;
}

.boxPersons .person-card-detail {
    display: inline-flex;
    align-items: baseline;
    gap: .25rem;
    max-width: 100%;
    min-width: 0;
    padding: .125rem .5rem;
    font-size: .75rem;
    line-height: 1.4;
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-pill);
}

.boxPersons .cbp_tmtimeline > li.active .person-card-detail {
    background-color: var(--m-surface);
}

.boxPersons .person-card-detail-label {
    flex: 0 0 auto;
    color: var(--m-muted);
}

.boxPersons .person-card-detail-value {
    overflow: hidden;
    min-width: 0;
    font-weight: 600;
    color: var(--m-ink-2);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.boxPersons .person-card-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .375rem;
    min-height: 2.5rem;
}

.boxPersons .person-card-editing {
    display: none;
    align-items: center;
    padding: .1875rem .5rem;
    font-size: .6875rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    color: var(--m-primary);
    text-transform: uppercase;
    background-color: var(--m-surface);
    border: 1px solid var(--m-primary-border);
    border-radius: var(--m-radius-pill);
    white-space: nowrap;
}

.boxPersons .cbp_tmtimeline > li.active .person-card-editing {
    display: inline-flex;
}

.boxPersons .person-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    font-size: .875rem;
    line-height: 1;
    color: var(--m-ink-2);
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-sm);
    cursor: pointer;
    transition: color var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease);
}

.boxPersons .person-card-btn:hover {
    color: var(--m-primary);
    background-color: var(--m-primary-50);
    border-color: var(--m-primary-border);
}

.boxPersons .person-card-btn--danger:hover {
    color: #fff;
    background-color: #dc3545;
    border-color: #dc3545;
}

.boxPersons .person-card-btn:focus-visible {
    outline: 2px solid var(--m-primary);
    outline-offset: 2px;
}

/*-------- 8b. Result (success) page --------*/
#successMain .success-card {
    margin-bottom: 1.25rem;
}

#successMain .success-notice {
    font-size: .875rem;
    line-height: 1.55;
    color: var(--m-ink-2);
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-inline-start: 3px solid var(--theme-color);
    border-radius: var(--m-radius-sm);
    padding: .75rem 1rem;
    margin-bottom: 1.25rem;
}

#successMain .success-notice-icon {
    color: var(--theme-color);
    margin-top: .2rem;
}

#successMain .success-notice p {
    margin-bottom: 0;
}

#successMain .success-notice a {
    color: var(--theme-color);
}

#successMain .success-head {
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--m-border);
}

#successMain .success-dear p,
#successMain .success-text p:last-child {
    margin-bottom: 0;
}

#successMain .success-text {
    margin-bottom: 1rem;
}

#successMain .success-download {
    white-space: nowrap;
}

#successMain .success-details {
    margin: 0;
    row-gap: .9rem;
}

#successMain .success-detail {
    padding-inline-end: 1rem;
}

#successMain .success-detail dt {
    font-size: .75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--m-muted);
    margin-bottom: .15rem;
}

#successMain .success-detail dd {
    font-size: .95rem;
    font-weight: 600;
    color: var(--m-ink);
    margin-bottom: 0;
    word-break: break-word;
}

#successMain .success-status {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    color: #1a56db;
    background-color: #e1effe;
    border-radius: 12px;
    padding: 4px 12px;
}

#successMain .success-status * {
    color: inherit !important;
}

#successMain .success-status-success {
    color: #046c4e;
    background-color: #def7ec;
}

#successMain .success-status-warning {
    color: #8e4b10;
    background-color: #fdf6b2;
}

#successMain .success-status-danger {
    color: #c81e1e;
    background-color: #fde8e8;
}

#successMain .success-codes {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--m-border);
}

#successMain .success-section-title {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    color: #1f2937;
    text-align: center;
    margin-bottom: 1rem;
}

#successMain .success-section-title * {
    font-size: inherit !important;
    font-weight: 400 !important;
    color: inherit !important;
}

#successMain .success-section-title p {
    margin: 0 0 8px 0 !important;
}

#successMain .success-section-title p:last-child {
    margin-bottom: 0 !important;
}

#successMain .success-code {
    width: 324px;
    max-width: 100%;
    margin: 0 auto;
    border: 1px dashed #c4cad3;
    border-radius: 12px;
    background-color: #fff;
    padding: 36px 20px 20px;
    text-align: center;
}

#successMain .success-code-title {
    font-size: 12px;
    color: #1f2937;
    margin-bottom: 8px;
}

#successMain .success-qr {
    width: 206px;
    max-width: 100%;
    height: auto;
    background-color: #fff;
    padding: 0;
    border-radius: 0 !important;
    margin: 0 auto;
}

#successMain .success-code-value {
    font-family: 'DejaVu Sans Mono', SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    color: #1f2937;
    letter-spacing: .02em;
    word-break: break-all;
    margin-top: 24px;
}

#successMain .success-code-admits,
#successMain .success-code-supplier {
    font-size: 11px;
    line-height: 1.35;
    color: #6b7280;
}

#successMain .success-code-logo {
    display: block;
    width: 120px;
    max-width: 100%;
    height: auto;
    margin: 8px auto 0;
}

#successMain .success-extra h1,
#successMain .success-extra h2,
#successMain .success-extra h3,
#successMain .success-extra h4,
#successMain .success-extra p {
    text-align: start !important;
}

#successMain .success-extra h1,
#successMain .success-extra h2,
#successMain .success-extra h3,
#successMain .success-extra h4 {
    font-size: 1rem !important;
    font-weight: 700;
    margin-bottom: .75rem;
}

#successMain .success-extra ul {
    padding-inline-start: 1.1rem;
    margin-bottom: 0;
}

#successMain .success-extra li + li {
    margin-top: .4rem;
}

@media (max-width: 575.98px) {
    #successMain .success-download {
        width: 100%;
    }

    #successMain .success-qr {
        width: 180px;
    }
}

/*-------- 8c. Document list page --------*/
#documentMain .document-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1.25rem;
    transition: box-shadow var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease);
}

#documentMain .document-card:hover {
    border-color: var(--m-primary-border);
    box-shadow: var(--m-shadow-md);
}

#documentMain .document-card--official {
    border-inline-start: 4px solid var(--theme-color);
    background-color: var(--m-primary-50);
}

#documentMain .document-card-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: var(--m-radius-sm);
    background-color: var(--m-primary-100);
    color: var(--theme-color);
    font-size: 1.375rem;
}

#documentMain .document-card-body {
    flex: 1 1 auto;
    min-width: 0;
}

#documentMain .document-badge {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    margin-bottom: .625rem;
    padding: .3125rem .625rem;
    border-radius: var(--m-radius-pill);
    background-color: var(--theme-color);
    color: #fff;
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .02em;
}

#documentMain .document-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
    gap: .75rem 1rem;
    margin: 0;
}

#documentMain .document-field dt {
    font-size: .75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--m-muted);
    margin-bottom: .15rem;
}

#documentMain .document-field dd {
    font-size: .95rem;
    font-weight: 600;
    color: var(--m-ink);
    margin-bottom: 0;
    overflow-wrap: anywhere;
}

#documentMain .document-card-actions {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

#documentMain .document-download {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 2.75rem;
    padding-inline: 1.25rem;
    font-weight: 600;
    white-space: nowrap;
}

#documentMain .document-download:focus-visible {
    outline: 3px solid var(--m-primary-glow);
    outline-offset: 2px;
    box-shadow: none;
}

#documentMain .document-empty {
    text-align: center;
    padding: 3rem 1.5rem;
}

#documentMain .document-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    margin-bottom: 1rem;
    border-radius: 50%;
    background-color: var(--m-primary-100);
    color: var(--theme-color);
    font-size: 1.75rem;
}

#documentMain .document-empty-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--m-ink);
    margin-bottom: .375rem;
}

#documentMain .document-empty-text {
    color: var(--m-muted);
    margin-bottom: 0;
}

#documentMain .document-summary {
    padding: 1.5rem;
}

@media (min-width: 992px) {
    #documentMain .document-aside {
        align-self: flex-start;
        position: sticky;
        top: 100px;
    }
}

#documentMain .document-summary-title {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--m-ink);
}

#documentMain .document-summary-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem 1rem;
    margin-bottom: 1rem;
    border-radius: var(--m-radius-sm);
    background-color: var(--m-primary-50);
    color: var(--m-ink-2);
    font-weight: 500;
}

#documentMain .document-summary-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 .5rem;
    border-radius: var(--m-radius-pill);
    background-color: var(--theme-color);
    color: #fff;
    font-size: .9375rem;
    font-weight: 700;
}

#documentMain .document-summary-list {
    margin: 0;
}

#documentMain .document-summary-row {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .5rem 0;
    border-bottom: 1px solid var(--m-border);
    font-size: .9375rem;
}

#documentMain .document-summary-row:last-child {
    border-bottom: 0;
}

#documentMain .document-summary-row dt {
    font-weight: 400;
    color: var(--m-muted);
}

#documentMain .document-summary-row dd {
    margin: 0;
    font-weight: 600;
    color: var(--m-ink);
    text-align: end;
    overflow-wrap: anywhere;
    min-width: 0;
}

#documentMain .document-summary-info {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin-top: 1rem;
    padding: .75rem 1rem;
    border: 1px solid var(--m-border);
    border-inline-start: 3px solid var(--theme-color);
    border-radius: var(--m-radius-sm);
    background-color: var(--m-surface-2);
    font-size: .8125rem;
    line-height: 1.55;
    color: var(--m-ink-2);
}

#documentMain .document-summary-info i {
    color: var(--theme-color);
    margin-top: .2rem;
}

@media (max-width: 575.98px) {
    #documentMain > .container {
        padding-inline: 16px;
    }

    #documentMain .document-card {
        flex-wrap: wrap;
        align-items: flex-start;
        padding: 1rem;
    }

    #documentMain .document-card-body {
        flex-basis: calc(100% - 4rem);
    }

    #documentMain .document-card-actions {
        flex-basis: 100%;
    }

    #documentMain .document-download {
        width: 100%;
    }

    #documentMain .document-summary {
        padding: 1.25rem 1rem;
    }
}

/*-------- 8d. Taxi booking (BookTaxiNow / MeetGreet) --------*/
.taxi-booking #map {
    width: 100%;
    height: 380px;
    margin-top: .75rem;
    border: 1px solid var(--m-border-strong);
    border-radius: var(--m-radius-sm);
    background-color: var(--m-surface-2);
    overflow: hidden;
}

.taxi-map-toggle {
    margin-top: .5rem;
}

.taxi-cars {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 0 0 1rem;
}

.taxi-cars > .invalid-feedback {
    display: block;
    grid-column: 1 / -1;
    margin: 0;
}

.taxi-cars > .taxi-car {
    position: relative;
    display: flex;
    flex-direction: column;
    width: auto;
    max-width: none;
    height: 100%;
    margin: 0;
    padding: 1rem .75rem;
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
    background-color: var(--m-surface);
    box-shadow: var(--m-shadow-xs);
    color: var(--m-ink-2);
    font: inherit;
    text-align: center;
    cursor: pointer;
    overflow: visible;
    transform: none;
    transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease);
}

.taxi-cars > .taxi-car:focus-visible,
.taxi-cars > .taxi-car:has(input:focus-visible) {
    outline: 2px solid var(--m-primary);
    outline-offset: 2px;
}

.taxi-cars > .taxi-car.selected,
.taxi-cars > .taxi-car:has(input:checked) {
    border-color: var(--m-primary);
    background-color: var(--m-primary-50);
    box-shadow: 0 0 0 3px var(--m-primary-ring);
}

.taxi-cars.error-validation > .taxi-car {
    border-color: var(--bs-danger, #dc3545);
}

.taxi-car .form-group {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.taxi-car-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    width: 100%;
}

.taxi-car-name {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--m-ink);
}

.taxi-car-media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 84px;
}

.taxi-car-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.taxi-car-specs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .375rem;
}

.taxi-car-chip {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    padding: .25rem .625rem;
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-pill);
    background-color: var(--m-surface-2);
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--m-ink);
    white-space: nowrap;
}

.taxi-car .taxi-car-chip i,
.taxi-summary-car .taxi-car-chip i {
    margin: 0;
    font-size: .8125rem;
    color: var(--m-muted);
}

.taxi-car-desc {
    font-size: .75rem;
    line-height: 1.45;
    color: var(--m-muted);
}

.taxi-car-check {
    position: absolute;
    top: .5rem;
    inset-inline-end: .5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background-color: var(--m-primary);
    opacity: 0;
    transform: scale(.6);
    transition: opacity var(--m-dur) var(--m-ease), transform var(--m-dur) var(--m-ease);
}

.taxi-car .taxi-car-check i {
    margin: 0;
    font-size: .75rem;
    color: #fff;
}

.taxi-car.selected .taxi-car-check,
.taxi-car:has(input:checked) .taxi-car-check {
    opacity: 1;
    transform: scale(1);
}

@media (hover: hover) {
    .taxi-cars > .taxi-car:hover {
        border-color: var(--m-primary-border);
        box-shadow: var(--m-shadow-md);
        transform: none;
    }

    .taxi-cars > .taxi-car.selected:hover,
    .taxi-cars > .taxi-car:has(input:checked):hover {
        border-color: var(--m-primary);
        box-shadow: 0 0 0 3px var(--m-primary-ring), var(--m-shadow-md);
    }
}

@media (min-width: 768px) and (max-width: 991.98px), (min-width: 1200px) {
    .taxi-cars {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .taxi-cars {
        gap: .5rem;
    }

    .taxi-cars > .taxi-car {
        padding: .75rem .5rem;
    }

    .taxi-car-media {
        height: 64px;
    }

    .taxi-booking #map {
        height: 300px;
    }

    .taxi-map-toggle {
        width: 100%;
    }
}

@media (min-width: 992px) {
    .taxi-aside {
        align-self: flex-start;
        position: sticky;
        top: 100px;
    }
}

.taxi-summary .taxi-summary-title {
    margin: 0 0 .5rem;
    padding-bottom: .625rem;
    border-bottom: 1px solid var(--m-border);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--m-ink);
}

.taxi-summary ul.taxi-summary-list {
    margin: 0 0 1.25rem;
    padding: 0;
    list-style: none;
}

.taxi-summary ul.taxi-summary-list > li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    margin: 0;
    padding: .5rem 0;
    border-bottom: 1px dashed var(--m-border);
    font-size: .875rem;
}

.taxi-summary ul.taxi-summary-list > li:last-child {
    border-bottom: 0;
}

.taxi-summary ul.taxi-summary-list > li::after {
    content: none;
}

.taxi-summary .taxi-summary-label {
    flex: 0 0 auto;
    font-weight: 500;
    color: var(--m-muted);
}

.taxi-summary .taxi-summary-value {
    min-width: 0;
    font-weight: 600;
    color: var(--m-ink);
    text-align: end;
    overflow-wrap: anywhere;
}

.taxi-summary .taxi-summary-row.is-empty .taxi-summary-value {
    font-weight: 400;
    color: var(--m-muted);
}

.taxi-summary ul.taxi-summary-list > li.taxi-summary-row--car:not(.is-empty) {
    flex-direction: column;
    align-items: stretch;
    gap: .5rem;
}

.taxi-summary .taxi-summary-row--car:not(.is-empty) .taxi-summary-value {
    text-align: start;
}

.taxi-summary .taxi-summary-row.is-empty .taxi-summary-car,
.taxi-summary .taxi-summary-row:not(.is-empty) .taxi-summary-empty {
    display: none;
}

.box_detail .taxi-summary-car,
.box_detail .taxi-summary-car span {
    float: none;
}

.box_detail ul li.checkout-summary-row:has(.taxi-summary-car) {
    align-items: center;
}

.taxi-summary-car {
    display: flex;
    align-items: center;
    gap: .75rem;
}

.taxi-summary-car img {
    flex: 0 0 auto;
    width: 64px;
    height: 44px;
    border-radius: var(--m-radius-xs);
    background-color: var(--m-surface-2);
    object-fit: contain;
}

.taxi-summary-car .taxi-summary-car-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .25rem;
    min-width: 0;
    text-align: start;
}

.taxi-summary-car .taxi-summary-car-name {
    font-weight: 700;
    color: var(--m-ink);
}

.taxi-summary-car .taxi-car-specs {
    justify-content: flex-start;
}

.taxi-summary-car .taxi-car-chip {
    padding: .125rem .5rem;
    font-size: .75rem;
}

.taxi-aside .step-summary li:has(.taxi-summary-car) > span {
    display: block;
    float: none;
    margin-top: .375rem;
}

.taxi-aside .step-summary {
    margin-bottom: 0;
    border-bottom: 0;
    border-end-start-radius: 0;
    border-end-end-radius: 0;
    box-shadow: none;
}

.taxi-aside .step-summary + .box_detail {
    padding-top: 0;
    border-top: 0;
    border-start-start-radius: 0;
    border-start-end-radius: 0;
}

.meetgreet-option {
    display: flex;
}

.meetgreet-option > .form-group {
    flex: 1;
    display: flex;
    margin-bottom: 1rem;
}

.meetgreet-option .control-label {
    display: none;
}

.meetgreet-option .controls {
    flex: 1;
    display: flex;
}

.meetgreet-option .form-check {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 100%;
    margin: 0;
    padding: .875rem 1rem;
    border: 1px solid var(--m-border-strong);
    border-radius: var(--m-radius-sm);
    background-color: var(--m-surface);
    box-shadow: var(--m-shadow-xs);
    cursor: pointer;
    transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease);
}

.meetgreet-option .form-check:hover {
    border-color: var(--m-primary-border);
}

.meetgreet-option .form-check-input {
    flex-shrink: 0;
    float: none;
    margin: 0;
    cursor: pointer;
}

.meetgreet-option .form-check-label {
    color: var(--m-ink-2);
    font-weight: 600;
    line-height: 1.35;
    cursor: pointer;
}

.meetgreet-option .form-check-label::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
}

.meetgreet-option .form-check:has(.form-check-input:checked) {
    border-color: var(--m-primary);
    background-color: var(--m-primary-50);
    box-shadow: 0 0 0 3px var(--m-primary-ring);
}

.meetgreet-option .form-check:has(.form-check-input:checked) .form-check-label {
    color: var(--m-ink);
}

.meetgreet-option .form-check:has(.form-check-input:focus-visible) {
    outline: 2px solid var(--m-primary);
    outline-offset: 2px;
}

/*-------- 9. Tables, pagination, badges, alerts, navs --------*/
.table {
    --bs-table-border-color: var(--m-border);
}

.table > thead:not([class*="table-"]) {
    --bs-table-bg: var(--m-surface-2);
}

.table > thead th {
    font-weight: 600;
    color: var(--m-ink-2);
}

.table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: var(--m-primary-50);
}

.table-responsive {
    border-radius: var(--m-radius-sm);
}

.pagination {
    --bs-pagination-color: var(--m-ink-2);
    --bs-pagination-border-color: var(--m-border);
    --bs-pagination-hover-color: var(--m-primary);
    --bs-pagination-hover-bg: var(--m-primary-50);
    --bs-pagination-hover-border-color: var(--m-primary-200);
    --bs-pagination-focus-color: var(--m-primary);
    --bs-pagination-focus-bg: var(--m-primary-50);
    --bs-pagination-focus-box-shadow: 0 0 0 .25rem var(--m-primary-ring);
    --bs-pagination-active-bg: var(--m-primary);
    --bs-pagination-active-border-color: var(--m-primary);
    gap: .375rem;
    flex-wrap: wrap;
}

.pagination .page-item .page-link {
    border-radius: var(--m-radius-sm);
    margin-inline-start: 0;
    min-width: 2.375rem;
    text-align: center;
    font-weight: 500;
}

.nav-pills {
    --bs-nav-pills-link-active-bg: var(--m-primary);
}

.badge {
    font-weight: 600;
    letter-spacing: .01em;
}

.alert {
    border-radius: var(--m-radius-md);
}

.list-group {
    --bs-list-group-border-color: var(--m-border);
}

.progress {
    border-radius: var(--m-radius-pill);
}

/*-------- 10. Modals, popups, notifications, cookie --------*/
.modal {
    --bs-modal-border-radius: var(--m-radius-lg);
    --bs-modal-inner-border-radius: calc(var(--m-radius-lg) - 1px);
    --bs-modal-border-color: transparent;
    --bs-modal-header-border-color: var(--m-border);
    --bs-modal-footer-border-color: var(--m-border);
}

.modal-content {
    box-shadow: var(--m-shadow-xl);
}

.offcanvas {
    --bs-offcanvas-border-color: var(--m-border);
}

#modal-dialog {
    border-radius: var(--m-radius-lg);
}

.small-dialog-header {
    border-radius: var(--m-radius-lg) var(--m-radius-lg) 0 0;
}

.lobibox-backdrop {
    background-color: rgba(15, 23, 42, .55);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

.lobibox.lobibox {
    --lb-accent: var(--m-primary);
    border: 0;
    border-radius: var(--m-radius-lg);
    overflow: hidden;
    background-color: var(--m-surface);
    box-shadow: var(--m-shadow-xl);
}

.lobibox.lobibox::before {
    content: "";
    display: block;
    height: 4px;
    background-color: var(--lb-accent);
}

.lobibox.lobibox-error { --lb-accent: #d92d20; }
.lobibox.lobibox-success { --lb-accent: #079455; }
.lobibox.lobibox-warning { --lb-accent: #dc6803; }
.lobibox.lobibox-info { --lb-accent: #1570ef; }

.lobibox.lobibox .lobibox-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.125rem 1.5rem .25rem;
    color: var(--m-ink);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.35;
    background-color: transparent;
}

.lobibox.lobibox .lobibox-header .btn-close {
    flex: none;
    float: none;
    width: 2rem;
    height: 2rem;
    margin: 0 -.5rem 0 0;
    padding: 0;
    background-size: .75rem;
    border-radius: var(--m-radius-pill);
    opacity: .45;
    text-shadow: none;
    transition: opacity var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease);
}

html[dir="rtl"] .lobibox.lobibox .lobibox-header .btn-close {
    margin: 0 0 0 -.5rem;
}

.lobibox.lobibox .lobibox-header .btn-close:hover {
    opacity: .85;
    background-color: var(--m-surface-2);
}

.lobibox.lobibox .lobibox-body {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1.5rem 1.375rem;
    color: var(--m-ink-2);
    font-size: .9375rem;
    line-height: 1.6;
    background-color: transparent;
}

.lobibox.lobibox .lobibox-body .lobibox-icon-wrapper {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    font-size: 1.5rem;
    border-radius: var(--m-radius-pill);
    background-color: color-mix(in srgb, var(--lb-accent) 12%, #fff);
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--lb-accent) 6%, #fff);
}

.lobibox.lobibox .lobibox-body .lobibox-icon-wrapper .lobibox-icon {
    display: block;
    color: var(--lb-accent);
}

.lobibox.lobibox .lobibox-body .lobibox-body-text-wrapper {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
}

.lobibox.lobibox .lobibox-body .lobibox-input {
    width: 100%;
    padding: .625rem .875rem;
    color: var(--m-ink);
    border: 1px solid var(--m-border-strong);
    border-radius: var(--m-radius-sm);
    outline: 0;
    transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.lobibox.lobibox .lobibox-body .lobibox-input:focus {
    border-color: var(--m-primary-border);
    box-shadow: 0 0 0 4px var(--m-primary-ring);
}

.lobibox.lobibox .lobibox-footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
    padding: .875rem 1.5rem;
    background-color: var(--m-surface-2);
    border-top: 1px solid var(--m-border);
}

.lobibox.lobibox .lobibox-footer > * {
    margin: 0;
}

.lobibox.lobibox .lobibox-footer .lobibox-btn {
    min-width: 6.5rem;
    padding: .5625rem 1.25rem;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.4;
    color: #fff;
    background-color: var(--m-primary);
    border: 1px solid var(--m-primary);
    border-radius: var(--m-radius-pill);
    box-shadow: var(--m-shadow-xs);
    transition: background-color var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.lobibox.lobibox .lobibox-footer .lobibox-btn:hover,
.lobibox.lobibox .lobibox-footer .lobibox-btn:focus {
    color: #fff;
    background-color: var(--m-primary-strong);
    border-color: var(--m-primary-strong);
    box-shadow: 0 0 0 4px var(--m-primary-ring);
}

.lobibox.lobibox .lobibox-footer .lobibox-btn.lobibox-btn-cancel,
.lobibox.lobibox .lobibox-footer .lobibox-btn.lobibox-btn-no {
    color: var(--m-ink-2);
    background-color: var(--m-surface);
    border-color: var(--m-border-strong);
}

.lobibox.lobibox .lobibox-footer .lobibox-btn.lobibox-btn-cancel:hover,
.lobibox.lobibox .lobibox-footer .lobibox-btn.lobibox-btn-cancel:focus,
.lobibox.lobibox .lobibox-footer .lobibox-btn.lobibox-btn-no:hover,
.lobibox.lobibox .lobibox-footer .lobibox-btn.lobibox-btn-no:focus {
    color: var(--m-ink);
    background-color: var(--m-surface-2);
    border-color: var(--m-border-strong);
    box-shadow: 0 0 0 4px rgba(16, 24, 40, .06);
}

@media (max-width: 575.98px) {
    .lobibox.lobibox .lobibox-footer .lobibox-btn {
        flex: 1 1 0;
    }
}

.lobibox-notify {
    border-radius: var(--m-radius-md);
    overflow: hidden;
    box-shadow: var(--m-shadow-lg);
}

.cookie-bar-container .card {
    --bs-card-border-radius: var(--m-radius-lg);
    --bs-card-inner-border-radius: calc(var(--m-radius-lg) - 1px);
}

/*-------- 11. Footer --------*/
footer {
    background-color: var(--m-footer-bg);
}

footer [class*="col"] > b {
    display: inline-block;
    color: #fff;
    font-size: .9375rem;
    letter-spacing: .01em;
}

footer ul li a {
    opacity: .72;
}

footer ul li a:hover {
    opacity: 1;
    text-shadow: none;
}

footer hr {
    border-color: rgba(255, 255, 255, .12);
}

ul#footer-selector {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1rem;
    float: left;
    margin-inline-end: 1rem;
}

html[dir="rtl"] ul#footer-selector {
    float: right;
}

ul#footer-selector > li,
ul#footer-selector > li:last-child {
    float: none;
    margin: 0;
}

ul#footer-selector .footer-select .footer-select-toggle {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    height: 2.5rem;
    padding: 0 .9rem;
    color: #fff;
    font-size: .875rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    background-color: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: var(--m-radius-pill);
    opacity: 1;
    transition: background-color var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease);
}

ul#footer-selector .footer-select .footer-select-toggle:hover,
ul#footer-selector .footer-select .footer-select-toggle[aria-expanded="true"] {
    color: #fff;
    background-color: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .3);
}

ul#footer-selector .footer-select .footer-select-toggle::after {
    content: "";
    display: inline-block;
    margin: 0 0 0 .1rem;
    border: 0;
    border-top: .3em solid currentColor;
    border-inline: .3em solid transparent;
    opacity: .6;
}

ul#footer-selector .footer-select .footer-select-toggle[aria-expanded="true"]::after {
    transform: rotate(180deg);
}

ul#footer-selector .footer-select-symbol {
    min-width: 1.25rem;
    font-weight: 700;
    text-align: center;
    color: color-mix(in srgb, var(--m-primary) 45%, #fff);
}

ul#footer-selector .footer-select-menu {
    min-width: 12rem;
    max-height: min(60vh, 22rem);
    margin-bottom: .5rem !important;
    padding: .375rem;
    overflow-y: auto;
    background-color: color-mix(in srgb, var(--m-footer-bg) 82%, #fff);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: var(--m-radius-md);
    box-shadow: var(--m-shadow-xl);
    scrollbar-color: rgba(255, 255, 255, .25) transparent;
}

ul#footer-selector .footer-select-grid.show {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .125rem;
    min-width: 15rem;
}

ul#footer-selector .footer-select-menu li {
    float: none;
    width: auto;
    margin: 0;
}

ul#footer-selector .footer-select-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .5rem .7rem;
    color: rgba(255, 255, 255, .82);
    font-size: .875rem;
    line-height: 1.3;
    border-radius: 8px;
    opacity: 1;
}

ul#footer-selector .footer-select-menu .dropdown-item:hover,
ul#footer-selector .footer-select-menu .dropdown-item:focus {
    color: #fff;
    background-color: rgba(255, 255, 255, .08);
    text-shadow: none;
}

ul#footer-selector .footer-select-menu .dropdown-item.active {
    color: #fff;
    font-weight: 600;
    background-color: rgba(255, 255, 255, .14);
}

ul#footer-selector .footer-select-menu .dropdown-item.active::after {
    content: "\f00c";
    margin-inline-start: auto;
    padding-inline-start: .5rem;
    font-family: "Font Awesome 7 Free", "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
    font-size: .7rem;
    font-weight: 900;
}

html[dir="rtl"] ul#footer-selector .footer-select .footer-select-toggle::after {
    margin: 0 .1rem 0 0;
}

#newsletter input[type=email] {
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: var(--m-radius-sm);
    padding-inline-start: 15px;
    padding-inline-end: 7.5rem;
    background-color: rgba(255, 255, 255, .07);
}

#newsletter input[type=email]:focus {
    border-color: rgba(255, 255, 255, .28);
    background-color: rgba(255, 255, 255, .1);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .08);
}

#newsletter input[type=email]::placeholder {
    color: rgba(255, 255, 255, .5);
}

footer #submit-newsletter {
    right: auto;
    inset-inline-end: 0;
    border-radius: 0;
    border-start-end-radius: var(--m-radius-sm);
    border-end-end-radius: var(--m-radius-sm);
}

footer #submit-newsletter:hover {
    background-color: var(--m-primary-strong);
}

ul#footer-selector .styled-select {
    border-radius: 8px;
}

#toTop {
    box-shadow: var(--m-shadow-lg);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    transition: background-color var(--m-dur) var(--m-ease);
}

/*-------- 12. Account & B2B --------*/
#tab-section.hero_single {
    height: auto;
}

#tab-section.hero_single > .wrapper {
    min-height: 91px;
    background: linear-gradient(var(--theme-color-alternate, var(--theme-color)), var(--theme-color-alternate, var(--theme-color))), var(--theme-color) !important;
}

@media (max-width: 991.98px) {
    #tab-section.hero_single > .wrapper {
        min-height: 56px;
    }
}

.m-page {
    padding-block: 2.5rem 3.5rem;
}

.m-page,
.m-scope {
    --bs-link-color: var(--m-primary);
    --bs-link-hover-color: var(--m-primary-strong);
}

:is(.m-page, .m-scope) .text-primary {
    color: var(--m-primary) !important;
}

:is(.m-page, .m-scope) .link-primary {
    color: var(--m-primary) !important;
    text-decoration-color: currentColor !important;
}

:is(.m-page, .m-scope) .border-primary {
    border-color: var(--m-primary) !important;
}

:is(.m-page, .m-scope) .border-primary-subtle {
    border-color: var(--m-primary-200) !important;
}

:is(.m-page, .m-scope) .progress-bar {
    background-color: var(--m-primary);
}

:is(.m-page, .m-scope) .form-label {
    margin-bottom: .4rem;
    font-size: .8125rem;
    color: var(--m-muted);
}

:is(.m-page, .m-scope) .form-select:not(.form-select-sm):not(.form-select-lg) {
    min-height: 42px;
    font-size: .875rem;
}

:is(.m-page, .m-scope) .btn:not(.btn-sm):not(.btn-lg):not(.btn-link) {
    --bs-btn-padding-y: .6rem;
    --bs-btn-padding-x: 1.1rem;
    --bs-btn-font-size: .875rem;
    --bs-btn-font-weight: 600;
}

:is(.m-page, .m-scope) .btn-outline-secondary {
    --bs-btn-color: var(--m-ink-2);
    --bs-btn-bg: var(--m-surface);
    --bs-btn-border-color: var(--m-border-strong);
    --bs-btn-hover-color: var(--m-ink);
    --bs-btn-hover-bg: var(--m-surface-2);
    --bs-btn-hover-border-color: var(--m-border-strong);
    --bs-btn-active-color: var(--m-ink);
    --bs-btn-active-bg: var(--m-border);
    --bs-btn-active-border-color: var(--m-border-strong);
}

.m-page-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    margin-bottom: 1.5rem;
}

.m-page-head > :first-child {
    flex: 1 1 18rem;
    min-width: 0;
}

.m-page-title {
    margin: 0;
    font-size: clamp(1.5rem, 1.25rem + .9vw, 1.875rem);
    font-weight: 700;
    color: var(--m-ink);
}

.m-page-sub {
    margin: .35rem 0 0;
    font-size: .9375rem;
    color: var(--m-muted);
}

.m-page-actions,
.m-panel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.m-panel {
    min-width: 0;
    padding: 1.5rem;
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-sm);
}

.m-panel + .m-panel {
    margin-top: 1.5rem;
}

.m-panel-lg {
    padding: 2rem;
}

.m-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    margin-bottom: 1.25rem;
}

.m-panel-head > :first-child {
    min-width: 0;
}

.m-panel-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--m-ink);
}

.m-panel-title-sm {
    margin-bottom: 1rem;
    font-size: .9375rem;
}

.m-panel-sub {
    margin: .25rem 0 0;
    font-size: .875rem;
    color: var(--m-muted);
}

.m-panel-foot {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--m-border);
}

.m-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .75rem 1rem;
    margin-bottom: 1.25rem;
    padding: 1rem;
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
}

.m-filter-field {
    flex: 1 1 11rem;
    max-width: 16rem;
    min-width: 0;
}

.m-filter-field.error-validation-label {
    position: relative;
}

.m-filter-field.error-validation .form-control {
    border-color: var(--bs-form-invalid-border-color, #dc3545);
}

.m-dt > thead > tr > th.control,
.m-dt > tbody > tr > td.control {
    box-sizing: border-box;
    width: 2rem !important;
    min-width: 2rem !important;
    max-width: 2rem !important;
    padding-inline: .25rem !important;
    text-align: center;
}

.m-dt > tbody > tr.child > td {
    padding: .75rem 1rem 1rem 2.5rem;
    background: var(--m-surface-2, var(--bs-tertiary-bg));
}

.m-dt ul.dtr-details {
    display: grid;
    gap: .65rem;
    width: 100%;
    margin: 0;
}

.m-dt ul.dtr-details > li {
    display: grid;
    grid-template-columns: minmax(7.5rem, 40%) 1fr;
    gap: .75rem;
    align-items: center;
    padding: 0 0 .65rem;
    border-bottom: 1px solid var(--m-border, var(--bs-border-color-translucent));
}

.m-dt ul.dtr-details > li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.m-dt .dtr-title {
    color: var(--m-muted, var(--bs-secondary-color));
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.m-dt .dtr-data {
    min-width: 0;
    overflow-wrap: anywhere;
}

.m-filter-field-wide {
    flex: 2 1 18rem;
    max-width: 26rem;
}

.m-dt > tbody > tr > td.m-col-wide {
    min-width: 18rem;
    white-space: normal;
    line-height: 1.35;
    overflow-wrap: break-word;
}

.m-dt-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
}

.m-dt-length {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.m-dt-footer > :last-child:not(.m-dt-length) {
    margin-inline-start: auto;
}

#filter-daterange {
    background-color: var(--bs-body-bg);
    cursor: pointer;
}

@media (max-width: 767.98px) {
    .m-dt-responsive {
        overflow: visible;
    }

    .m-dt {
        font-size: .9rem;
    }
}

.m-filter-field.error-validation-label > .invalid-feedback {
    display: block;
    position: absolute;
    inset-inline: 0;
    top: 100%;
    margin-top: .125rem;
    font-size: .75rem;
    line-height: 1.2;
}

.m-filter-actions {
    display: flex;
    gap: .5rem;
}

.m-note {
    margin-bottom: 1.25rem;
    padding: 1rem 1.125rem;
    font-size: .875rem;
    color: var(--m-ink-2);
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-inline-start: 3px solid var(--m-primary);
    border-radius: var(--m-radius-md);
}

.m-note-title {
    display: block;
    margin-bottom: .4rem;
    font-weight: 700;
    color: var(--m-ink);
}

.m-note ul {
    display: grid;
    gap: .3rem;
    margin: 0;
    padding-inline-start: 1.1rem;
}

.m-inset {
    padding: 1rem 1.25rem;
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
}

.m-table {
    --bs-table-bg: transparent;
    margin-bottom: 0;
    font-size: .9375rem;
    border-collapse: separate;
    border-spacing: 0;
}

.m-table > thead > tr > th {
    padding: .7rem .75rem;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
    vertical-align: middle;
    color: var(--m-muted);
    background-color: var(--m-surface-2);
    border-bottom: 0;
}

html[dir="rtl"] .m-table > thead > tr > th {
    letter-spacing: 0;
}

.m-table > thead > tr > th:first-child {
    border-start-start-radius: var(--m-radius-sm);
    border-end-start-radius: var(--m-radius-sm);
}

.m-table > thead > tr > th:last-child {
    border-start-end-radius: var(--m-radius-sm);
    border-end-end-radius: var(--m-radius-sm);
}

.m-table > tbody > tr > td {
    padding: .9rem .75rem;
    vertical-align: middle;
    color: var(--m-ink-2);
    border-bottom: 1px solid var(--m-border);
}

.m-table > tbody > tr:last-child > td {
    border-bottom: 0;
}

.m-table > tbody > tr:hover > * {
    --bs-table-bg-state: var(--m-primary-50);
}

.m-table > tbody > tr.m-row-detail:hover > *,
.m-table > tbody > tr:hover > .m-empty-cell,
.m-table > tbody > tr:hover > .dataTables_empty {
    --bs-table-bg-state: transparent;
}

.m-table .m-num {
    text-align: end;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.m-table .m-strong {
    font-weight: 600;
    color: var(--m-ink);
}

.m-table code {
    font-size: .8125rem;
    color: var(--m-ink-2);
}

table.dataTable.m-table.dtr-column > tbody > tr > td.control::before {
    width: 18px;
    height: 18px;
    margin-top: -10px;
    margin-left: -10px;
    font-family: var(--m-font);
    font-weight: 700;
    line-height: 18px;
    color: var(--m-primary);
    background-color: var(--m-surface);
    border: 1px solid var(--m-primary-border);
    box-shadow: none;
}

table.dataTable.m-table.dtr-column > tbody > tr.parent > td.control::before {
    content: "\2212";
    color: #fff;
    background-color: var(--m-primary);
    border-color: var(--m-primary);
}

.m-table > tbody > tr > td.m-empty-cell {
    padding: 1rem 0 0;
    border-bottom: 0;
}

.m-table > tbody > tr > td.dataTables_empty {
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--m-muted);
    background-color: var(--m-surface-2);
    border: 1px dashed var(--m-border-strong);
    border-radius: var(--m-radius-md);
}

.m-table-striped {
    --m-table-stripe-bg: var(--m-surface-2);
}

.m-table-striped > tbody > tr:nth-child(even of :not(.m-row-detail, .child)) > :not(.m-empty-cell, .dataTables_empty),
.m-table-striped > tbody > tr:nth-child(even of :not(.m-row-detail, .child)) + tr:is(.m-row-detail, .child) > * {
    --bs-table-bg-type: var(--m-table-stripe-bg);
}

.m-table-striped > tbody > tr.m-row-detail:hover > * {
    --bs-table-bg-state: initial;
}

.m-pagination {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--m-border);
}

.m-pagination .pagination,
.m-pagination p {
    margin-bottom: 0;
}

.m-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--m-muted);
    background-color: var(--m-surface-2);
    border: 1px dashed var(--m-border-strong);
    border-radius: var(--m-radius-md);
}

.m-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: .5rem;
    font-size: 1.15rem;
    color: var(--m-primary);
    background-color: var(--m-primary-100);
    border-radius: 50%;
}

.m-empty-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--m-ink);
}

.m-empty-text {
    margin: 0;
    font-size: .875rem;
}

.badge.m-badge {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    padding: .38em .75em;
    font-size: .75rem;
    font-weight: 600;
    border-radius: var(--m-radius-pill);
}

.badge.m-badge::before {
    content: "";
    width: .4rem;
    height: .4rem;
    border-radius: 50%;
    background-color: currentColor;
}

.m-badge:is(.bg-success, .text-bg-success) {
    color: #067647 !important;
    background-color: #ecfdf3 !important;
}

.m-badge:is(.bg-danger, .text-bg-danger) {
    color: #b42318 !important;
    background-color: #fef3f2 !important;
}

.m-badge:is(.bg-warning, .text-bg-warning) {
    color: #b54708 !important;
    background-color: #fffaeb !important;
}

.m-badge:is(.bg-info, .text-bg-info) {
    color: #026aa2 !important;
    background-color: #f0f9ff !important;
}

.m-badge:is(.bg-primary, .text-bg-primary) {
    color: var(--m-primary) !important;
    background-color: var(--m-primary-100) !important;
}

.m-badge:is(.bg-secondary, .text-bg-secondary, .bg-dark, .text-bg-dark, .bg-light, .text-bg-light) {
    color: #344054 !important;
    background-color: #f2f4f7 !important;
}

.m-dl {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin: 0;
    font-size: .875rem;
}

.m-dl dt {
    margin: 0 0 .15rem;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--m-muted);
}

.m-dl dd {
    margin: 0 0 .75rem;
    padding-bottom: .75rem;
    border-bottom: 1px dashed var(--m-border);
    font-weight: 500;
    color: var(--m-ink);
    overflow-wrap: anywhere;
}

.m-dl dd:last-of-type,
.m-dl dd:last-child,
.m-dl dd:has(+ dt[style*="none"]) {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

html[dir="rtl"] .m-dl dt {
    letter-spacing: 0;
}

.m-tile {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    height: 100%;
    padding: .9rem 1rem;
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
}

.m-tile-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2.375rem;
    height: 2.375rem;
    color: var(--m-primary);
    background-color: var(--m-primary-100);
    border-radius: var(--m-radius-sm);
}

.m-tile-label {
    display: block;
    margin-bottom: .15rem;
    font-size: .75rem;
    font-weight: 600;
    color: var(--m-muted);
}

.m-tile-value {
    font-weight: 600;
    color: var(--m-ink);
    overflow-wrap: anywhere;
}

.m-tile-total {
    align-items: center;
    justify-content: center;
    background-color: var(--m-primary-50);
    border-color: var(--m-primary-200);
}

.m-tile-total .m-tile-value {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--m-primary);
}

.m-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
}

.m-choice {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.m-choice .form-check {
    position: relative;
    display: flex;
    margin: 0;
    padding: 0;
}

.m-choice .form-check-input {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 0;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}

.m-choice .form-check-label {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    min-width: 10rem;
    padding: .8rem 1.1rem;
    font-weight: 600;
    color: var(--m-ink-2);
    background-color: var(--m-surface);
    border: 1px solid var(--m-border-strong);
    border-radius: var(--m-radius-md);
    cursor: pointer;
    transition: border-color var(--m-dur) var(--m-ease), background-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.m-choice .form-check-label::before {
    content: "";
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    background-color: var(--m-surface);
    border: 2px solid var(--m-border-strong);
    border-radius: 50%;
    transition: border var(--m-dur) var(--m-ease);
}

.m-choice .form-check-label:hover {
    border-color: var(--m-primary-border);
}

.m-choice .form-check-input:checked + .form-check-label {
    color: var(--m-ink);
    background-color: var(--m-primary-50);
    border-color: var(--m-primary);
    box-shadow: 0 0 0 3px var(--m-primary-ring);
}

.m-choice .form-check-input:checked + .form-check-label::before {
    border: 5px solid var(--m-primary);
}

.m-choice .form-check-input:focus-visible + .form-check-label {
    outline: 2px solid var(--m-primary-border);
    outline-offset: 2px;
}

.b2b-nav {
    flex-wrap: nowrap;
    gap: .5rem;
    margin: 0 0 1.5rem;
    padding-inline: 0;
    padding-bottom: .25rem;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.b2b-nav::-webkit-scrollbar {
    display: none;
}

.b2b-nav .nav-item {
    flex: 0 0 auto;
}

.b2b-nav .nav-link {
    padding: .55rem 1.1rem;
    font-size: .9rem;
    font-weight: 600;
    white-space: nowrap;
    color: var(--m-ink-2);
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-pill);
    transition: background-color var(--m-dur) var(--m-ease), color var(--m-dur) var(--m-ease), border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.b2b-nav .nav-link:not(.active):hover,
.b2b-nav .nav-link:not(.active):focus-visible {
    color: var(--m-ink);
    background-color: var(--m-primary-50);
    border-color: var(--m-primary-200);
}

.b2b-nav .nav-link.active {
    color: #fff;
    background-color: var(--m-primary);
    border-color: var(--m-primary);
    box-shadow: 0 6px 16px -8px var(--m-primary-glow);
}

.b2b-nav .dropdown-toggle::after {
    margin-inline-start: .4rem;
    vertical-align: .15em;
}

.b2b-nav-menu {
    min-width: 12rem;
    padding: .35rem;
    text-align: start;
    background-color: var(--m-surface);
}

.b2b-nav-menu .dropdown-item {
    padding: .5rem .75rem;
    font-size: .875rem;
    font-weight: 500;
    color: var(--m-ink-2);
    border-radius: 8px;
}

.b2b-nav-menu .dropdown-item:hover,
.b2b-nav-menu .dropdown-item:focus-visible {
    color: var(--m-ink);
    background-color: var(--m-primary-50);
}

.b2b-nav-menu .dropdown-item.active,
.b2b-nav-menu .dropdown-item:active {
    color: var(--m-primary);
    font-weight: 600;
    background-color: var(--m-primary-50);
}

.b2b-balance-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.25rem 1.5rem;
    overflow: hidden;
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-sm);
}

.b2b-balance-card::before {
    content: "";
    position: absolute;
    inset-block-start: 0;
    inset-inline: 0;
    height: 3px;
    background-color: var(--m-primary);
}

.b2b-balance-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.b2b-balance-currency {
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--m-muted);
}

.b2b-balance-label {
    margin-top: 1rem;
    font-size: .8125rem;
    color: var(--m-muted);
}

.b2b-balance-value {
    margin-bottom: 1rem;
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--m-ink);
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}

.b2b-balance-value small {
    font-size: .875rem;
    font-weight: 600;
    color: var(--m-muted);
}

.b2b-balance-stats {
    display: grid;
    gap: .4rem;
    margin-top: auto;
    padding-top: .75rem;
    border-top: 1px solid var(--m-border);
}

.b2b-balance-stat {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: .85rem;
    color: var(--m-muted);
}

.b2b-balance-stat strong {
    font-weight: 600;
    color: var(--m-ink);
    font-variant-numeric: tabular-nums;
}

.b2b-secret-box code {
    word-break: break-all;
}

/* B2B lounge booking (Lounge/Views/B2B) */
.b2b-lounge-summary-line {
    margin: 0 0 1rem;
    font-size: .875rem;
    color: var(--m-muted);
}

.b2b-lounge-summary-line b {
    color: var(--m-ink);
}

.b2b-lounge-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    margin-top: .75rem;
}

.b2b-lounge-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .8rem;
    font-size: .8125rem;
    color: var(--m-ink-2);
    text-decoration: none;
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-pill);
}

.b2b-lounge-chip:hover,
.b2b-lounge-chip:focus-visible {
    color: var(--m-ink);
    background-color: var(--m-primary-50);
    border-color: var(--m-primary-200);
}

.b2b-lounge-airport {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
}

.b2b-lounge-iata {
    flex: 0 0 auto;
    padding: .2rem .5rem;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--m-primary);
    background-color: var(--m-primary-100);
    border-radius: var(--m-radius-xs);
}

.b2b-lounge-airport-name {
    min-width: 0;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--m-ink-2);
}

.b2b-lounge-airport-name small {
    display: block;
    font-weight: 400;
    color: var(--m-muted);
}

.b2b-lounge-airport.is-big .b2b-lounge-iata {
    font-size: .9375rem;
}

.b2b-lounge-airport.is-big .b2b-lounge-airport-name {
    font-size: 1rem;
}

.b2b-lounge-selected {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: 1rem;
}

.b2b-lounge-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: 1rem;
}

.b2b-lounge-card {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    min-width: 0;
    padding: 1.1rem 1.15rem;
    color: inherit;
    text-decoration: none;
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-md);
    box-shadow: var(--m-shadow-xs);
    transition: border-color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.b2b-lounge-card:hover,
.b2b-lounge-card:focus-visible {
    color: inherit;
    border-color: var(--m-primary-border);
    box-shadow: var(--m-shadow-md);
}

.b2b-lounge-card-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--m-ink);
}

.b2b-lounge-card-desc {
    flex: 1 1 auto;
    margin: 0;
    font-size: .8125rem;
    color: var(--m-muted);
}

.b2b-lounge-card-foot {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .5rem;
    padding-top: .6rem;
    border-top: 1px dashed var(--m-border);
}

.b2b-lounge-card-foot small {
    display: block;
    font-size: .6875rem;
    color: var(--m-muted);
}

.b2b-lounge-card-foot b {
    font-size: 1.0625rem;
    color: var(--m-ink);
    font-variant-numeric: tabular-nums;
}

.b2b-lounge-go {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--m-primary);
    white-space: nowrap;
}

html[dir="rtl"] .b2b-lounge-go i,
html[dir="rtl"] .b2b-lounge-dir {
    transform: scaleX(-1);
}

.b2b-lounge-counter .form-control {
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.b2b-lounge-counter .btn {
    min-width: 2.75rem;
    font-weight: 700;
}

.b2b-lounge-prices {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem 1rem;
    margin: 0;
    font-size: .875rem;
}

.b2b-lounge-prices dt {
    font-weight: 500;
    color: var(--m-ink-2);
}

.b2b-lounge-prices dd {
    margin: 0;
    font-weight: 600;
    text-align: end;
    color: var(--m-ink);
    font-variant-numeric: tabular-nums;
}

.b2b-lounge-info {
    display: grid;
    gap: .4rem;
    margin: 1rem 0 0;
    padding: 0;
    font-size: .8125rem;
    color: var(--m-ink-2);
    list-style: none;
}

.b2b-lounge-info i {
    width: 1.1rem;
    margin-inline-end: .35rem;
    color: var(--m-primary);
}

.b2b-lounge-detail {
    margin-top: .5rem;
    font-size: .8125rem;
    color: var(--m-muted);
    white-space: pre-line;
}

.b2b-lounge-total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1rem;
    padding-top: 1rem;
    font-weight: 600;
    border-top: 1px solid var(--m-border);
}

.b2b-lounge-total b {
    font-size: 1.25rem;
    color: var(--m-primary);
    font-variant-numeric: tabular-nums;
}

.b2b-lounge-wallet {
    margin: .75rem 0 0;
    font-size: .8125rem;
    color: var(--m-muted);
}

.b2b-lounge-wallet.is-short b {
    color: #b42318;
}

.b2b-lounge-timer {
    margin-top: 1rem;
    padding: .7rem .9rem;
    font-size: .8125rem;
    color: #b54708;
    background-color: #fffaeb;
    border: 1px solid #fedf89;
    border-radius: var(--m-radius-sm);
}

.b2b-lounge-timer b {
    font-variant-numeric: tabular-nums;
}

.b2b-lounge-timer.is-expired {
    color: #b42318;
    background-color: #fef3f2;
    border-color: #fecdca;
}

.b2b-lounge-pax-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: 1rem;
}

.b2b-lounge-pay-lines {
    display: grid;
    gap: .4rem;
    margin: 1rem 0 0;
    padding: .75rem 1rem;
    list-style: none;
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-sm);
}

.b2b-lounge-pay-lines li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: .875rem;
}

.b2b-lounge-pay-lines b {
    font-variant-numeric: tabular-nums;
}

.b2b-lounge-done {
    max-width: 42rem;
    margin-inline: auto;
}

.b2b-lounge-voucher {
    padding: 1.75rem 2.25rem 1.5rem;
    font-size: .875rem;
    line-height: 1.55;
    color: #1f2937;
    background-color: var(--m-surface);
    border-radius: 10px;
    box-shadow: var(--m-shadow-sm);
}

.b2b-lounge-voucher-title {
    margin-top: 0;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.4;
    color: #111827;
    text-align: center;
}

.b2b-lounge-voucher-title p,
.b2b-lounge-voucher-text p,
.b2b-lounge-voucher-box p,
.b2b-lounge-voucher-note p {
    margin: 0;
}

.b2b-lounge-voucher-dear {
    margin-top: 1rem;
}

.b2b-lounge-voucher-booking {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1.5rem;
    margin-top: .75rem;
    padding: .875rem 1.125rem;
    background-color: #f3f4f6;
    border-radius: 8px;
}

.b2b-lounge-voucher-booking small,
.b2b-lounge-voucher-grid dt {
    display: block;
    font-size: .6875rem;
    color: #6b7280;
}

.b2b-lounge-voucher-booking small {
    letter-spacing: .04em;
}

.b2b-lounge-voucher-code {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    font-family: SFMono-Regular, Menlo, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: .03em;
    color: #111827;
    word-break: break-all;
}

.b2b-lounge-voucher-state {
    text-align: end;
}

.b2b-lounge-voucher-state small {
    padding-bottom: .25rem;
}

.b2b-lounge-voucher-status {
    display: inline-block;
    padding: .25rem .75rem;
    font-size: .75rem;
    font-weight: 700;
    color: #1a56db;
    background-color: #e1effe;
    border-radius: 12px;
}

.b2b-lounge-voucher-status.is-success {
    color: #046c4e;
    background-color: #def7ec;
}

.b2b-lounge-voucher-status.is-warning {
    color: #8e4b10;
    background-color: #fdf6b2;
}

.b2b-lounge-voucher-status.is-danger {
    color: #c81e1e;
    background-color: #fde8e8;
}

.b2b-lounge-voucher-pending {
    margin: .5rem 0 0;
    font-size: .8125rem;
    color: #6b7280;
}

.b2b-lounge-voucher-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.5rem;
    margin: .75rem 0 0;
}

.b2b-lounge-voucher-grid > div {
    padding-block: .5rem;
    overflow-wrap: anywhere;
}

.b2b-lounge-voucher-grid dt {
    font-size: .75rem;
    font-weight: 400;
}

.b2b-lounge-voucher-grid dd {
    margin: 0;
    font-size: .9375rem;
    font-weight: 700;
    color: #111827;
}

.b2b-lounge-voucher-box {
    display: grid;
    gap: .5rem;
    margin-top: 1rem;
    padding: .875rem 1.25rem;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.b2b-lounge-voucher-text {
    margin-top: 1.125rem;
    font-size: .8125rem;
}

.b2b-lounge-voucher-text.is-ruled {
    padding-top: 1rem;
    border-top: 1px solid #e5e7eb;
}

.b2b-lounge-voucher-note {
    margin-top: 1.25rem;
    padding: .625rem 1rem;
    background-color: #f4f6fa;
    border-inline-start: 3px solid #1a56db;
    border-radius: 6px;
}

.b2b-lounge-voucher-codes {
    margin-top: 1.5rem;
    text-align: center;
}

.b2b-lounge-voucher-codes-title {
    line-height: 1.45;
}

.b2b-lounge-codes {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
    margin: .875rem 0 0;
    padding: 0;
    list-style: none;
}

.b2b-lounge-codes li {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .375rem;
    width: 20.25rem;
    max-width: 100%;
    padding: 2.25rem 1.25rem 1.25rem;
    background-color: var(--m-surface);
    border: 1px dashed #c4cad3;
    border-radius: 12px;
}

.b2b-lounge-codes img {
    width: 206px;
    max-width: 100%;
    height: auto;
    aspect-ratio: 1;
}

.b2b-lounge-codes code {
    padding-top: 1.125rem;
    font-size: 1.0625rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .02em;
    color: #1f2937;
    word-break: break-all;
}

.b2b-lounge-codes small {
    font-size: .6875rem;
    color: #6b7280;
}

.b2b-lounge-codes img.b2b-lounge-codes-supplier {
    width: 120px;
    max-width: 120px;
    height: auto;
    aspect-ratio: auto;
    padding: 6px;
    background-color: #f8fafc;
    border-radius: 6px;
}


.b2b-lounge-done-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .5rem;
    margin-top: 1.5rem;
}

@media (max-width: 575.98px) {
    .b2b-lounge-voucher {
        padding-inline: 1.125rem;
    }

    .b2b-lounge-voucher-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    body:has(.b2b-lounge-voucher) * {
        visibility: hidden;
    }

    body:has(.b2b-lounge-voucher) .b2b-lounge-voucher,
    body:has(.b2b-lounge-voucher) .b2b-lounge-voucher * {
        visibility: visible;
    }

    body:has(.b2b-lounge-voucher) .b2b-lounge-voucher {
        position: absolute;
        inset-block-start: 0;
        inset-inline: 0;
        box-shadow: none;
    }

    .b2b-lounge-voucher [data-copy] {
        display: none;
    }
}

.b2b-lounge-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: .75rem;
    margin-top: 1.5rem;
    text-align: start;
}

.b2b-lounge-facts > div {
    padding: .75rem 1rem;
    font-size: .875rem;
    font-weight: 600;
    color: var(--m-ink);
    background-color: var(--m-surface-2);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-sm);
    overflow-wrap: anywhere;
}

.b2b-lounge-facts small {
    display: block;
    font-size: .6875rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--m-muted);
}

.b2b-lounge-facts small.is-place {
    letter-spacing: 0;
    text-transform: none;
    font-weight: 400;
}

.m-account-user {
    margin-bottom: 1rem;
    padding: 1.75rem 1.25rem 1.5rem;
    text-align: center;
}

.m-account-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    margin: 0 auto 1rem;
    overflow: hidden;
    font-size: 1.75rem;
    color: var(--m-primary);
    background-color: var(--m-primary-100);
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--m-primary-50);
}

.m-account-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.m-account-name {
    margin: 0 0 .2rem;
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--m-ink);
    overflow-wrap: anywhere;
}

.m-account-mail {
    margin: 0;
    font-size: .85rem;
    color: var(--m-muted);
    overflow-wrap: anywhere;
}

.list-group.m-account-nav {
    gap: .25rem;
    padding: .5rem;
    background-color: var(--m-surface);
    border: 1px solid var(--m-border);
    border-radius: var(--m-radius-lg);
    box-shadow: var(--m-shadow-sm);
}

.list-group.m-account-nav .list-group-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0;
    padding: .75rem .9rem;
    font-weight: 500;
    color: var(--m-ink-2);
    background-color: transparent;
    border: 0;
    border-radius: var(--m-radius-sm) !important;
    transition: background-color var(--m-dur) var(--m-ease), color var(--m-dur) var(--m-ease), box-shadow var(--m-dur) var(--m-ease);
}

.m-account-nav .list-group-item > i:first-child {
    width: 1.25rem;
    text-align: center;
}

.m-account-nav .list-group-item:hover,
.m-account-nav .list-group-item:focus-visible {
    color: var(--m-ink);
    background-color: var(--m-primary-50);
}

.m-account-nav .list-group-item.active {
    color: #fff;
    background-color: var(--m-primary);
    box-shadow: 0 6px 16px -10px var(--m-primary-glow);
}

.m-account-nav .list-group-item.active > i:first-child {
    color: #fff !important;
}

@media (max-width: 767.98px) {
    .m-page {
        padding-block: 1.5rem 2.5rem;
    }

    .m-panel,
    .m-panel-lg {
        padding: 1rem;
        border-radius: var(--m-radius-md);
    }

    .m-panel + .m-panel {
        margin-top: 1rem;
    }

    .m-filter-field {
        max-width: none;
    }

    .table-responsive > .m-table > :not(caption) > tr > :not([colspan]) {
        white-space: nowrap;
    }

    .m-filter-actions {
        flex: 1 1 100%;
    }

    .m-filter-actions > .btn {
        flex: 1 1 0;
    }

    .m-choice .form-check {
        flex: 1 1 10rem;
    }

    .m-choice .form-check-label {
        width: 100%;
        min-width: 0;
    }

    .m-account-user {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 0 1rem;
        padding: 1rem;
        text-align: start;
    }

    .m-account-avatar {
        grid-row: span 2;
        width: 56px;
        height: 56px;
        margin: 0;
        font-size: 1.25rem;
    }

    .list-group.m-account-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .375rem;
        padding: .375rem;
    }

    .list-group.m-account-nav .list-group-item {
        gap: .5rem;
        min-width: 0;
        padding: .65rem .7rem;
        font-size: .8125rem;
        line-height: 1.25;
    }

    .list-group.m-account-nav .list-group-item > span {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .b2b-balance-value {
        font-size: 1.5rem;
    }
}

/*-------- 12b. Suggestions (cross-sell) --------*/
.suggestions-block{ --sg-primary:var(--m-primary,var(--theme-color,#e63733)); --sg-primary-50:var(--m-primary-50,#fdf2f2); --sg-ink:var(--m-ink,#0f172a); --sg-muted:var(--m-muted,#667085); --sg-border:var(--m-border,#e4e7ee); --sg-surface-2:var(--m-surface-2,#f7f8fb); --sg-radius:var(--m-radius-lg,18px); padding:3rem 0; }
.suggestions-block .sg-head{ position:relative; max-width:40rem; margin:0 auto 1.75rem; text-align:center; }
.suggestions-block .sg-title{ margin:0; font-size:clamp(1.35rem,1.1rem + 1vw,1.75rem); font-weight:700; color:var(--sg-ink); }
.suggestions-block .sg-text{ margin:.5rem 0 0; font-size:1rem; color:var(--sg-muted); }
.suggestions-block .sg-text p:last-child{ margin-bottom:0; }
.suggestions-block .sg-card{ position:relative; display:flex; flex-direction:column; height:100%; overflow:hidden; background:#fff; border:1px solid var(--sg-border); border-radius:var(--sg-radius); box-shadow:var(--m-shadow-sm,0 1px 3px rgba(16,24,40,.06)); transition:transform .2s ease, box-shadow .2s ease; }
.suggestions-block .sg-media{ position:relative; display:block; aspect-ratio:4/3; margin:0; overflow:hidden; background:var(--sg-surface-2); }
.suggestions-block .sg-media:before{ content:"\f072"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:"Font Awesome 7 Free","Font Awesome 6 Free","Font Awesome 5 Free","FontAwesome"; font-weight:900; font-size:1.75rem; color:var(--m-border-strong,#d0d5dd); }
.suggestions-block .sg-media img{ position:relative; width:100%; height:100%; object-fit:cover; color:transparent; transition:transform .3s ease; }
.suggestions-block .sg-body{ display:flex; flex-direction:column; flex:1 1 auto; gap:.5rem; padding:1rem; }
.suggestions-block .sg-card-title{ margin:0; font-size:1rem; font-weight:700; line-height:1.35; }
.suggestions-block .sg-card-title a{ color:var(--sg-ink); text-decoration:none; }
.suggestions-block .sg-card-title a:hover{ color:var(--sg-primary); }
.suggestions-block .sg-desc{ margin:0; font-size:.85rem; line-height:1.5; color:var(--sg-muted); }
.suggestions-block .sg-foot{ display:flex; flex-direction:column; gap:.6rem; margin-top:auto; padding-top:.25rem; }
.suggestions-block .sg-price{ display:flex; flex-wrap:wrap; align-items:baseline; gap:.15rem .4rem; font-size:.8rem; color:var(--sg-muted); }
.suggestions-block .sg-price strong{ font-size:1.05rem; font-weight:700; color:var(--sg-ink); }
.suggestions-block .sg-btn{ display:block; width:100%; margin:0; padding:.6rem 1rem; text-align:center; }
.suggestions-block .sg-tag{ position:absolute; top:.5rem; inset-inline-start:.5rem; z-index:2; max-width:calc(100% - 1rem); padding:.2rem .45rem; border-radius:.35rem; background:#212529; color:#fff; font-size:.7rem; line-height:1.3; text-align:start; white-space:normal; opacity:.45; transition:opacity .15s ease; }
.suggestions-block .sg-card:hover .sg-tag,
.suggestions-block .sg-head:hover .sg-tag{ opacity:1; }
.suggestions-block .suggestion-passive{ opacity:.55; border:2px dashed #dc3545; }
.suggestions-block .sg-head.suggestion-passive{ padding:1rem; border-radius:var(--sg-radius); }
@media (hover:hover){
    .suggestions-block .sg-card:hover{ transform:translateY(-3px); box-shadow:var(--m-shadow-lg,0 18px 36px -10px rgba(16,24,40,.16)); }
    .suggestions-block .sg-card:hover .sg-media img{ transform:scale(1.04); }
}
@media (max-width:575.98px){
    .suggestions-block{ padding:2rem 0; }
    .suggestions-block .sg-body{ padding:.75rem; }
    .suggestions-block .sg-card-title{ font-size:.9rem; }
    .suggestions-block .sg-desc{ display:none; }
    .suggestions-block .sg-btn{ padding:.5rem .75rem; font-size:.8125rem; }
}
@media (prefers-reduced-motion:reduce){
    .suggestions-block .sg-card,
    .suggestions-block .sg-media img{ transition:none; }
    .suggestions-block .sg-card:hover,
    .suggestions-block .sg-card:hover .sg-media img{ transform:none; }
}

/*-------- 13. Responsive --------*/
@media (max-width: 575.98px) {
    .container {
        padding-inline: 1rem;
    }

    .box_cart {
        padding: 1rem;
        border-radius: var(--m-radius-md);
    }

    .box_grid,
    .box_list,
    .box_detail,
    main article.blog {
        border-radius: var(--m-radius-md);
    }

    .box_grid > figure:first-child {
        border-start-start-radius: var(--m-radius-md);
        border-start-end-radius: var(--m-radius-md);
    }

    .m-acct .m-acct-head {
        gap: .75rem;
        padding: .75rem;
    }

    .m-acct-avatar {
        width: 40px;
        height: 40px;
        font-size: .875rem;
    }

    .m-acct-summary {
        margin: 0 .75rem;
    }

    .m-acct-list {
        grid-template-columns: minmax(0, 1fr);
    }
}

/*-------- 14. Motion --------*/
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }

    .spinner-border,
    [data-loader="circle-side"] {
        animation-duration: 1.5s !important;
        animation-iteration-count: infinite !important;
    }

    .box_grid:hover,
    .box_list:hover,
    main article.blog:hover,
    .btn_1:hover,
    a.btn_1:hover {
        transform: none !important;
    }
}
