:where(.mf-wrap) a:focus-visible,
:where(.mf-wrap) button:focus-visible {
    outline: 2px solid #B02418;
    outline-offset: 2px;
}

.mf-wrap {
    width: 100%;
    max-width: 720px;
    border: 1px solid #D9D2CB;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 12px 30px -18px rgba(0, 0, 0, .35);
    background: #F8F5F0;
    color: #241F1D;
    padding: 22px 20px 26px;
    font-size: 16.5px;
    margin: auto;
}

.mf-wrap h2 {
    font-size: 23px;
    line-height: 1.25;
    margin: 0 0 5px;
    color: #241F1D;
    font-weight: 700;
    text-wrap: balance;
}

.mf-lead {
    margin: 0 0 2px;
    color: #3A3431;
    font-size: 16px;
}

.mf-lead b {
    color: #241F1D;
}

/* khối đánh số */
.mf-blk {
    margin-top: 16px;
}

.mf-blk--tight {
    margin-top: 14px;
}

.mf-blk__head {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 8px;
}

.mf-blk__num {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #241F1D;
    color: #fff;
    font-size: 12px;
    display: grid;
    place-items: center;
    font-weight: 500;
}

.mf-blk__head h3 {
    margin: 0;
    font-size: 13px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #4A4340;
    font-weight: 700;
}

.mf-summary {
    background: #EFEAE3;
    border-radius: 8px;
    padding: 13px 15px;
    font-size: 15.5px;
    color: #413B38;
}

.mf-summary dl {
    margin: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 5px 14px;
}

.mf-summary dt {
    color: #6E6762;
}

.mf-summary dd {
    margin: 0;
    color: #241F1D;
}

.mf-box--action {
    background: #FFFFFF;
    border: 2px solid #B02418;
    border-radius: 10px;
    padding: 16px;
}

.mf-box--soft {
    background: #FFFFFF;
    border: 1px solid #DED5CB;
    border-radius: 10px;
    padding: 16px;
}

.mf-stack {
    display: grid;
    gap: 12px;
}

.mf-row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.mf-row3 {
    display: grid;
    grid-template-columns: 152px 1fr 1fr;
    gap: 12px;
}

.mf-narrow {
    max-width: 420px;
}

/* trường nhập */
.mf-fl {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: #241F1D;
    margin-bottom: 5px;
}

.mf-req {
    color: #B02418;
}

.mf-opt {
    font-weight: 400;
    color: #6E6762;
}

.mf-ctrl:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=file]) {
    width: 100%;
    min-width: 0;
    font: inherit;
    font-size: 16.5px;
    color: #241F1D;
    background: #FFFFFF;
    border: 1.5px solid #8C8077;
    border-radius: 7px;
    padding: 11px 12px;
    min-height: 46px;
}

.mf-ctrl:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=file]):focus {
    outline: none;
    border-color: #B02418;
    box-shadow: 0 0 0 3px rgba(176, 36, 24, .22);
}

.mf-ctrl::placeholder {
    color: #8C8077;
}

select.mf-ctrl:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=file]) {
    appearance: none;
    background-image: linear-gradient(45deg, transparent 50%, #5E5551 50%), linear-gradient(135deg, #5E5551 50%, transparent 50%);
    background-position: calc(100% - 19px) 20px, calc(100% - 13px) 20px;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    padding-right: 38px;
}

textarea.mf-ctrl:not([type=submit]):not([type=radio]):not([type=checkbox]):not([type=file]) {
    min-height: 92px;
    resize: vertical;
}

.mf-helper {
    font-size: 15px;
    color: #5E5651;
    margin: 6px 0 0;
}

.mf-helper--tight {
    margin-top: 9px;
}

/* chip chọn điểm đến */
.mf-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.mf-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1.5px solid #8C8077;
    border-radius: 999px;
    padding: 7px 13px;
    font-size: 14px;
    cursor: pointer;
    background: #fff;
    color: #241F1D;
    user-select: none;
}

