/** WaveOrtho (c) 2026 | WaveOrtho Inquiry Form & Exam Scheduler [version: 8.0.6] */

#WAVE-appointment-scheduler {
    margin: 0 auto;
    max-width: 1000px;
    padding-bottom: 25px;
    padding-top: 0px;
}

#wave-appointment-scheduler-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 15px;
}

.loading-calendar-container {
    display: flex;
    width: 289px;
    height: 265px;
    justify-content: center;
    align-items: center;
}

.loading-calendar-container.hide {
    display: none;
}

.loading-calendar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    border: 3px solid;
    border-color: #62c0f0 #62c0f0 transparent transparent;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

.loading-calendar::after,
.loading-calendar::before {
    content: '';
    box-sizing: border-box;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    border: 3px solid;
    border-color: transparent transparent #174880 #174880;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    box-sizing: border-box;
    animation: rotationBack 0.5s linear infinite;
    transform-origin: center center;
}

.loading-calendar::before {
    width: 32px;
    height: 32px;
    border-color: #0e89ca #0e89ca transparent transparent;
    animation: rotation 1.5s linear infinite;
}


@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes rotationBack {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(-360deg);
    }
}

.calendar-table {
    width: fit-content;
    height: fit-content;
    border-collapse: separate;
    font-size: 13px;
    display: none;
}

.calendar-table .table-arrow-selector {
    cursor: pointer;
    text-align: center;
    padding: 0 0 10px 0;
    vertical-align: middle;
    font-weight: normal;
}

.calendar-table .table-arrow-selector span {
    font-size: 2.25em;
    position: relative;
    font-weight: 100;
    top: -4px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    color: rgb(0, 113, 182);
}

.calendar-table .table-arrow-selector span.disabled {
    color: rgb(163, 163, 163);
}

.calendar-table .table-date-header {
    padding: 0 0 10px 5px;
    /* padding: 1px 0 1px 5px; */
    text-align: left;
    font-size: 1.108em;
    font-weight: 400;
}

.calendar-table .day-of-week {
    text-align: center;
    font-size: 0.9em;
    font-weight: 400;
    width: 37px;
}

.calendar-table .calendar-table tbody tr {
    border: 1px solid rgba(0, 0, 0, .1);
    border-bottom: none;
}

.calendar-table .calendar-table {
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.calendar-table .calendar-table tbody tr.hour {
    border-top: 1px solid rgba(0, 0, 0, .25);
}

.calendar-table td.date-cell {
    text-align: center;
    width: 37px;
}

.calendar-table .text-center {
    text-align: center;
}

.calendar-table .wave-time-display {
    text-align: right;
    padding: 0;
    margin: 0;
    font-size: .85em;
    color: #999;
}

.calendar-table .calendar-table tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.05);
}

.calendar-table .appointment-button {
    border: none;
    font-size: 1em;
    line-height: 2.5em;
    width: 2.5em;
    height: 2.5em;
    cursor: default;
    /* margin: 0; */
}

.calendar-table .appointment-button.has-date {
    border: none;
    border-radius: 50%;
    color: #a3a3a3;
}

.calendar-table .appointment-button.has-appt {
    display: inline-block;
    background-clip: padding-box;
    border: 1px solid rgb(54, 146, 211, 10%);
    border-radius: 50%;
    background-color: rgb(54, 146, 211, 10%);
    color: #0071B6;
    font-weight: bold;
    cursor: pointer;
}

.calendar-table .appointment-button.selected {
    border: none;
    border-radius: 50%;
    background-color: #0071B6;
    color: #fff;
    font-weight: bold;
}


.available-appointments-table {
    font-size: 13px;
    text-align: center;
    height: fit-content;
}

.available-appointments-table .available-appointments-table-header {
    padding: 15px 0 10px 0;
    font-size: 1.108em;
    line-height: 2.25em;
    font-weight: normal;
    text-align: center;
}

.available-appointments-table .selected-appointment-container {
    display: flex;
    justify-content: space-between;
}

.available-appointments-table td {
    border: none;
    background-color: transparent;
}

.available-appointments-table p {
    margin: 0;
    border-radius: 0.2rem;
    padding: 10px 0;
    font-weight: bold;
    font-size: 1em;
}

