.flatpickr-calendar {
    border: 1px solid #e8e4de;
    border-radius: 0.875rem;
    box-shadow: 0 22px 55px -20px rgba(26, 26, 46, 0.38);
    font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", YuGothic, Meiryo, sans-serif;
    overflow: hidden;
}

.flatpickr-months,
.flatpickr-months .flatpickr-month,
.flatpickr-weekdays,
.flatpickr-weekdaycontainer,
span.flatpickr-weekday {
    background: #1a1a2e;
    color: #fff;
}

.flatpickr-months .flatpickr-month {
    height: 3rem;
}

.flatpickr-current-month {
    padding-top: 0.625rem;
    font-size: 0.95rem;
    font-weight: 700;
}

.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover,
.flatpickr-current-month .numInputWrapper:hover {
    background: rgba(255, 255, 255, 0.1);
}

.flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
    background: #fff;
    color: #1a1a2e;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    color: #fff;
    fill: #fff;
    padding: 0.875rem;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: #edc894;
}

span.flatpickr-weekday {
    font-size: 0.75rem;
    font-weight: 700;
}

.flatpickr-day {
    border-radius: 0.5rem;
    color: #1a1a2e;
    font-weight: 600;
}

.flatpickr-day:hover,
.flatpickr-day:focus {
    border-color: #fde8e8;
    background: #fde8e8;
    color: #9b2c2c;
}

.flatpickr-day.today {
    border-color: #c8963e;
    color: #85612a;
    font-weight: 800;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
    border-color: #c0392b;
    background: #c0392b;
    color: #fff;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    border-color: transparent;
    background: transparent;
    color: rgba(92, 92, 122, 0.25);
}

.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: rgba(92, 92, 122, 0.42);
}

input[data-train-date],
.flatpickr-input[data-train-date] + .form-control {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235c5c7a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M8 2v4M16 2v4M3 9h18'/%3E%3C/svg%3E");
    background-position: right 0.9rem center;
    background-repeat: no-repeat;
}

.train-trip-tab {
    min-width: 6.5rem;
    border-radius: 999px;
    padding: 0.6rem 1.25rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25rem;
    transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.train-trip-tab:hover {
    color: #fff;
}

.train-trip-tab:active {
    transform: scale(0.98);
}

.train-trip-tab:focus-visible {
    outline: 2px solid #c0392b;
    outline-offset: 2px;
}

.train-trip-tab.is-active {
    background: #fff;
    color: #c0392b;
    box-shadow: 0 4px 12px -6px rgba(26, 26, 46, 0.45);
}

@media (min-width: 1024px) {
    [data-train-search-form][data-trip-type="one-way"] {
        grid-template-columns: minmax(10rem, 16rem) 2.75rem minmax(10rem, 16rem) minmax(10rem, 12rem) auto;
        justify-content: start;
    }

    [data-train-search-form][data-trip-type="round-trip"] {
        grid-template-columns: minmax(9rem, 13.5rem) 2.75rem minmax(9rem, 13.5rem) minmax(9.5rem, 11.5rem) minmax(9.5rem, 11.5rem) auto;
        justify-content: start;
    }
}

@media (max-width: 480px) {
    .flatpickr-calendar {
        width: min(307.875px, calc(100vw - 2rem));
    }
}
