/*
 * BodyCurve Gravity Forms theme.
 * Add "bodycurve-form" in Gravity Forms > Form Settings > CSS Class Name.
 */

.gform_wrapper.bodycurve-form,
.bodycurve-form {
    --bc-purple: #67446f;
    --bc-purple-dark: #513357;
    --bc-purple-soft: #f4eef5;
    --bc-text: #2f2930;
    --bc-muted: #6f6670;
    --bc-border: #cfc4d1;
    --bc-field: #fbf9fb;
    --bc-white: #ffffff;
    --bc-error: #a22f3d;
    color: var(--bc-text);
    font-family: inherit;
    font-size: 18px;
}

.gform_wrapper.bodycurve-form .gform_heading,
.bodycurve-form .gform_heading {
    margin-bottom: 34px;
}

.gform_wrapper.bodycurve-form .gform_title,
.bodycurve-form .gform_title {
    color: var(--bc-purple-dark);
    font-size: clamp(34px, 4vw, 50px);
    font-weight: 500;
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0 0 14px;
}

.gform_wrapper.bodycurve-form .gform_description,
.bodycurve-form .gform_description {
    color: var(--bc-muted);
    font-size: 19px;
    line-height: 1.65;
    max-width: 760px;
}

.gform_wrapper.bodycurve-form form,
.bodycurve-form form {
    background: var(--bc-white);
    border: 1px solid var(--bc-border);
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(57, 39, 60, 0.10);
    padding: clamp(28px, 5vw, 58px);
}

.gform_wrapper.bodycurve-form .gform_fields,
.bodycurve-form .gform_fields {
    column-gap: 30px;
    row-gap: 16px;
}

.gform_wrapper.bodycurve-form .gsection,
.bodycurve-form .gsection {
    border-bottom: 2px solid var(--bc-purple-soft);
    margin: 4px 0 0;
    padding: 0 0 3px;
}

.gform_wrapper.bodycurve-form .gsection_title,
.bodycurve-form .gsection_title {
    color: var(--bc-purple-dark);
    font-size: clamp(24px, 3vw, 31px);
    font-weight: 500;
    letter-spacing: -0.015em;
    line-height: 1.1;
    margin-bottom: 0;
}

.gform_wrapper.bodycurve-form .gfield_label,
.gform_wrapper.bodycurve-form .gform-field-label,
.bodycurve-form .gfield_label,
.bodycurve-form .gform-field-label {
    color: var(--bc-text);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    margin-bottom: 8px;
}

.gform_wrapper.bodycurve-form .gfield_required,
.bodycurve-form .gfield_required {
    color: #c62828;
    font-size: 11px;
    font-weight: 600;
    margin-left: 4px;
    text-transform: none;
}

.gform_wrapper.bodycurve-form input[type="text"],
.gform_wrapper.bodycurve-form input[type="email"],
.gform_wrapper.bodycurve-form input[type="tel"],
.gform_wrapper.bodycurve-form input[type="number"],
.gform_wrapper.bodycurve-form input[type="url"],
.gform_wrapper.bodycurve-form input[type="date"],
.gform_wrapper.bodycurve-form select,
.gform_wrapper.bodycurve-form textarea,
.bodycurve-form input[type="text"],
.bodycurve-form input[type="email"],
.bodycurve-form input[type="tel"],
.bodycurve-form input[type="number"],
.bodycurve-form input[type="url"],
.bodycurve-form input[type="date"],
.bodycurve-form select,
.bodycurve-form textarea {
    appearance: none;
    background-color: var(--bc-field);
    border: 2px solid var(--bc-border);
    border-radius: 8px;
    box-shadow: none;
    color: var(--bc-text);
    font-family: inherit;
    font-size: 18px;
    line-height: 1.4;
    min-height: 82px;
    padding: 23px 24px;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
    width: 100%;
}

.gform_wrapper.bodycurve-form select,
.bodycurve-form select {
    background-image:
        linear-gradient(45deg, transparent 50%, var(--bc-purple) 50%),
        linear-gradient(135deg, var(--bc-purple) 50%, transparent 50%);
    background-position:
        calc(100% - 27px) 37px,
        calc(100% - 18px) 37px;
    background-repeat: no-repeat;
    background-size: 7px 7px, 7px 7px;
    padding-right: 52px;
}


.gform_wrapper.bodycurve-form select option:disabled,
.bodycurve-form select option:disabled,
.gform_wrapper.bodycurve-form select option.bc-no-slots,
.bodycurve-form select option.bc-no-slots {
    color: #a49ca5;
    background-color: #f1eef1;
}

.gform_wrapper.bodycurve-form textarea,
.bodycurve-form textarea {
    min-height: 155px;
    resize: vertical;
}

.gform_wrapper.bodycurve-form input:focus,
.gform_wrapper.bodycurve-form select:focus,
.gform_wrapper.bodycurve-form textarea:focus,
.bodycurve-form input:focus,
.bodycurve-form select:focus,
.bodycurve-form textarea:focus {
    background-color: var(--bc-white);
    border-color: var(--bc-purple);
    box-shadow: 0 0 0 4px rgba(103, 68, 111, 0.15);
    outline: none;
}

.gform_wrapper.bodycurve-form input::placeholder,
.gform_wrapper.bodycurve-form textarea::placeholder,
.bodycurve-form input::placeholder,
.bodycurve-form textarea::placeholder {
    color: #8f8490;
    opacity: 1;
}

.gform_wrapper.bodycurve-form .ginput_complex,
.bodycurve-form .ginput_complex {
    gap: 18px;
}

.gform_wrapper.bodycurve-form .ginput_complex label,
.bodycurve-form .ginput_complex label {
    color: var(--bc-muted);
    font-size: 15px;
    margin-top: 7px;
}

.gform_wrapper.bodycurve-form .gchoice,
.bodycurve-form .gchoice {
    align-items: flex-start;
    display: flex;
    gap: 13px;
    margin-bottom: 11px;
}