.available-appointments-table .available-time-button {
    margin: 0;
    border: 1px solid #0071B6;
    border-radius: 0.2rem;
    background-color: #fff;
    color: #0071B6;
    min-width: 165px;
    cursor: pointer;
}

.available-appointments-table .unavailable-time-button {
    margin: 0;
    border: 1px solid #ccc;
    border-radius: 0.2rem;
    background-color: #fff;
    color: #ccc;
    min-width: 165px;
    cursor: default;
}

.available-appointments-table .selected-time {
    display: flex;
    justify-content: center;
    background-clip: padding-box;
    border: 1px solid #666;
    background-color: #666;
    color: #fff;
    min-width: 80px;
}

.available-appointments-table .confirm-button {
    display: flex;
    justify-content: center;
    border: 1px solid #0071B6;
    background-color: #0071B6;
    color: #fff;
    margin-left: 4px;
    min-width: 80px;
}


@media (min-width: 576px) {
    .available-appointments-container {
        width: 0;
        visibility: hidden;
        opacity: 0;
        /* transition: width 0.5s ease-in, opacity 0.5s ease-in, visibility 0s 0.5s; */
        overflow: hidden;
        /* Ensure content doesn't overflow during transition */
    }

    .available-appointments-container.show {
        margin-left: 20px;
        width: 173px;
        visibility: visible;
        opacity: 1;
        transition: width 0.3s ease-in, opacity 0.5s linear, visibility 0s 0s;
    }

    .available-appointments-container.hide {
        margin-left: 0;
        width: 0;
        visibility: hidden;
        opacity: 0;
    }
}


.wave-appointment-scheduler-title {
    font-size: 1.5em;
    line-height: 125%;
    margin-bottom: 5px;
    text-align: center;
    color: #444;
}

.wave-appointment-scheduler-description {
    text-align: center;
    line-height: 150%;
    margin-top: 5px;
    color: #666;
}

.wave-appointment-scheduler-help-text {
    text-align: center;
    color: #bbb;
    font-weight: 300;
    margin-top: -5px;
}

.wave-scheduler-change-appointment-button {
    margin-top: 10px;
    /* margin-bottom: 10px; */
}

.calendar-table a,
.wave-appointment-scheduler-please-call-me {
    color: #2b86b4;
}

.calendar-table a:hover,
.wave-appointment-scheduler-please-call-me:hover {
    color: #2ca5d3;
}

.calendar-table a:active,
.wave-appointment-scheduler-please-call-me:active {
    color: #27729b;
}

.wave-completion-message-header b {
    background: #f8f89c;
    color: #333;
    padding: 5px;
    border-radius: 3px;
}

.wave-completion-message-header {
    font-weight: 400;
    line-height: 175%;
}

.wave-completion-message-details {
    font-weight: bold;
    clear: both;
    padding-top: 15px;
    border-top: 1px solid #eee;
    margin-top: 40px;
    margin-bottom: 0px;
    line-height: 175%;
    font-size: 1rem;
    color: #5c8e80;
}

.wave-appointment-scheduler-please-call-me {
    margin: 0 auto;
    display: block;
    text-align: center;
    padding-top: 15px;
    padding-bottom: 10px;
    text-decoration: none;
    font-weight: bold;
    cursor: pointer;
}

/* === HelloOrtho overrides (v7+v8) === */
#waveInquiryForm .wave-table,
#waveInquiryForm .calendar-table {
    font-family: inherit;
    font-size: 13px;
}

#waveInquiryForm .wave-table td,
#waveInquiryForm .wave-table th,
#waveInquiryForm .calendar-table td,
#waveInquiryForm .calendar-table th {
    border-color: rgba(0, 0, 0, 0.08) !important;
}

#waveInquiryForm .wave-table .table-arrow-selector a,
#waveInquiryForm .calendar-table .table-arrow-selector span,
#waveInquiryForm .calendar-table .table-arrow-selector a {
    font-size: 3.1em !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    color: inherit;
    text-decoration: none !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
}

#waveInquiryForm .wave-table a.appointment-button,
#waveInquiryForm .wave-table a.appointment-button.available,
#waveInquiryForm .wave-table a.appointment-button.unavailable,
#waveInquiryForm .calendar-table a.appointment-button,
#waveInquiryForm .calendar-table a.appointment-button.available,
#waveInquiryForm .calendar-table a.appointment-button.unavailable {
    text-decoration: none !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}

