:root {
            --bg: #f3f8fb;
            --ink: #0f2234;
            --muted: #547088;
            --line: #d5e5f0;
            --surface: #ffffff;
            --brand: #005b99;
            --brand-strong: #003f74;
            --accent: #00a7c4;
            --ok: #0f7a4b;
            --radius: 18px;
            --shadow: 0 18px 38px rgba(6, 45, 72, 0.14);
        }

        * { box-sizing: border-box; }

        body {
            margin: 0;
            color: var(--ink);
            font-family: "Cairo", "Segoe UI", Tahoma, sans-serif;
            background:
                radial-gradient(circle at 0% -15%, #d8eefe 0%, transparent 48%),
                radial-gradient(circle at 100% -12%, #d5f2ff 0%, transparent 44%),
                linear-gradient(180deg, #f8fcff 0%, #eef5fa 100%);
        }

        .home-shell {
            max-width: 1220px;
            margin: 0 auto;
            padding: 16px 14px 56px;
        }

        .hero {
            position: relative;
            overflow: visible;
            border-radius: 24px;
            background: linear-gradient(132deg, #003f74 0%, #005f9a 52%, #00a4bf 100%);
            color: #fff;
            box-shadow: 0 20px 44px rgba(0, 62, 106, 0.28);
            padding: 18px;
            animation: rise-in .62s ease both;
        }

        .hero::after {
            content: "";
            position: absolute;
            inset: auto -80px -120px auto;
            width: 340px;
            height: 340px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(255,255,255,.24), rgba(255,255,255,0));
            pointer-events: none;
        }

        .hero-grid {
            position: relative;
            z-index: 1;
            display: grid;
            gap: 16px;
        }

        .brand-kicker {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            margin-bottom: 10px;
            border: 1px solid rgba(255,255,255,.45);
            background: rgba(255,255,255,.12);
            border-radius: 999px;
            padding: 6px 10px;
            font-size: 12px;
            font-weight: 900;
            letter-spacing: .25px;
        }

        .brand-kicker .dot-sep {
            width: 5px;
            height: 5px;
            border-radius: 50%;
            background: rgba(255,255,255,.88);
        }

        .hero-copy h1 {
            margin: 0;
            font-size: clamp(26px, 7.2vw, 48px);
            line-height: 1.16;
            letter-spacing: .2px;
        }

        .hero-copy p {
            margin: 12px 0 0;
            max-width: 700px;
            line-height: 1.8;
            opacity: .95;
            font-size: 15px;
        }

        .hero-badges {
            margin-top: 14px;
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .hero-badge {
            border: 1px solid rgba(255,255,255,.46);
            background: rgba(255,255,255,.12);
            color: #fff;
            padding: 7px 10px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 800;
            letter-spacing: .2px;
        }

        .hero-figures {
            margin-top: 12px;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
        }

        .hero-figure {
            border: 1px solid rgba(255,255,255,.4);
            border-radius: 12px;
            background: rgba(255,255,255,.1);
            padding: 8px 9px;
        }

        .hero-figure .k {
            font-size: 11px;
            opacity: .9;
        }

        .hero-figure .v {
            margin-top: 4px;
            font-size: 16px;
            font-weight: 900;
        }

        .hero-media {
            border: 1px solid rgba(255,255,255,.38);
            background: rgba(255,255,255,.1);
            border-radius: 16px;
            min-height: 180px;
            overflow: hidden;
            position: relative;
        }

        .hero-media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .hero-slider {
            position: relative;
            width: 100%;
            height: 100%;
            min-height: 180px;
        }

        .hero-slide {
            position: absolute;
            inset: 0;
            display: block;
            opacity: 0;
            pointer-events: none;
            transform: scale(1.02);
            transition: opacity .34s ease, transform .34s ease;
        }

        .hero-slide.is-active {
            opacity: 1;
            pointer-events: auto;
            transform: scale(1);
        }

        .hero-slide-caption {
            position: absolute;
            inset-inline: 10px;
            bottom: 10px;
            border-radius: 10px;
            border: 1px solid rgba(255,255,255,.4);
            background: rgba(5, 27, 43, .6);
            color: #fff;
            padding: 8px 10px;
            font-size: 12px;
            display: grid;
            gap: 2px;
        }

        .hero-slide-caption strong {
            font-size: 13px;
            line-height: 1.3;
        }

        .hero-slide-meta {
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
            margin-bottom: 2px;
        }

        .hero-slide-kind {
            display: inline-flex;
            align-items: center;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, .4);
            background: rgba(255, 255, 255, .14);
            color: #fff;
            padding: 2px 8px;
            font-size: 10px;
            font-weight: 800;
            letter-spacing: .2px;
        }

        .hero-slide-new {
            display: inline-flex;
            align-items: center;
            border-radius: 999px;
            padding: 2px 8px;
            font-size: 10px;
            font-weight: 900;
            letter-spacing: .2px;
            color: #0a2540;
            background: linear-gradient(135deg, #ffd36f 0%, #ffe59f 100%);
            box-shadow: 0 3px 9px rgba(255, 214, 120, .4);
        }

        .hero-slider-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            width: 34px;
            height: 34px;
            border-radius: 999px;
            border: 1px solid rgba(255,255,255,.5);
            background: rgba(5, 27, 43, .55);
            color: #fff;
            font-size: 20px;
            line-height: 1;
            cursor: pointer;
            z-index: 3;
        }

        .hero-slider-nav.prev { inset-inline-start: 8px; }
        .hero-slider-nav.next { inset-inline-end: 8px; }

        .hero-slider-dots {
            position: absolute;
            inset-inline: 0;
            bottom: 8px;
            display: flex;
            justify-content: center;
            gap: 5px;
            z-index: 3;
        }

        .hero-slider-dot {
            width: 7px;
            height: 7px;
            border-radius: 999px;
            border: 0;
            background: rgba(255,255,255,.45);
            cursor: pointer;
            padding: 0;
        }

        .hero-slider-dot.is-active {
            background: #fff;
            width: 20px;
        }

        .search-panel {
            margin-top: 16px;
            border: 1px solid rgba(255,255,255,.36);
            background: rgba(8, 34, 57, .28);
            border-radius: 16px;
            padding: 12px;
            backdrop-filter: blur(2px);
            --search-control-h: 48px;
            --search-control-radius: 12px;
            --search-grid-gap: 10px;
        }

        .search-panel h2 {
            margin: 0 0 8px;
            font-size: 17px;
            font-weight: 800;
            color: #fff;
        }

        .search-grid {
            display: grid;
            gap: var(--search-grid-gap);
            grid-template-columns: minmax(0, 1fr);
            grid-template-areas:
                "destination"
                "dates"
                "guests"
                "service"
                "submit";
            align-items: end;
        }

        .search-field {
            display: grid;
            gap: 6px;
            min-width: 0;
        }

        .search-field > span {
            font-size: 12px;
            color: #dbefff;
            font-weight: 800;
        }

        .search-field input,
        .search-field select {
            width: 100%;
            min-width: 0;
            border: 1px solid #b8d9ef;
            border-radius: var(--search-control-radius);
            box-sizing: border-box;
            height: var(--search-control-h);
            min-height: var(--search-control-h);
            padding: 0 11px;
            font: inherit;
            color: #0f2b40;
            background: #fefefe;
        }

        .search-range-box,
        .search-occupancy-box {
            position: relative;
            display: flex;
            align-items: center;
            box-sizing: border-box;
            height: var(--search-control-h);
            min-height: var(--search-control-h);
            border: 1px solid #b8d9ef;
            border-radius: var(--search-control-radius);
            background: #fefefe;
            padding-inline: 12px;
            padding-inline-start: 40px;
        }

        .search-occupancy-box {
            padding-inline: 10px;
            padding-inline-start: 36px;
            color: #0f2b40;
        }

        .search-field-destination { grid-area: destination; }
        .search-field-range { grid-area: dates; }
        .search-field-occupancy { grid-area: guests; }
        .search-field-service { grid-area: service; }

        .search-range-box:focus-within,
        .search-occupancy-box:focus-within {
            border-color: #52cce8;
            box-shadow: 0 0 0 3px rgba(38, 214, 218, .24);
        }

        .search-occupancy-wrap {
            position: relative;
            min-width: 0;
        }

        .search-occupancy-wrap.is-open {
            z-index: 70;
        }

        .search-occupancy-box.is-open {
            border-color: #52cce8;
            box-shadow: 0 0 0 3px rgba(38, 214, 218, .24);
        }

        .search-field-icon {
            position: absolute;
            inset-inline-start: 12px;
            width: 18px;
            height: 18px;
            color: #0f2b40;
            pointer-events: none;
        }

        .search-range-inputs {
            display: flex;
            align-items: center;
            gap: 8px;
            width: 100%;
            min-width: 0;
        }

        .search-range-hidden {
            position: absolute;
            width: 1px;
            height: 1px;
            opacity: 0;
            pointer-events: none;
        }

        .date-range-trigger {
            width: 100%;
            height: 100%;
            min-height: 100%;
            min-width: 0;
            border: 0;
            padding: 0;
            border-radius: 0;
            background: transparent;
            color: #0f2b40;
            font: inherit;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            cursor: pointer;
            text-align: left;
        }

        .date-range-trigger:focus {
            outline: none;
        }

        .date-range-summary {
            font-size: 16px;
            font-weight: 500;
            color: #0f2b40;
            flex: 1 1 auto;
            min-width: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .date-range-summary.is-empty {
            color: #6c8191;
            font-weight: 400;
        }

        .search-range-sep {
            color: #6b8598;
            font-size: 15px;
            font-weight: 800;
        }

        .search-range-box.is-open {
            border-color: #52cce8;
            box-shadow: 0 0 0 3px rgba(38, 214, 218, .24);
        }

        .date-overlay {
            position: fixed;
            inset: 0;
            background: rgba(4, 18, 31, .12);
            z-index: 1000;
            display: none;
            pointer-events: none;
        }

        .date-overlay.is-open {
            display: block;
            pointer-events: auto;
        }

        .date-popover {
            position: fixed;
            top: 0;
            left: 0;
            width: min(720px, calc(100vw - 24px));
            border: 1px solid #cfdeea;
            border-radius: 16px;
            background: #fff;
            box-shadow: 0 18px 44px rgba(7, 33, 57, .22);
            z-index: 1100;
            display: none;
            overflow: hidden;
        }

        .date-popover.is-open {
            display: block;
        }

        .date-tabs {
            display: grid;
            grid-template-columns: 1fr 1fr;
            border-bottom: 1px solid #d8e4ef;
        }

        .date-tab {
            border: 0;
            background: #fff;
            color: #284357;
            font: inherit;
            font-size: 16px;
            font-weight: 600;
            min-height: 50px;
            cursor: pointer;
            border-bottom: 3px solid transparent;
        }

        .date-tab.is-active {
            color: #0a67cb;
            border-bottom-color: #1a79e0;
        }

        .date-pane {
            display: none;
            padding: 14px;
        }

        .date-pane.is-active {
            display: block;
        }

        .date-months-wrap {
            display: grid;
            grid-template-columns: 36px minmax(0, 1fr) 36px;
            align-items: start;
            gap: 8px;
        }

        .date-nav-btn {
            border: 0;
            background: #f4f9fd;
            color: #0e4e76;
            border-radius: 10px;
            min-height: 36px;
            font-size: 22px;
            cursor: pointer;
        }

        .date-months {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 14px;
        }

        .date-month {
            min-width: 0;
        }

        .date-month-title {
            margin: 0 0 8px;
            text-align: center;
            font-size: 26px;
            font-weight: 700;
            color: #112b40;
        }

        .date-weekdays,
        .date-days {
            display: grid;
            grid-template-columns: repeat(7, minmax(0, 1fr));
            gap: 4px;
        }

        .date-weekdays span {
            font-size: 14px;
            text-align: center;
            color: #657c90;
            min-height: 22px;
            display: grid;
            place-items: center;
        }

        .date-day,
        .date-day-empty {
            min-height: 38px;
            border-radius: 10px;
            display: grid;
            place-items: center;
            font-size: 16px;
        }

        .date-day-empty {
            visibility: hidden;
        }

        .date-day {
            border: 0;
            background: transparent;
            color: #0f2b40;
            cursor: pointer;
            position: relative;
        }

        .date-day.is-disabled {
            color: #b4c1cd;
            cursor: not-allowed;
        }

        .date-day.is-in-range {
            background: #eaf4ff;
            color: #0f2b40;
            border-radius: 0;
        }

        .date-day.is-start,
        .date-day.is-end {
            background: #0a67cb;
            color: #fff;
            border-radius: 999px;
            font-weight: 700;
        }

        .date-quick {
            margin-top: 12px;
            border-top: 1px solid #d8e4ef;
            padding-top: 12px;
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
        }

        .date-chip {
            border: 1px solid #b8cadb;
            border-radius: 999px;
            background: #fff;
            color: #234059;
            min-height: 36px;
            padding: 0 14px;
            font: inherit;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
        }

        .date-chip.is-active {
            border-color: #1675de;
            color: #0a67cb;
            background: #edf5ff;
        }

        .date-flex-title {
            margin: 0;
            font-size: 24px;
            line-height: 1.25;
            color: #0f2b40;
            font-weight: 700;
        }

        .date-flex-sub {
            margin: 8px 0 0;
            font-size: 14px;
            color: #5e7488;
            font-weight: 500;
        }

        .date-flex-stays {
            display: flex;
            gap: 14px;
            flex-wrap: wrap;
            margin-top: 10px;
            margin-bottom: 14px;
        }

        .date-flex-stay {
            border: 0;
            background: transparent;
            display: inline-flex;
            align-items: center;
            gap: 10px;
            min-height: 34px;
            padding: 0;
            color: #162f45;
            font: inherit;
            font-size: 16px;
            cursor: pointer;
        }

        .date-flex-dot {
            width: 16px;
            height: 16px;
            border-radius: 50%;
            border: 1px solid #8b9aab;
            background: #fff;
            position: relative;
        }

        .date-flex-stay.is-active .date-flex-dot {
            border-color: #1675de;
        }

        .date-flex-stay.is-active .date-flex-dot::after {
            content: "";
            position: absolute;
            inset: 4px;
            border-radius: 50%;
            background: #1675de;
        }

        .date-flex-months-wrap {
            margin-top: 10px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .date-flex-nav {
            width: 42px;
            min-width: 42px;
            height: 42px;
            border-radius: 999px;
            border: 1px solid #d2dde7;
            background: #fff;
            color: #23445e;
            font-size: 28px;
            line-height: 1;
            cursor: pointer;
        }

        .date-flex-nav:disabled {
            opacity: .4;
            cursor: not-allowed;
        }

        .date-flex-months {
            display: grid;
            grid-template-columns: repeat(6, minmax(0, 1fr));
            gap: 10px;
            flex: 1 1 auto;
        }

        .date-flex-month-card {
            border: 1px solid #d2dde7;
            border-radius: 12px;
            background: #fff;
            min-height: 112px;
            display: grid;
            place-items: center;
            align-content: center;
            gap: 6px;
            cursor: pointer;
            color: #19354c;
            text-align: center;
            font: inherit;
            padding: 8px 6px;
        }

        .date-flex-month-card.is-active {
            border-color: #1675de;
            box-shadow: 0 0 0 2px rgba(22, 117, 222, .12);
            background: #f3f9ff;
        }

        .date-flex-month-ico {
            font-size: 16px;
            line-height: 1;
        }

        .date-flex-month-name {
            font-size: 17px;
            font-weight: 700;
            line-height: 1.1;
        }

        .date-flex-month-year {
            font-size: 14px;
            color: #556e83;
            line-height: 1;
        }

        .date-apply,
        .date-done {
            border: 1px solid #2d8ef0;
            border-radius: 10px;
            background: #f7fbff;
            color: #0a67cb;
            min-height: 40px;
            padding: 0 16px;
            font: inherit;
            font-size: 15px;
            font-weight: 800;
            cursor: pointer;
        }

        .date-apply:disabled {
            opacity: .55;
            cursor: not-allowed;
            background: #f2f5f8;
            color: #75899b;
            border-color: #c7d4df;
        }

        .date-footer {
            border-top: 1px solid #d8e4ef;
            padding: 10px 14px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
        }

        .date-footer-flex {
            display: none;
        }

        .date-flex-hint {
            color: #2a4358;
            font-size: 14px;
            font-weight: 500;
        }

        .occupancy-trigger {
            width: 100%;
            height: 100%;
            min-height: 100%;
            min-width: 0;
            border: 0;
            padding: 0;
            border-radius: 0;
            background: transparent;
            color: #0f2b40;
            font: inherit;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            cursor: pointer;
        }

        .occupancy-trigger:focus {
            outline: none;
        }

        .occupancy-summary {
            font-size: 16px;
            font-weight: 400;
            color: #0f2b40;
            flex: 1 1 auto;
            min-width: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .occupancy-caret {
            font-size: 12px;
            color: #0f2b40;
            font-weight: 700;
            flex: 0 0 auto;
        }

        .occupancy-popover {
            position: fixed;
            top: 0;
            left: 0;
            width: min(420px, calc(100vw - 24px));
            border: 1px solid #c9dcea;
            border-radius: 14px;
            background: #ffffff;
            padding: 14px;
            box-shadow: 0 16px 32px rgba(7, 33, 57, .22);
            z-index: 1300;
            display: none;
            max-height: min(460px, calc(100vh - 24px));
            overflow-y: auto;
            overscroll-behavior: contain;
        }

        .occupancy-popover.is-open {
            display: block;
        }

        .occupancy-overlay {
            position: fixed;
            inset: 0;
            background: transparent;
            z-index: 1200;
            display: none;
            pointer-events: none;
        }

        .occupancy-overlay.is-open {
            display: block;
            pointer-events: auto;
        }

        .occupancy-row {
            display: grid;
            grid-template-columns: minmax(108px, 1fr) 148px;
            align-items: center;
            column-gap: 12px;
            margin-bottom: 8px;
        }

        .occupancy-row:last-child {
            margin-bottom: 0;
        }

        .occupancy-ages {
            margin-top: 10px;
            border-top: 1px solid #dce9f3;
            padding-top: 10px;
            display: none;
            gap: 8px;
        }

        .occupancy-ages.is-visible {
            display: grid;
        }

        .occupancy-ages-head {
            margin: 0;
            font-size: 13px;
            font-weight: 700;
            color: #111111;
            line-height: 1.45;
        }

        .occupancy-ages-list {
            display: grid;
            gap: 8px;
        }

        .occupancy-age-item {
            display: grid;
            grid-template-columns: minmax(108px, 1fr) 148px;
            align-items: center;
            column-gap: 12px;
        }

        .occupancy-age-label {
            font-size: 13px;
            font-weight: 700;
            color: #111111;
        }

        .occupancy-age-select {
            width: 148px;
            min-width: 148px;
            border: 1px solid #b9cbdb;
            border-radius: 8px;
            background: #fff;
            color: #111111;
            font: inherit;
            font-size: 14px;
            font-weight: 600;
            min-height: 36px;
            padding: 0 10px;
            cursor: pointer;
        }

        .occupancy-age-select:focus {
            outline: none;
            border-color: #52cce8;
            box-shadow: 0 0 0 2px rgba(38, 214, 218, .18);
        }

        .occupancy-age-select.is-empty {
            color: #6e7e8c;
            border-color: #f06e7e;
        }

        .occupancy-ages.is-error .occupancy-age-select {
            border-color: #e15467;
            box-shadow: 0 0 0 2px rgba(225, 84, 103, .12);
        }

        .occupancy-age-error {
            margin: 0;
            font-size: 12px;
            color: #c21f39;
            display: none;
        }

        .occupancy-age-error.is-visible {
            display: block;
        }

        .occupancy-label {
            font-size: 14px;
            font-weight: 700;
            color: #111111;
        }

        .occupancy-stepper {
            display: grid;
            grid-template-columns: 40px 68px 40px;
            align-items: center;
            border: 1px solid #b9cbdb;
            border-radius: 8px;
            overflow: hidden;
            width: 148px;
            min-width: 148px;
            background: #fff;
        }

        .occ-btn {
            border: 0;
            min-height: 38px;
            background: #fff;
            color: #2c8ff0;
            font-size: 26px;
            line-height: 1;
            cursor: pointer;
        }

        .occ-btn:disabled {
            color: #b8bdc4;
            cursor: not-allowed;
        }

        .occ-value {
            text-align: center;
            font-size: 16px;
            font-weight: 700;
            color: #111111;
            width: 68px;
            min-width: 68px;
            font-variant-numeric: tabular-nums;
            font-feature-settings: "tnum" 1;
        }

        .occupancy-pets {
            margin-top: 10px;
            border-top: 1px solid #dce9f3;
            padding-top: 10px;
        }

        .occupancy-pets-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            margin-bottom: 8px;
            font-size: 14px;
            font-weight: 700;
            color: #111111;
        }

        .occupancy-toggle {
            position: relative;
            width: 44px;
            height: 24px;
            display: inline-block;
        }

        .occupancy-toggle input {
            position: absolute;
            inset: 0;
            opacity: 0;
            margin: 0;
            cursor: pointer;
        }

        .occupancy-toggle-ui {
            position: absolute;
            inset: 0;
            border-radius: 999px;
            background: #9fa6af;
            transition: background .18s ease;
        }

        .occupancy-toggle-ui::after {
            content: "";
            position: absolute;
            top: 3px;
            left: 3px;
            width: 18px;
            height: 18px;
            border-radius: 50%;
            background: #fff;
            transition: transform .18s ease;
        }

        .occupancy-toggle input:checked + .occupancy-toggle-ui {
            background: #2d8ef0;
        }

        .occupancy-toggle input:checked + .occupancy-toggle-ui::after {
            transform: translateX(20px);
        }

        [dir="rtl"] .occupancy-toggle-ui::after {
            left: auto;
            right: 3px;
        }

        [dir="rtl"] .occupancy-toggle input:checked + .occupancy-toggle-ui::after {
            transform: translateX(-20px);
        }

        .occupancy-pets-note {
            margin: 0;
            color: #111111;
            font-size: 13px;
            line-height: 1.5;
        }

        .occupancy-done {
            margin-top: 10px;
            width: 100%;
            min-height: 40px;
            border: 1px solid #2d8ef0;
            border-radius: 8px;
            background: #f7fbff;
            color: #0a67cb;
            font: inherit;
            font-size: 15px;
            font-weight: 800;
            cursor: pointer;
        }

        .occupancy-done:hover {
            background: #eef6ff;
        }

        .occupancy-done:disabled {
            opacity: .55;
            cursor: not-allowed;
            background: #f2f6fa;
            color: #5d7285;
            border-color: #bfd0df;
        }

        @media (max-width: 679px) {
            .date-popover {
                width: calc(100vw - 12px);
                border-radius: 14px;
            }

            .date-pane {
                padding: 10px;
            }

            .date-months-wrap {
                grid-template-columns: 32px minmax(0, 1fr) 32px;
                gap: 6px;
            }

            .date-months {
                grid-template-columns: minmax(0, 1fr);
                gap: 10px;
            }

            .date-flex-title {
                font-size: 20px;
            }

            .date-flex-sub {
                font-size: 13px;
            }

            .date-flex-stay {
                font-size: 15px;
            }

            .date-flex-dot {
                width: 14px;
                height: 14px;
            }

            .date-flex-months {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .date-flex-month-card {
                min-height: 96px;
            }

            .date-flex-month-name {
                font-size: 16px;
            }

            .date-flex-month-year {
                font-size: 13px;
            }

            .date-flex-hint {
                font-size: 13px;
            }

            .date-apply {
                min-height: 36px;
                padding: 0 12px;
                font-size: 13px;
            }

            .date-month-title {
                font-size: 22px;
            }

            .date-tab {
                font-size: 14px;
                min-height: 44px;
            }

            .occupancy-row {
                grid-template-columns: minmax(94px, 1fr) 140px;
                column-gap: 10px;
            }

            .occupancy-stepper {
                width: 140px;
                min-width: 140px;
                grid-template-columns: 36px 68px 36px;
            }

            .occupancy-age-item {
                grid-template-columns: minmax(94px, 1fr) 140px;
                column-gap: 10px;
            }

            .occupancy-age-select {
                width: 140px;
                min-width: 140px;
            }
        }

        .search-submit {
            grid-area: submit;
            width: 100%;
            box-sizing: border-box;
            height: var(--search-control-h);
            min-height: var(--search-control-h);
            border: 1px solid #7ee1f5;
            border-radius: var(--search-control-radius);
            padding: 0 14px;
            color: #fff;
            font-size: 14px;
            font-weight: 900;
            cursor: pointer;
            background: linear-gradient(125deg, #00a4bf 0%, #11b4d0 46%, #26d6da 100%);
            box-shadow: 0 10px 20px rgba(0, 174, 194, .3);
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .search-note {
            margin-top: 6px;
            font-size: 12px;
            color: #d1e7f7;
        }

        .service-tabs {
            margin-top: 10px;
            display: flex;
            flex-wrap: wrap;
            gap: 7px;
        }

        .service-tab {
            text-decoration: none;
            color: #e8f7ff;
            border: 1px solid rgba(255,255,255,.4);
            border-radius: 999px;
            padding: 7px 11px;
            font-size: 12px;
            font-weight: 800;
            background: rgba(255,255,255,.08);
            transition: transform .18s ease, background .18s ease, color .18s ease;
        }

        .service-tab:hover {
            transform: translateY(-1px);
            background: rgba(255,255,255,.2);
        }

        .service-tab.is-active {
            color: #063f63;
            border-color: #9ceaff;
            background: #d9f6ff;
        }

        .stats-strip {
            margin-top: 14px;
            display: grid;
            gap: 9px;
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .platform-strip {
            margin-top: 12px;
            border-radius: 22px;
            padding: 16px;
            color: #fff;
            background:
                radial-gradient(circle at 100% 0%, rgba(68, 222, 255, .22), transparent 34%),
                radial-gradient(circle at 0% 100%, rgba(93, 154, 255, .18), transparent 30%),
                linear-gradient(135deg, #072b43 0%, #0b4f78 52%, #0f77a1 100%);
            box-shadow: 0 18px 36px rgba(7, 42, 66, .22);
            display: grid;
            gap: 12px;
        }

        .platform-strip-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            gap: 12px;
            flex-wrap: wrap;
        }

        .platform-strip-kicker {
            display: inline-flex;
            align-items: center;
            width: fit-content;
            padding: 6px 10px;
            border-radius: 999px;
            border: 1px solid rgba(255,255,255,.28);
            background: rgba(255,255,255,.09);
            font-size: 11px;
            font-weight: 900;
            letter-spacing: .22px;
        }

        .platform-strip-head h2 {
            margin: 8px 0 0;
            font-size: clamp(22px, 4.6vw, 34px);
            line-height: 1.14;
        }

        .platform-strip-head p {
            margin: 8px 0 0;
            max-width: 760px;
            color: rgba(255,255,255,.88);
            line-height: 1.8;
            font-size: 14px;
        }

        .platform-strip-link {
            text-decoration: none;
            color: #082b42;
            background: #d7f5ff;
            border: 1px solid #92e8ff;
            border-radius: 999px;
            padding: 10px 14px;
            font-size: 13px;
            font-weight: 900;
            white-space: nowrap;
        }

        .platform-strip-grid {
            display: grid;
            gap: 10px;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        }

        .platform-strip-card {
            border-radius: 16px;
            border: 1px solid rgba(255,255,255,.14);
            background: rgba(255,255,255,.08);
            color: inherit;
            text-decoration: none;
            padding: 14px;
            display: grid;
            gap: 8px;
            min-height: 182px;
            transition: transform .18s ease, background .18s ease, border-color .18s ease;
            backdrop-filter: blur(4px);
        }

        .platform-strip-card:hover {
            transform: translateY(-2px);
            background: rgba(255,255,255,.12);
            border-color: rgba(255,255,255,.26);
        }

        .platform-strip-card .eyebrow {
            display: inline-flex;
            width: fit-content;
            border-radius: 999px;
            padding: 5px 9px;
            background: rgba(255,255,255,.14);
            border: 1px solid rgba(255,255,255,.12);
            font-size: 11px;
            font-weight: 900;
        }

        .platform-strip-card strong {
            font-size: 19px;
            line-height: 1.34;
        }

        .platform-strip-card p {
            margin: 0;
            color: rgba(255,255,255,.9);
            line-height: 1.7;
            font-size: 13px;
        }

        .platform-strip-meta {
            margin-top: auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
            color: #d1efff;
        }

        .platform-strip-meta span {
            font-size: 12px;
            font-weight: 800;
        }

        .specialties-grid {
            margin-top: 10px;
            display: grid;
            gap: 10px;
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .specialty-card {
            border: 1px solid #cfe2ee;
            border-radius: 14px;
            background: linear-gradient(140deg, #fbfeff 0%, #f2f9ff 100%);
            padding: 12px;
            text-decoration: none;
            color: inherit;
            display: grid;
            gap: 6px;
            min-height: 124px;
            transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
        }

        .specialty-card:hover {
            transform: translateY(-2px);
            border-color: #7ac3e4;
            box-shadow: 0 10px 20px rgba(11, 79, 118, .12);
        }

        .specialty-card strong {
            margin: 0;
            font-size: 17px;
            line-height: 1.32;
            color: #114166;
        }

        .specialty-card p {
            margin: 0;
            font-size: 13px;
            line-height: 1.6;
            color: #4d647a;
        }

        .specialty-meta {
            margin-top: auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 8px;
        }

        .specialty-count {
            font-size: 13px;
            font-weight: 800;
            color: #0b5d8a;
        }

        .specialty-go {
            font-size: 12px;
            font-weight: 800;
            color: #0b5d8a;
        }

        .discovery-grid {
            display: grid;
            gap: 10px;
            grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
        }

        .discovery-card {
            border: 1px solid #cfe2ee;
            border-radius: 16px;
            background: linear-gradient(140deg, #fbfeff 0%, #f2f9ff 100%);
            padding: 14px;
            text-decoration: none;
            color: inherit;
            display: grid;
            gap: 8px;
            min-height: 172px;
            transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
        }

        .discovery-card:hover {
            transform: translateY(-2px);
            border-color: #7ac3e4;
            box-shadow: 0 12px 24px rgba(11, 79, 118, .12);
        }

        .discovery-kicker {
            display: inline-flex;
            width: fit-content;
            padding: 6px 10px;
            border-radius: 999px;
            background: #e8f6fb;
            border: 1px solid #cbe3eb;
            color: #0b3349;
            font-size: 11px;
            font-weight: 900;
        }

        .discovery-card strong {
            font-size: 18px;
            line-height: 1.35;
            color: #114166;
        }

        .discovery-card p {
            margin: 0;
            font-size: 13px;
            line-height: 1.7;
            color: #4d647a;
        }

        .discovery-meta {
            margin-top: auto;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
        }

        .discovery-count {
            font-size: 12px;
            font-weight: 800;
            color: #0b5d8a;
        }

        .discovery-go {
            font-size: 12px;
            font-weight: 800;
            color: #0b5d8a;
        }

        .stat-card {
            border: 1px solid var(--line);
            background: var(--surface);
            border-radius: 14px;
            padding: 12px;
        }

        .stat-card .k {
            color: var(--muted);
            font-size: 12px;
            font-weight: 700;
        }

        .stat-card .v {
            margin-top: 7px;
            color: var(--brand-strong);
            font-size: 23px;
            font-weight: 900;
        }
        .section {
            margin-top: 22px;
            animation: rise-in .62s ease both;
        }

        .section-head {
            margin-bottom: 10px;
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            gap: 10px;
            flex-wrap: wrap;
        }

        .section-head h2 {
            margin: 0;
            font-size: clamp(22px, 4.6vw, 32px);
            line-height: 1.18;
            letter-spacing: .2px;
        }

        .section-head p {
            margin: 4px 0 0;
            color: var(--muted);
            font-size: 14px;
        }

        .section-link {
            text-decoration: none;
            color: var(--brand);
            font-weight: 800;
            font-size: 13px;
        }

        .cards-grid {
            display: grid;
            gap: 11px;
        }

        .trips-grid {
            display: grid;
            gap: 11px;
        }

        .trip-card {
            border: 1px solid #cfe2ee;
            background: #fff;
            border-radius: 16px;
            overflow: hidden;
            box-shadow: 0 8px 16px rgba(11, 73, 108, .08);
            display: grid;
        }

        .trip-media {
            position: relative;
            aspect-ratio: 16 / 10;
            background: #d9ecf8;
        }

        .trip-media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transition: transform .24s ease;
        }

        .trip-card:hover .trip-media img {
            transform: scale(1.04);
        }

        .trip-badge {
            position: absolute;
            top: 10px;
            inset-inline-start: 10px;
            border-radius: 999px;
            background: rgba(6, 86, 128, .92);
            color: #fff;
            padding: 5px 10px;
            font-size: 11px;
            font-weight: 800;
        }

        .trip-badge-new {
            inset-inline-start: auto;
            inset-inline-end: 10px;
            background: linear-gradient(135deg, #ffd36f 0%, #ffe59f 100%);
            color: #12354f;
            border: 1px solid rgba(255, 214, 120, .95);
            box-shadow: 0 4px 10px rgba(255, 214, 120, .36);
        }

        .trip-body {
            padding: 12px;
            display: grid;
            gap: 8px;
        }

        .trip-topline {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 8px;
            color: #46637b;
            font-size: 12px;
            font-weight: 700;
        }

        .trip-card h3 {
            margin: 0;
            font-size: 18px;
            line-height: 1.4;
            color: #0f3f61;
        }

        .trip-card p {
            margin: 0;
            color: var(--muted);
            font-size: 14px;
            line-height: 1.65;
        }

        .trip-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }

        .trip-meta span {
            border: 1px solid #d3e5f1;
            border-radius: 999px;
            background: #f3f9fd;
            color: #284e6a;
            font-size: 12px;
            font-weight: 700;
            padding: 4px 8px;
        }

        .trip-bottom {
            margin-top: 2px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
        }

        .trip-price {
            color: #0f3f61;
            font-size: 14px;
            font-weight: 900;
        }

        .trip-actions {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
        }
        .personal-grid {
            display: grid;
            gap: 10px;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        }
        .personal-card {
            border: 1px solid #d2e4f0;
            background: #fff;
            border-radius: 14px;
            overflow: hidden;
            text-decoration: none;
            color: inherit;
            box-shadow: 0 8px 18px rgba(8, 53, 84, .08);
            display: grid;
        }
        .personal-card:hover {
            transform: translateY(-2px);
            box-shadow: 0 12px 24px rgba(8, 53, 84, .12);
        }
        .personal-media {
            aspect-ratio: 16 / 9;
            background: #e1eef8;
        }
        .personal-media img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
        .personal-body {
            padding: 10px;
            display: grid;
            gap: 6px;
        }
        .personal-type {
            font-size: 11px;
            font-weight: 800;
            color: #115a82;
        }
        .personal-title {
            margin: 0;
            color: #0f3f61;
            font-size: 15px;
            line-height: 1.4;
            font-weight: 800;
        }
        .personal-meta {
            display: flex;
            gap: 6px;
            flex-wrap: wrap;
            color: #4e687e;
            font-size: 12px;
            font-weight: 700;
        }
        .personal-price {
            color: #0f476c;
            font-size: 13px;
            font-weight: 900;
        }

        .hotels-tools {
            margin-bottom: 10px;
            border: 1px solid #d3e4ef;
            border-radius: 14px;
            background: #fbfeff;
            padding: 10px;
            display: grid;
            gap: 8px;
        }

        .hotels-tools-row {
            display: grid;
            gap: 8px;
            grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
        }

        .hotels-field {
            display: grid;
            gap: 5px;
        }

        .hotels-field span {
            font-size: 12px;
            color: #4f667c;
            font-weight: 800;
        }

        .hotels-field input,
        .hotels-field select {
            width: 100%;
            border: 1px solid #c7dceb;
            border-radius: 9px;
            min-height: 40px;
            padding: 0 10px;
            font: inherit;
            color: #17374f;
            background: #fff;
        }

        .hotels-tools-meta {
            font-size: 13px;
            color: #4d657b;
            font-weight: 700;
        }

        .hotel-card {
            background: var(--surface);
            border: 1px solid var(--line);
            border-radius: var(--radius);
            overflow: hidden;
            box-shadow: 0 8px 18px rgba(7, 49, 77, 0.08);
            transition: transform .22s ease, box-shadow .22s ease;
            position: relative;
        }

        .hotel-card:hover {
            transform: translateY(-3px);
            box-shadow: var(--shadow);
        }

        .hotel-image {
            aspect-ratio: 16/10;
            background: linear-gradient(145deg, #d9ebf8 0%, #c9e6f5 100%);
            position: relative;
        }

        .hotel-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        .hotel-compare-toggle {
            position: absolute;
            top: 8px;
            inset-inline-end: 8px;
            z-index: 3;
            border: 1px solid rgba(255,255,255,.7);
            background: rgba(8, 38, 61, .62);
            color: #fff;
            border-radius: 999px;
            padding: 5px 9px;
            font-size: 11px;
            font-weight: 800;
            cursor: pointer;
        }

        .hotel-compare-toggle.is-selected {
            border-color: #8edcff;
            background: rgba(0, 114, 158, .92);
        }

        .hotel-rating-badge {
            position: absolute;
            inset-inline-start: 8px;
            top: 8px;
            z-index: 2;
            border-radius: 999px;
            border: 1px solid rgba(255,255,255,.72);
            background: rgba(255, 255, 255, .9);
            color: #184764;
            padding: 5px 8px;
            font-size: 11px;
            font-weight: 900;
        }

        .hotel-new-badge {
            position: absolute;
            inset-inline-end: 8px;
            top: 42px;
            z-index: 2;
            border-radius: 999px;
            border: 1px solid rgba(255, 214, 120, .95);
            background: linear-gradient(135deg, #ffd36f 0%, #ffe59f 100%);
            color: #12354f;
            padding: 4px 8px;
            font-size: 10px;
            font-weight: 900;
            letter-spacing: .2px;
            box-shadow: 0 4px 10px rgba(255, 214, 120, .36);
        }

        .hotel-thumbs {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 5px;
            margin-top: 7px;
        }

        .hotel-thumbs img {
            width: 100%;
            aspect-ratio: 4/3;
            object-fit: cover;
            border-radius: 7px;
            border: 1px solid #d4e3ef;
            background: #eef6fc;
        }

        .hotel-body {
            padding: 12px;
            display: grid;
            gap: 8px;
        }

        .hotel-features {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }

        .hotel-mini-chip {
            border: 1px solid #d2e3ef;
            background: #f2f9ff;
            color: #23506d;
            border-radius: 999px;
            padding: 4px 8px;
            font-size: 11px;
            font-weight: 700;
            white-space: nowrap;
        }

        .line-top {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
        }

        .tag {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 4px 9px;
            border-radius: 999px;
            border: 1px solid #c7deee;
            background: #ecf7ff;
            color: #11496b;
            font-size: 12px;
            font-weight: 800;
        }

        .tag.gold {
            background: #fff5db;
            border-color: #efd89f;
            color: #7f5702;
        }

        .hotel-body h3 {
            margin: 0;
            font-size: 18px;
            line-height: 1.32;
        }

        .hotel-desc {
            margin: 0;
            color: var(--muted);
            font-size: 14px;
            line-height: 1.65;
        }

        .hotel-bottom {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            margin-top: 2px;
        }

        .hotel-price {
            color: var(--brand-strong);
            font-size: 17px;
            font-weight: 900;
        }

        .btn {
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 10px;
            border: 1px solid #0f6290;
            padding: 8px 11px;
            font-size: 13px;
            font-weight: 800;
            white-space: nowrap;
            color: #fff;
            background: linear-gradient(125deg, #0e4870, #0d7db8);
        }

        .compare-bar {
            margin-top: 10px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            flex-wrap: wrap;
            border: 1px solid #b7d8eb;
            border-radius: 14px;
            background: #fff;
            box-shadow: 0 9px 20px rgba(8, 51, 79, .12);
            padding: 10px;
        }

        .compare-summary {
            font-size: 13px;
            color: #21465f;
            font-weight: 800;
        }

        .compare-actions {
            display: flex;
            gap: 7px;
            align-items: center;
            flex-wrap: wrap;
        }

        .compare-btn {
            border: 1px solid #0f6290;
            border-radius: 9px;
            background: linear-gradient(125deg, #0e4870, #0d7db8);
            color: #fff;
            min-height: 36px;
            padding: 0 11px;
            font: inherit;
            font-size: 12px;
            font-weight: 800;
            cursor: pointer;
        }

        .compare-btn.light {
            border-color: #c6dbea;
            background: #eff7fc;
            color: #184764;
        }

        .compare-modal {
            position: fixed;
            inset: 0;
            z-index: 1300;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            height: 100dvh;
            padding: 14px;
            background: rgba(4, 18, 31, .7);
            overflow-y: auto;
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;
        }

        .compare-modal[hidden] { display: none; }

        .compare-modal-card {
            width: min(1080px, 100%);
            border: 1px solid #c8ddec;
            border-radius: 16px;
            background: #fff;
            overflow: hidden;
            box-shadow: 0 20px 42px rgba(8, 44, 69, .28);
            margin: 0 auto 18px;
            min-height: 0;
        }

        .compare-modal-head {
            position: sticky;
            top: 0;
            z-index: 2;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 12px;
            border-bottom: 1px solid #d6e6f1;
            background: #f7fbff;
        }

        .compare-modal-head h3 {
            margin: 0;
            color: #11344f;
            font-size: 20px;
        }

        .compare-grid {
            padding: 12px;
            display: grid;
            gap: 10px;
            grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
        }

        .compare-item {
            border: 1px solid #d4e5f0;
            border-radius: 12px;
            overflow: hidden;
            background: #fbfeff;
            display: grid;
            grid-template-rows: auto 1fr;
        }

        .compare-item img {
            width: 100%;
            height: 150px;
            object-fit: cover;
            display: block;
            border-bottom: 1px solid #dbe9f2;
            background: #edf6fc;
        }

        .compare-item-body {
            padding: 10px;
            display: grid;
            gap: 6px;
        }

        .compare-item h4 {
            margin: 0;
            font-size: 16px;
            color: #123c5a;
            line-height: 1.35;
        }

        .compare-metric {
            font-size: 13px;
            color: #3f5c72;
            line-height: 1.55;
        }

        .compare-item .btn {
            margin-top: 2px;
        }

        .deal-trust {
            margin-top: 8px;
            display: flex;
            flex-wrap: wrap;
            gap: 7px;
        }

        .deal-trust-pill {
            border-radius: 999px;
            border: 1px solid #cfe0ec;
            background: #f2f9ff;
            color: #1b4f73;
            padding: 6px 10px;
            font-size: 12px;
            font-weight: 800;
            letter-spacing: .2px;
        }
        .deals-filters {
            margin-top: 10px;
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .deal-filter {
            border: 1px solid #c8dcec;
            background: #f4fbff;
            color: #134a6b;
            border-radius: 999px;
            min-height: 40px;
            padding: 6px 12px;
            font: inherit;
            cursor: pointer;
            transition: all .2s ease;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            flex: 0 0 auto;
        }

        .deal-filter:focus-visible {
            outline: none;
            box-shadow: 0 0 0 3px rgba(69, 169, 209, .2);
        }

        .deal-filter-icon {
            width: 18px;
            height: 18px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: #1b6b97;
            flex: 0 0 18px;
        }

        .deal-filter-icon svg {
            width: 100%;
            height: 100%;
            display: block;
        }

        .deal-filter-label {
            font-size: 13px;
            font-weight: 800;
            line-height: 1;
            white-space: nowrap;
        }

        .deal-filter-count {
            min-width: 22px;
            height: 22px;
            border-radius: 999px;
            border: 1px solid #c7e0ef;
            background: #e7f4fd;
            color: #0f5d86;
            padding: 0 7px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-weight: 900;
            line-height: 1;
        }

        .deal-filter-count.is-empty {
            border-color: #d6e1ea;
            background: #f1f5f8;
            color: #607487;
        }

        .deal-filter:hover {
            border-color: #84bcde;
            background: #e9f6ff;
        }

        .deal-filter.is-active {
            border-color: #0e618f;
            color: #fff;
            background: linear-gradient(125deg, #0c466c, #0d7eb9);
            box-shadow: 0 8px 16px rgba(9, 67, 101, .22);
        }

        .deal-filter.is-active .deal-filter-icon {
            color: #fff;
        }

        .deal-filter.is-active .deal-filter-count {
            border-color: rgba(255, 255, 255, .35);
            background: rgba(255, 255, 255, .15);
            color: #fff;
        }

        .deal-filter.is-active .deal-filter-count.is-empty {
            background: rgba(255, 255, 255, .2);
            color: #fff;
        }

        .deals-toolbar {
            margin-top: 10px;
            display: grid;
            gap: 8px;
            align-items: end;
        }

        .deal-field {
            display: grid;
            gap: 5px;
        }

        .deal-field span {
            color: #45657c;
            font-size: 12px;
            font-weight: 800;
        }

        .deal-field input,
        .deal-field select {
            width: 100%;
            min-height: 39px;
            border: 1px solid #c6dcec;
            border-radius: 10px;
            background: #fbfeff;
            color: #11334d;
            font: inherit;
            font-size: 13px;
            padding: 0 11px;
        }

        .deal-field input:focus,
        .deal-field select:focus {
            border-color: #57b5df;
            box-shadow: 0 0 0 3px rgba(59, 165, 207, .18);
            outline: none;
        }

        .deal-reset {
            border: 1px solid #bcd6e7;
            background: #f2f9ff;
            color: #185170;
            border-radius: 10px;
            min-height: 39px;
            padding: 0 12px;
            font: inherit;
            font-size: 13px;
            font-weight: 800;
            cursor: pointer;
            transition: all .2s ease;
        }

        .deal-reset:hover {
            border-color: #86badd;
            background: #e9f5ff;
        }

        .deals-count {
            margin-top: 9px;
            font-size: 13px;
            color: #40627a;
            font-weight: 700;
        }

        .deal-card {
            border: 1px solid var(--line);
            background: var(--surface);
            border-radius: 16px;
            overflow: hidden;
            display: grid;
            grid-template-rows: auto 1fr;
            box-shadow: 0 10px 20px rgba(7, 49, 77, 0.08);
            transition: transform .22s ease, box-shadow .22s ease;
            scroll-snap-align: start;
        }

        .deal-card:hover {
            transform: translateY(-3px);
            box-shadow: 0 16px 30px rgba(7, 49, 77, 0.14);
        }

        .deal-card.is-day-use {
            border-color: #7ecfe0;
            background: linear-gradient(180deg, #ffffff 0%, #f2fbff 100%);
            box-shadow: 0 14px 28px rgba(6, 101, 134, 0.16);
        }

        .deal-card.is-day-use:hover {
            box-shadow: 0 20px 34px rgba(6, 101, 134, 0.22);
        }

        .deal-cover {
            position: relative;
            display: block;
            text-decoration: none;
            aspect-ratio: 16/10;
            background: linear-gradient(145deg, #d8ecfa 0%, #c7e5f5 100%);
            overflow: hidden;
        }

        .deal-cover img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            transform: scale(1.01);
            transition: transform .35s ease;
        }

        .deal-card:hover .deal-cover img {
            transform: scale(1.06);
        }

        .deal-card.is-day-use .deal-cover::after {
            content: "";
            position: absolute;
            inset: 0;
            background: linear-gradient(180deg, rgba(6, 36, 63, 0.06) 8%, rgba(4, 63, 85, 0.54) 100%);
            pointer-events: none;
            z-index: 1;
        }

        .deal-splash {
            position: absolute;
            inset-inline-start: 10px;
            inset-block-end: 10px;
            border-radius: 10px;
            border: 1px solid rgba(183, 241, 255, 0.9);
            background: rgba(6, 75, 107, 0.86);
            color: #eaf9ff;
            font-size: 11px;
            font-weight: 900;
            padding: 6px 10px;
            letter-spacing: .15px;
            z-index: 2;
            max-width: calc(100% - 20px);
            line-height: 1.4;
        }

        .deal-type,
        .deal-best {
            position: absolute;
            top: 9px;
            border-radius: 999px;
            padding: 5px 9px;
            font-size: 11px;
            font-weight: 900;
            z-index: 2;
            letter-spacing: .2px;
        }

        .deal-type {
            inset-inline-start: 9px;
            color: #173c57;
            background: rgba(238, 248, 255, .95);
            border: 1px solid rgba(179, 215, 236, .95);
        }

        .deal-best {
            inset-inline-end: 9px;
            color: #6f4700;
            background: rgba(255, 243, 207, .96);
            border: 1px solid rgba(239, 208, 134, .95);
        }

        .deal-new {
            position: absolute;
            top: 38px;
            inset-inline-end: 9px;
            border-radius: 999px;
            padding: 5px 9px;
            font-size: 10px;
            font-weight: 900;
            z-index: 2;
            letter-spacing: .2px;
            color: #12354f;
            background: linear-gradient(135deg, #ffd36f 0%, #ffe59f 100%);
            border: 1px solid rgba(255, 214, 120, .95);
            box-shadow: 0 4px 10px rgba(255, 214, 120, .36);
        }

        .deal-body {
            padding: 11px;
            display: grid;
            gap: 8px;
            align-content: start;
        }

        .deal-meta-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            flex-wrap: wrap;
        }

        .deal-score {
            display: inline-grid;
            gap: 0;
            border-radius: 10px;
            border: 1px solid #cde2f1;
            background: #f4fbff;
            color: #113a55;
            padding: 4px 8px;
            line-height: 1.2;
        }

        .deal-score strong {
            font-size: 16px;
            font-weight: 900;
        }

        .deal-score small {
            color: #4f728a;
            font-size: 11px;
            font-weight: 700;
        }

        .deal-trust-inline {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
        }

        .deal-trust-inline span {
            border-radius: 999px;
            border: 1px solid #d2e4f0;
            background: #f7fcff;
            color: #295774;
            font-size: 11px;
            font-weight: 800;
            padding: 4px 8px;
        }

        .deal-location {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: #2d668a;
            font-size: 12px;
            font-weight: 800;
        }

        .deal-location-dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #1796bf;
        }

        .deal-card h3 {
            margin: 0;
            font-size: 18px;
            line-height: 1.3;
            color: #143951;
        }

        .deal-card p {
            margin: 0;
            color: var(--muted);
            font-size: 14px;
            line-height: 1.64;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 3;
            overflow: hidden;
        }

        .deal-highlights {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            gap: 5px;
        }

        .deal-highlights li {
            color: #345972;
            font-size: 13px;
            line-height: 1.52;
            display: grid;
            grid-template-columns: 10px 1fr;
            gap: 7px;
            align-items: start;
        }

        .deal-highlights li::before {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 50%;
            margin-top: 5px;
            background: radial-gradient(circle, #0e7ead 0%, #33b2d1 100%);
        }

        .deal-bottom {
            margin-top: auto;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            flex-wrap: wrap;
            border-top: 1px dashed #d2e5f2;
            padding-top: 8px;
        }

        .deal-price {
            color: var(--ok);
            font-size: 16px;
            font-weight: 900;
        }

        .deal-actions {
            display: flex;
            align-items: center;
            gap: 7px;
            flex-wrap: wrap;
        }

        .deal-btn-secondary {
            border-color: #bdd8e9;
            color: #195372;
            background: #f4fbff;
            padding: 7px 10px;
        }

        .destinations-grid {
            display: grid;
            gap: 10px;
        }

        .destination-card {
            border-radius: 16px;
            overflow: hidden;
            border: 1px solid #c9deec;
            position: relative;
            min-height: 150px;
            text-decoration: none;
            display: block;
            color: #fff;
            background: linear-gradient(140deg, #054a75 0%, #0f7db3 58%, #14afcc 100%);
        }

        .destination-card img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            opacity: .42;
        }

        .destination-content {
            position: relative;
            z-index: 1;
            padding: 14px;
            display: grid;
            gap: 6px;
        }

        .destination-content h3 {
            margin: 0;
            font-size: 21px;
            line-height: 1.22;
        }

        .destination-meta {
            font-size: 13px;
            opacity: .96;
            font-weight: 700;
        }

        .reviews-wrap {
            border: 1px solid var(--line);
            background: var(--surface);
            border-radius: 18px;
            padding: 14px;
            box-shadow: 0 8px 18px rgba(7, 49, 77, 0.08);
        }

        .reviews-head {
            display: flex;
            gap: 10px;
            justify-content: space-between;
            flex-wrap: wrap;
            margin-bottom: 10px;
        }

        .rating-pill {
            border-radius: 999px;
            border: 1px solid #c7deee;
            background: #edf8ff;
            color: #0f486d;
            padding: 7px 11px;
            font-size: 12px;
            font-weight: 900;
        }

        .reviews-track {
            display: grid;
            grid-auto-flow: column;
            grid-auto-columns: minmax(280px, 1fr);
            gap: 10px;
            overflow-x: auto;
            scroll-snap-type: x proximity;
            padding-bottom: 4px;
        }

        .review-card {
            scroll-snap-align: start;
            border: 1px solid #d2e3ee;
            background: #fbfeff;
            border-radius: 14px;
            padding: 12px;
            display: grid;
            gap: 8px;
        }

        .review-stars {
            color: #f0a80a;
            letter-spacing: 1px;
            font-size: 14px;
        }

        .review-text {
            margin: 0;
            color: #425d73;
            line-height: 1.72;
            font-size: 14px;
        }

        .review-name {
            font-size: 13px;
            font-weight: 800;
            color: #173f5f;
        }

        .cta-strip {
            margin-top: 24px;
            border-radius: 20px;
            border: 1px solid #c6deed;
            background: linear-gradient(120deg, #eef8ff 0%, #e5f5ff 58%, #d8f2fb 100%);
            padding: 16px;
            display: grid;
            gap: 10px;
        }

        .cta-strip h3 {
            margin: 0;
            font-size: clamp(22px, 4.8vw, 33px);
        }

        .cta-strip p {
            margin: 0;
            color: #456279;
            line-height: 1.72;
        }

        .cta-actions {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
        }

        .btn-outline {
            text-decoration: none;
            border-radius: 10px;
            border: 1px solid #0f6392;
            padding: 8px 11px;
            font-size: 13px;
            font-weight: 800;
            color: #0f4c72;
            background: #f4fbff;
        }

        .empty-box {
            border: 1px dashed #bdd7e8;
            border-radius: 13px;
            padding: 14px;
            color: var(--muted);
            background: #f2f9ff;
            font-size: 14px;
        }

        .grid-skeleton {
            margin-top: 0;
        }

        .grid-skeleton[hidden] {
            display: none !important;
        }

        .skeleton-card {
            border: 1px solid #d2e4f0;
            border-radius: 16px;
            background: #fff;
            overflow: hidden;
            box-shadow: 0 8px 16px rgba(11, 73, 108, .08);
            display: grid;
            grid-template-rows: auto 1fr;
        }

        .skeleton-card.variant-personal .skeleton-media {
            aspect-ratio: 16 / 9;
        }

        .skeleton-media,
        .skeleton-line,
        .skeleton-chip,
        .skeleton-btn {
            position: relative;
            overflow: hidden;
            background: #e6f0f7;
        }

        .skeleton-media::after,
        .skeleton-line::after,
        .skeleton-chip::after,
        .skeleton-btn::after,
        .media-load-veil::after {
            content: "";
            position: absolute;
            inset: 0;
            transform: translateX(-100%);
            background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .55) 45%, rgba(255, 255, 255, 0) 100%);
            animation: sbShimmer 1.35s ease-in-out infinite;
        }

        .skeleton-media {
            aspect-ratio: 16 / 10;
        }

        .skeleton-body {
            padding: 12px;
            display: grid;
            gap: 8px;
        }

        .skeleton-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
        }

        .skeleton-line {
            height: 12px;
            border-radius: 999px;
        }

        .skeleton-chip {
            height: 18px;
            border-radius: 999px;
        }

        .skeleton-btn {
            height: 34px;
            border-radius: 9px;
        }

        .w-18 { width: 18%; }
        .w-24 { width: 24%; }
        .w-28 { width: 28%; }
        .w-32 { width: 32%; }
        .w-36 { width: 36%; }
        .w-44 { width: 44%; }
        .w-52 { width: 52%; }
        .w-58 { width: 58%; }
        .w-64 { width: 64%; }
        .w-72 { width: 72%; }
        .w-84 { width: 84%; }
        .w-92 { width: 92%; }

        .hotel-image,
        .deal-cover,
        .trip-media,
        .personal-media {
            position: relative;
        }

        .hotel-image img,
        .deal-cover img,
        .trip-media img,
        .personal-media img {
            opacity: 1;
            transition: opacity .26s ease;
        }

        .hotel-image.is-media-loading img,
        .deal-cover.is-media-loading img,
        .trip-media.is-media-loading img,
        .personal-media.is-media-loading img {
            opacity: 0;
        }

        .media-load-veil {
            position: absolute;
            inset: 0;
            z-index: 3;
            background: #deebf6;
            pointer-events: none;
        }

        @keyframes sbShimmer {
            100% {
                transform: translateX(100%);
            }
        }

        @media (prefers-reduced-motion: reduce) {
            .skeleton-media::after,
            .skeleton-line::after,
            .skeleton-chip::after,
            .skeleton-btn::after,
            .media-load-veil::after {
                animation: none;
            }
        }

        @media (max-width: 679px) {
            .cards-grid.deals {
                grid-auto-flow: column;
                grid-auto-columns: minmax(84%, 1fr);
                overflow-x: auto;
                overscroll-behavior-x: contain;
                scroll-snap-type: x mandatory;
                padding-bottom: 4px;
            }

            .deals-filters {
                flex-wrap: nowrap;
                overflow-x: auto;
                padding-bottom: 3px;
                scroll-snap-type: x proximity;
                -webkit-overflow-scrolling: touch;
            }

            .deal-filter {
                scroll-snap-align: start;
            }

            .deals-toolbar {
                grid-template-columns: minmax(0, 1fr);
            }

            .deal-reset {
                width: 100%;
            }

            .trips-grid {
                grid-auto-flow: column;
                grid-auto-columns: minmax(84%, 1fr);
                overflow-x: auto;
                overscroll-behavior-x: contain;
                scroll-snap-type: x mandatory;
                padding-bottom: 4px;
            }

            .trip-card {
                scroll-snap-align: start;
            }
        }

        @media (min-width: 680px) {
            .hero-figures {
                max-width: 540px;
            }

            .search-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                grid-template-areas:
                    "destination service"
                    "dates dates"
                    "guests guests"
                    "submit submit";
            }

            .stats-strip {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .platform-strip {
                padding: 18px;
            }

            .cards-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            .specialties-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .trips-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            .deals-toolbar {
                grid-template-columns: minmax(0, 1.2fr) minmax(220px, .7fr) auto;
            }

            .deal-reset {
                min-width: 124px;
            }

            .destinations-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }

        @media (min-width: 1080px) {
            .hero {
                padding: 24px;
            }

            .hero-grid {
                grid-template-columns: 1.08fr .92fr;
                align-items: stretch;
                gap: 18px;
            }

            .hero-media {
                min-height: 100%;
            }

            .hero-figures {
                max-width: none;
            }

            .search-grid {
                grid-template-columns: repeat(6, minmax(0, 1fr));
                grid-template-areas: "destination dates dates guests service submit";
                align-items: end;
            }

            .stats-strip {
                grid-template-columns: repeat(6, minmax(0, 1fr));
            }

            .platform-strip-grid {
                grid-template-columns: repeat(4, minmax(0, 1fr));
            }

            .cards-grid.hotels {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .cards-grid.deals {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .specialties-grid {
                grid-template-columns: repeat(5, minmax(0, 1fr));
            }

            .trips-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .destinations-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }

            .reviews-track {
                grid-auto-columns: minmax(330px, 1fr);
            }
        }

        @keyframes rise-in {
            from {
                opacity: 0;
                transform: translateY(18px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
