/* Mehmoon Ma Trip Finder 1.2.8 — isolated, responsive UI */
.mmtf-trigger-wrap,
.mmtf-trigger-wrap * { box-sizing: border-box; }
.mmtf-trigger-wrap { width: 100%; direction: rtl; font-family: inherit; }

/* Trigger / CTA */
.mmtf-card {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 26px;
    align-items: center;
    padding: 24px 26px;
    border: 1px solid #dcefe3;
    border-radius: 24px;
    background: linear-gradient(135deg, #f5fff8 0%, #ffffff 68%);
    box-shadow: 0 14px 40px rgba(8, 122, 52, .08);
}
.mmtf-card-copy { min-width: 0; }
.mmtf-card-badge,
.mmtf-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eaf9ef;
    color: #087a34;
    font-size: 11px;
    font-weight: 800;
}
.mmtf-card h2 { margin: 10px 0 6px; color: #13351f; font-size: 24px; line-height: 1.45; }
.mmtf-card p { margin: 0; color: #63796b; font-size: 13px; line-height: 1.9; }
.mmtf-card-sub { margin-top: 5px !important; color: #91a198 !important; font-size: 11px !important; }
.mmtf-card-action { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 190px; }
.mmtf-trust { color: #8a9a91; font-size: 10px; }
.mmtf-btn,
.mmtf-inline,
.mmtf-primary,
.mmtf-secondary,
.mmtf-small-btn { border: 0; font-family: inherit; cursor: pointer; }
.mmtf-btn,
.mmtf-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px;
    border-radius: 14px;
    background: #10c853;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    box-shadow: 0 10px 22px rgba(16, 200, 83, .18);
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.mmtf-btn:hover,
.mmtf-primary:hover { background: #0b9e42; transform: translateY(-1px); box-shadow: 0 12px 26px rgba(16, 200, 83, .23); }
.mmtf-inline { padding: 0; min-height: auto; background: transparent; color: #087a34; font-size: inherit; font-weight: 800; box-shadow: none; }

/* Modal shell */
.mmtf-modal,
.mmtf-modal * { box-sizing: border-box; }
.mmtf-modal { direction: rtl; position: fixed; inset: 0; z-index: 2147483000; display: grid; place-items: center; }
.mmtf-modal[hidden] { display: none !important; }
.mmtf-backdrop { position: absolute; inset: 0; background: rgba(11, 28, 19, .52); backdrop-filter: blur(4px); }
.mmtf-dialog {
    position: relative;
    z-index: 1;
    width: min(880px, calc(100vw - 32px));
    height: auto;
    max-height: calc(100dvh - 32px);
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(203, 229, 211, .95);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(9, 31, 17, .23);
}
.mmtf-dialog-head {
    flex: 0 0 66px;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 18px;
    border-bottom: 1px solid #edf5ef;
    background: linear-gradient(180deg, #fbfffc, #ffffff);
}
.mmtf-brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #eaf9ef; font-size: 19px; }
.mmtf-brand-copy { display: flex; flex-direction: column; gap: 2px; line-height: 1.25; }
.mmtf-brand-copy strong { color: #173a22; font-size: 13px; }
.mmtf-brand-copy span { color: #8a9a91; font-size: 9px; }
.mmtf-close {
    margin-right: auto;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid #e1ece4 !important;
    border-radius: 50%;
    background: #fff !important;
    color: #2f5140 !important;
    font-family: inherit !important;
    font-size: 22px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    cursor: pointer;
    box-shadow: 0 5px 16px rgba(16, 52, 28, .07);
}
.mmtf-close:hover { background: #f4fbf6 !important; }

/* Progress */
.mmtf-modal:not(.mmtf-wizard-active) .mmtf-progress-wrap { display: none; }
.mmtf-progress-wrap { flex: 0 0 auto; padding: 10px 24px 0; background: #fff; }
.mmtf-progress-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mmtf-progress-meta > div { display: flex; align-items: baseline; gap: 9px; min-width: 0; }
.mmtf-progress-caption { color: #9aa99f; font-size: 10px; font-weight: 700; }
.mmtf-progress-meta strong { color: #2a4d37; font-size: 11px; font-weight: 900; }
.mmtf-progress-percent { color: #10a84c; font-size: 10px; font-weight: 900; }
.mmtf-progress-segments { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 5px; margin-top: 8px; }
.mmtf-progress-segments span { height: 4px; border-radius: 99px; background: #e7f1ea; transition: background .2s ease, transform .2s ease; }
.mmtf-progress-segments span.is-done,
.mmtf-progress-segments span.is-current { background: #10c853; }
.mmtf-progress-segments span.is-current { transform: scaleY(1.55); }

/* Intro */
.mmtf-intro-view,
.mmtf-form,
.mmtf-loading,
.mmtf-success { min-height: 0; }
.mmtf-intro-view[hidden],
.mmtf-form[hidden],
.mmtf-loading[hidden],
.mmtf-success[hidden],
.mmtf-step[hidden] { display: none !important; }
.mmtf-intro-view { flex: 1; display: flex; align-items: center; flex-direction: column; padding: 12px 28px 22px; text-align: center; overflow: hidden; }
.mmtf-intro-visual {
    position: relative;
    flex: 0 0 150px;
    width: min(100%, 780px);
    height: 150px;
    margin: 7px 0 12px;
    overflow: hidden;
    border-radius: 22px;
    background: linear-gradient(135deg, #e6f8ec 0%, #f8fffb 46%, #d8f0df 100%);
    border: 1px solid #d8eee0;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.mmtf-intro-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 30px;
    isolation: isolate;
}
.mmtf-intro-banner::before {
    content: '';
    position: absolute;
    inset: -45% auto auto -8%;
    width: 58%;
    height: 150%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(34,217,100,.18) 0%, rgba(34,217,100,0) 68%);
    pointer-events: none;
}
.mmtf-banner-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    max-width: calc(100% - 100px);
    text-align: right;
}
.mmtf-banner-copy strong {
    color: #123b22;
    font-size: clamp(25px, 3vw, 36px);
    line-height: 1.35;
    letter-spacing: -.25px;
}
.mmtf-banner-copy span {
    color: #567661;
    font-size: clamp(12px, 1.35vw, 15px);
    line-height: 1.7;
    font-weight: 700;
}
.mmtf-banner-mark {
    position: relative;
    z-index: 2;
    width: 62px;
    height: 62px;
    display: grid;
    place-items: center;
    flex: 0 0 62px;
    border-radius: 18px;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(185,220,196,.72);
    box-shadow: 0 10px 28px rgba(24,85,43,.10);
    font-size: 27px;
}
.mmtf-banner-leaf {
    position: absolute;
    z-index: 1;
    width: 120px;
    height: 58px;
    border-radius: 70% 0 70% 0;
    background: linear-gradient(135deg, rgba(16,200,83,.16), rgba(8,122,52,.04));
    transform: rotate(-19deg);
    pointer-events: none;
}
.mmtf-banner-leaf-one { right: 17%; top: -16px; }
.mmtf-banner-leaf-two { right: 4%; bottom: -22px; width: 145px; transform: rotate(16deg); opacity: .75; }
.mmtf-intro-sun { position: absolute; top: 18px; left: 18%; width: 58px; height: 58px; border-radius: 50%; background: rgba(255, 211, 106, .74); box-shadow: 0 0 40px rgba(255, 211, 106, .35); }
.mmtf-intro-hill { position: absolute; left: -5%; right: -5%; bottom: -28px; height: 98px; border-radius: 50% 50% 0 0; }
.mmtf-intro-hill-1 { background: #9dd3a9; transform: translateX(5%) rotate(-2deg); }
.mmtf-intro-hill-2 { background: #69b77e; transform: translateX(-10%) translateY(17px) rotate(2deg); }
.mmtf-intro-house { position: absolute; right: 35%; bottom: 22px; width: 105px; height: 55px; border-radius: 5px; background: #fff7e9; box-shadow: 0 9px 24px rgba(33, 80, 48, .12); }
.mmtf-intro-house:before { content: ""; position: absolute; right: -11px; top: -32px; border-left: 63px solid transparent; border-right: 63px solid transparent; border-bottom: 42px solid #0b9e42; }
.mmtf-intro-house span { position: absolute; right: 12px; top: 14px; width: 28px; height: 25px; border-radius: 4px; background: #cdeed7; }
.mmtf-intro-house i { position: absolute; left: 15px; bottom: 0; width: 24px; height: 36px; border-radius: 4px 4px 0 0; background: #8a5a3b; }
.mmtf-intro-house b { position: absolute; right: 46px; bottom: 0; width: 18px; height: 28px; border-radius: 3px; background: #add9ba; }
.mmtf-intro-tree { position: absolute; bottom: 18px; width: 36px; height: 64px; }
.mmtf-intro-tree:before { content:""; position:absolute; left:8px; bottom:0; width:7px; height:25px; background:#7c573e; border-radius:4px; }
.mmtf-intro-tree:after { content:""; position:absolute; left:0; bottom:18px; width:36px; height:36px; border-radius:50%; background:#1f914d; box-shadow:-8px 5px 0 #2cab60, 8px 4px 0 #168241; }
.mmtf-intro-tree-1 { right: 10%; }
.mmtf-intro-tree-2 { left: 12%; transform: scale(.8); opacity: .9; }
.mmtf-intro-view .mmtf-kicker { margin-top: 0; }
.mmtf-intro-view h2 { margin: 8px 0 5px; color: #12351f; font-size: clamp(20px, 2.6vw, 27px); line-height: 1.45; }
.mmtf-intro-view > p { margin: 0; color: #63796b; font-size: 13px; line-height: 1.9; }
.mmtf-intro-points { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px; margin: 12px 0 6px; }
.mmtf-intro-points span { padding: 6px 9px; border: 1px solid #e3eee6; border-radius: 999px; background: #fbfffc; color: #567061; font-size: 10px; font-weight: 800; }
.mmtf-resume { width: min(100%, 430px); margin: 10px 0 2px; padding: 10px 13px; border: 1px solid #dcefe2; border-radius: 15px; background: #f7fff9; }
.mmtf-resume strong { display: block; color: #17452a; font-size: 12px; }
.mmtf-resume > span { display: block; margin-top: 2px; color: #84958c; font-size: 10px; }
.mmtf-resume div { display: flex; justify-content: center; gap: 7px; margin-top: 7px; }
.mmtf-small-btn { min-height: 34px; padding: 0 11px; border-radius: 10px; background: #eef8f1; color: #087a34; font-size: 10px; font-weight: 900; }
.mmtf-start { min-width: 200px; margin-top: 10px; }

/* Form / steps */
.mmtf-form { flex: 0 1 auto; min-height: 0; display: flex; flex-direction: column; padding: 10px 24px 18px; overflow: visible; }
.mmtf-step { flex: 0 0 auto; min-height: 0; display: flex; flex-direction: column; padding-top: 3px; }
.mmtf-step[hidden] { display: none !important; }
.mmtf-step-title { display: flex; align-items: flex-start; gap: 11px; flex: 0 0 auto; }
.mmtf-step-badge { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: #eaf9ef; color: #087a34; font-size: 13px; font-weight: 900; }
.mmtf-step-title h3 { margin: 0; color: #153a22; font-size: 20px; line-height: 1.35; }
.mmtf-step-title h3 span { font-size: .9em; }
.mmtf-step-title p { margin: 3px 0 0; color: #7b8d83; font-size: 11px; line-height: 1.7; }

/* Form controls – reset theme interference */
.mmtf-modal button,
.mmtf-modal input,
.mmtf-modal select,
.mmtf-modal textarea { font-family: inherit; }
.mmtf-modal button { appearance: none; -webkit-appearance: none; }
.mmtf-field { margin-top: 10px; min-width: 0; }
.mmtf-field label { display: block; margin-bottom: 6px; color: #51685a; font-size: 10px; font-weight: 900; }
.mmtf-field small { color: #96a49c; font-weight: 600; }
.mmtf-field input,
.mmtf-field select,
.mmtf-field textarea,
.mmtf-search-wrap input {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 0 13px;
    border: 1px solid #dce9df !important;
    border-radius: 12px !important;
    outline: none !important;
    background: #fff !important;
    color: #213b2d !important;
    box-shadow: none !important;
    font-size: 12px !important;
}
.mmtf-field textarea { padding-top: 10px; padding-bottom: 10px; resize: none; }
.mmtf-field input:focus,
.mmtf-field select:focus,
.mmtf-field textarea:focus,
.mmtf-search-wrap input:focus { border-color: #10c853 !important; box-shadow: 0 0 0 3px rgba(16, 200, 83, .09) !important; }
.mmtf-select-wrap { position: relative; }
.mmtf-select-wrap:after { content: "⌄"; position: absolute; left: 13px; top: 50%; transform: translateY(-53%); pointer-events: none; color: #769081; font-size: 14px; }
.mmtf-select-wrap select { padding-left: 32px; appearance: none; -webkit-appearance: none; }

/* Destination */
.mmtf-destination-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 14px; }
.mmtf-city-picker { position: relative; }
.mmtf-search-wrap { position: relative; }
.mmtf-search-wrap > span { position: absolute; right: 12px; top: 50%; transform: translateY(-53%); z-index: 2; color: #8ca096; font-size: 16px; pointer-events: none; }
.mmtf-search-wrap input { padding-right: 34px; }
.mmtf-search-wrap input:disabled { background: #f7faf8 !important; color: #a1aea7 !important; cursor: not-allowed; }
.mmtf-anywhere-row { margin-top: 11px; }
.mmtf-check-card,
.mmtf-toggle-row {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 9px 12px;
    border: 1px solid #dce9df;
    border-radius: 14px;
    background: #fbfffc;
    cursor: pointer;
}
.mmtf-check-card input,
.mmtf-toggle-row input { position: absolute; opacity: 0; pointer-events: none; }
.mmtf-check-ui {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border: 1px solid #cfe1d5;
    border-radius: 8px;
    background: #fff;
    color: transparent;
    font-size: 13px;
    font-weight: 900;
}
.mmtf-check-card input:checked + .mmtf-check-ui { border-color: #10c853; background: #10c853; color: #fff; }
.mmtf-check-copy { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.mmtf-check-copy strong { color: #32503e; font-size: 11px; }
.mmtf-check-copy small { color: #8b9a92; font-size: 9px; }
.mmtf-selected-block { margin-top: 11px; min-height: 44px; padding: 10px 12px; border: 1px dashed #cfe4d5; border-radius: 14px; background: #fbfffc; }
.mmtf-selected-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 7px; }
.mmtf-selected-head strong { color: #466151; font-size: 10px; }
.mmtf-selected-head span { color: #95a39a; font-size: 9px; }
.mmtf-chips { display: flex; flex-wrap: wrap; gap: 6px; min-height: 24px; }
.mmtf-empty-chip { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 999px; background: #f1f6f2; color: #9aa7a0; font-size: 9px; }
.mmtf-chip { display: inline-flex; align-items: center; gap: 5px; min-height: 26px; padding: 0 8px 0 6px; border-radius: 999px; background: #eaf9ef; color: #087a34; font-size: 10px; font-weight: 800; }
.mmtf-chip button { width: 20px !important; height: 20px !important; min-width: 20px; padding: 0 !important; border: 0 !important; background: transparent !important; color: #087a34 !important; font-size: 15px !important; line-height: 1 !important; box-shadow: none !important; cursor: pointer; }
.mmtf-city-values { display: none; }

/* Date picker */
.mmtf-toggle-row { margin-top: 13px; min-height: 46px; padding: 7px 10px; }
.mmtf-toggle-ui { position: relative; flex: 0 0 38px; width: 38px; height: 22px; border-radius: 999px; background: #dfeae3; transition: background .2s ease; }
.mmtf-toggle-ui:after { content: ""; position: absolute; top: 3px; right: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.12); transition: transform .2s ease; }
.mmtf-toggle-row input:checked + .mmtf-toggle-ui { background: #10c853; }
.mmtf-toggle-row input:checked + .mmtf-toggle-ui:after { transform: translateX(-16px); }
.mmtf-toggle-row > span:last-child { display: flex; flex-direction: column; gap: 1px; }
.mmtf-toggle-row strong { color: #395545; font-size: 10px; }
.mmtf-toggle-row small { color: #91a098; font-size: 9px; }
.mmtf-calendar-layout { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 14px; margin-top: 11px; min-height: 0; }
.mmtf-calendar-card { min-width: 0; padding: 11px; border: 1px solid #dce9df; border-radius: 16px; background: #fbfffc; }
.mmtf-calendar-instruction { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; color: #6c8075; font-size: 9px; font-weight: 800; }
.mmtf-calendar-instruction > span:first-child { flex: 0 0 17px; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 6px; background: #eaf9ef; color: #087a34; font-size: 9px; }
.mmtf-calendar-instruction > span[data-calendar-instruction-text] { color: #6c8075; font-size: 9px; font-weight: 800; }
.mmtf-calendar-instruction b { color: #a0ada5; font-size: 10px; }
.mmtf-calendar { min-width: 0; }
.mmtf-cal-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.mmtf-cal-head strong { color: #21422e; font-size: 14px; font-weight: 900; }
.mmtf-cal-nav { width: 32px !important; height: 32px !important; min-width: 32px; padding: 0 !important; border: 1px solid #dce9df !important; border-radius: 10px !important; background: #fff !important; color: #087a34 !important; font-size: 17px !important; line-height: 1 !important; box-shadow: none !important; cursor: pointer; }
.mmtf-cal-nav:hover { background: #eaf9ef !important; }
.mmtf-cal-week,
.mmtf-cal-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.mmtf-cal-week span { padding: 3px 0; color: #9aa8a0; text-align: center; font-size: 9px; font-weight: 800; }
.mmtf-cal-day {
    width: 100% !important;
    min-width: 0 !important;
    height: 31px !important;
    min-height: 31px !important;
    padding: 0 !important;
    border: 1px solid transparent !important;
    border-radius: 9px !important;
    background: transparent !important;
    color: #415c4d !important;
    box-shadow: none !important;
    font-size: 10px !important;
    line-height: 1 !important;
    cursor: pointer;
}
.mmtf-cal-day:hover:not(:disabled) { background: #eaf9ef !important; color: #087a34 !important; }
.mmtf-cal-day:disabled,
.mmtf-cal-day.muted { opacity: .23; pointer-events: none; }
.mmtf-cal-day.today { border-color: #89d8a5 !important; }
.mmtf-cal-day.range { background: #daf6e2 !important; color: #087a34 !important; border-radius: 7px !important; }
.mmtf-cal-day.selected { background: #10c853 !important; color: #fff !important; font-weight: 900; border-color: #10c853 !important; }
.mmtf-date-side { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.mmtf-date-box,
.mmtf-nights-card { border: 1px solid #dce9df; border-radius: 15px; background: #fff; }
.mmtf-date-box { display: flex; flex-direction: column; gap: 3px; padding: 11px 12px; }
.mmtf-date-box.is-active { border-color: #9de0b4; background: #f8fffa; box-shadow: inset 0 0 0 1px #e3f7e9; }
.mmtf-date-box small { color: #94a39a; font-size: 9px; }
.mmtf-date-box strong { color: #284836; font-size: 11px; line-height: 1.5; }
.mmtf-nights-card { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 12px; background: #f8fffa; }
.mmtf-nights-card > div:first-child { display: flex; flex-direction: column; gap: 1px; }
.mmtf-nights-card span { color: #779083; font-size: 9px; }
.mmtf-nights-card strong { color: #173e26; font-size: 14px; }
.mmtf-night-counter { display: inline-flex; align-items: center; gap: 8px; }
.mmtf-night-counter button,
.mmtf-counter-btn { width: 30px !important; height: 30px !important; min-width: 30px; min-height: 30px; padding: 0 !important; border: 1px solid #d3e8d9 !important; border-radius: 9px !important; background: #fff !important; color: #087a34 !important; font-size: 18px !important; font-weight: 900 !important; line-height: 1 !important; box-shadow: none !important; cursor: pointer; }
.mmtf-night-counter button:disabled,
.mmtf-counter-btn:disabled { opacity: .42 !important; cursor: not-allowed !important; background: #f5f8f6 !important; }
.mmtf-night-counter button:hover,
.mmtf-counter-btn:hover { background: #eaf9ef !important; }
.mmtf-night-counter output { min-width: 23px; color: #1a4329; text-align: center; font-size: 15px; font-weight: 900; }
.mmtf-flexible-area { margin-top: 11px; }
.mmtf-flexible-box { display: flex; align-items: center; gap: 10px; padding: 14px; border: 1px solid #dcefe2; border-radius: 15px; background: #f7fff9; }
.mmtf-flexible-box > span { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: #eaf9ef; font-size: 17px; }
.mmtf-flexible-box strong { display: block; color: #21442e; font-size: 11px; }
.mmtf-flexible-box small { display: block; margin-top: 2px; color: #899990; font-size: 9px; line-height: 1.7; }
.mmtf-flex-nights { display: flex; align-items: center; justify-content: space-between; margin-top: 9px; padding: 10px 12px; border: 1px solid #dce9df; border-radius: 13px; background: #fff; color: #466151; font-size: 10px; font-weight: 900; }

/* Guest cards */
.mmtf-guest-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.mmtf-guest-card { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; gap: 8px 9px; padding: 14px; border: 1px solid #dce9df; border-radius: 17px; background: #fbfffc; }
.mmtf-guest-icon { grid-row: 1 / span 2; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; background: #eaf9ef; font-size: 18px; }
.mmtf-guest-copy { min-width: 0; }
.mmtf-guest-copy strong { display: block; color: #234530; font-size: 11px; }
.mmtf-guest-copy small { display: block; margin-top: 2px; color: #93a198; font-size: 8px; }
.mmtf-counter-control { grid-column: 2; display: flex; align-items: center; gap: 7px; }
.mmtf-counter-control output { min-width: 22px; text-align: center; color: #173e26; font-size: 14px; font-weight: 900; }
.mmtf-guests-note { display: inline-flex; align-items: center; gap: 6px; margin-top: 11px; padding: 7px 10px; border-radius: 10px; background: #f7faf8; color: #829188; font-size: 9px; }
.mmtf-party-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 14px; margin-top: 18px; padding: 20px; border: 1px solid #dce9df; border-radius: 18px; background: linear-gradient(135deg,#fbfffc,#f5fff8); }
.mmtf-party-icon { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 15px; background: #eaf9ef; font-size: 24px; }
.mmtf-party-copy strong { display: block; color: #20432d; font-size: 14px; }
.mmtf-party-copy small { display: block; margin-top: 4px; color: #8b9b92; font-size: 10px; line-height: 1.7; }
.mmtf-party-card .mmtf-counter-control { gap: 10px; }
.mmtf-party-card .mmtf-counter-control output { min-width: 34px; font-size: 20px; }
.mmtf-party-card .mmtf-counter-btn { width: 38px !important; height: 38px !important; min-width: 38px; min-height: 38px; border-radius: 11px !important; }

/* Choice cards */
.mmtf-option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; }
.mmtf-option-card { position: relative; min-width: 0; cursor: pointer; }
.mmtf-option-card input { position: absolute; opacity: 0; pointer-events: none; }
.mmtf-option-card > .mmtf-option-check { position: absolute; top: 10px; left: 10px; width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #d9e8de; border-radius: 6px; background: #fff; color: transparent; font-size: 11px; font-weight: 900; z-index: 2; }
.mmtf-option-text { min-height: 58px; display: flex; flex-direction: column; justify-content: center; gap: 3px; padding: 10px 12px 10px 38px; border: 1px solid #dce9df; border-radius: 14px; background: #fff; }
.mmtf-option-text strong { color: #2d4c39; font-size: 11px; line-height: 1.5; }
.mmtf-option-text small { color: #98a69e; font-size: 8px; line-height: 1.4; }
.mmtf-option-card input:checked + .mmtf-option-check { border-color: #10c853; background: #10c853; color: #fff; }
.mmtf-option-card input:checked ~ .mmtf-option-text { border-color: #10c853; background: #f2fff6; box-shadow: inset 0 0 0 1px rgba(16, 200, 83, .15); }
.mmtf-selection-note { margin-top: 9px; color: #91a098; font-size: 9px; }
.mmtf-mini-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 4px; }
.mmtf-priority-field { margin-top: 10px; }

/* Contact / summary */
.mmtf-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 13px; }
.mmtf-review-title { margin-top: 12px; color: #4a6353; font-size: 10px; font-weight: 900; }
.mmtf-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 6px; padding: 8px; border: 1px solid #dce9df; border-radius: 14px; background: #f8fffa; }
.mmtf-summary > div { min-width: 0; padding: 8px 9px; border-radius: 10px; background: #fff; color: #677b70; font-size: 9px; line-height: 1.6; }
.mmtf-summary strong { display: block; margin-bottom: 2px; color: #087a34; font-size: 9px; }

/* Actions */
.mmtf-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; padding-top: 12px; flex: 0 0 auto; }
.mmtf-action-hint { color: #a0aca5; font-size: 8px; }
.mmtf-primary,
.mmtf-secondary { min-height: 42px; padding: 0 17px; border-radius: 12px; font-size: 11px; font-weight: 900; }
.mmtf-primary span { margin-right: 5px; font-size: 13px; }
.mmtf-secondary { background: #f2f6f3 !important; color: #52675b !important; box-shadow: none !important; }
.mmtf-secondary:hover { background: #e8efe9 !important; }

/* Loading / success */
.mmtf-loading,
.mmtf-success { flex: 1; display: flex; align-items: center; justify-content: center; flex-direction: column; padding: 24px; text-align: center; }
.mmtf-spinner { width: 36px; height: 36px; margin-bottom: 10px; border: 4px solid #dff4e5; border-top-color: #10c853; border-radius: 50%; animation: mmtfspin .8s linear infinite; }
@keyframes mmtfspin { to { transform: rotate(360deg); } }
.mmtf-loading strong { color: #21442e; font-size: 13px; }
.mmtf-loading span,
.mmtf-success p { color: #778a80; font-size: 11px; line-height: 1.9; }
.mmtf-success-icon { font-size: 46px; }
.mmtf-success h2 { margin: 7px 0 3px; color: #183f27; font-size: 23px; }
.mmtf-code-box { margin: 11px 0 14px; padding: 12px 18px; border-radius: 14px; background: #effff4; color: #087a34; font-size: 11px; }
.mmtf-code-box strong { font-size: 19px; }
.mmtf-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }


/* Supplied brand banner: lazy-loaded on modal open so it does not affect page load. */

/* Inline SVG icons: no font, CDN or extra network request. */
.mmtf-option-icon { position: absolute; top: 50%; right: 11px; z-index: 1; width: 25px; height: 25px; display: grid; place-items: center; transform: translateY(-50%); border-radius: 8px; background: #eaf9ef; color: #087a34; pointer-events: none; }
.mmtf-option-icon svg { width: 15px; height: 15px; display: block; }
.mmtf-option-text { padding-right: 43px; }
.mmtf-option-card input:checked ~ .mmtf-option-icon { background: #d9f8e2; color: #0b9e42; }

/* One nights control for both fixed and flexible dates. */
.mmtf-single-nights-card { margin-top: 9px; }
.mmtf-single-nights-card button:disabled { opacity: .42 !important; cursor: not-allowed !important; }
.mmtf-flexible-box { margin-top: 9px; }

/* Responsive */
@media (max-width: 820px) {
    .mmtf-dialog { width: min(760px, calc(100vw - 20px)); max-height: calc(100dvh - 20px); }
    .mmtf-progress-wrap { padding-left: 18px; padding-right: 18px; }
    .mmtf-form { padding-left: 18px; padding-right: 18px; }
    .mmtf-intro-view { padding-left: 18px; padding-right: 18px; }
    .mmtf-calendar-layout { grid-template-columns: minmax(0, 1fr) 190px; }
}

@media (max-width: 1024px) {
    /* 1.2.9: tablet + mobile viewport-filling dialog. Desktop remains unchanged. */
    .mmtf-dialog {
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        min-height: 100dvh;
        border-radius: 0;
        border: 0;
    }
}

@media (max-width: 680px) {
    .mmtf-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; min-height: 100dvh; border-radius: 0; border: 0; }
    .mmtf-dialog-head { flex-basis: 58px; padding: 10px 14px; }
    .mmtf-brand-mark { width: 34px; height: 34px; }
    .mmtf-close { width: 34px; height: 34px; }
    .mmtf-progress-wrap { padding: 8px 14px 0; }
    .mmtf-form { padding: 8px 14px calc(14px + env(safe-area-inset-bottom)); }
    .mmtf-intro-view { padding: 10px 14px calc(18px + env(safe-area-inset-bottom)); }
    .mmtf-intro-visual { flex-basis: 110px; height: 110px; margin-bottom: 10px; border-radius: 18px; }
    .mmtf-intro-banner { padding: 16px 18px; }
    .mmtf-banner-copy { max-width: calc(100% - 74px); gap: 4px; }
    .mmtf-banner-copy strong { font-size: clamp(19px, 5.2vw, 25px); }
    .mmtf-banner-copy span { font-size: 10px; }
    .mmtf-banner-mark { width: 50px; height: 50px; flex-basis: 50px; border-radius: 15px; font-size: 22px; }
    .mmtf-banner-leaf-one { right: 8%; top: -20px; width: 90px; }
    .mmtf-banner-leaf-two { right: -4%; bottom: -24px; width: 115px; }
    .mmtf-intro-house { transform: scale(.8); transform-origin: bottom center; right: 33%; }
    .mmtf-intro-sun { width: 44px; height: 44px; }
    .mmtf-card { grid-template-columns: 1fr; gap: 15px; padding: 18px; }
    .mmtf-card-action { align-items: flex-start; min-width: 0; }
    .mmtf-destination-grid,
    .mmtf-contact-grid,
    .mmtf-mini-fields { grid-template-columns: 1fr; gap: 9px; }
    .mmtf-calendar-layout { grid-template-columns: 1fr; gap: 8px; }
    .mmtf-date-side { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 7px; }
    .mmtf-date-box,
    .mmtf-nights-card { padding: 8px 9px; }
    .mmtf-date-box strong { font-size: 9px; }
    .mmtf-nights-card { flex-direction: column; align-items: stretch; gap: 5px; }
    .mmtf-nights-card > div:first-child { flex-direction: row; justify-content: space-between; align-items: baseline; }
    .mmtf-night-counter { justify-content: center; }
    .mmtf-guest-cards { grid-template-columns: 1fr; gap: 8px; margin-top: 13px; }
    .mmtf-guest-card { grid-template-columns: auto minmax(0,1fr) auto; grid-template-rows: 1fr; align-items: center; padding: 10px; }
    .mmtf-guest-icon { grid-row: 1; }
    .mmtf-counter-control { grid-column: 3; }
    .mmtf-option-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; margin-top: 12px; }
    .mmtf-option-text { min-height: 50px; padding: 8px 38px 8px 34px; }
    .mmtf-option-card > .mmtf-option-check { top: 8px; left: 8px; }
    .mmtf-summary { grid-template-columns: 1fr 1fr; }
    .mmtf-actions { padding-top: 9px; }
    .mmtf-action-hint { display: none; }
}

@media (max-width: 680px) and (max-height: 680px) {
    .mmtf-dialog-head { flex-basis: 52px; padding-top: 7px; padding-bottom: 7px; }
    .mmtf-progress-wrap { padding-top: 5px; }
    .mmtf-progress-segments { margin-top: 5px; }
    .mmtf-form { padding-top: 6px; padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
    .mmtf-step-title h3 { font-size: 16px; }
    .mmtf-step-title p { margin-top: 1px; line-height: 1.45; }
    .mmtf-field { margin-top: 7px; }
    .mmtf-field label { margin-bottom: 4px; }
    .mmtf-field input,
    .mmtf-field select,
    .mmtf-field textarea,
    .mmtf-search-wrap input { min-height: 38px; }
    .mmtf-option-grid { gap: 6px; margin-top: 9px; }
    .mmtf-option-text { min-height: 44px; padding-top: 6px; padding-bottom: 6px; }
    .mmtf-actions { margin-top: 9px; padding-top: 6px; }
    .mmtf-primary, .mmtf-secondary { min-height: 36px; }
}

@media (max-width: 430px) {
    .mmtf-step-title { gap: 9px; }
    .mmtf-step-badge { flex-basis: 30px; width: 30px; height: 30px; border-radius: 9px; font-size: 12px; }
    .mmtf-step-title h3 { font-size: 17px; }
    .mmtf-step-title p { font-size: 9px; }
    .mmtf-field input,
    .mmtf-field select,
    .mmtf-field textarea,
    .mmtf-search-wrap input { min-height: 41px; font-size: 11px !important; }
    .mmtf-calendar-card { padding: 8px; }
    .mmtf-calendar-instruction { font-size: 8px; }
    .mmtf-cal-day { height: 29px !important; min-height: 29px !important; }
    .mmtf-date-side { grid-template-columns: 1fr 1fr 1fr; }
    .mmtf-option-text strong { font-size: 10px; }
    .mmtf-option-text small { display: none; }
    .mmtf-summary { grid-template-columns: 1fr 1fr; }
    .mmtf-summary > div { padding: 7px; font-size: 8px; }
    .mmtf-primary,
    .mmtf-secondary { min-height: 40px; padding: 0 13px; font-size: 10px; }
}

@media (max-width: 340px) and (max-height: 600px) {
    .mmtf-dialog-head { flex-basis: 48px; padding: 5px 10px; }
    .mmtf-brand-mark { width: 30px; height: 30px; border-radius: 9px; font-size: 16px; }
    .mmtf-brand-copy strong { font-size: 11px; }
    .mmtf-brand-copy span { font-size: 8px; }
    .mmtf-close { width: 30px; height: 30px; font-size: 19px !important; }
    .mmtf-progress-wrap { padding: 4px 10px 0; }
    .mmtf-progress-caption { font-size: 8px; }
    .mmtf-progress-meta strong { font-size: 9px; }
    .mmtf-progress-percent { font-size: 8px; }
    .mmtf-progress-segments { gap: 3px; margin-top: 4px; }
    .mmtf-progress-segments span { height: 3px; }
    .mmtf-form { padding: 4px 10px calc(6px + env(safe-area-inset-bottom)); }
    .mmtf-step-title { gap: 7px; }
    .mmtf-step-badge { width: 28px; height: 28px; flex-basis: 28px; border-radius: 8px; font-size: 11px; }
    .mmtf-step-title h3 { font-size: 15px; line-height: 1.25; }
    .mmtf-step-title p { font-size: 8px; line-height: 1.35; }
    .mmtf-field { margin-top: 5px; }
    .mmtf-field label { margin-bottom: 3px; font-size: 8px; }
    .mmtf-field input,
    .mmtf-field select,
    .mmtf-field textarea,
    .mmtf-search-wrap input { min-height: 35px; font-size: 10px !important; }
    .mmtf-calendar-layout { gap: 5px; margin-top: 7px; }
    .mmtf-calendar-card { padding: 6px; }
    .mmtf-calendar-instruction { margin-bottom: 4px; font-size: 7px; }
    .mmtf-cal-head { margin-bottom: 4px; }
    .mmtf-cal-head strong { font-size: 12px; }
    .mmtf-cal-nav { width: 28px !important; height: 28px !important; min-width: 28px; }
    .mmtf-cal-week span { padding: 2px 0; font-size: 7px; }
    .mmtf-cal-week, .mmtf-cal-days { gap: 2px; }
    .mmtf-cal-day { height: 26px !important; min-height: 26px !important; border-radius: 7px !important; font-size: 9px !important; }
    .mmtf-date-side { gap: 5px; }
    .mmtf-date-box { padding: 7px 8px; }
    .mmtf-date-box small { font-size: 7px; }
    .mmtf-date-box strong { font-size: 9px; }
    .mmtf-nights-card { padding: 7px 8px; }
    .mmtf-night-counter { gap: 5px; }
    .mmtf-night-counter button, .mmtf-counter-btn { width: 27px !important; height: 27px !important; min-width: 27px; min-height: 27px; }
    .mmtf-night-counter output { font-size: 13px; }
    .mmtf-guest-cards { margin-top: 8px; gap: 6px; }
    .mmtf-guest-card { padding: 7px; }
    .mmtf-guest-icon { width: 31px; height: 31px; }
    .mmtf-party-card { margin-top: 9px; padding: 10px; gap: 8px; border-radius: 14px; }
    .mmtf-party-icon { width: 36px; height: 36px; border-radius: 10px; font-size: 18px; }
    .mmtf-party-copy strong { font-size: 10px; }
    .mmtf-party-copy small { margin-top: 2px; font-size: 7px; }
    .mmtf-party-card .mmtf-counter-control { gap: 5px; }
    .mmtf-party-card .mmtf-counter-control output { min-width: 24px; font-size: 14px; }
    .mmtf-party-card .mmtf-counter-btn { width: 28px !important; height: 28px !important; min-width: 28px; min-height: 28px; }
    .mmtf-option-grid { gap: 5px; margin-top: 7px; }
    .mmtf-option-text { min-height: 40px; padding: 5px 34px 5px 30px; }
    .mmtf-option-text strong { font-size: 9px; }
    .mmtf-option-card > .mmtf-option-check { width: 17px; height: 17px; top: 6px; left: 6px; }
    .mmtf-summary { gap: 4px; padding: 5px; margin-top: 4px; }
    .mmtf-summary > div { padding: 5px; font-size: 7px; }
    .mmtf-summary strong { font-size: 7px; }
    .mmtf-review-title { margin-top: 7px; font-size: 8px; }
    .mmtf-actions { margin-top: 6px; padding-top: 4px; gap: 6px; }
    .mmtf-primary, .mmtf-secondary { min-height: 34px; padding: 0 10px; font-size: 9px; }
    .mmtf-field textarea { min-height: 39px; max-height: 39px; }
}


/* 1.2.9: keep the close control comfortably reachable on all tablet/mobile viewports. */
@media (max-width: 1024px) {
    .mmtf-dialog-head { padding-top: max(10px, env(safe-area-inset-top)); }
    .mmtf-close { flex: 0 0 auto; }
}