/* Table grey background like original + consistent link colors */
#waveInquiryForm .wave-table tbody tr,
#waveInquiryForm .calendar-table tbody tr {
    background: #f3f3f3;
}

#waveInquiryForm .wave-table tbody tr:nth-child(even),
#waveInquiryForm .calendar-table tbody tr:nth-child(even) {
    background: #ffffff;
}

/* v7 time links + v8 available times: keep same blue as original */
#waveInquiryForm .wave-table a.appointment-button.available,
#waveInquiryForm .calendar-table a,
#waveInquiryForm .available-appointments-table .available-time-button {
    color: #2b86b4 !important;
    font-weight: 700 !important;
}

#waveInquiryForm .wave-table a.appointment-button.available:hover,
#waveInquiryForm .calendar-table a:hover,
#waveInquiryForm .available-appointments-table .available-time-button:hover {
    color: #2ca5d3 !important;
}

/* Unavailable slots: show "N/A" (valid CSS only — no :contains) */
#waveInquiryForm .wave-table a.appointment-button.unavailable,
#waveInquiryForm .calendar-table a.appointment-button.unavailable,
#waveInquiryForm .wave-table span.appointment-button.unavailable,
#waveInquiryForm .calendar-table span.appointment-button.unavailable,
#WAVE-appointment-scheduler .wave-table a.appointment-button.unavailable,
#WAVE-appointment-scheduler .calendar-table a.appointment-button.unavailable,
#waveInquiryForm .available-appointments-table .unavailable-time-button,
#WAVE-appointment-scheduler .available-appointments-table .unavailable-time-button {
    color: transparent !important;
    font-weight: 700 !important;
    position: relative !important;
    text-shadow: none !important;
    /* Fill the table cell so ::after can center in the column, not in shrink-wrapped text */
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
}

#waveInquiryForm .wave-table a.appointment-button.unavailable::after,
#waveInquiryForm .calendar-table a.appointment-button.unavailable::after,
#waveInquiryForm .wave-table span.appointment-button.unavailable::after,
#waveInquiryForm .calendar-table span.appointment-button.unavailable::after,
#WAVE-appointment-scheduler .wave-table a.appointment-button.unavailable::after,
#WAVE-appointment-scheduler .calendar-table a.appointment-button.unavailable::after,
#waveInquiryForm .available-appointments-table .unavailable-time-button::after,
#WAVE-appointment-scheduler .available-appointments-table .unavailable-time-button::after {
    content: "N/A";
    color: #5e7874;
    /* Match sibling .available-time-button size (incl. 0.78rem on narrow screens) */
    font-size: 1em;
    line-height: inherit;
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    font-weight: 700;
}

