.ky-product-filter-panel .ky-travel-date-control {
    display: flex;
    gap: calc(8 * var(--ky-site-px, 1px));
    align-items: center;
}

.ky-product-filter-panel .ky-travel-date-trigger {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    min-height: calc(42 * var(--ky-site-px, 1px));
    padding: calc(8 * var(--ky-site-px, 1px)) calc(14 * var(--ky-site-px, 1px));
    border: 1px solid #dbe9df;
    border-radius: calc(8 * var(--ky-site-px, 1px));
    background: #f6f7f8;
    color: #414141;
    font-size: calc(15 * var(--ky-site-px, 1px));
    text-align: left;
    cursor: pointer;
}

.ky-product-filter-panel .ky-travel-date-trigger:hover,
.ky-product-filter-panel .ky-travel-date-trigger[aria-expanded="true"] {
    border-color: #4dbb79;
}

.ky-product-filter-panel .ky-travel-date-arrow {
    width: calc(8 * var(--ky-site-px, 1px));
    height: calc(8 * var(--ky-site-px, 1px));
    margin-left: calc(12 * var(--ky-site-px, 1px));
    border-right: calc(2 * var(--ky-site-px, 1px)) solid #4dbb79;
    border-bottom: calc(2 * var(--ky-site-px, 1px)) solid #4dbb79;
    transform: rotate(45deg);
}

.ky-product-filter-panel .ky-travel-date-trigger[aria-expanded="true"] .ky-travel-date-arrow {
    transform: rotate(225deg);
}

.ky-product-filter-panel .ky-travel-date-clear {
    width: calc(42 * var(--ky-site-px, 1px));
    height: calc(42 * var(--ky-site-px, 1px));
    border: 0;
    border-radius: calc(8 * var(--ky-site-px, 1px));
    background: #f6f7f8;
    color: #666;
    font-size: calc(24 * var(--ky-site-px, 1px));
    cursor: pointer;
}

