/* WOSL professional referral popout; all styles scoped to new components. */
.referral-tab{position:fixed;right:0;top:43%;z-index:34;writing-mode:vertical-rl;transform:rotate(180deg);background:#375d55;color:#fffefa;border:0;border-radius:0 4px 4px 0;padding:18px 11px;min-width:44px;font-size:16px;line-height:1.35;box-shadow:0 3px 16px #203c3326}
#referral-dialog{position:fixed;inset:0 12px 0 auto;margin:auto 0;width:min(460px,calc(100vw - 24px));height:auto;max-height:min(700px,calc(100dvh - 32px));padding:0;border:1px solid var(--line);border-radius:4px;background:var(--cream);color:var(--ink);overflow:hidden;box-shadow:0 16px 60px #183c3340}
#referral-dialog[open]{display:flex;flex-direction:column}#referral-dialog::backdrop{background:#203c334d}
.referral-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px 20px;background:var(--white);border-bottom:1px solid var(--line);flex-shrink:0}
.referral-head .eyebrow{margin-bottom:8px;font-size:12px;letter-spacing:.08em}.referral-head h2{font-size:30px;line-height:1.15;margin:0;letter-spacing:-.035em}.referral-head button{flex-shrink:0;min-height:44px;font-size:15px;padding:9px 12px}
.referral-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:14px 20px 18px;font-size:17px;line-height:1.6}.referral-body p{margin-bottom:12px}.referral-body[data-step]:not([data-step="1"]) .referral-promise{display:none}
.referral-promise{background:#e3ebdf;border-left:3px solid #375d55;padding:10px 12px;margin-bottom:10px}.referral-promise strong{display:block;font-size:17px;line-height:1.35}.referral-promise>p{font-size:13px;line-height:1.5;margin:5px 0 0}
.referral-hours{border:0;padding:0;margin:0}.referral-hours summary{font-size:13px;padding:4px 0;cursor:pointer;font-weight:600}.referral-hours p{margin:4px 0;font-size:13px;line-height:1.5}
.referral-preview{font-size:12px;padding:6px 9px;border:1px solid #d1c4ae;background:#f4ecdd;margin-bottom:10px!important}.referral-progress{font-size:13px;font-weight:700;color:var(--muted);margin-bottom:6px!important}
#referral-form{padding:0;margin:0;border:0;border-radius:0;box-shadow:none;background:none}#referral-form h3{font-size:25px;letter-spacing:-.025em;line-height:1.25;margin:8px 0 12px}#referral-form [data-referral-step][hidden],#referral-form button[hidden]{display:none}
#referral-form label{display:block;margin:14px 0 7px;font-size:16px;font-weight:600}#referral-form label span{font-size:14px;font-weight:400}
#referral-form input:not([type=checkbox]):not([type=radio]),#referral-form select,#referral-form textarea{display:block;width:100%;min-width:0;min-height:48px;border:1px solid #aebcad;background:var(--white);padding:11px 12px;color:var(--ink);border-radius:3px;font-size:16px;line-height:1.45}#referral-form select{appearance:auto}#referral-form textarea{resize:vertical}
#referral-form .referral-roles{border:0;padding:0;margin:0 0 8px}#referral-form .referral-roles label{display:flex;align-items:center;gap:12px;background:var(--white);border:1px solid #b6c5b6;padding:10px 12px;margin:7px 0;min-height:48px;cursor:pointer}#referral-form .referral-roles label:first-of-type{margin-top:0}#referral-form .referral-roles label:has(input:checked){outline:2px solid #375d55;background:#e3ebdf}#referral-form .referral-roles label:has(input:focus-visible){outline:3px solid #526a70;outline-offset:3px}#referral-form .referral-roles input{appearance:auto;display:block;flex:0 0 19px;width:19px;height:19px;min-height:0;padding:0;margin:0;accent-color:#375d55}#referral-form .referral-roles span{font-size:16px;font-weight:600;line-height:1.3}#referral-form .referral-roles small{display:block;font-size:12px;font-weight:400;margin-top:4px}
.referral-help{font-size:14px;margin:14px 0;line-height:1.55}.referral-help a{font-weight:700}#referral-form .referral-consent{display:flex;align-items:flex-start;gap:12px;font-weight:400;margin:20px 0}#referral-form .referral-consent input{flex:0 0 22px;width:22px;height:22px;margin:3px 0;accent-color:#375d55}#referral-form .referral-consent span{font-size:15px}
#referral-status{margin:14px 0;font-size:16px}#referral-status:empty{display:none}#referral-status.is-success{background:#e3ebdf;padding:16px;border:1px solid #a2b59a}
.referral-step-actions{display:flex;justify-content:space-between;gap:12px;position:sticky;bottom:-18px;background:var(--cream);padding:10px 0 4px;border-top:1px solid var(--line)}.referral-step-actions button{min-height:46px}.referral-step-actions .button{margin-left:auto;min-width:120px}
#referral-form .sr-only{position:absolute!important;width:1px;height:1px;padding:0!important;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0!important}
@media(max-width:600px){.referral-tab{font-size:14px;min-width:44px;padding:13px 12px;top:41%}#referral-dialog{inset:0 8px 0 auto;width:calc(100vw - 16px);max-height:calc(100dvh - 20px)}.referral-head{padding:13px 15px;gap:10px}.referral-head h2{font-size:27px}.referral-head .eyebrow{font-size:11px;max-width:170px}.referral-head button{font-size:14px;padding:9px}.referral-body{padding:15px}.referral-step-actions{bottom:-15px}}
@media(max-height:500px){.referral-tab{top:38%;font-size:13px;padding:10px}#referral-dialog{max-height:calc(100dvh - 16px)}.referral-head{padding:10px 16px}.referral-head h2{font-size:24px}.referral-head .eyebrow{display:none}}

/* Reserve reading room beside the fixed referral tab on narrow phones. */
@media(max-width:600px){.hero-copy{padding-right:40px}}

/* Grow the green edge itself: no exposed strip between tab and viewport. */
.referral-tab{--referral-pad:11px;padding-left:var(--referral-pad);transition:padding-left 300ms ease,min-width 300ms ease;background:#375d55;color:#fffefa}
.referral-tab.referral-expanded{min-width:79px;padding-left:calc(var(--referral-pad) + 35px);background:#375d55;color:#fffefa}
@keyframes referral-soft-nudge{
  0%,100%{min-width:44px;padding-left:var(--referral-pad)}
  8.333333%,91.666667%{min-width:79px;padding-left:calc(var(--referral-pad) + 35px)}
}
.referral-tab.referral-nudge{animation:referral-soft-nudge 3600ms ease-in-out 1}
@media(max-width:600px){.referral-tab{--referral-pad:12px}}
@media(max-height:500px){.referral-tab{--referral-pad:10px}}
@media(prefers-reduced-motion:reduce){.referral-tab{transition:none}.referral-tab.referral-nudge{animation:none}}

.referral-widget{position:fixed;right:0;top:43%;z-index:34}
.referral-widget .referral-tab{position:relative;right:auto;top:auto}
.referral-widget #referral-dismiss{top:-24px;right:6px}
.referral-widget:not(:has(.referral-nudge,.referral-expanded)) #referral-dismiss{display:none}
@media(max-width:600px){.referral-widget{top:41%}}
@media(max-height:500px){.referral-widget{top:38%}}
.referral-widget .referral-tab{z-index:1}

@media(max-width:900px){
 .referral-tab,.referral-head .eyebrow,.referral-promise>p,.referral-hours summary,.referral-hours p,.referral-preview,.referral-progress,
 #referral-form label span,#referral-form .referral-roles small,#referral-form .referral-consent span,.referral-help{font-size:16px;line-height:1.5}
 .referral-head .eyebrow{max-width:none;letter-spacing:.06em}
}

#referral-form[data-sent=true] [data-referral-step],#referral-form[data-sent=true] .referral-progress,#referral-form[data-sent=true] .referral-step-actions{display:none}