/* Mobile improvements */
@media (max-width: 600px) {
    #waveInquiryForm {
        padding-left: 10px;
        padding-right: 10px;
    }

    #waveInquiryForm #WAVE-appointment-scheduler {
        max-width: 100%;
        padding-bottom: 15px;
    }

    /* Google map: reduce height on mobile */
    #waveInquiryForm #WAVE-map {
        height: 260px !important;
        min-height: 260px !important;
    }

    /* Calendar table: show full content (no horizontal scroll) */
    #waveInquiryForm .calendar-table,
    #waveInquiryForm .wave-table {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    #waveInquiryForm .wave-table {
        table-layout: fixed;
        border-collapse: collapse;
    }

    /* Make header text smaller for tight screens */
    #waveInquiryForm .wave-table th,
    #waveInquiryForm .calendar-table th {
        font-size: 10px;
        line-height: 1.15;
        vertical-align: top;
    }

    /* Reduce cell padding so the 5-day grid fits */
    #waveInquiryForm .wave-table th,
    #waveInquiryForm .wave-table td,
    #waveInquiryForm .calendar-table th,
    #waveInquiryForm .calendar-table td {
        padding: 4px 2px !important;
    }

    /* v7 header: stack DAY and MONTH lines cleanly (prevents overlap) */
    #waveInquiryForm .wave-table th span {
        display: block;
        line-height: 1.15;
    }

    /* Keep time text readable without overlap */
    #waveInquiryForm .wave-table a.appointment-button,
    #waveInquiryForm .calendar-table a.appointment-button {
        display: block;
        font-size: 10px;
        line-height: 1.25;
        white-space: nowrap;
    }

    /* Add a bit more row height so times don’t collide */
    #waveInquiryForm .wave-table td,
    #waveInquiryForm .calendar-table td {
        height: 22px;
        vertical-align: middle;
    }

    /* Slightly smaller day “date” buttons (v8) */
    #waveInquiryForm .calendar-table .appointment-button {
        width: 2.1em;
        height: 2.1em;
        line-height: 2.1em;
    }

    /* Appointment side panel: show full width under calendar */
    #waveInquiryForm .available-appointments-container,
    #waveInquiryForm .available-appointments-container.show,
    #waveInquiryForm .available-appointments-container.hide {
        width: 100% !important;
        margin-left: 0 !important;
        visibility: visible !important;
        opacity: 1 !important;
        overflow: visible !important;
    }

    /* Make time buttons full width */
    #waveInquiryForm .available-appointments-table .available-time-button,
    #waveInquiryForm .available-appointments-table .unavailable-time-button,
    #waveInquiryForm .available-appointments-table .selected-time,
    #waveInquiryForm .available-appointments-table .confirm-button {
        min-width: 0 !important;
        width: 100% !important;
        display: block;
        margin-left: 0 !important;
    }

    #waveInquiryForm .available-appointments-table .selected-appointment-container {
        flex-direction: column;
        gap: 8px;
        align-items: stretch;
    }
}

@media (max-width: 662px) {
    /* .calendar-table td {
        padding: 5px 3px 5px 3px;
    } */
}
/** WaveOrtho (c) 2026 | WaveOrtho Inquiry Form & Exam Scheduler [version: 8.0.6] */

#WAVE-appointment-scheduler {
    margin: 0 auto;
    max-width: 1000px;
    padding-bottom: 25px;
    padding-top: 0px;
}

#wave-appointment-scheduler-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 15px;
}

.loading-calendar-container {
    display: flex;
    width: 289px;
    height: 265px;
    justify-content: center;
    align-items: center;
}

.loading-calendar-container.hide {
    display: none;
}

.loading-calendar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: inline-block;
    position: relative;
    border: 3px solid;
    border-color: #62c0f0 #62c0f0 transparent transparent;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

.loading-calendar::after,
.loading-calendar::before {
    content: '';
    box-sizing: border-box;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    border: 3px solid;
    border-color: transparent transparent #174880 #174880;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    box-sizing: border-box;
    animation: rotationBack 0.5s linear infinite;
    transform-origin: center center;
}

.loading-calendar::before {
    width: 32px;
    height: 32px;
    border-color: #0e89ca #0e89ca transparent transparent;
    animation: rotation 1.5s linear infinite;
}


@keyframes rotation {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes rotationBack {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(-360deg);
    }
}

.calendar-table {
    width: fit-content;
    height: fit-content;
    border-collapse: separate;
    font-size: 13px;
    display: none;
}

.calendar-table .table-arrow-selector {
    cursor: pointer;
    text-align: center;
    padding: 0 0 10px 0;
    vertical-align: middle;
    font-weight: normal;
}

.calendar-table .table-arrow-selector span {
    font-size: 2.25em;
    position: relative;
    font-weight: 100;
    top: -4px;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    color: rgb(0, 113, 182);
}

.calendar-table .table-arrow-selector span.disabled {
    color: rgb(163, 163, 163);
}

.calendar-table .table-date-header {
    padding: 0 0 10px 5px;
    /* padding: 1px 0 1px 5px; */
    text-align: left;
    font-size: 1.108em;
    font-weight: 400;
}

.calendar-table .day-of-week {
    text-align: center;
    font-size: 0.9em;
    font-weight: 400;
    width: 37px;
}

.calendar-table .calendar-table tbody tr {
    border: 1px solid rgba(0, 0, 0, .1);
    border-bottom: none;
}