.gform_wrapper.bodycurve-form input[type="checkbox"],
.gform_wrapper.bodycurve-form input[type="radio"],
.bodycurve-form input[type="checkbox"],
.bodycurve-form input[type="radio"] {
    accent-color: var(--bc-purple);
    flex: 0 0 auto;
    height: 22px;
    margin-top: 3px;
    width: 22px;
}

.gform_wrapper.bodycurve-form .gchoice label,
.bodycurve-form .gchoice label {
    font-size: 17px;
    line-height: 1.55;
}

.gform_wrapper.bodycurve-form .gfield_description,
.gform_wrapper.bodycurve-form .gform-field-label--type-inline,
.bodycurve-form .gfield_description,
.bodycurve-form .gform-field-label--type-inline {
    color: var(--bc-muted);
    font-size: 15px;
    line-height: 1.6;
}

.gform_wrapper.bodycurve-form .gform_body,
.bodycurve-form .gform_body {
    padding-bottom: 10px;
}

.gform_wrapper.bodycurve-form .gform_footer,
.gform_wrapper.bodycurve-form .gform_page_footer,
.bodycurve-form .gform_footer,
.bodycurve-form .gform_page_footer {
    margin-top: 28px;
    padding: 0 0 34px;
}

.gform_wrapper.bodycurve-form .gform_button,
.gform_wrapper.bodycurve-form input[type="submit"],
.gform_wrapper.bodycurve-form button[type="submit"],
.bodycurve-form .gform_button,
.bodycurve-form input[type="submit"],
.bodycurve-form button[type="submit"] {
    background: var(--bc-purple) !important;
    border: 2px solid var(--bc-purple) !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 24px rgba(81, 51, 87, 0.22);
    color: #fff !important;
    cursor: pointer;
    font-family: inherit;
    font-size: 18px !important;
    font-weight: 600;
    letter-spacing: 0.035em;
    min-height: 72px;
    padding: 20px 42px !important;
    text-transform: none;
    transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.gform_wrapper.bodycurve-form .gform_button:hover,
.gform_wrapper.bodycurve-form input[type="submit"]:hover,
.gform_wrapper.bodycurve-form button[type="submit"]:hover,
.bodycurve-form .gform_button:hover,
.bodycurve-form input[type="submit"]:hover,
.bodycurve-form button[type="submit"]:hover {
    background: var(--bc-purple-dark) !important;
    border-color: var(--bc-purple-dark) !important;
    box-shadow: 0 13px 28px rgba(81, 51, 87, 0.28);
    transform: translateY(-2px);
}

.gform_wrapper.bodycurve-form .gform_validation_errors,
.bodycurve-form .gform_validation_errors {
    background: #fff5f6;
    border: 1px solid rgba(162, 47, 61, 0.35);
    border-left: 5px solid var(--bc-error);
    border-radius: 8px;
    box-shadow: none;
    margin: 0 0 30px;
    padding: 20px 22px;
}

.gform_wrapper.bodycurve-form .gform_submission_error,
.bodycurve-form .gform_submission_error {
    color: var(--bc-error);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
    margin: 0;
}

.gform_wrapper.bodycurve-form .gfield_error input,
.gform_wrapper.bodycurve-form .gfield_error select,
.gform_wrapper.bodycurve-form .gfield_error textarea,
.bodycurve-form .gfield_error input,
.bodycurve-form .gfield_error select,
.bodycurve-form .gfield_error textarea {
    border-color: var(--bc-error);
}

.gform_wrapper.bodycurve-form .validation_message,
.bodycurve-form .validation_message {
    color: var(--bc-error);
    font-size: 15px;
    margin-top: 9px;
}

.gform_wrapper.bodycurve-form.bc-bookings-is-loading,
.bodycurve-form.bc-bookings-is-loading {
    position: relative;
}

.gform_wrapper.bodycurve-form.bc-bookings-is-loading::after,
.bodycurve-form.bc-bookings-is-loading::after {
    animation: bc-bookings-spin 750ms linear infinite;
    border: 3px solid rgba(103, 68, 111, 0.22);
    border-radius: 50%;
    border-top-color: var(--bc-purple);
    content: "";
    height: 25px;
    position: absolute;
    right: 24px;
    top: 24px;
    width: 25px;
}

@keyframes bc-bookings-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
    .gform_wrapper.bodycurve-form,
    .bodycurve-form {
        font-size: 17px;
    }

    .gform_wrapper.bodycurve-form form,
    .bodycurve-form form {
        padding: 26px 18px;
    }

    .gform_wrapper.bodycurve-form input[type="text"],
    .gform_wrapper.bodycurve-form input[type="email"],
    .gform_wrapper.bodycurve-form input[type="tel"],
    .gform_wrapper.bodycurve-form select,
    .bodycurve-form input[type="text"],
    .bodycurve-form input[type="email"],
    .bodycurve-form input[type="tel"],
    .bodycurve-form select {
        min-height: 72px;
        font-size: 17px;
    }

    .gform_wrapper.bodycurve-form .gform_button,
    .gform_wrapper.bodycurve-form input[type="submit"],
    .gform_wrapper.bodycurve-form button[type="submit"],
    .bodycurve-form .gform_button,
    .bodycurve-form input[type="submit"],
    .bodycurve-form button[type="submit"] {
        width: 100%;
    }
}


/* ===== BodyCurve Premium Refresh v2.5 ===== */

:root{
 --bc-accent:#67446f;
 --bc-accent-dark:#55365d;
 --bc-bg:#faf8fb;
}

.gform_wrapper.bodycurve-form form,
.bodycurve-form form{
 border:none!important;
 box-shadow:none!important;
 background:transparent!important;
 padding:0!important;
}

.gform_wrapper.bodycurve-form .gfield,
.bodycurve-form .gfield{
 margin-bottom:18px!important;
}

