/* I asked AI to copy the existing styles that are in booking.css that apply to the calendar over here */
/* Any changes made here affect both booking.html and contact.html, be warned!! */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montaga&display=swap');
@import url('https://fonts.googleapis.com/css2?family=ABeeZee&display=swap');
@import url("utility_resource.css");

:root {
    --booking-panel: rgba(255, 255, 255, 0.96);
    --booking-text: #6f747e;
    --booking-muted: #a9adb5;
    --booking-selected: #151515;
    --booking-soft: #d8d8d8;
}

* {
    box-sizing: border-box;
}

.booking-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 132px 24px 72px;
}

.booking-step {
    width: min(1120px, 100%);
    flex-direction: column;
    align-items: center;
}

.booking-step.is-active {
    display: flex;
}

.time-step {
    position: relative;
}

#booking_page_title,
#service_step_title,
#confirm_step_title {
    margin: 0 0 86px;
    font-size: clamp(42px, 6vw, 78px);
    line-height: 1;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0;
    text-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}

#service_step_title {
    margin-bottom: 58px;
}

.booking-picker {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 34px;
    width: 100%;
}

.calendar-card,
.times-card {
    background: var(--booking-panel);
    color: var(--booking-text);
    border-radius: 18px;
    box-shadow:
        inset 0 4px 4px rgba(0, 0, 0, 0.25),
        inset 0 2px 4px rgba(255, 255, 255, 0.8),
        0 2px 12px rgba(0, 0, 0, 0.18);
}

.calendar-card {
    position: relative;
    width: min(750px, 70vw);
    height: 300px;
    padding: 24px 34px;
}

.calendar-step-button {
    position: absolute;
    top: 40px;
    bottom: 46px;
    width: 20px;
    border: 0;
    border-radius: 7px;
    background: rgba(147, 147, 147, 0.33);
    color: #303030;
    display: grid;
    place-items: center;
    font-family: Montserrat, Arial, Helvetica, sans-serif;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    transition:
        background 150ms ease,
        color 150ms ease;
}

.calendar-previous-button {
    left: 22px;
}

.calendar-next-button {
    right: 22px;
}

.calendar-step-button:hover,
.calendar-step-button:focus-visible {
    background: rgba(147, 147, 147, 0.44);
    outline: none;
}

.calendar-current-button {
    position: absolute;
    left: 50%;
    bottom: 13px;
    min-height: 22px;
    padding: 0 12px;
    border: 0;
    border-radius: 7px;
    background: rgba(147, 147, 147, 0.33);
    color: #666666;
    font-family: Montserrat, Arial, Helvetica, sans-serif;
    font-size: 17px;
    font-weight: 400;
    cursor: pointer;
    transform: translateX(-50%);
    transition:
        background 150ms ease,
        color 150ms ease;
}

.calendar-current-button:hover,
.calendar-current-button:focus-visible {
    background: rgba(147, 147, 147, 0.44);
    color: #303030;
    outline: none;
}

.calendar-step-button[hidden],
.calendar-current-button[hidden] {
    display: none;
}

.calendar-months {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 28px;
    height: 100%;
}

.calendar-divider {
    width: 1px;
    background: #575757;
    align-self: stretch;
}

.month {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.month-title {
    margin: 0 0 12px;
    color: #000000;
    font-family: Montaga, Georgia, serif !important;
    font-size: 20px;
    font-weight: 400;
    text-align: center;
}

.weekday-grid,
.date-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(24px, 1fr));
    gap: 8px;
    align-items: center;
}

.date-grid {
    grid-template-rows: repeat(6, 24px);
    flex: 1;
}

.weekday {
    color: #969ca7;
    font-size: 9px;
    font-weight: 500;
    text-align: center;
}

.date-button {
    appearance: none;
    width: 100%;
    height: 24px;
    border: 0;
    border-radius: 18px;
    background: transparent;
    color: #000000;
    font-family: Montserrat, Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition:
        background 150ms ease,
        color 150ms ease,
        transform 150ms ease;
}

.date-button:not(.is-unavailable):hover,
.date-button:not(.is-unavailable):focus-visible {
    background: #eeeeee;
    color: #232323;
    outline: none;
}

.date-button.is-selected {
    background: var(--booking-selected);
    border-radius: 8px;
    color: white;
}