.calendar-table .calendar-table {
    border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.calendar-table .calendar-table tbody tr.hour {
    border-top: 1px solid rgba(0, 0, 0, .25);
}

.calendar-table td.date-cell {
    text-align: center;
    width: 37px;
}

.calendar-table .text-center {
    text-align: center;
}

.calendar-table .wave-time-display {
    text-align: right;
    padding: 0;
    margin: 0;
    font-size: .85em;
    color: #999;
}

.calendar-table .calendar-table tbody tr:nth-of-type(odd) {
    background-color: rgba(0, 0, 0, 0.05);
}

.calendar-table .appointment-button {
    border: none;
    font-size: 1em;
    line-height: 2.5em;
    width: 2.5em;
    height: 2.5em;
    cursor: default;
    /* margin: 0; */
}

.calendar-table .appointment-button.has-date {
    border: none;
    border-radius: 50%;
    color: #a3a3a3;
}

.calendar-table .appointment-button.has-appt {
    display: inline-block;
    background-clip: padding-box;
    border: 1px solid rgb(54, 146, 211, 10%);
    border-radius: 50%;
    background-color: rgb(54, 146, 211, 10%);
    color: #0071B6;
    font-weight: bold;
    cursor: pointer;
}

.calendar-table .appointment-button.selected {
    border: none;
    border-radius: 50%;
    background-color: #0071B6;
    color: #fff;
    font-weight: bold;
}


.available-appointments-table {
    font-size: 13px;
    text-align: center;
    height: fit-content;
}

.available-appointments-table .available-appointments-table-header {
    padding: 15px 0 10px 0;
    font-size: 1.108em;
    line-height: 2.25em;
    font-weight: normal;
    text-align: center;
}

.available-appointments-table .selected-appointment-container {
    display: flex;
    justify-content: space-between;
}

.available-appointments-table td {
    border: none;
    background-color: transparent;
}

.available-appointments-table p {
    margin: 0;
    border-radius: 0.2rem;
    padding: 10px 0;
    font-weight: bold;
    font-size: 1em;
}

.available-appointments-table .available-time-button {
    margin: 0;
    border: 1px solid #0071B6;
    border-radius: 0.2rem;
    background-color: #fff;
    color: #0071B6;
    min-width: 165px;
    cursor: pointer;
}

.available-appointments-table .unavailable-time-button {
    margin: 0;
    border: 1px solid #ccc;
    border-radius: 0.2rem;
    background-color: #fff;
    color: #ccc;
    min-width: 165px;
    cursor: default;
}

.available-appointments-table .selected-time {
    display: flex;
    justify-content: center;
    background-clip: padding-box;
    border: 1px solid #666;
    background-color: #666;
    color: #fff;
    min-width: 80px;
}

.available-appointments-table .confirm-button {
    display: flex;
    justify-content: center;
    border: 1px solid #0071B6;
    background-color: #0071B6;
    color: #fff;
    margin-left: 4px;
    min-width: 80px;
}


@media (min-width: 576px) {
    .available-appointments-container {
        width: 0;
        visibility: hidden;
        opacity: 0;
        /* transition: width 0.5s ease-in, opacity 0.5s ease-in, visibility 0s 0.5s; */
        overflow: hidden;
        /* Ensure content doesn't overflow during transition */
    }

    .available-appointments-container.show {
        margin-left: 20px;
        width: 173px;
        visibility: visible;
        opacity: 1;
        transition: width 0.3s ease-in, opacity 0.5s linear, visibility 0s 0s;
    }

    .available-appointments-container.hide {
        margin-left: 0;
        width: 0;
        visibility: hidden;
        opacity: 0;
    }
}


.wave-appointment-scheduler-title {
    font-size: 1.5em;
    line-height: 125%;
    margin-bottom: 5px;
    text-align: center;
    color: #444;
}

.wave-appointment-scheduler-description {
    text-align: center;
    line-height: 150%;
    margin-top: 5px;
    color: #666;
}

.wave-appointment-scheduler-help-text {
    text-align: center;
    color: #bbb;
    font-weight: 300;
    margin-top: -5px;
}

.wave-scheduler-change-appointment-button {
    margin-top: 10px;
    /* margin-bottom: 10px; */
}

.calendar-table a,
.wave-appointment-scheduler-please-call-me {
    color: #2b86b4;
}

.calendar-table a:hover,
.wave-appointment-scheduler-please-call-me:hover {
    color: #2ca5d3;
}

.calendar-table a:active,
.wave-appointment-scheduler-please-call-me:active {
    color: #27729b;
}

.wave-completion-message-header b {
    background: #f8f89c;
    color: #333;
    padding: 5px;
    border-radius: 3px;
}

.wave-completion-message-header {
    font-weight: 400;
    line-height: 175%;
}

.wave-completion-message-details {
    font-weight: bold;
    clear: both;
    padding-top: 15px;
    border-top: 1px solid #eee;
    margin-top: 40px;
    margin-bottom: 0px;
    line-height: 175%;
    font-size: 1rem;
    color: #5c8e80;
}

.wave-appointment-scheduler-please-call-me {
    margin: 0 auto;
    display: block;
    text-align: center;
    padding-top: 15px;
    padding-bottom: 10px;
    text-decoration: none;
    font-weight: bold;
    cursor: pointer;
}

@media (max-width: 662px) {
    /* .calendar-table td {
        padding: 5px 3px 5px 3px;
    } */
}

/*
 * Mobile: weekly time grid was wider than the viewport because each slot used
 * min-width: 165px (see .available-time-button above). ~4 columns ≈ 660px.
 * These overrides shrink slots and let the scheduler fit typical phone widths.
 */
@media (max-width: 768px) {
    #WAVE-appointment-scheduler {
        max-width: 100%;
        padding-left: 4px;
        padding-right: 4px;
        box-sizing: border-box;
    }

    #wave-appointment-scheduler-container {
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
    }

    .available-appointments-table {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .available-appointments-table .available-time-button,
    .available-appointments-table .unavailable-time-button {
        min-width: 0 !important;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
        font-size: 0.78rem;
        line-height: 1.25;
        padding: 8px 4px !important;
        white-space: normal;
    }

    .available-appointments-table .available-appointments-table-header {
        font-size: 0.95em;
        line-height: 1.35;
        padding: 10px 4px 8px 4px;
    }

    /*
     * Weekly day columns: avoid width:100% + table-layout:fixed (often added in theme CSS).
     * That stretches columns across the screen while content stays narrow = huge gaps.
     * Keep the table only as wide as its content and center it; tighten cell padding.
     */
    #WAVE-appointment-scheduler .calendar-table {
        width: max-content !important;
        max-width: 100% !important;
        min-width: 0 !important;
        table-layout: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
        border-collapse: separate !important;
        border-spacing: 0 !important;
    }

    #WAVE-appointment-scheduler .calendar-table .table-date-header {
        padding-left: 2px !important;
        padding-right: 2px !important;
    }

    #WAVE-appointment-scheduler .calendar-table .day-of-week,
    #WAVE-appointment-scheduler .calendar-table td.date-cell {
        width: auto !important;
        max-width: none !important;
        padding-left: 1px !important;
        padding-right: 1px !important;
        box-sizing: border-box !important;
    }

    /* If a column is still tight on very small screens, scroll instead of clipping */
    #waveInquiryForm #WAVE-appointment-scheduler,
    #WAVE-appointment-scheduler {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}
/* N/A for unavailable slots: primary rules use #waveInquiryForm / #WAVE-appointment-scheduler above */

/*
 * Placeholder should be "Capitalize" instead of forced uppercase.
 * Use !important to override any input-level `text-transform: uppercase` rules.
 */
#waveInquiryForm input::placeholder,
#waveInquiryForm textarea::placeholder,
#WAVE-appointment-scheduler input::placeholder,
#WAVE-appointment-scheduler textarea::placeholder {
    text-transform: capitalize !important;
}

/* Vendor fallbacks */
#waveInquiryForm input::-webkit-input-placeholder,
#waveInquiryForm textarea::-webkit-input-placeholder,
#WAVE-appointment-scheduler input::-webkit-input-placeholder,
#WAVE-appointment-scheduler textarea::-webkit-input-placeholder {
    text-transform: capitalize !important;
}

#waveInquiryForm input:-ms-input-placeholder,
#waveInquiryForm textarea:-ms-input-placeholder,
#WAVE-appointment-scheduler input:-ms-input-placeholder,
#WAVE-appointment-scheduler textarea:-ms-input-placeholder {
    text-transform: capitalize !important;
}