/* Person surfaces share one hierarchy; photo media geometry stays unchanged. */
main.page {
  --person-ink:#454e53;
  --person-muted:#7d878b;
  --person-line:#dce2e3;
  --person-serif:var(--atelier-font-name,serif);
  --person-sans:"Noto Sans JP","Inter",sans-serif;
}
main.page :is(.schedule-card,.therapist-mini-card) {
  border:1px solid rgba(211,219,221,.8)!important;
  border-radius:4px!important;
  background:#fff;
  box-shadow:none!important;
  overflow:hidden;
  color:var(--person-ink);
  text-decoration:none;
}
main.page :is(.schedule-card,.therapist-mini-card)::before,
main.page :is(.schedule-card,.therapist-mini-card)::after {display:none}
main.page :is(.schedule-card-body,.therapist-mini-body) {
  display:flex;flex-direction:column;align-items:stretch;
  gap:7px;padding:14px 12px 13px;background:#fff;text-align:left;
}
main.page .card-name-row {
  display:flex;align-items:baseline;justify-content:flex-start;gap:9px;
  margin:0;padding:0;line-height:1.5;color:var(--person-ink);
}
main.page .card-name-row strong {
  font-family:var(--person-serif);font-size:20px;font-weight:600;
  line-height:1.5;letter-spacing:.035em;color:inherit;
}
main.page .card-name-row .card-age {
  font:400 12px/1.4 var(--person-sans);letter-spacing:0;color:var(--person-muted);
}
main.page :is(.schedule-card,.therapist-mini-card) .therapist-feature-marquee {
  position:relative;inset:auto;display:block;flex:0 0 auto;
  width:100%;height:21px;min-height:0;margin:0;border:0;
  background:transparent;box-shadow:none;overflow:hidden;
  color:#778185;font:400 12px/21px var(--person-sans);
  letter-spacing:.01em;mask-image:linear-gradient(90deg,#000 92%,transparent);
}
main.page .therapist-feature-marquee .schedule-status-marquee-track {
  animation-duration:42s;animation-delay:0s;gap:30px;
}
/* Existing bands retain their visual treatment; Images owns only their motion. */
main.page [data-feature-marquee] .schedule-status-marquee-track{animation:none!important;gap:0}
main.page [data-feature-marquee] .schedule-status-marquee-track>span{flex:none;padding-right:30px}
main.page [data-feature-marquee] .schedule-status-marquee-track>span[hidden]{display:none}
@media(prefers-reduced-motion:reduce){main.page [data-feature-marquee] .schedule-status-marquee-track{transform:none!important}main.page [data-feature-marquee] .schedule-status-marquee-track>span[aria-hidden="true"]{display:none}}
main.page :is(.schedule-room-line,.card-area-line) {
  display:block;align-self:stretch;min-height:0;margin:0;padding:0;
  border:0;border-radius:0;background:transparent;box-shadow:none;
  text-align:left;color:var(--person-muted);
  font:400 13px/1.6 var(--person-sans);letter-spacing:.02em;
}
main.page .schedule-room-line::before {
  content:"";display:inline-block;width:4px;height:4px;margin:0 6px 3px 0;
  border-radius:50%;background:var(--card-area-color,#a8bec8);opacity:.65;
}
main.page .card-size-line {
  margin:0;padding:0;color:#879195;white-space:normal;
  font:400 11px/1.7 var(--person-sans);letter-spacing:0;
}
main.page .schedule-time-panel {
  display:flex;justify-content:center;align-items:center;gap:6px;
  min-height:38px;margin:3px 0 0;padding:7px 3px;
  border:1px solid #c3ced1;border-radius:0;
  background:#fff;color:#59676d;box-shadow:none;
}
main.page .schedule-time-panel .schedule-time-main {
  color:inherit;font:500 15px/1.4 var(--person-serif);letter-spacing:.015em;
}
main.page .schedule-card--closed .schedule-time-panel {color:#8d989c;border-color:#d8dfe0}
main.page .schedule-time-icon {width:13px;height:13px;flex:none}
main.page :is(.schedule-tag-row,.therapist-tag-row,.newface-tag-row) {
  display:flex;flex-wrap:wrap;justify-content:flex-start;gap:2px 0;
  margin:2px 0 0;padding:0;border:0;min-width:0;
}
main.page :is(.schedule-tag-row,.therapist-tag-row,.newface-tag-row) > :is(em,span) {
  display:inline;flex:none;min-width:0;min-height:0;margin:0;padding:0;
  border:0;border-radius:0;background:none;box-shadow:none;
  color:#879195;font:400 11px/1.65 var(--person-sans);letter-spacing:.01em;
}
main.page :is(.schedule-tag-row,.therapist-tag-row,.newface-tag-row) > :is(em,span)::before {display:none}
main.page :is(.schedule-tag-row,.therapist-tag-row,.newface-tag-row) > :is(em,span)::after {display:none!important}
main.page :is(.schedule-tag-row,.therapist-tag-row,.newface-tag-row) > :is(em,span) + :is(em,span)::before {
  content:"・";display:inline;position:static;inset:auto;width:auto;height:auto;
  padding:0 3px;border:0;border-radius:0;background:none;box-shadow:none;
  transform:none;color:#aeb7b9;
}
main.page .therapist-card-social-badges {right:8px;bottom:8px;left:auto;top:auto}
main.page .therapist-card-social-badge {box-shadow:0 1px 5px #263b4514;border-color:#ffffffd9}
main.page .therapist-debut-tag {font-size:10px;letter-spacing:.08em}
main.page .newface-copy h3 {font-family:var(--person-serif);color:var(--person-ink);letter-spacing:.04em}
main.page .newface-feature {margin:8px 0;color:#7d878b;font:400 14px/1.85 var(--person-sans)}
main.page :is(.newface-meta,.newface-size,.newface-copy dt) {color:var(--person-muted)}
main.page .newface-tag-row {margin:10px 0 18px}
main.page .newface-tag-row > span {font-size:12px}
@media(max-width:640px){
  main.page :is(.schedule-card-body,.therapist-mini-body){gap:6px;padding:11px 9px 12px}
  main.page .card-name-row strong{font-size:18px}
  main.page .card-name-row .card-age{font-size:11px}
  main.page .schedule-time-panel .schedule-time-main{font-size:14px}
}
@media(prefers-reduced-motion:reduce){main.page .schedule-status-marquee-track{animation:none!important}}
/* The shared text owner handles lifecycle and near-viewport culling. */
/* Dates, view mode and area are separate, compact choices. */
body[data-page="schedule"] .schedule-mode-switch {
  display:grid;grid-template-columns:1fr 1fr;max-width:560px;
  width:calc(100% - 24px);margin:20px auto 15px;
  border:1px solid #cad5db;background:#fff;
}
body[data-page="schedule"] .schedule-mode-switch[hidden]{display:none!important}
body[data-page="schedule"] .schedule-mode-switch button {
  display:flex;align-items:center;justify-content:center;gap:5px;
  min-width:0;min-height:46px;padding:10px 7px;border:0;border-radius:0;
  background:#fff;color:#68787f;font:400 14px/1.4 var(--person-sans);
  cursor:pointer;-webkit-tap-highlight-color:transparent;
}
body[data-page="schedule"] .schedule-mode-switch button+button{border-left:1px solid #cad5db}
body[data-page="schedule"] .schedule-mode-switch button[aria-selected="true"]{background:#edf3f6;color:#3f565f;font-weight:600}
body[data-page="schedule"] .schedule-mode-switch small{font-size:11px;font-weight:400;color:#778a93}
body[data-page="schedule"] .schedule-mode-switch button:focus-visible{outline:2px solid #7fa1b5;outline-offset:-4px}
body[data-page="schedule"] .schedule-view-status{width:calc(100% - 24px);max-width:1220px;margin:10px auto 16px;color:#718087;font:400 12px/1.6 var(--person-sans);text-align:center;letter-spacing:.02em}
@media(max-width:360px){body[data-page="schedule"] .schedule-mode-switch button{font-size:12px;padding-inline:5px;gap:3px}}

/* r43 review: use the approved home-schedule treatment on the other person
   surfaces. The home #schedule, grid geometry, media crop and motion owners
   remain unchanged. Menu-specific information stays in its existing order. */
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) :is(.therapist-mini-card,.schedule-card){border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible;color:#414d50}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) :is(.therapist-mini-body,.schedule-card-body){min-width:0;display:flex;flex-direction:column;gap:0;padding:11px 2px 0!important;background:transparent!important;text-align:left}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-name-row{display:block;min-width:0;margin:0;padding:0;line-height:1.5;color:#414d50}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-name-row strong{display:inline;font:600 20px/1.5 var(--person-serif);letter-spacing:.035em;overflow-wrap:anywhere;white-space:normal!important;overflow:visible;text-overflow:clip}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-name-row .card-age{display:inline-block;margin-left:8px;color:#66747b;font:400 10px/1.3 "Inter",sans-serif;letter-spacing:0;white-space:nowrap}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .therapist-feature-marquee{box-sizing:border-box;display:flex;align-items:center;flex:none;width:100%;max-width:100%;min-width:0;min-height:0;height:30px;margin:5px 0 0;padding:4px 7px;border:1px solid transparent;border-radius:0;background:rgba(255,255,255,0.65);color:#414d50;box-shadow:none;font:400 12px/20px var(--atelier-font-copy);letter-spacing:0;overflow:hidden;white-space:nowrap;mask-image:none;isolation:isolate}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .therapist-feature-marquee .schedule-status-marquee-track{padding-left:0}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) :is(.schedule-room-line,.card-area-line){margin:10px 0 0;padding:0;border:0;background:none;color:#66747b;font:400 11.5px/1.5 var(--atelier-font-copy);letter-spacing:0;overflow-wrap:anywhere}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-room-line::before{display:none}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-size-line{margin:9px 0 0;padding:0;color:#66747b;font:400 10px/1.6 "Inter","Noto Sans JP",sans-serif;letter-spacing:0;overflow-wrap:normal;text-align:left!important}
body[data-page="schedule"] main.page .schedule-time-panel{display:flex;align-items:baseline;justify-content:flex-start;flex-wrap:wrap;min-height:0;margin:9px 0 0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#40565f}
body[data-page="schedule"] main.page .schedule-time-panel .schedule-time-main{color:inherit;font:400 17px/1.4 "Inter",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:0;white-space:nowrap}
body[data-page="schedule"] main.page .schedule-time-icon{display:none}
body[data-page="schedule"] main.page .schedule-card--closed .schedule-time-panel{color:#8d989c}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-tag-row{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 0;padding:0;border:0}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-tag-row>em{display:block;flex:0 0 auto;max-width:100%;min-height:0;margin:0;padding:3px 7px;border:0;border-radius:4px;background:#edf2f7;box-shadow:none;color:#626e76;font:400 11.5px/1.4 var(--atelier-font-copy);letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-tag-row>em:nth-child(even){background:#f8edf2}
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-tag-row>em::before,
:is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-tag-row>em::after{display:none!important}

/* New faces retain the existing large portrait, person carousel and all dates,
   descriptive copy and controls. Only the information surface is unboxed. */
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-slide{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-visual{border:0;box-shadow:none}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy{gap:0;padding:15px 2px 0;align-content:start;border:0;border-radius:0;background:transparent!important;box-shadow:none!important;overflow:visible}
body[data-atmosphere="atelier-v17"] main.page #new-face :is(.newface-copy,.newface-copy p,.newface-copy dl)::before,
body[data-atmosphere="atelier-v17"] main.page #new-face :is(.newface-copy,.newface-copy p,.newface-copy dl)::after{display:none!important}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy h3{margin:0;color:#414d50;font:600 30px/1.5 var(--person-serif);letter-spacing:.035em;overflow-wrap:anywhere}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-debut-line{margin:0 0 8px;color:#8b7d66;font:400 11px/1.5 var(--atelier-font-copy);letter-spacing:.08em}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-feature{min-width:0;margin:5px 0 0;padding:4px 7px;border:1px solid #edeeeb;background:#fff;color:#414d50;font:400 13px/23px var(--atelier-font-copy);letter-spacing:0;overflow-wrap:anywhere}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-meta{margin:10px 0 0;color:#66747b;font:400 12px/1.6 var(--atelier-font-copy);letter-spacing:0}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-size{margin:9px 0 0;padding:0;border:0;color:#66747b;font:400 12px/1.6 "Inter","Noto Sans JP",sans-serif;letter-spacing:0}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-tag-row{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0 0;padding:0}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-tag-row>span{display:block;max-width:100%;min-height:0;margin:0;padding:4px 10px;border:0;border-radius:4px;background:#edf2f7;box-shadow:none;color:#626e76;font:400 13px/1.4 var(--atelier-font-copy);letter-spacing:0;overflow-wrap:anywhere}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-tag-row>span:nth-child(even){background:#f8edf2}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-tag-row>span::before{display:none}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy dl{margin:18px 0 0;padding:0;border-radius:0;background:none;border-top:1px solid #e1e5e2}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy dl>div{padding:12px 0;align-items:start}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy dt{color:#66747b;font:400 12px/1.6 var(--atelier-font-copy);letter-spacing:0}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy dd{color:#40565f;font:400 14px/1.6 "Inter","Noto Sans JP",sans-serif;letter-spacing:0}
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-actions{margin-top:12px}
/* The existing carousel phase keeps the old portrait opaque. Hide only its
   outgoing labels so transparent information floors cannot double the text. */
body[data-atmosphere="atelier-v17"] main.page #new-face .newface-slide[data-newface-leaving] .newface-copy{visibility:hidden}
@media(min-width:641px){
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) :is(.therapist-mini-body,.schedule-card-body){padding-top:15px!important}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-name-row strong{font-size:25px}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-name-row .card-age{font-size:12px}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .therapist-feature-marquee{height:33px;font-size:13px;line-height:23px}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) :is(.schedule-room-line,.card-area-line){font-size:14px}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-size-line{font-size:12px}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-tag-row>em{font-size:13px;padding:4px 10px}
 body[data-page="schedule"] main.page .schedule-time-panel .schedule-time-main{font-size:20px}
}
@media(max-width:640px){
 body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy{padding-top:11px}
 body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy h3{font-size:25px}
 body[data-atmosphere="atelier-v17"] main.page #new-face .newface-feature{font-size:12px;line-height:20px}
 body[data-atmosphere="atelier-v17"] main.page #new-face .newface-tag-row>span{font-size:11.5px;padding:3px 7px}
 body[data-atmosphere="atelier-v17"] main.page #new-face .newface-copy dd{font-size:12px}
}
@media(max-width:350px){
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .card-name-row strong{font-size:19px}
 body[data-page="schedule"] main.page .schedule-time-panel .schedule-time-main{font-size:16px}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .schedule-tag-row>em{padding-inline:6px}
}
@media(prefers-reduced-motion:reduce){
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .therapist-feature-marquee{height:auto;min-height:30px;white-space:normal;overflow:visible}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .therapist-feature-marquee .schedule-status-marquee-track{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;transform:none!important}
 :is(body[data-page="home"] #therapist-directory,body[data-page="therapists"],body[data-page="schedule"]) .therapist-feature-marquee .schedule-status-marquee-track>span{min-width:0;max-width:100%;padding-right:0;white-space:normal;overflow-wrap:anywhere}
}

/* Keep moving copies at the approved band typography. Explicit 100% prevents
   mobile text inflation of long max-content tracks; pinch zoom stays enabled. */
main.page :is([data-home-schedule-feature],[data-feature-marquee]),
main.page :is([data-home-schedule-feature],[data-feature-marquee])>*,
main.page :is([data-home-schedule-feature],[data-feature-marquee])>*>*{
 -webkit-text-size-adjust:100%;text-size-adjust:100%;
}
main.page :is([data-home-schedule-feature],[data-feature-marquee])>*,
main.page :is([data-home-schedule-feature],[data-feature-marquee])>*>*{font:inherit;letter-spacing:inherit}
/* Retain the photo NEW badge and remove only the redundant large watermark. */
main.page .therapist-mini-card--debut .therapist-mini-body::before{content:none!important;display:none!important}
main.page :is([data-home-schedule-feature],[data-feature-marquee])[data-feature-motion="save-data"]{height:auto;min-height:30px;overflow:visible;white-space:normal}
main.page :is([data-home-schedule-feature],[data-feature-marquee])[data-feature-motion="save-data"]>*{width:auto;min-width:0;max-width:100%;white-space:normal;transform:none!important}
main.page :is([data-home-schedule-feature],[data-feature-marquee])[data-feature-motion="save-data"]>*>*{max-width:100%;white-space:normal;overflow-wrap:anywhere;padding-right:0}

/* One static decorative surround, outside the unchanged photo/rotation surface.
   Two rule segments leave the room text clear without an opaque label patch. */
main.page .person-photo-frame{
 --photo-frame-gutter:7px;--photo-room-line:17.25px;--photo-frame-inset:calc(var(--photo-frame-gutter) + 1px);
 box-sizing:border-box;position:relative;display:block;width:100%;min-width:0;margin:0;
 padding:var(--photo-frame-inset);border:0;border-radius:0;background:transparent;box-shadow:none;
}
main.page .person-photo-outline{box-sizing:border-box;position:absolute;inset:0;border:1px solid #ccd7d9;pointer-events:none}
main.page .person-photo-frame--caption{padding-top:0}
main.page .person-photo-frame--caption .person-photo-outline{top:calc(var(--photo-room-line) / 2);border-top:0}
main.page .person-photo-caption{
 box-sizing:border-box;display:flex;align-items:center;gap:5px;min-width:0;height:var(--photo-room-line);
 width:calc(100% + 2 * var(--photo-frame-inset));margin:0 calc(-1 * var(--photo-frame-inset)) 2px;padding:0;
 color:#66747b;font:400 11.5px/1.5 var(--atelier-font-copy);letter-spacing:0;
 pointer-events:none;
}
main.page .person-photo-caption::before,main.page .person-photo-caption::after{content:"";display:block;height:1px;background:#ccd7d9;pointer-events:none}
main.page .person-photo-caption::before{flex:0 0 3px}
main.page .person-photo-caption::after{flex:1 1 auto;min-width:4px}
main.page .person-photo-room{display:block;flex:0 1 auto;min-width:0;max-width:calc(100% - 22px);font:inherit;color:inherit;letter-spacing:inherit;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
/* No empty caption node: reserve the same photo alignment for a missing room. */
main.page .schedule-card .person-photo-frame:not(.person-photo-frame--caption){padding-top:calc(var(--photo-room-line) + 2px)}
main.page .schedule-card .person-photo-frame:not(.person-photo-frame--caption) .person-photo-outline{top:calc(var(--photo-room-line) / 2)}
@media(max-width:640px){main.page .person-photo-frame{--photo-frame-gutter:4px}}
@media(min-width:641px){main.page .person-photo-frame{--photo-room-line:21px}main.page .person-photo-caption{font-size:14px}}