.mf-chip input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.mf-chip:has(input:checked) {
    background: #B02418;
    border-color: #B02418;
    color: #fff;
    font-weight: 600;
}

.mf-chip:has(input:focus-visible) {
    outline: 3px solid rgba(176, 36, 24, .35);
    outline-offset: 2px;
}

/* Yes / No */
.mf-yn {
    display: flex;
    gap: 9px;
    flex-wrap: wrap;
}

.mf-yn label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1.5px solid #8C8077;
    border-radius: 7px;
    padding: 9px 16px;
    font-size: 15px;
    cursor: pointer;
    background: #fff;
    min-height: 44px;
}

.mf-yn label:has(input:checked) {
    border-color: #B02418;
    background: #FBF0EE;
    font-weight: 600;
}

.mf-yn input {
    accent-color: #B02418;
}

/* hộp giá / quyền lợi */
.mf-payoff {
    margin-top: 14px;
    background: #FBF7F2;
    border: 1px solid #E0D6CB;
    border-radius: 8px;
    padding: 13px 14px;
}

.mf-payoff__kicker {
    font-size: 12.5px;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #6E6762;
    font-weight: 700;
    margin: 0 0 3px;
}

.mf-payoff__hint {
    margin: 9px 0 0;
    font-size: 14.5px;
    color: #7A5212;
}

.mf-payoff ul {
    margin: 4px 0 0;
    padding-left: 18px;
    font-size: 15px;
    color: #4A4340;
}

.mf-payoff ul li {
    margin: 2px 0;
}

.mf-items {
    margin-top: 4px;
    display: grid;
    gap: 7px;
    font-size: 15.5px;
    font-variant-numeric: tabular-nums;
}

.mf-items__row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
}

.mf-items__row>span:first-child {
    color: #413B38;
}

.mf-items__row b {
    font-weight: 600;
    white-space: nowrap;
}

.mf-items__sub {
    display: block;
    font-size: 13px;
    color: #6E6762;
    font-weight: 400;
}

.mf-total {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 2px solid #E0D6CB;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
}

.mf-total[hidden] {
    display: none;
}

.mf-total__label {
    font-size: 13px;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #6E6762;
    font-weight: 700;
}

.mf-total__amount {
    font-size: 38px;
    line-height: 1;
    font-weight: 700;
    color: #241F1D;
    font-variant-numeric: tabular-nums;
}

.mf-total__sub {
    margin: 7px 0 0;
    font-size: 15px;
    color: #5E5651;
    line-height: 1.45;
}

.mf-flights {
    margin-top: 14px;
    display: grid;
    gap: 5px;
    font-size: 15px;
}

.mf-flights__no {
    color: #8E1C11;
    font-weight: 600;
}

.mf-flights__yes {
    color: #1E6B3A;
    font-weight: 600;
}

/* chip tháng + lịch khởi hành (Group) */
.mf-mchips {
    display: flex;
    gap: 7px;
    overflow-x: auto;
    padding-bottom: 4px;
    margin-bottom: 12px;
    scrollbar-width: thin;
}

.mf-mchip {
    flex: 0 0 auto;
    border: 1.5px solid #8C8077;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    padding: 7px 12px;
    text-align: left;
    font: inherit;
    min-height: 50px;
    color: #241F1D;
}

.mf-mchip b {
    display: block;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
}

.mf-mchip span {
    display: block;
    font-size: 12.5px;
    color: #6E6762;
    font-variant-numeric: tabular-nums;
}

.mf-mchip[aria-pressed="true"] {
    background: #B02418;
    border-color: #B02418;
    color: #fff;
}

.mf-mchip[aria-pressed="true"] span {
    color: #F6DAD6;
}

.mf-mchip:focus-visible {
    outline: 3px solid rgba(176, 36, 24, .4);
    outline-offset: 2px;
}

.mf-calhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.mf-calhead strong {
    font-size: 15px;
    text-transform: capitalize;
}

