/* Shared interaction states on visitor, appointment and reading pages. */
:where(.hh-public,.hh-transaction,.hh-guest-chat,.hh-journal) {
    --hh-action:#704274; --hh-edge:#d9cbdc; --hh-paper:#faf6fa; --hh-text:#403344;
}
:where(.hh-public,.hh-transaction,.hh-guest-chat,.hh-journal) :is(a,button,input,select,textarea,summary):focus-visible {
    outline:3px solid #84568b; outline-offset:2px;
}
:where(.hh-public,.hh-transaction,.hh-guest-chat) :is(input[type=checkbox],input[type=radio]) {accent-color:var(--hh-action);}
.hh-public :is(#success,#reserve_success,#error) {box-sizing:border-box;max-width:720px;margin:clamp(18px,4vw,48px) auto;padding:clamp(16px,4vw,36px);border:1px solid var(--hh-edge);border-radius:14px;background:white;color:var(--hh-text);}
.hh-public :is(#success,#reserve_success,#error) h2 {font-size:clamp(20px,3vw,28px);line-height:1.5;}
.hh-public :is(#success,#reserve_success,#error) .btn,.hh-public #agreement #submitButtonId,.hh-public #contact .submit_wrap .btn {
    border:1px solid var(--hh-action);border-radius:8px;background:var(--hh-action);color:#fff!important;min-height:44px;max-width:100%;
}
.hh-public #contact .submit_wrap .btn_cancel {background:#fff;color:var(--hh-action)!important;}
.hh-public #counseling :is(input:not([type=hidden],[type=checkbox],[type=radio]),textarea,select),
.hh-public #agreement .write input,.hh-public #contact .formBox :is(input:not([type=hidden],[type=checkbox],[type=radio]),textarea,select) {
    box-sizing:border-box;max-width:100%;border:1px solid #c9b8cd;border-radius:7px;min-height:42px;padding:7px 10px;background:white;color:var(--hh-text);
}
.hh-public #agreement .hh-sign-pad {position:relative;width:min(300px,100%);max-width:100%;}
.hh-public #agreement .hh-sign-pad canvas {display:block;width:100%;height:auto;margin:0;box-sizing:border-box;border:1px solid #bca1c1;border-radius:8px;}
.hh-public #agreement .hh-sign-pad .signature_cover {position:absolute;inset:0;width:100%;height:100%;opacity:1;background:#faf6fb;border:1px dashed #8d6c95;border-radius:8px;color:#54375a;text-align:center;font:inherit;cursor:pointer;}
.hh-guest-chat {background:var(--hh-paper)!important;color:var(--hh-text);}
.hh-guest-chat .card {border:1px solid #e5d9e7;border-radius:12px;overflow:hidden;}
.hh-guest-chat .messages-container {background:#f8f4f8;}
.hh-guest-chat .my-message {background:#eee2f0!important;color:#472c4c;}
.hh-guest-chat .btn-primary,.hh-transaction button:not(:disabled) {background:var(--hh-action);border-color:var(--hh-action);color:#fff;border-radius:8px;min-height:42px;}
.hh-guest-chat .message-time {color:#655869;}
.hh-transaction main {box-sizing:border-box;max-width:720px;margin-inline:auto;}
.hh-transaction input,.hh-transaction textarea {min-width:0;}
.hh-journal main :is(button,summary) {touch-action:manipulation;}
.hh-journal main table {max-width:100%;}
@media(max-width:650px) {
    .hh-public #agreement .agreement_inner {width:100%;box-sizing:border-box;}
    .hh-public #counseling input:not([type=checkbox],[type=radio]),.hh-public #agreement .write input,.hh-transaction input:not([type=checkbox]) {font-size:16px;}
    .hh-guest-chat .message-box {max-width:86%;}
    .hh-transaction main {padding:14px;}
}
/* Partner registration and its linked policy documents. */
.hh-partner-doc {margin:0;color:#403344;background:#fcfafc;font:400 16px/1.8 system-ui,sans-serif;}
.hh-partner-doc * {box-sizing:border-box;}
.hh-partner-doc a {color:#6a3c71;text-underline-offset:3px;}
.hh-partner-doc #subhead {background:#fff;border-bottom:1px solid #e7dce8;}
.hh-partner-doc .l-inner,.hh-partner-doc footer {max-width:960px;margin:auto;padding:14px clamp(16px,4vw,32px);}
.hh-partner-doc .l-inner img {display:block;width:110px;height:auto;}
.hh-partner-doc #terms,.hh-partner-doc #register {width:min(92%,860px);margin:clamp(20px,4vw,50px) auto;background:#fff;border:1px solid #e3d8e5;border-radius:16px;padding:clamp(16px,3vw,32px);}
.hh-partner-doc #register {max-width:600px;}
.hh-partner-doc #terms>ul,.hh-partner-doc nav ul {margin:0;padding:0;list-style:none;}
.hh-partner-doc #terms li+li {padding-top:15px;margin-top:18px;border-top:1px solid #ede5ee;}
.hh-partner-doc h1,.hh-partner-doc h2 {margin:0 0 9px;line-height:1.5;color:#433146;}
.hh-partner-doc h1,.hh-partner-doc #terms li:first-child h2 {font-size:clamp(24px,4vw,32px);}
.hh-partner-doc h2 {font-size:19px;}
.hh-partner-doc p {margin:10px 0;overflow-wrap:anywhere;}
.hh-partner-doc #register form {display:grid;gap:5px;margin:16px 0;}
.hh-partner-doc #register label {font-weight:650;margin-top:8px;}
.hh-partner-doc #register input:not([type=hidden]) {width:100%;min-height:44px;border:1px solid #c6b6ca;border-radius:8px;padding:8px 12px;font:inherit;}
.hh-partner-doc #register input[type=submit] {margin-top:15px;background:#704274;color:white;border-color:#704274;font-weight:650;cursor:pointer;}
.hh-partner-doc nav ul {display:flex;flex-wrap:wrap;gap:10px 18px;}
.hh-partner-doc footer {color:#655a68;font-size:14px;}
.hh-partner-doc :focus-visible {outline:3px solid #84568b;outline-offset:2px;}
.hh-public main.hh-intake-result {margin:clamp(100px,12vw,150px) auto 32px!important;border:1px solid var(--hh-edge);border-radius:12px;background:white;}
.hh-public .hh-intake-result h1 {font-size:clamp(22px,3vw,28px);line-height:1.5;}
.hh-public #contact .contactTitle {height:auto;min-height:0;box-sizing:border-box;margin:0 0 15px;padding:14px 18px;background:#f6eff7;border-radius:12px;}
.hh-public #contact .contactTitle :is(h1,h2,p) {position:static;float:none;transform:none;width:auto;height:auto;margin:0;color:#47314c;line-height:1.65;text-align:left;}
.hh-public #contact .contactTitle :is(h1,h2) {font-size:clamp(20px,3vw,26px);font-weight:700;}
.hh-public #contact .contactTitle p {margin-top:6px;font-size:15px;}
.hh-public #contact .contactTitle a {color:#68406f;text-decoration:underline;}
@media(max-width:650px) {
    .hh-public #contact #reserve-form .formBox>.flex,.hh-public #contact .formBox>.flex {display:block;box-sizing:border-box;}
    .hh-public #contact .formBox>.flex>.itemA,.hh-public #contact #reserve-form .formBox>.flex>.itemA,
    .hh-public #contact .formBox>.flex>.itemB,.hh-public #contact #reserve-form .formBox>.flex>.itemB {width:100%;min-width:0;box-sizing:border-box;padding:8px 12px;}
    .hh-public #contact .formBox>.flex>.itemA {background:#faf7fa;}
    .hh-public #contact .formBox .itemB>input,.hh-public #contact .formBox .itemB>select {width:100%;}
    .hh-public main.hh-intake-result {width:94%;margin-top:82px!important;}
}
