/* Keep the entrance cinematic; route is a clear secondary action below the CTA. */
.location-open{display:flex;align-items:center;gap:9px;min-height:48px;padding:10px 13px;margin-top:-9px;border:2px solid #536b7d;border-radius:5px;background:#f9f3e5;color:#27445b;box-shadow:3px 3px 0 #536b7d;font:700 13px var(--sans);letter-spacing:.01em;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.location-open .location-pin{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#c94349;color:#fffaf0;font:900 18px/1 var(--sans)}
.location-open b{margin-left:3px;padding-left:10px;border-left:1px solid #b7a88d;font-size:12px;color:#a9363e;white-space:nowrap}
.location-open:hover{background:#fffaf0;transform:translate(-1px,-1px);box-shadow:5px 5px 0 #536b7d}
.location-open:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #536b7d}
.location-open:focus-visible{outline:3px solid #c94349;outline-offset:4px}
#location-dialog{width:min(670px,calc(100vw - 24px));max-height:90svh;padding:24px;border:1px solid #bca88d;background:#fffaf0;color:#17314f;border-radius:18px;overflow:auto}
#location-dialog::backdrop{background:#17253899;backdrop-filter:blur(4px)}
#location-dialog .dialog-top{display:flex;justify-content:flex-end;margin:0 0 6px}
.location-map-wrap{position:relative}.location-map{display:block;width:100%;height:auto}
@media(max-width:900px){.location-open{order:2;align-self:center;justify-content:center;margin-top:-4px;font-size:12px}}
@media(max-width:500px){#location-dialog{padding:17px 12px}}
@media(prefers-reduced-motion:reduce){.entry-map{transition:none}}
/* V10: map is a quiet inline diagram, not a second action. */
.inline-route{margin:auto 0 0;width:100%;max-width:340px}.inline-route img{display:block;width:100%;height:auto}
.guest-dialogue{position:absolute;z-index:8;left:8%;top:14%;padding:13px 17px;background:#fffaf0;border:2px solid #17314f;box-shadow:4px 4px 0 #17314f35;font:700 16px/1.6 var(--sans);color:#17314f;pointer-events:none;max-width:270px}
.guest-dialogue:after{content:'';position:absolute;bottom:-10px;left:28px;width:16px;height:16px;background:#fffaf0;border-right:2px solid #17314f;border-bottom:2px solid #17314f;transform:rotate(45deg)}
.massage-home{position:relative}.massage-home:not([data-entry="ready"]) .guest-dialogue,.massage-home:not([data-entry="ready"]) .inline-route{visibility:hidden}
@media(max-width:900px){.inline-route{order:2;width:min(340px,90vw);align-self:center}.guest-dialogue{position:relative;left:auto;top:auto;order:-1;align-self:center;margin:0;font-size:13px;padding:8px 13px}.massage-scene{width:min(420px,calc(100vw - 28px),calc(100svh - 440px));min-width:180px}.hero-offer-panel{gap:12px}}
.guest-dialogue{top:4%;left:8%;min-width:255px;white-space:pre-line}
.dialogue-visual.typing:after{content:'▌';display:inline-block;margin-left:2px;color:#c93640;animation:dialogue-caret .72s steps(1,end) infinite}
.guest-dialogue.reaction{animation:dialogue-flash .38s steps(2,end) 2}
.therapist-dialogue{position:absolute;z-index:9;left:63%;top:22%;padding:9px 14px;background:#e7f3df;border:2px solid #17314f;box-shadow:4px 4px 0 #17314f35;font:800 15px/1.4 var(--sans);color:#17314f;pointer-events:none;white-space:nowrap;animation:dialogue-flash .38s steps(2,end) 2}
.therapist-dialogue:after{content:'';position:absolute;right:18px;bottom:-9px;width:14px;height:14px;background:#e7f3df;border-right:2px solid #17314f;border-bottom:2px solid #17314f;transform:rotate(45deg)}
@keyframes dialogue-caret{50%{opacity:0}}
@keyframes dialogue-flash{0%,100%{transform:translate(0,0);background:#fffaf0}50%{transform:translate(-2px,-2px);background:#ffe59a;box-shadow:7px 7px 0 #c9364050}}
@media(prefers-reduced-motion:reduce){.dialogue-visual.typing:after{display:none}.guest-dialogue.reaction,.therapist-dialogue{animation:none}}
@media(max-width:900px){.guest-dialogue{position:absolute;top:4%;left:8%;margin:0;max-width:240px;font-size:12px}.therapist-dialogue{left:61%;top:23%;padding:6px 9px;font-size:11px}.massage-scene{width:min(350px,calc(100vw - 40px),calc(100svh - 440px));min-width:180px}}