.mf-navb {
    appearance: none;
    border: 1.5px solid #8C8077;
    background: #fff;
    border-radius: 7px;
    width: 40px;
    height: 40px;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    color: #241F1D;
}

.mf-navb:disabled {
    opacity: .35;
    cursor: default;
}

.mf-navb:focus-visible {
    outline: 3px solid rgba(176, 36, 24, .4);
    outline-offset: 2px;
}

.mf-cal {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.mf-cal th {
    font-size: 11px;
    font-weight: 700;
    color: #6E6762;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding-bottom: 5px;
}

.mf-cal td {
    padding: 2px;
    text-align: center;
    vertical-align: top;
}

.mf-cell {
    width: 100%;
    min-height: 46px;
    border-radius: 7px;
    border: 1px solid transparent;
    background: transparent;
    font: inherit;
    display: block;
    padding: 5px 2px;
    color: #9A918C;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

.mf-cell--off {
    color: #BFB6B0;
}

button.mf-cell {
    cursor: pointer;
    color: #241F1D;
    background: #FFF;
    border-color: #D8CEC6;
}

button.mf-cell>span:first-child {
    display: block;
    line-height: 1.15;
}

.mf-cell__price {
    display: block;
    font-size: 10.5px;
    color: #4A4340;
    margin-top: 1px;
}

button.mf-cell:hover {
    border-color: #B02418;
}

button.mf-cell:focus-visible {
    outline: 3px solid rgba(176, 36, 24, .4);
    outline-offset: 1px;
}

button.mf-cell--cheap .mf-cell__price {
    color: #1E6B3A;
    font-weight: 700;
}

button.mf-cell--lock {
    cursor: not-allowed;
    background: #F4F0EB;
    color: #9A918C;
    border-color: #E4DCD4;
}

button.mf-cell--lock .mf-cell__price {
    text-decoration: line-through;
    color: #9A918C;
}

/* 2 class dưới do JS gắn vào <td> sau khi khách chọn ngày */
td.mf-cal__day--span .mf-cell {
    background: #F2C9C4;
    border-color: #F2C9C4;
    color: #241F1D;
}

td.mf-cal__day--start button.mf-cell,
td.mf-cal__day--span button.mf-cell {
    background: #B02418;
    border-color: #B02418;
    color: #fff;
}

td.mf-cal__day--start button.mf-cell .mf-cell__price,
td.mf-cal__day--span button.mf-cell .mf-cell__price {
    color: #FBE4E1;
}

.mf-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 9px;
    font-size: 13px;
    color: #6E6762;
}

.mf-legend i {
    display: inline-block;
    width: 11px;
    height: 11px;
    border-radius: 3px;
    margin-right: 5px;
    vertical-align: -1px;
}

.mf-dot--dep {
    background: #B02418;
}

.mf-dot--trip {
    background: #F2C9C4;
}

.mf-dot--lock {
    background: #F4F0EB;
    border: 1px solid #E4DCD4;
}

.mf-legend__low {
    color: #1E6B3A;
}

.mf-selbox {
    margin-top: 12px;
    background: #FBF7F2;
    border: 1px solid #E0D6CB;
    border-radius: 8px;
    padding: 13px 15px;
    display: grid;
    gap: 6px;
    font-size: 16.5px;
}

.mf-selbox[hidden] {
    display: none;
}

.mf-selbox__kicker {
    font-size: 12.5px;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #6E6762;
    font-weight: 700;
    margin: 0 0 3px;
}

.mf-selbox div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
}

.mf-selbox b {
    font-variant-numeric: tabular-nums;
}

.mf-selbox .mf-selbox__note {
    font-size: 13px;
    color: #6E6762;
}

.mf-locknote {
    margin-top: 10px;
    background: #FFF6E6;
    border: 1px solid #E8D6AE;
    border-radius: 7px;
    padding: 10px 12px;
    font-size: 15px;
    color: #7A5A12;
}

.mf-locknote[hidden] {
    display: none;
}