.ky-product-filter-panel .ky-travel-date-clear:hover { color: #278c51; }
.ky-product-filter-panel [hidden],
.ky-travel-date-overlay[hidden] { display: none !important; }

.ky-product-filter-panel .ky-filter-search {
    flex: 1;
    min-width: 0;
    border: 0;
    border-radius: calc(8 * var(--ky-site-px, 1px));
    background: #42b970;
    color: #fff;
    font-size: calc(18 * var(--ky-site-px, 1px));
    cursor: pointer;
}
.ky-product-filter-panel .ky-filter-search:hover { background: #278c51; }
.ky-product-filter-panel .ky-filter-search:disabled { background: #bddac7; cursor: default; }

.ky-travel-date-modal-open { overflow: hidden; }
.ky-travel-date-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(16 * var(--ky-site-px, 1px));
    background: rgba(23, 36, 28, .42);
}
.ky-travel-date-dialog {
    width: min(100%, calc(420 * var(--ky-site-px, 1px)));
    max-height: min(90dvh, calc(680 * var(--ky-site-px, 1px)));
    overflow-y: auto;
    padding: calc(20 * var(--ky-site-px, 1px)) calc(22 * var(--ky-site-px, 1px));
    border-radius: calc(18 * var(--ky-site-px, 1px));
    background: #fff;
    box-shadow: 0 calc(24 * var(--ky-site-px, 1px)) calc(65 * var(--ky-site-px, 1px)) rgba(18, 35, 25, .2);
}
.ky-travel-date-dialog-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: calc(12 * var(--ky-site-px, 1px));
}
.ky-travel-date-dialog-header h2 { margin: 0; color: #414141; font-size: calc(20 * var(--ky-site-px, 1px)); font-weight: 600; }
.ky-travel-date-dialog-close {
    width: calc(36 * var(--ky-site-px, 1px));
    height: calc(36 * var(--ky-site-px, 1px));
    border: 0;
    border-radius: calc(8 * var(--ky-site-px, 1px));
    background: #f6f7f8;
    color: #666;
    font-size: calc(24 * var(--ky-site-px, 1px));
    cursor: pointer;
}
.ky-travel-date-dialog-selection { min-height: calc(21 * var(--ky-site-px, 1px)); margin: calc(12 * var(--ky-site-px, 1px)) 0; color: #278c51; font-size: calc(14 * var(--ky-site-px, 1px)); }
.ky-travel-date-dialog .ky-travel-calendar {
    padding: calc(12 * var(--ky-site-px, 1px));
    border: 1px solid #e7eee9;
    border-radius: calc(12 * var(--ky-site-px, 1px));
    background: #fff;
}

.ky-travel-date-dialog .ky-travel-calendar-header,
.ky-travel-date-dialog .ky-travel-calendar-weekdays,
.ky-travel-date-dialog .ky-travel-calendar-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    align-items: center;
    text-align: center;
}

.ky-travel-date-dialog .ky-travel-calendar-header { grid-template-columns: calc(40 * var(--ky-site-px, 1px)) 1fr calc(40 * var(--ky-site-px, 1px)); margin-bottom: calc(8 * var(--ky-site-px, 1px)); }
.ky-travel-date-dialog .ky-travel-calendar-header strong { font-size: calc(16 * var(--ky-site-px, 1px)); font-weight: 600; }
.ky-travel-date-dialog .ky-travel-calendar-header button {
    width: calc(36 * var(--ky-site-px, 1px));
    height: calc(36 * var(--ky-site-px, 1px));
    border: 0;
    border-radius: calc(7 * var(--ky-site-px, 1px));
    background: #f6f7f8;
    color: #278c51;
    font-size: calc(24 * var(--ky-site-px, 1px));
    cursor: pointer;
}
.ky-travel-date-dialog .ky-travel-calendar-header button:disabled { color: #bbb; cursor: default; }
.ky-travel-date-dialog .ky-travel-calendar-weekdays { color: #888; font-size: calc(13 * var(--ky-site-px, 1px)); }
.ky-travel-date-dialog .ky-travel-calendar-weekdays span { padding: calc(5 * var(--ky-site-px, 1px)) 0; }
.ky-travel-date-dialog .ky-travel-calendar-days { gap: calc(3 * var(--ky-site-px, 1px)) 0; }
.ky-travel-date-dialog .ky-travel-calendar-day {
    width: calc(36 * var(--ky-site-px, 1px));
    height: calc(36 * var(--ky-site-px, 1px));
    margin: auto;
    border: 0;
    border-radius: calc(7 * var(--ky-site-px, 1px));
    background: transparent;
    color: #414141;
    font-size: calc(14 * var(--ky-site-px, 1px));
    cursor: pointer;
    touch-action: none;
}
.ky-travel-date-dialog .ky-travel-calendar-day:hover:not(:disabled) { background: #ddf7e7; }
.ky-travel-date-dialog .ky-travel-calendar-day.in-range { background: #e5f8eb; border-radius: 0; }
.ky-travel-date-dialog .ky-travel-calendar-day.selected { background: #42b970; color: #fff; }
.ky-travel-date-dialog .ky-travel-calendar-day.preview-range { background: #e5f8eb; color: #414141; }
.ky-travel-date-dialog .ky-travel-calendar-day.preview-edge { background: #42b970; color: #fff; }
.ky-travel-date-dialog .ky-travel-calendar-day.selected:hover,
.ky-travel-date-dialog .ky-travel-calendar-day.preview-edge:hover { background: #42b970; color: #fff; }
.ky-travel-date-dialog .ky-travel-calendar-day:disabled { color: #c5c5c5; cursor: default; }
.ky-travel-date-dialog .ky-travel-calendar-tip { margin: calc(10 * var(--ky-site-px, 1px)) 0 0; color: #777; font-size: calc(12 * var(--ky-site-px, 1px)); }
.ky-travel-date-dialog-actions { display: flex; gap: calc(10 * var(--ky-site-px, 1px)); margin-top: calc(18 * var(--ky-site-px, 1px)); }
.ky-travel-date-dialog-actions button {
    flex: 1;
    min-height: calc(40 * var(--ky-site-px, 1px));
    border: 0;
    border-radius: calc(8 * var(--ky-site-px, 1px));
    font-size: calc(15 * var(--ky-site-px, 1px));
    cursor: pointer;
}
.ky-travel-date-dialog-cancel { background: #f6f7f8; color: #414141; }
.ky-travel-date-dialog-confirm { background: #42b970; color: #fff; }
.ky-travel-date-dialog-confirm:disabled { background: #bddac7; cursor: default; }

@media (max-width: 767px) {
    .ky-travel-date-dialog { padding: calc(18 * var(--ky-site-px, 1px)) calc(16 * var(--ky-site-px, 1px)); }
    .ky-product-filter-panel .ky-travel-date-trigger { font-size: calc(14 * var(--ky-site-px, 1px)); }
}