.gform_wrapper.bodycurve-form .gfield_label,
.bodycurve-form .gfield_label{
 font-size:19px!important;
 font-weight:600!important;
 margin-bottom:4px!important;
}

.gform_wrapper.bodycurve-form .gfield_required,
.bodycurve-form .gfield_required{
 color:#c33!important;
 font-size:12px!important;
 text-transform:none!important;
}

.gform_wrapper.bodycurve-form input[type=text],
.gform_wrapper.bodycurve-form input[type=email],
.gform_wrapper.bodycurve-form input[type=tel],
.gform_wrapper.bodycurve-form select,
.gform_wrapper.bodycurve-form textarea,
.bodycurve-form input[type=text],
.bodycurve-form input[type=email],
.bodycurve-form input[type=tel],
.bodycurve-form select,
.bodycurve-form textarea{
 background:var(--bc-bg)!important;
 border:0!important;
 border-bottom:3px solid #d7ccd9!important;
 border-radius:16px 16px 6px 6px!important;
 min-height:90px!important;
 padding:26px 24px!important;
 font-size:19px!important;
 transition:all .25s ease!important;
 box-shadow:none!important;
}

.gform_wrapper.bodycurve-form textarea,
.bodycurve-form textarea{
 min-height:170px!important;
}

.gform_wrapper.bodycurve-form input:focus,
.gform_wrapper.bodycurve-form select:focus,
.gform_wrapper.bodycurve-form textarea:focus,
.bodycurve-form input:focus,
.bodycurve-form select:focus,
.bodycurve-form textarea:focus{
 border-bottom-color:var(--bc-accent)!important;
 transform:translateY(-2px);
 box-shadow:0 10px 30px rgba(103,68,111,.10)!important;
 background:#fff!important;
}

.gform_wrapper.bodycurve-form select,
.bodycurve-form select{
 appearance:none;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 20 20'%3E%3Cpath fill='%2367446f' d='M5 7l5 6 5-6'/%3E%3C/svg%3E");
 background-repeat:no-repeat;
 background-position:right 24px center;
 background-size:18px;
 padding-right:60px!important;
}

.gform_wrapper.bodycurve-form .gsection,
.bodycurve-form .gsection{
 margin:8px 0 6px!important;
 padding-bottom:2px!important;
}

.gform_wrapper.bodycurve-form .gsection_title,
.bodycurve-form .gsection_title{
 font-size:30px!important;
 font-weight:500!important;
 margin:0!important;
}

.gform_wrapper.bodycurve-form .gform_footer,
.bodycurve-form .gform_footer{
 padding-top:28px!important;
 padding-bottom:48px!important;
}

.gform_wrapper.bodycurve-form .gform_button,
.bodycurve-form .gform_button,
.bodycurve-form input[type=submit]{
 min-height:64px!important;
 border-radius:18px!important;
 padding:0 44px!important;
 background:var(--bc-accent)!important;
 border:none!important;
 font-size:18px!important;
 font-weight:600!important;
 box-shadow:0 16px 35px rgba(103,68,111,.22)!important;
}

.gform_wrapper.bodycurve-form .gform_button:hover,
.bodycurve-form .gform_button:hover,
.bodycurve-form input[type=submit]:hover{
 background:var(--bc-accent-dark)!important;
 transform:translateY(-2px);
}


/* ===== BodyCurve Premium Polish v2.5.1 ===== */

/* Clearer hierarchy and more bespoke spacing */
.gform_wrapper.bodycurve-form .gform_fields,
.bodycurve-form .gform_fields {
    row-gap: 22px !important;
}

.gform_wrapper.bodycurve-form .gfield,
.bodycurve-form .gfield {
    position: relative;
    margin-bottom: 0 !important;
    opacity: 0;
    transform: translateY(8px);
    animation: bc-field-in 420ms ease forwards;
}

.gform_wrapper.bodycurve-form .gfield:nth-child(2),
.bodycurve-form .gfield:nth-child(2) { animation-delay: 35ms; }
.gform_wrapper.bodycurve-form .gfield:nth-child(3),
.bodycurve-form .gfield:nth-child(3) { animation-delay: 70ms; }
.gform_wrapper.bodycurve-form .gfield:nth-child(4),
.bodycurve-form .gfield:nth-child(4) { animation-delay: 105ms; }
.gform_wrapper.bodycurve-form .gfield:nth-child(5),
.bodycurve-form .gfield:nth-child(5) { animation-delay: 140ms; }
.gform_wrapper.bodycurve-form .gfield:nth-child(6),
.bodycurve-form .gfield:nth-child(6) { animation-delay: 175ms; }