.date-button.is-today:not(.is-selected) {
    box-shadow: inset 0 0 0 1px rgba(21, 21, 21, 0.32);
}

.date-button.is-unavailable {
    opacity: 0.33;
    cursor: not-allowed;
}

.date-button.is-empty {
    pointer-events: none;
    visibility: hidden;
}

.times-card {
    width: min(280px, 28vw);
    height: 300px;
    padding: 26px 24px 22px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.times-card h2 {
    margin: 0 0 18px;
    color: #000000;
    font-family: Montaga, Georgia, serif !important;
    font-size: 20px;
    font-weight: 400;
    text-align: center;
}

.time-scroll-wrap {
    position: relative;
    width: 100%;
    flex: 1;
    min-height: 132px;
    overflow: hidden;
}

.time-list {
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: #747474 transparent;
    scrollbar-width: thin;
    display: flex;
    flex-direction: column;
    padding: 0 12px 0 0;
    transform-origin: center;
    transition: transform 260ms cubic-bezier(.2, .8, .2, 1);
}

.time-list::-webkit-scrollbar {
    width: 4px;
}

.time-list::-webkit-scrollbar-track {
    background: transparent;
    margin: 3px 0;
}

.time-list::-webkit-scrollbar-thumb {
    min-height: 22px;
    border-radius: 999px;
    background: #747474;
}

.time-list::-webkit-scrollbar-thumb:hover {
    background: #555555;
}

.time-option,
.time-slot {
    position: relative;
    appearance: none;
    display: block;
    width: 100%;
    min-height: 24px;
    margin: 0 0 4px;
    border: 0;
    border-radius: 18px;
    background: transparent;
    color: #000000;
    font-family: Montaga, Georgia, serif !important;
    font-size: 15px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    transition:
        color 160ms ease,
        background 160ms ease,
        transform 180ms ease;
}

.time-option:hover,
.time-option:focus-visible,
.time-slot:hover,
.time-slot:focus-visible {
    background: #eeeeee;
    color: #232323;
    outline: none;
}

.time-option.is-selected,
.time-slot.selected {
    background: var(--booking-soft);
    color: #000000;
}

.time-placeholder {
    margin: auto 0;
    color: #000000;
    font-family: Montaga, Georgia, serif !important;
    font-size: 15px;
    text-align: center;
}

.time-list.is-bouncing {
    transform: translateY(var(--bounce-distance, 0));
}

.booking-summary {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) 86px;
    align-items: center;
    width: min(1064px, 100%);
    margin-top: 36px;
    gap: 0;
}

.booking-summary::before {
    content: "";
    position: absolute;
    inset: 0 86px 0 0;
    border: 3px solid transparent;
    border-radius: 18px;
    background:
        linear-gradient(rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.98)) padding-box,
        linear-gradient(45deg, #011121 0%, #C78B6F 100%) border-box;
    pointer-events: none;
}

.booking-summary::after {
    content: "";
    position: absolute;
    z-index: 2;
    top: 3px;
    bottom: 3px;
    left: calc((100% - 86px) * 0.714286);
    width: 1px;
    background: #575757;
    pointer-events: none;
}

.summary-field {
    position: relative;
    z-index: 1;
    height: 62px;
    display: grid;
    place-items: center;
    background: transparent;
    color: #c2c2c2;
    font-family: ABeeZee, Arial, Helvetica, sans-serif;
    font-size: 22px;
    font-weight: 400;
    box-shadow: none;
}

.summary-field:first-child {
    border-radius: 18px 0 0 18px;
}

.summary-field:nth-child(2) {
    border-radius: 0 18px 18px 0;
}

.summary-field.has-value {
    color: #000000;
}

.summary-submit {
    position: relative;
    z-index: 1;
    appearance: none;
    width: 68px;
    height: 68px;
    justify-self: end;
    border: 0;
    border-radius: 18px;
    background: transparent;
    display: grid;
    place-items: center;
    cursor: pointer;
    box-shadow: none;
    transition:
        transform 160ms ease,
        opacity 160ms ease;
}

.summary-submit:hover,
.summary-submit:focus-visible {
    outline: none;
    transform: translateX(2px);
}

.summary-submit-icon {
    width: 68px;
    height: 68px;
    display: block;
    background: url("../svg/next_button_booking.svg") center / contain no-repeat;
}