.mf-nodate {
    margin-top: 13px;
    border-top: 1px solid #E6DDD3;
    padding-top: 11px;
    font-size: 15px;
    color: #4A4340;
}

.mf-link {
    color: #B02418;
    font-weight: 700;
}

/* số khách (nút + / −) */
.mf-travelers {
    margin-top: 14px;
}

.mf-pax {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.mf-pax__item {
    border: 1.5px solid #8C8077;
    border-radius: 8px;
    background: #fff;
    padding: 8px 10px;
}

.mf-pax__label {
    display: block;
    font-size: 13.5px;
    color: #4A4340;
    margin-bottom: 5px;
    line-height: 1.2;
}

.mf-pax__ctl {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.mf-pax__btn {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border: 1.5px solid #8C8077;
    border-radius: 7px;
    background: #fff;
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
    color: #241F1D;
}

.mf-pax__btn:disabled {
    opacity: .32;
    cursor: default;
}

.mf-pax__btn:focus-visible {
    outline: 3px solid rgba(176, 36, 24, .4);
    outline-offset: 2px;
}

.mf-pax__val {
    font-size: 17px;
    font-weight: 700;
    min-width: 24px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.mf-kidnote {
    margin: 9px 0 0;
    font-size: 15px;
    color: #7A5212;
}

/* số điện thoại */
.mf-phone {
    display: grid;
    grid-template-columns: 148px 1fr;
    gap: 8px;
}

.mf-phone-out {
    margin-top: 6px;
    font-size: 12.5px;
    color: #4A4340;
    background: #F2EDE6;
    border-radius: 6px;
    padding: 7px 9px;
    word-break: break-all;
}

.mf-phone-out b {
    color: #1E6B3A;
}

.mf-phone-out--bad b {
    color: #8E1C11;
}

/* nút gửi và phần chân form */
.mf-submit {
    margin-top: 16px;
    width: 100%;
    appearance: none;
    border: 0;
    border-radius: 8px;
    background: #B02418;
    color: #fff;
    font: inherit;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .02em;
    padding: 15px 18px;
    cursor: pointer;
    min-height: 52px;
}

.mf-submit:hover {
    background: #8E1C11;
}

.mf-submit:focus-visible {
    outline: 3px solid #241F1D;
    outline-offset: 2px;
}

.mf-strip {
    margin: 10px 0 0;
    text-align: center;
    font-size: 14.5px;
    color: #4A4340;
}

.mf-strip b {
    color: #241F1D;
    font-weight: 600;
}

.mf-trust {
    margin: 7px 0 0;
    text-align: center;
    font-size: 13.5px;
    color: #6E6762;
}

.mf-xsell {
    margin-top: 18px;
    border-top: 1px solid #E0D6CB;
    padding-top: 13px;
    font-size: 14px;
    color: #4A4340;
}

.mf-xsell a {
    color: #B02418;
    font-weight: 600;
    text-decoration: underline;
}

@media (max-width: 767px) {
    .mf-wrap {
        padding: 16px 10px 20px;
    }

    .mf-row2,
    .mf-row3 {
        grid-template-columns: 1fr;
    }

    .mf-box--action {
        padding: 8px;
    }

    .mf-phone {
        grid-template-columns: 118px 1fr;
    }

    .mf-total__amount {
        font-size: 32px;
    }

    .mf-cal td {
        padding: 0 1px 2px;
    }

    .mf-cell {
        font-size: 15px;
        padding-block: 8px;
    }

    button.mf-cell .mf-cell__price {
        display: none;
    }

    button.mf-cell::after {
        content: "";
        display: block;
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: #B02418;
        margin: 3px auto 0;
    }

    button.mf-cell--lock::after {
        background: #C9C2BA;
    }

    .mf-pax {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .mf-pax__item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 6px 10px;
    }

    .mf-pax__btn {
        width: 44px;
        height: 44px;
        min-width: 44px;
    }

    .mf-pax__label {
        margin: 0;
        flex: 1;
        font-size: 13px;
    }
}