@keyframes bc-field-in {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Label interaction */
.gform_wrapper.bodycurve-form .gfield:focus-within .gfield_label,
.gform_wrapper.bodycurve-form .gfield:focus-within .gform-field-label,
.bodycurve-form .gfield:focus-within .gfield_label,
.bodycurve-form .gfield:focus-within .gform-field-label {
    color: var(--bc-accent) !important;
}

/* Larger, airier controls without looking bulky */
.gform_wrapper.bodycurve-form input[type=text],
.gform_wrapper.bodycurve-form input[type=email],
.gform_wrapper.bodycurve-form input[type=tel],
.gform_wrapper.bodycurve-form input[type=number],
.gform_wrapper.bodycurve-form input[type=url],
.gform_wrapper.bodycurve-form select,
.gform_wrapper.bodycurve-form textarea,
.bodycurve-form input[type=text],
.bodycurve-form input[type=email],
.bodycurve-form input[type=tel],
.bodycurve-form input[type=number],
.bodycurve-form input[type=url],
.bodycurve-form select,
.bodycurve-form textarea {
    min-height: 94px !important;
    border-radius: 18px 18px 8px 8px !important;
    padding: 28px 26px !important;
    font-size: 20px !important;
}

/* Selected values feel more deliberate */
.gform_wrapper.bodycurve-form select,
.bodycurve-form select {
    font-weight: 500;
}

/* Validation now matches the BodyCurve look */
.gform_wrapper.bodycurve-form .gform_validation_errors,
.bodycurve-form .gform_validation_errors {
    background: #fbf6fb !important;
    border: 1px solid #e4d7e6 !important;
    border-left: 5px solid var(--bc-accent) !important;
    border-radius: 16px !important;
    box-shadow: 0 14px 35px rgba(103, 68, 111, 0.08) !important;
    padding: 22px 24px !important;
}

.gform_wrapper.bodycurve-form .gform_submission_error,
.bodycurve-form .gform_submission_error {
    color: var(--bc-accent-dark) !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
}

.gform_wrapper.bodycurve-form .gfield_error input,
.gform_wrapper.bodycurve-form .gfield_error select,
.gform_wrapper.bodycurve-form .gfield_error textarea,
.bodycurve-form .gfield_error input,
.bodycurve-form .gfield_error select,
.bodycurve-form .gfield_error textarea {
    background: #fffafa !important;
    border-bottom-color: #b53f50 !important;
}

.gform_wrapper.bodycurve-form .validation_message,
.bodycurve-form .validation_message {
    color: #a93847 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    margin-top: 8px !important;
}

/* More refined section headings */
.gform_wrapper.bodycurve-form .gsection,
.bodycurve-form .gsection {
    border-bottom: 1px solid rgba(103, 68, 111, 0.16) !important;
    margin: 14px 0 2px !important;
    padding: 0 0 8px !important;
}

.gform_wrapper.bodycurve-form .gsection_title,
.bodycurve-form .gsection_title {
    color: var(--bc-accent-dark) !important;
    font-size: clamp(28px, 3vw, 36px) !important;
    letter-spacing: -0.02em !important;
}

/* Choice controls feel custom rather than default */
.gform_wrapper.bodycurve-form .gchoice,
.bodycurve-form .gchoice {
    background: #fbf9fb;
    border: 1px solid #eadfea;
    border-radius: 14px;
    padding: 14px 16px;
    transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.gform_wrapper.bodycurve-form .gchoice:hover,
.bodycurve-form .gchoice:hover {
    background: #fff;
    border-color: rgba(103, 68, 111, 0.42);
    transform: translateY(-1px);
}

/* Premium CTA treatment */
.gform_wrapper.bodycurve-form .gform_footer,
.gform_wrapper.bodycurve-form .gform_page_footer,
.bodycurve-form .gform_footer,
.bodycurve-form .gform_page_footer {
    display: flex;
    justify-content: center;
    margin-top: 34px !important;
    padding: 4px 0 54px !important;
}

.gform_wrapper.bodycurve-form .gform_button,
.gform_wrapper.bodycurve-form input[type=submit],
.gform_wrapper.bodycurve-form button[type=submit],
.bodycurve-form .gform_button,
.bodycurve-form input[type=submit],
.bodycurve-form button[type=submit] {
    min-width: 240px;
    min-height: 68px !important;
    border-radius: 20px !important;
    letter-spacing: 0.02em !important;
}

.gform_wrapper.bodycurve-form .gform_button:focus-visible,
.gform_wrapper.bodycurve-form input[type=submit]:focus-visible,
.gform_wrapper.bodycurve-form button[type=submit]:focus-visible,
.bodycurve-form .gform_button:focus-visible,
.bodycurve-form input[type=submit]:focus-visible,
.bodycurve-form button[type=submit]:focus-visible {
    outline: 3px solid rgba(103, 68, 111, 0.26) !important;
    outline-offset: 4px;
}

/* Disabled dates are clearly unavailable */
.gform_wrapper.bodycurve-form select option:disabled,
.bodycurve-form select option:disabled {
    color: #aaa2ab !important;
    background: #f2eff2 !important;
}

/* Mobile keeps the bespoke feel without becoming oversized */
@media (max-width: 640px) {
    .gform_wrapper.bodycurve-form input[type=text],
    .gform_wrapper.bodycurve-form input[type=email],
    .gform_wrapper.bodycurve-form input[type=tel],
    .gform_wrapper.bodycurve-form input[type=number],
    .gform_wrapper.bodycurve-form input[type=url],
    .gform_wrapper.bodycurve-form select,
    .gform_wrapper.bodycurve-form textarea,
    .bodycurve-form input[type=text],
    .bodycurve-form input[type=email],
    .bodycurve-form input[type=tel],
    .bodycurve-form input[type=number],
    .bodycurve-form input[type=url],
    .bodycurve-form select,
    .bodycurve-form textarea {
        min-height: 78px !important;
        border-radius: 16px 16px 7px 7px !important;
        padding: 22px 20px !important;
        font-size: 18px !important;
    }

    .gform_wrapper.bodycurve-form .gform_footer,
    .bodycurve-form .gform_footer {
        padding-bottom: 42px !important;
    }

    .gform_wrapper.bodycurve-form .gform_button,
    .bodycurve-form .gform_button,
    .bodycurve-form input[type=submit] {
        width: 100%;
        min-width: 0;
    }
}

/* Respect visitors who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    .gform_wrapper.bodycurve-form .gfield,
    .bodycurve-form .gfield {
        opacity: 1;
        transform: none;
        animation: none;
    }

    .gform_wrapper.bodycurve-form input,
    .gform_wrapper.bodycurve-form select,
    .gform_wrapper.bodycurve-form textarea,
    .bodycurve-form input,
    .bodycurve-form select,
    .bodycurve-form textarea {
        transition: none !important;
    }
}


/* ===== BodyCurve Bespoke Booking Experience v3.0 ===== */

.gform_wrapper.bodycurve-form,
.bodycurve-form {
    --bc-ink: #332936;
    --bc-muted: #786f7a;
    --bc-line: #e6dee7;
    --bc-soft: #fbf8fb;
    --bc-purple: #67446f;
    --bc-purple-dark: #513557;
}

.gform_wrapper.bodycurve-form .gform-body,
.bodycurve-form .gform-body {
    background: rgba(255,255,255,.94);
    border: 1px solid rgba(103,68,111,.10);
    border-radius: 28px;
    box-shadow: 0 28px 70px rgba(57,40,61,.10);
    padding: clamp(24px, 5vw, 54px);
    backdrop-filter: blur(14px);
}

.bc-booking-progress {
    align-items: center;
    display: flex;
    justify-content: center;
    margin: 0 auto 34px;
    max-width: 520px;
}

.bc-booking-progress__step {
    align-items: center;
    color: #a59da6;
    display: flex;
    flex-direction: column;
    font-size: 13px;
    font-weight: 600;
    gap: 7px;
    min-width: 90px;
    text-align: center;
    transition: color .2s ease;
}

.bc-booking-progress__number {
    align-items: center;
    background: #f2edf3;
    border: 1px solid #dfd5e1;
    border-radius: 50%;
    display: flex;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.bc-booking-progress__step.is-active,
.bc-booking-progress__step.is-complete {
    color: var(--bc-purple-dark);
}

.bc-booking-progress__step.is-active .bc-booking-progress__number,
.bc-booking-progress__step.is-complete .bc-booking-progress__number {
    background: var(--bc-purple);
    border-color: var(--bc-purple);
    color: #fff;
    box-shadow: 0 8px 22px rgba(103,68,111,.22);
}

.bc-booking-progress__line {
    background: #e7dfe8;
    height: 2px;
    margin: 0 7px 24px;
    max-width: 170px;
    position: relative;
    width: 100%;
}

.bc-booking-progress__line::after {
    background: var(--bc-purple);
    content: "";
    inset: 0;
    position: absolute;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s ease;
}

.bc-booking-progress__line.is-complete::after {
    transform: scaleX(1);
}

.bc-visually-hidden-select {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    height: 1px !important;
    margin: -1px !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    white-space: nowrap !important;
    width: 1px !important;
}

.bc-choice-cards {
    display: grid;
    gap: 12px;
    margin-top: 6px;
}

.bc-date-cards {
    grid-template-columns: repeat(4, minmax(92px, 1fr));
}

.bc-time-cards {
    grid-template-columns: repeat(4, minmax(100px, 1fr));
}

.bc-choice-card {
    appearance: none;
    background: #fff;
    border: 1px solid var(--bc-line);
    border-radius: 18px;
    color: var(--bc-ink);
    cursor: pointer;
    min-height: 94px;
    padding: 15px 12px;
    position: relative;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.bc-choice-card:hover:not(:disabled) {
    border-color: rgba(103,68,111,.55);
    box-shadow: 0 12px 28px rgba(70,48,74,.10);
    transform: translateY(-2px);
}

.bc-choice-card.is-selected {
    background: linear-gradient(145deg, #72507a, #5b3c63);
    border-color: var(--bc-purple);
    color: #fff;
    box-shadow: 0 14px 30px rgba(103,68,111,.24);
}

.bc-choice-card.is-disabled,
.bc-choice-card:disabled {
    background: #f3f0f3;
    border-color: #ece7ed;
    color: #aaa3ab;
    cursor: not-allowed;
    opacity: .78;
}

.bc-choice-card__eyebrow,
.bc-choice-card__sub {
    display: block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.bc-choice-card__main {
    display: block;
    font-size: 30px;
    font-weight: 500;
    line-height: 1.05;
    margin: 5px 0;
}

.bc-choice-card__time {
    font-size: 17px;
    font-weight: 600;
}

.bc-choice-card__tick {
    display: none;
    font-size: 13px;
    margin-left: 7px;
}

.bc-choice-card.is-selected .bc-choice-card__tick {
    display: inline;
}

.bc-booking-summary {
    background: linear-gradient(145deg, #fbf8fb, #fff);
    border: 1px solid #e4d9e6;
    border-radius: 22px;
    box-shadow: 0 18px 42px rgba(67,45,71,.08);
    margin: 28px 0 12px;
    padding: 24px;
}

.bc-booking-summary__heading {
    align-items: center;
    display: flex;
    gap: 14px;
    margin-bottom: 18px;
}

.bc-booking-summary__heading small {
    color: var(--bc-muted);
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.bc-booking-summary__heading h3 {
    color: var(--bc-purple-dark);
    font-size: 24px;
    margin: 1px 0 0;
}

.bc-booking-summary__icon {
    align-items: center;
    background: var(--bc-purple);
    border-radius: 50%;
    color: #fff;
    display: flex;
    flex: 0 0 40px;
    height: 40px;
    justify-content: center;
}

.bc-booking-summary dl {
    margin: 0;
}

.bc-booking-summary__row {
    align-items: baseline;
    border-top: 1px solid #eee8ef;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(110px, .7fr) 1.3fr;
    padding: 12px 0;
}

.bc-booking-summary dt {
    color: var(--bc-muted);
    font-size: 14px;
}

.bc-booking-summary dd {
    color: var(--bc-ink);
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    text-align: right;
}

.bc-booking-summary__note {
    color: var(--bc-muted);
    font-size: 13px;
    line-height: 1.55;
    margin: 16px 0 0;
}

.gform_wrapper.bodycurve-form .gform_next_button,
.gform_wrapper.bodycurve-form .gform_previous_button,
.bodycurve-form .gform_next_button,
.bodycurve-form .gform_previous_button {
    border-radius: 18px !important;
    min-height: 58px !important;
    padding: 0 32px !important;
}

.gform_wrapper.bodycurve-form .gform_previous_button,
.bodycurve-form .gform_previous_button {
    background: transparent !important;
    border: 1px solid #d9cedb !important;
    color: var(--bc-purple-dark) !important;
    box-shadow: none !important;
}

@media (max-width: 760px) {
    .bc-date-cards,
    .bc-time-cards {
        display: flex;
        overflow-x: auto;
        padding: 4px 3px 12px;
        scroll-snap-type: x mandatory;
    }

    .bc-choice-card {
        flex: 0 0 112px;
        scroll-snap-align: start;
    }

    .gform_wrapper.bodycurve-form .gform-body,
    .bodycurve-form .gform-body {
        border-radius: 22px;
        padding: 24px 18px;
    }

    .bc-booking-summary__row {
        display: block;
    }

    .bc-booking-summary dd {
        margin-top: 3px;
        text-align: left;
    }
}


/* ===== BodyCurve Layout Refinement v3.0.1 ===== */

/* Remove the large white card around the whole form */
.gform_wrapper.bodycurve-form .gform-body,
.bodycurve-form .gform-body {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    backdrop-filter: none !important;
}

/* Bring ordinary fields back to a more balanced height */
.gform_wrapper.bodycurve-form input[type=text],
.gform_wrapper.bodycurve-form input[type=email],
.gform_wrapper.bodycurve-form input[type=tel],
.gform_wrapper.bodycurve-form input[type=number],
.gform_wrapper.bodycurve-form input[type=url],
.gform_wrapper.bodycurve-form select,
.gform_wrapper.bodycurve-form textarea,
.bodycurve-form input[type=text],
.bodycurve-form input[type=email],
.bodycurve-form input[type=tel],
.bodycurve-form input[type=number],
.bodycurve-form input[type=url],
.bodycurve-form select,
.bodycurve-form textarea {
    min-height: 72px !important;
    border-radius: 14px 14px 6px 6px !important;
    padding: 20px 22px !important;
    font-size: 18px !important;
}

.gform_wrapper.bodycurve-form textarea,
.bodycurve-form textarea {
    min-height: 145px !important;
}

/* Date and time selectors */
.bc-choice-cards {
    align-items: stretch;
    gap: 10px !important;
    margin-top: 8px;
}

.bc-date-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.bc-time-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.bc-choice-card {
    background: #faf8fb !important;
    border: 1px solid #ded3e0 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    color: #4e3d52 !important;
    min-height: 62px !important;
    padding: 10px 12px !important;
    transform: none !important;
}

.bc-choice-card:hover:not(:disabled) {
    background: #f6f0f7 !important;
    border-color: #8a6a91 !important;
    box-shadow: 0 6px 16px rgba(75, 53, 80, 0.08) !important;
    transform: translateY(-1px) !important;
}

.bc-choice-card.is-selected {
    background: #67446f !important;
    border-color: #67446f !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(103, 68, 111, 0.18) !important;
}

.bc-choice-card.is-disabled,
.bc-choice-card:disabled {
    background: #f1eef2 !important;
    border-color: #e5dfe6 !important;
    color: #a69ea8 !important;
    opacity: 1 !important;
}

.bc-choice-card__eyebrow,
.bc-choice-card__sub {
    font-size: 11px !important;
    letter-spacing: .04em !important;
}

.bc-choice-card__main {
    font-size: 24px !important;
    margin: 2px 0 !important;
}

.bc-choice-card__time {
    font-size: 15px !important;
    font-weight: 600 !important;
}

.bc-choice-card__tick {
    font-size: 12px !important;
    margin-left: 5px !important;
}

/* Keep date/time labels compact and aligned */
.gform_wrapper.bodycurve-form .gfield_label,
.bodycurve-form .gfield_label {
    margin-bottom: 8px !important;
}

.gform_wrapper.bodycurve-form .gfield--type-select,
.bodycurve-form .gfield--type-select {
    align-self: start;
}

/* Improve the appointment summary card */
.bc-booking-summary {
    background: #fff !important;
    border: 1px solid #e5dce7 !important;
    border-radius: 20px !important;
    box-shadow: 0 16px 38px rgba(62, 43, 66, 0.09) !important;
    margin: 34px 0 18px !important;
    overflow: hidden;
    padding: 0 !important;
}

.bc-booking-summary__heading {
    background: linear-gradient(135deg, #6b4873, #5a3c62);
    color: #fff;
    gap: 12px !important;
    margin: 0 !important;
    padding: 20px 22px !important;
}

.bc-booking-summary__heading small,
.bc-booking-summary__heading h3 {
    color: #fff !important;
}

.bc-booking-summary__heading h3 {
    font-size: 22px !important;
}

.bc-booking-summary__icon {
    background: rgba(255,255,255,.16) !important;
    border: 1px solid rgba(255,255,255,.25);
    height: 38px !important;
    width: 38px !important;
}

.bc-booking-summary dl {
    padding: 6px 22px 0 !important;
}

.bc-booking-summary__row {
    border-top: 1px solid #eee8ef !important;
    padding: 14px 0 !important;
}

.bc-booking-summary__row:first-child {
    border-top: 0 !important;
}

.bc-booking-summary dt {
    color: #7d7280 !important;
    font-size: 13px !important;
    font-weight: 600;
}

.bc-booking-summary dd {
    color: #3f3043 !important;
    font-size: 16px !important;
}

.bc-booking-summary__note {
    background: #faf8fb;
    border-top: 1px solid #eee8ef;
    color: #746a76 !important;
    margin: 4px 0 0 !important;
    padding: 15px 22px 17px !important;
}

/* Better responsive behaviour for cards */
@media (max-width: 980px) {
    .bc-date-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .bc-time-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .gform_wrapper.bodycurve-form input[type=text],
    .gform_wrapper.bodycurve-form input[type=email],
    .gform_wrapper.bodycurve-form input[type=tel],
    .gform_wrapper.bodycurve-form input[type=number],
    .gform_wrapper.bodycurve-form input[type=url],
    .gform_wrapper.bodycurve-form select,
    .gform_wrapper.bodycurve-form textarea,
    .bodycurve-form input[type=text],
    .bodycurve-form input[type=email],
    .bodycurve-form input[type=tel],
    .bodycurve-form input[type=number],
    .bodycurve-form input[type=url],
    .bodycurve-form select,
    .bodycurve-form textarea {
        min-height: 64px !important;
        padding: 17px 18px !important;
        font-size: 17px !important;
    }

    .bc-date-cards,
    .bc-time-cards {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        overflow: visible !important;
        padding: 0 !important;
    }

    .bc-choice-card {
        min-height: 58px !important;
        width: auto !important;
        flex: initial !important;
    }

    .bc-booking-summary__row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 4px !important;
    }

    .bc-booking-summary dd {
        text-align: left !important;
    }
}


/* ===== BodyCurve Card & Summary Correction v3.0.2 ===== */

/* Ensure appointment cards never touch, regardless of theme button styles */
.bc-choice-cards {
    display: grid !important;
    column-gap: 12px !important;
    row-gap: 12px !important;
    width: 100% !important;
}

.bc-date-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.bc-time-cards {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.bc-choice-card,
button.bc-choice-card {
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    margin: 0 !important;
    min-width: 0 !important;
    width: 100% !important;
    min-height: 58px !important;
    padding: 11px 12px !important;
    line-height: 1.25 !important;
    text-align: center !important;
}

/* Dates use one balanced type scale rather than an oversized day number */
.bc-date-cards .bc-choice-card {
    flex-direction: row !important;
    flex-wrap: wrap !important;
}

.bc-choice-card__eyebrow,
.bc-choice-card__main,
.bc-choice-card__sub {
    display: inline !important;
    margin: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.bc-choice-card__main {
    font-size: 16px !important;
}

.bc-choice-card__sub {
    color: inherit !important;
    opacity: .82;
}

.bc-choice-card__time {
    font-size: 15px !important;
    line-height: 1.25 !important;
}

/* Simpler, fully readable consultation summary */
.bc-booking-summary {
    background: #fff !important;
    border: 1px solid #e2d8e4 !important;
    border-radius: 18px !important;
    box-shadow: 0 14px 34px rgba(62, 43, 66, 0.08) !important;
    overflow: hidden !important;
}

.bc-booking-summary__heading {
    background: #fff !important;
    border-bottom: 1px solid #eee7ef !important;
    color: #513557 !important;
    display: block !important;
    margin: 0 !important;
    padding: 20px 22px 16px !important;
}

.bc-booking-summary__heading h3 {
    color: #513557 !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
}

.bc-booking-summary__icon,
.bc-booking-summary__heading small {
    display: none !important;
}

.bc-booking-summary dl {
    background: #fff !important;
    padding: 4px 22px 0 !important;
}

.bc-booking-summary__row {
    background: #fff !important;
    grid-template-columns: minmax(130px, .8fr) 1.2fr !important;
}

.bc-booking-summary dt {
    color: #776d79 !important;
}

.bc-booking-summary dd {
    color: #392c3d !important;
}

.bc-booking-summary__note {
    background: #faf8fb !important;
    color: #6f6571 !important;
}

/* Keep the layout tidy on narrower screens */
@media (max-width: 980px) {
    .bc-date-cards,
    .bc-time-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .bc-date-cards,
    .bc-time-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 10px !important;
        row-gap: 10px !important;
    }

    .bc-choice-card,
    button.bc-choice-card {
        min-height: 56px !important;
        padding: 10px !important;
    }

    .bc-choice-card__eyebrow,
    .bc-choice-card__main,
    .bc-choice-card__sub,
    .bc-choice-card__time {
        font-size: 14px !important;
    }
}


/* ===== BodyCurve Typography Alignment v3.0.3 ===== */

/* Always inherit the site's active font family */
.gform_wrapper.bodycurve-form,
.gform_wrapper.bodycurve-form *,
.bodycurve-form,
.bodycurve-form * {
    font-family: inherit !important;
}

/* Lighter, more editorial typography */
.gform_wrapper.bodycurve-form .gsection_title,
.bodycurve-form .gsection_title {
    font-weight: 500 !important;
    letter-spacing: -0.02em !important;
}

.gform_wrapper.bodycurve-form .gfield_label,
.gform_wrapper.bodycurve-form .gform-field-label,
.bodycurve-form .gfield_label,
.bodycurve-form .gform-field-label {
    font-weight: 500 !important;
    letter-spacing: -0.01em !important;
}

.gform_wrapper.bodycurve-form input,
.gform_wrapper.bodycurve-form select,
.gform_wrapper.bodycurve-form textarea,
.bodycurve-form input,
.bodycurve-form select,
.bodycurve-form textarea {
    font-weight: 400 !important;
}

.bc-choice-card {
    font-weight: 500 !important;
}

/* Cleaner two-line date cards */
.bc-date-cards .bc-choice-card {
    align-content: center !important;
    display: grid !important;
    gap: 3px !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    min-height: 66px !important;
}

.bc-choice-card__eyebrow {
    color: inherit !important;
    display: block !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: .08em !important;
    line-height: 1.15 !important;
    text-transform: uppercase !important;
}

.bc-choice-card__date {
    color: inherit !important;
    display: block !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: .02em !important;
    line-height: 1.2 !important;
    text-transform: uppercase !important;
}

.bc-choice-card__availability {
    color: inherit !important;
    display: block !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.1 !important;
    opacity: .72;
}

.bc-choice-card__main,
.bc-choice-card__sub,
.bc-choice-card__tick {
    display: none !important;
}

/* Simpler time cards: no tick, no leading zero, lowercase am/pm */
.bc-time-cards .bc-choice-card {
    min-height: 58px !important;
}

.bc-choice-card__time {
    color: inherit !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
}

/* Selected state alone communicates the active choice */
.bc-choice-card.is-selected {
    background: #67446f !important;
    border-color: #67446f !important;
    color: #fff !important;
}

/* Summary typography softened to match the site */
.bc-booking-summary__heading h3 {
    font-weight: 500 !important;
    letter-spacing: -0.015em !important;
}

.bc-booking-summary dt {
    font-weight: 400 !important;
}

.bc-booking-summary dd {
    font-weight: 500 !important;
}

.bc-booking-summary__note {
    font-weight: 400 !important;
}

@media (max-width: 640px) {
    .bc-choice-card__date,
    .bc-choice-card__time {
        font-size: 14px !important;
    }
}


/* ===== BodyCurve Appointment Slot Refinement v3.0.4 ===== */

/* Always present the eight-date range as a balanced 4 x 2 grid */
.bc-date-cards {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 14px !important;
    row-gap: 14px !important;
}

.bc-time-cards {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    column-gap: 12px !important;
    row-gap: 12px !important;
}

/* Quieter, more premium appointment-slot treatment */
.bc-choice-card,
button.bc-choice-card {
    background: rgba(255,255,255,.74) !important;
    border: 1px solid rgba(103,68,111,.18) !important;
    border-radius: 14px !important;
    box-shadow: 0 4px 12px rgba(70,48,74,.035) !important;
    color: #4b3a4f !important;
    min-height: 64px !important;
    padding: 12px 14px !important;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease !important;
}

.bc-choice-card:hover:not(:disabled) {
    background: #fff !important;
    border-color: rgba(103,68,111,.42) !important;
    box-shadow: 0 9px 22px rgba(70,48,74,.08) !important;
    transform: translateY(-2px) !important;
}

.bc-choice-card.is-selected {
    background: #67446f !important;
    border-color: #67446f !important;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(103,68,111,.22) !important;
    transform: translateY(-1px) !important;
}

/* Closed days stay visible but recede clearly */
.bc-choice-card.is-disabled,
.bc-choice-card:disabled {
    background: #f3f0f3 !important;
    border-color: #e7e1e8 !important;
    box-shadow: none !important;
    color: #aaa2ac !important;
    cursor: not-allowed !important;
    opacity: .72 !important;
    transform: none !important;
}

/* Date typography remains restrained and evenly balanced */
.bc-date-cards .bc-choice-card {
    min-height: 72px !important;
}

.bc-choice-card__eyebrow {
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: .09em !important;
    opacity: .8;
}

.bc-choice-card__date {
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: .015em !important;
}

.bc-choice-card__availability {
    font-size: 10px !important;
    font-weight: 500 !important;
    opacity: .7;
}

/* Time slots are compact and consistent */
.bc-time-cards .bc-choice-card {
    min-height: 56px !important;
}

.bc-choice-card__time {
    font-size: 15px !important;
    font-weight: 500 !important;
}

/* Preserve the four-column desktop rhythm at common page widths */
@media (max-width: 860px) and (min-width: 641px) {
    .bc-date-cards,
    .bc-time-cards {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    .bc-date-cards,
    .bc-time-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 10px !important;
        row-gap: 10px !important;
    }

    .bc-date-cards .bc-choice-card {
        min-height: 66px !important;
    }

    .bc-time-cards .bc-choice-card {
        min-height: 54px !important;
    }
}


/* ===== BodyCurve selection-state fix v3.1.0 ===== */

/* Keep selected date/time text readable during mouse, keyboard and theme
   button-state transitions. */
.bc-choice-card.is-selected,
.bc-choice-card.is-selected:hover,
.bc-choice-card.is-selected:focus,
.bc-choice-card.is-selected:focus-visible,
.bc-choice-card.is-selected:active,
button.bc-choice-card.is-selected,
button.bc-choice-card.is-selected:hover,
button.bc-choice-card.is-selected:focus,
button.bc-choice-card.is-selected:focus-visible,
button.bc-choice-card.is-selected:active {
    background: #67446f !important;
    border-color: #67446f !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.bc-choice-card.is-selected *,
button.bc-choice-card.is-selected * {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Prevent the site's generic button focus/active styles creating a white
   intermediate state while the appointment choice is applied. */
.bc-choice-card:focus,
.bc-choice-card:focus-visible,
.bc-choice-card:active {
    outline: none !important;
}

.bc-choice-card.is-selected:focus-visible {
    box-shadow:
        0 10px 24px rgba(103,68,111,.22),
        0 0 0 3px rgba(103,68,111,.18) !important;
}


/* ===== BodyCurve polish v3.1.4 ===== */

/* Give the callback summary a little more breathing room without making it
   feel like a separate oversized panel. */
.bc-booking-summary,
.bodycurve-booking-summary,
.bc-summary-card {
    margin-top: 24px !important;
    margin-bottom: 24px !important;
    padding: 24px 26px !important;
}

@media (max-width: 640px) {
    .bc-booking-summary,
    .bodycurve-booking-summary,
    .bc-summary-card {
        margin-top: 20px !important;
        margin-bottom: 20px !important;
        padding: 20px !important;
    }
}

/* Softer, more premium interaction on appointment cards. */
.bc-choice-card {
    transition:
        background-color .18s ease,
        border-color .18s ease,
        color .18s ease,
        box-shadow .18s ease,
        transform .18s ease !important;
    will-change: transform;
}

.bc-choice-card:not(:disabled):not(.is-disabled):hover {
    transform: translateY(-1px) !important;
}

.bc-choice-card:not(:disabled):not(.is-disabled):active {
    transform: translateY(0) scale(.995) !important;
}

.bc-choice-card.is-selected {
    transform: translateY(-1px) !important;
}

@media (prefers-reduced-motion: reduce) {
    .bc-choice-card {
        transition: none !important;
    }

    .bc-choice-card,
    .bc-choice-card:hover,
    .bc-choice-card:active,
    .bc-choice-card.is-selected {
        transform: none !important;
    }
}

/* Gentle transition between Gravity Forms pages. */
.bodycurve-form .gform_page,
.bodycurve-form .gform_page_fields,
.bodycurve-form .gform-page,
.bodycurve-form .gform-page__content {
    animation: bcStepFadeIn .24s ease both;
}

@keyframes bcStepFadeIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .bodycurve-form .gform_page,
    .bodycurve-form .gform_page_fields,
    .bodycurve-form .gform-page,
    .bodycurve-form .gform-page__content {
        animation: none !important;
    }
}
