/* TCC V34 - consultation, footer and landing annotation refinements */
.feature-clinical-note {
    margin: -2px 0 22px;
    color: #6e5a76;
    font-size: .86rem;
    line-height: 1.5;
}
.feature-clinical-note strong { color: #421563; }

.care-needs-fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.care-needs-fieldset legend { width: 100%; margin: 0 0 9px; color: #4c4052; font-weight: 700; font-size: .78rem; }
.care-needs-fieldset legend small { margin-left: 6px; color: #8a7c90; font-weight: 500; }
.care-needs-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.contact-card .care-need-option { position: relative; display: flex; align-items: center; gap: 9px; min-height: 43px; padding: 10px 11px; border: 1px solid rgba(75,38,91,.12); border-radius: 11px; background: #fcfafd; cursor: pointer; color: #4c4052; font-size: .73rem; font-weight: 650; transition: .18s ease; }
.contact-card .care-need-option:hover { border-color: rgba(82,48,180,.32); background: #fff; }
.contact-card .care-need-option:has(input:checked) { border-color: rgba(82,48,180,.45); background: #f5f0ff; box-shadow: inset 0 0 0 1px rgba(82,48,180,.06); }
.contact-card .care-need-option input { width: 16px; height: 16px; padding: 0; margin: 0; flex: 0 0 auto; accent-color: #552fb3; box-shadow: none; }
.contact-card .care-need-option span { line-height: 1.3; }

.footer-book-button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; margin-top: 5px; padding: 0 16px; border: 1px solid rgba(255,255,255,.34); border-radius: 11px; background: rgba(255,255,255,.12); color: #fff !important; font-weight: 800; text-decoration: none; box-shadow: 0 8px 22px rgba(13,7,50,.16); }
.footer-book-button:hover { background: #fff; color: #3e1f78 !important; transform: translateY(-1px); }
.footer-start p { margin-bottom: 10px; }

.booking-hero { padding: 86px 0 96px; background: radial-gradient(circle at 86% 8%, rgba(76,164,224,.10), transparent 30%), linear-gradient(180deg,#fbf8ff 0%,#fff 78%); }
.booking-hero-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(520px,1.15fr); gap: 68px; align-items: start; }
.booking-copy { position: sticky; top: 118px; padding-top: 28px; }
.booking-copy h1 { max-width: 610px; margin: 12px 0 18px; font: 600 clamp(2.7rem,5vw,4.8rem)/.98 var(--serif); color: var(--brand-deep); letter-spacing: -.035em; }
.booking-copy > p { max-width: 570px; margin: 0; color: var(--muted); font-size: 1.02rem; line-height: 1.75; }
.booking-points { display: grid; gap: 12px; margin-top: 30px; }
.booking-points > span { display: grid; gap: 3px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.78); }
.booking-points strong { color: var(--brand-deep); font-size: .87rem; }
.booking-points small { color: var(--muted); font-size: .77rem; line-height: 1.45; }
.booking-form-wrap .contact-card { box-shadow: 0 22px 70px rgba(48,19,79,.10); }

@media (max-width: 980px) {
    .booking-hero { padding: 55px 0 76px; }
    .booking-hero-grid { grid-template-columns: 1fr; gap: 28px; }
    .booking-copy { position: static; padding-top: 0; }
    .booking-copy h1 { font-size: clamp(2.45rem,9vw,4rem); }
}
@media (max-width: 640px) {
    .care-needs-grid { grid-template-columns: 1fr; }
    .contact-card .care-need-option { min-height: 46px; font-size: .76rem; }
    .booking-hero { padding: 34px 0 70px; }
    .booking-points { margin-top: 22px; }
    .footer-book-button { width: 100%; }
}

/* TCC V35 - compact consultation layout refinement */
.contact-section.section {
    padding-top: 66px;
    padding-bottom: 62px;
}
.contact-grid {
    grid-template-columns: minmax(0,.78fr) minmax(650px,1.22fr);
    gap: 42px;
    align-items: start;
}
.contact-copy {
    padding-top: 26px;
}
.contact-copy h2 {
    max-width: 500px;
    margin-bottom: 14px;
    font-size: clamp(2.65rem,3.8vw,3.8rem);
}
.contact-copy > p {
    max-width: 500px;
    line-height: 1.65;
}
.contact-note {
    margin-top: 22px;
}
.contact-card {
    padding: 24px;
    gap: 12px;
    border-radius: 22px;
}
.contact-card .form-row {
    gap: 10px;
}
.contact-card label {
    gap: 5px;
    font-size: .74rem;
}
.contact-card input,
.contact-card select,
.contact-card textarea {
    padding: 11px 12px;
    border-radius: 11px;
}
.contact-card textarea {
    min-height: 88px;
}
.care-needs-fieldset legend {
    margin-bottom: 7px;
}
.care-needs-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 7px;
}
.contact-card .care-need-option {
    min-height: 38px;
    padding: 8px 9px;
    border-radius: 10px;
    font-size: .70rem;
}
.contact-card .care-need-option input {
    width: 15px;
    height: 15px;
}
.contact-card .form-submit {
    min-height: 48px;
    margin-top: 2px;
}

/* Keep the dedicated booking page compact too, without making it cramped. */
.booking-hero {
    padding-top: 62px;
    padding-bottom: 72px;
}
.booking-hero-grid {
    grid-template-columns: minmax(0,.72fr) minmax(680px,1.28fr);
    gap: 46px;
}
.booking-copy {
    top: 108px;
    padding-top: 18px;
}
.booking-copy h1 {
    font-size: clamp(2.65rem,4.5vw,4.35rem);
}

@media (max-width: 1180px) {
    .contact-grid {
        grid-template-columns: minmax(0,.82fr) minmax(560px,1.18fr);
        gap: 34px;
    }
    .care-needs-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .booking-hero-grid { grid-template-columns: minmax(0,.8fr) minmax(560px,1.2fr); gap: 36px; }
}

@media (max-width: 980px) {
    .contact-section.section { padding-top: 54px; padding-bottom: 54px; }
    .contact-grid { grid-template-columns: 1fr; gap: 26px; }
    .contact-copy { padding-top: 0; max-width: 700px; }
    .contact-copy h2, .contact-copy > p { max-width: 650px; }
    .care-needs-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .booking-hero { padding-top: 48px; padding-bottom: 64px; }
    .booking-hero-grid { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 700px) {
    .contact-card .form-row,
    .contact-card .form-row-contact { grid-template-columns: 1fr; }
    .contact-card { padding: 20px; gap: 11px; }
    .contact-copy h2 { font-size: clamp(2.35rem,11vw,3.15rem); }
}

@media (max-width: 540px) {
    .contact-section.section { padding-top: 40px; padding-bottom: 44px; }
    .care-needs-grid { grid-template-columns: 1fr; }
    .contact-card .care-need-option { min-height: 42px; font-size: .74rem; }
}

/* TCC V37 - restore the clean consultation form, with subtle desktop polish. */
.contact-section.section {
    padding-top: 68px;
    padding-bottom: 66px;
    background: linear-gradient(180deg, #fbf8fd 0%, #ffffff 88%);
}

.contact-grid {
    grid-template-columns: minmax(0, .82fr) minmax(620px, 1.18fr);
    gap: 46px;
    align-items: start;
}

.contact-copy {
    padding-top: 24px;
}

.contact-copy h2 {
    max-width: 510px;
    margin-bottom: 14px;
    font-size: clamp(2.65rem, 3.7vw, 3.75rem);
    line-height: 1.03;
}

.contact-copy > p {
    max-width: 510px;
    line-height: 1.68;
}

/* Number-free, icon-free consultation steps: clean text with subtle separators. */
.consultation-guide {
    margin-top: 26px;
    padding: 19px 21px;
    border-radius: 18px;
    border: 1px solid rgba(70, 28, 142, .10);
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 10px 28px rgba(55, 11, 76, .04);
}

.consultation-guide-title {
    margin-bottom: 11px;
    font-size: .69rem;
    letter-spacing: .14em;
}

.consultation-steps {
    gap: 0;
}

.consultation-step {
    position: relative;
    display: block;
    padding: 0 0 12px;
}

.consultation-step:not(:last-child) {
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(70, 28, 142, .07);
}

.consultation-step:last-child {
    padding-bottom: 0;
}

.consultation-step-number {
    display: none !important;
}

.consultation-step-copy {
    gap: 3px;
}

.consultation-step-copy strong {
    font-size: .86rem;
}

.consultation-step-copy small {
    font-size: .75rem;
    line-height: 1.48;
}

.contact-note {
    margin-top: 18px;
}

/* Restored form: two-column details, rectangular care options, no extra header. */
.contact-card {
    position: relative;
    overflow: hidden;
    padding: 26px;
    gap: 13px;
    border-radius: 22px;
    border: 1px solid rgba(70, 28, 142, .12);
    background: #ffffff;
    box-shadow: 0 18px 52px rgba(48, 19, 79, .08);
}

.contact-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 2px;
    background: linear-gradient(90deg, #552fb3 0%, #45a4da 72%, rgba(69,164,218,0) 100%);
}

.contact-card .form-row {
    gap: 11px;
}

.contact-card label {
    gap: 6px;
    font-size: .74rem;
    color: #46384d;
}

.contact-card input,
.contact-card select,
.contact-card textarea {
    min-height: 44px;
    padding: 11px 12px;
    border: 1px solid rgba(75, 38, 91, .14);
    border-radius: 10px;
    background: #fcfbfd;
}

.contact-card input:hover,
.contact-card select:hover,
.contact-card textarea:hover {
    border-color: rgba(85, 47, 179, .24);
}

.contact-card input:focus,
.contact-card select:focus,
.contact-card textarea:focus {
    border-color: rgba(85, 47, 179, .42);
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(85, 47, 179, .07);
}

.care-needs-fieldset {
    margin-top: 2px;
    padding-top: 12px;
    border-top: 1px solid rgba(70, 28, 142, .07);
}

.care-needs-fieldset legend {
    margin-bottom: 8px;
    color: #3f3150;
    font-size: .75rem;
}

.care-needs-fieldset legend small {
    margin-left: 6px;
    font-size: .68rem;
    color: #8b7e90;
}

.care-needs-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.contact-card .care-need-option {
    min-height: 39px;
    padding: 8px 10px;
    gap: 8px;
    border-radius: 9px;
    border: 1px solid rgba(75, 38, 91, .11);
    background: #fcfbfd;
    color: #4a3e50;
    font-size: .70rem;
    font-weight: 650;
    box-shadow: none;
}

.contact-card .care-need-option:hover {
    transform: none;
    border-color: rgba(85, 47, 179, .28);
    background: #ffffff;
}

.contact-card .care-need-option:has(input:checked) {
    border-color: rgba(85, 47, 179, .36);
    background: #f5f1ff;
    color: #3d2675;
    box-shadow: inset 0 0 0 1px rgba(85, 47, 179, .035);
}

.contact-card .care-need-option input {
    width: 15px;
    height: 15px;
}

.contact-card textarea {
    min-height: 86px;
}

.contact-card .form-submit {
    min-height: 48px;
    margin-top: 2px;
    border-radius: 11px;
    box-shadow: 0 10px 24px rgba(73, 42, 160, .15);
}

/* Dedicated consultation page uses the same restored form proportions. */
.booking-form-wrap .contact-card {
    max-width: 760px;
    margin-left: auto;
}

@media (max-width: 1180px) {
    .contact-grid {
        grid-template-columns: minmax(0, .82fr) minmax(560px, 1.18fr);
        gap: 34px;
    }

    .care-needs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .contact-section.section {
        padding-top: 54px;
        padding-bottom: 56px;
    }

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .contact-copy {
        padding-top: 0;
        max-width: 700px;
    }

    .contact-copy h2,
    .contact-copy > p {
        max-width: 650px;
    }

    .booking-form-wrap .contact-card {
        max-width: none;
        margin-left: 0;
    }
}

@media (max-width: 700px) {
    .contact-card {
        padding: 20px;
        gap: 12px;
        border-radius: 19px;
    }

    .contact-card .form-row,
    .contact-card .form-row-contact {
        grid-template-columns: 1fr;
    }

    .care-needs-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .contact-section.section {
        padding-top: 42px;
        padding-bottom: 48px;
    }

    .contact-copy h2 {
        font-size: clamp(2.25rem, 10.5vw, 3rem);
    }

    .consultation-guide {
        padding: 17px;
    }

    .care-needs-grid {
        grid-template-columns: 1fr;
    }

    .contact-card .care-need-option {
        min-height: 40px;
    }
}

/* TCC V38 - compact multi-select mega dropdown for consultation support needs. */
.contact-card {
    overflow: visible;
}

.care-needs-field {
    position: relative;
    z-index: 20;
    margin-top: 2px;
    padding-top: 12px;
    border-top: 1px solid rgba(70, 28, 142, .07);
}

.care-needs-label {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin-bottom: 7px;
    color: #3f3150;
    font-size: .75rem;
    font-weight: 800;
}

.care-needs-label small {
    color: #8b7e90;
    font-size: .68rem;
    font-weight: 500;
}

.care-needs-multiselect {
    position: relative;
}

.care-needs-trigger {
    width: 100%;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 9px 13px 9px 14px;
    border: 1px solid rgba(75, 38, 91, .14);
    border-radius: 11px;
    background: #fcfbfd;
    color: #30263b;
    text-align: left;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.care-needs-trigger:hover {
    border-color: rgba(85, 47, 179, .26);
    background: #fff;
}

.care-needs-trigger:focus-visible,
.care-needs-multiselect.is-open .care-needs-trigger {
    outline: none;
    border-color: rgba(85, 47, 179, .42);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(85, 47, 179, .07);
}

.care-needs-trigger-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.care-needs-trigger-copy strong {
    overflow: hidden;
    color: #46384d;
    font-size: .77rem;
    font-weight: 750;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.care-needs-trigger-copy small {
    color: #8b7e90;
    font-size: .67rem;
    font-weight: 500;
}

.care-needs-trigger > svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    color: #604aa2;
    transition: transform .18s ease;
}

.care-needs-multiselect.is-open .care-needs-trigger > svg {
    transform: rotate(180deg);
}

.care-needs-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 60;
    overflow: hidden;
    border: 1px solid rgba(70, 28, 142, .13);
    border-radius: 15px;
    background: rgba(255, 255, 255, .99);
    box-shadow: 0 24px 60px rgba(45, 19, 70, .17);
}

.care-needs-menu[hidden] {
    display: none !important;
}

.care-needs-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 14px 11px;
    border-bottom: 1px solid rgba(70, 28, 142, .07);
    background: linear-gradient(180deg, #fcfaff 0%, #fff 100%);
}

.care-needs-menu-head > span {
    display: grid;
    gap: 1px;
}

.care-needs-menu-head strong {
    color: #352341;
    font-size: .79rem;
}

.care-needs-menu-head small {
    color: #8b7e90;
    font-size: .66rem;
}

.care-needs-menu-close {
    width: 31px;
    height: 31px;
    display: grid;
    place-items: center;
    flex: 0 0 31px;
    padding: 0;
    border: 1px solid rgba(70, 28, 142, .09);
    border-radius: 9px;
    background: #fff;
    color: #5c4771;
    cursor: pointer;
}

.care-needs-menu-close:hover {
    background: #f7f3fb;
}

.care-needs-menu-close svg {
    width: 15px;
    height: 15px;
}

.care-needs-menu-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    max-height: 284px;
    overflow-y: auto;
    padding: 10px;
    overscroll-behavior: contain;
}

.care-need-menu-option {
    position: relative;
    min-width: 0;
    min-height: 42px;
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 8px !important;
    padding: 8px 9px;
    border: 1px solid rgba(75, 38, 91, .10);
    border-radius: 9px;
    background: #fcfbfd;
    color: #4a3e50 !important;
    font-size: .69rem !important;
    font-weight: 650 !important;
    line-height: 1.25;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}

.care-need-menu-option:hover {
    border-color: rgba(85, 47, 179, .24);
    background: #fff;
}

.care-need-menu-option:has(input:checked) {
    border-color: rgba(85, 47, 179, .33);
    background: #f5f1ff;
    color: #3d2675 !important;
}

.care-need-menu-option:has(input:focus-visible) {
    outline: 2px solid rgba(85, 47, 179, .24);
    outline-offset: 1px;
}

.care-need-menu-option input {
    position: absolute;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    padding: 0 !important;
    opacity: 0;
    pointer-events: none;
}

.care-need-check {
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
    flex: 0 0 18px;
    border: 1px solid rgba(75, 38, 91, .22);
    border-radius: 5px;
    background: #fff;
    color: transparent;
    transition: background .16s ease, border-color .16s ease, color .16s ease;
}

.care-need-check svg {
    width: 12px;
    height: 12px;
    stroke-width: 2.4;
}

.care-need-menu-option input:checked + .care-need-check {
    border-color: #552fb3;
    background: #552fb3;
    color: #fff;
}

.care-needs-menu-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-top: 1px solid rgba(70, 28, 142, .07);
    background: #fff;
}

.care-needs-clear {
    padding: 8px 4px;
    border: 0;
    background: transparent;
    color: #715f7a;
    font: 700 .68rem/1.2 var(--sans);
    cursor: pointer;
}

.care-needs-clear:hover {
    color: #4f2e9f;
}

.care-needs-done {
    min-height: 36px !important;
    min-width: 92px;
    padding: 8px 16px !important;
    border-radius: 9px !important;
    font-size: .71rem !important;
}

/* The phone note was intentionally removed in V38; keep the left column compact. */
.contact-copy .consultation-guide {
    margin-bottom: 0;
}

@media (max-width: 1180px) {
    .care-needs-menu-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .care-needs-label {
        flex-wrap: wrap;
        row-gap: 2px;
    }

    .care-needs-menu {
        position: static;
        margin-top: 8px;
        box-shadow: 0 14px 34px rgba(45, 19, 70, .11);
    }

    .care-needs-menu-grid {
        grid-template-columns: 1fr;
        max-height: 300px;
    }

    .care-needs-trigger-copy strong {
        white-space: normal;
    }
}

/* TCC V40 — balanced mobile footer navigation.
   Keep Services on the left and Company on the right, while the brand and CTA span both columns. */
@media (max-width: 600px) {
    .site-footer .footer-grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        column-gap: 30px !important;
        row-gap: 26px !important;
        align-items: start !important;
    }

    .site-footer .footer-brand {
        grid-column: 1 / -1 !important;
    }

    /* Services */
    .site-footer .footer-grid > div:nth-child(2) {
        grid-column: 1 !important;
        justify-self: start !important;
        align-items: flex-start !important;
        text-align: left !important;
        min-width: 0;
    }

    /* Company */
    .site-footer .footer-grid > div:nth-child(3) {
        grid-column: 2 !important;
        justify-self: end !important;
        align-items: flex-start !important;
        text-align: left !important;
        width: min(100%, 150px);
        min-width: 0;
    }

    .site-footer .footer-start,
    .site-footer .footer-grid > div:last-child {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 380px) {
    .site-footer .footer-grid {
        column-gap: 18px !important;
    }

    .site-footer .footer-grid > div:nth-child(3) {
        width: min(100%, 132px);
    }
}


/* TCC mobile usability patch — larger consultation tap targets + section jump controls. */
.mobile-page-nav {
    position: fixed;
    left: max(14px, env(safe-area-inset-left));
    bottom: max(16px, env(safe-area-inset-bottom));
    z-index: 1180;
    display: none;
    flex-direction: column;
    gap: 8px;
    padding: 5px;
    border: 1px solid rgba(70, 28, 142, .12);
    border-radius: 18px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 12px 34px rgba(45, 19, 70, .16);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.mobile-page-nav button {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 14px;
    background: #f6f1fb;
    color: #4b268e;
    box-shadow: inset 0 0 0 1px rgba(70, 28, 142, .08);
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: transform .16s ease, background .16s ease, color .16s ease, opacity .16s ease;
}

.mobile-page-nav button:active:not(:disabled) {
    transform: scale(.94);
    background: #ece2f7;
}

.mobile-page-nav button:focus-visible {
    outline: 3px solid rgba(85, 47, 179, .22);
    outline-offset: 2px;
}

.mobile-page-nav button:disabled {
    opacity: .34;
    cursor: default;
}

.mobile-page-nav[hidden] { display: none !important; }

.mobile-page-nav svg {
    width: 21px;
    height: 21px;
    pointer-events: none;
}

@media (max-width: 860px) {
    .mobile-page-nav { display: flex; }

    /* Make the consultation controls comfortable to tap with a thumb. */
    .contact-card input:not([type="checkbox"]):not([type="hidden"]),
    .contact-card select {
        min-height: 50px;
    }

    .contact-card .form-submit {
        min-height: 56px;
        font-size: .88rem;
        touch-action: manipulation;
    }

    .care-needs-trigger {
        min-height: 60px;
        padding: 11px 14px;
        border-radius: 13px;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

    .care-needs-trigger-copy strong {
        font-size: .82rem;
        line-height: 1.35;
    }

    .care-needs-trigger-copy small {
        font-size: .7rem;
        line-height: 1.35;
    }

    .care-needs-menu {
        margin-top: 9px;
        border-radius: 17px;
        box-shadow: 0 14px 34px rgba(45, 19, 70, .12);
    }

    .care-needs-menu-head {
        min-height: 58px;
        padding: 9px 10px 9px 13px;
    }

    .care-needs-menu-head strong { font-size: .82rem; }
    .care-needs-menu-head small { font-size: .69rem; }

    .care-needs-menu-close {
        width: 44px;
        height: 44px;
        flex-basis: 44px;
        border-radius: 12px;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }

    .care-needs-menu-close svg {
        width: 18px;
        height: 18px;
    }

    .care-needs-menu-grid {
        grid-template-columns: 1fr;
        gap: 8px;
        max-height: min(52dvh, 430px);
        padding: 10px;
        -webkit-overflow-scrolling: touch;
        scrollbar-gutter: stable;
    }

    .care-need-menu-option {
        min-height: 54px;
        gap: 11px !important;
        padding: 12px 13px;
        border-radius: 12px;
        font-size: .78rem !important;
        line-height: 1.35;
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
        user-select: none;
        -webkit-user-select: none;
    }

    .care-need-check {
        width: 22px;
        height: 22px;
        flex-basis: 22px;
        border-radius: 6px;
    }

    .care-need-check svg {
        width: 14px;
        height: 14px;
    }

    .care-needs-menu-footer {
        gap: 10px;
        padding: 10px;
    }

    .care-needs-clear {
        min-height: 44px;
        padding: 10px 8px;
        font-size: .72rem;
        touch-action: manipulation;
    }

    .care-needs-done {
        min-width: 108px;
        min-height: 48px !important;
        padding: 10px 18px !important;
        font-size: .76rem !important;
        touch-action: manipulation;
    }
}

@media (max-width: 380px) {
    .mobile-page-nav {
        left: max(10px, env(safe-area-inset-left));
        bottom: max(12px, env(safe-area-inset-bottom));
    }

    .mobile-page-nav button {
        width: 46px;
        height: 46px;
    }
}
