/* BERGER page layouts — load after style.css. */
[hidden] { display: none !important; }

:root {
  --reference-width: 1160px;
  --reference-rule: #d8cfbd;
  --reference-wash: #f0edf6;
}

body[data-page]:not([data-page="home"]) main { padding-top: 78px; min-height: 70vh; }
body[data-page]:not([data-page="home"]) .header { opacity: 1; transform: none; }
body[data-page]:not([data-page="home"]) .feather-layer { display: none; }

/* Each page has its own title and a clear route back to the home page. */
.page-masthead {
  position: relative;
  display: flex;
  min-height: 215px;
  padding: 48px 20px 38px;
  overflow: hidden;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: radial-gradient(ellipse at 50% 25%, #fff 0, transparent 65%), linear-gradient(105deg, #e7e3f1, #f3f5fa 52%, #eae3f1);
  border-bottom: 1px solid #e6e1eb;
}
.page-masthead::before, .page-masthead::after {
  position: absolute;
  top: 12%;
  width: min(20vw, 180px);
  height: 80%;
  background: url("../images/feathers-rose/feather-01.png") center / contain no-repeat;
  opacity: .2;
  pointer-events: none;
  content: "";
}
.page-masthead::before { left: 9%; transform: rotate(-26deg); }
.page-masthead::after { right: 9%; transform: scaleX(-1) rotate(-26deg); }
#pageEyebrow { z-index: 1; margin: 0 0 7px; color: var(--gold-dark); font: 400 clamp(31px, 4vw, 46px)/1.15 Georgia, "Times New Roman", serif; letter-spacing: .045em; }
#pageTitle { z-index: 1; margin: 0; color: #766c7e; font: 400 17px/1.8 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .14em; }
.breadcrumbs { display: flex; width: min(var(--reference-width), 90%); min-height: 59px; margin: 0 auto; padding: 17px 0; align-items: center; flex-wrap: wrap; gap: 8px 12px; border-bottom: 1px solid #eee9f1; color: #958b9a; font-size: 11px; }
.breadcrumbs a { color: var(--gold-dark); }
.breadcrumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.breadcrumbs ol { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li + li::before { content: "›"; margin-right: 12px; color: #b8adbf; }

/* Large English titles sit above small Japanese subtitles. */
.section-heading .section-label {
  margin: 0 0 7px;
  color: #a18a60;
  font: 400 clamp(31px, 3.5vw, 44px)/1.15 Georgia, "Times New Roman", serif;
  letter-spacing: .035em;
  text-transform: none;
}
.section-heading h2 { color: #8b7a68; font: 400 17px/1.8 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .12em; }
.therapist-section, .new-therapist-section { padding: 0 0 58px; background: #fff; }
.therapist-section .section-heading, .new-therapist-section .section-heading, .therapist-directory-section .section-heading {
  min-height: 145px;
  margin: 0 0 32px;
  padding: 27px 18px;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,255,255,.8), transparent 60%), linear-gradient(105deg, #e8e4f2, #eef1f7 50%, #ece6f2);
}
.therapist-section .section-heading::before, .therapist-section .section-heading::after,
.new-therapist-section .section-heading::before, .new-therapist-section .section-heading::after,
.therapist-directory-section .section-heading::before, .therapist-directory-section .section-heading::after {
  top: 2%;
  width: 22%;
  height: 96%;
  opacity: .2;
  background: url("../images/feathers-rose/feather-01.png") center / contain no-repeat;
  pointer-events: none;
}
.therapist-section .section-heading::before, .new-therapist-section .section-heading::before, .therapist-directory-section .section-heading::before { left: 8%; transform: rotate(-25deg); }
.therapist-section .section-heading::after, .new-therapist-section .section-heading::after, .therapist-directory-section .section-heading::after { right: 8%; transform: scaleX(-1) rotate(-25deg); }
.therapist-section .section-heading h2, .new-therapist-section .section-heading h2, .therapist-directory-section .section-heading h2 { font-size: 17px; }
.new-therapist-section { background: #faf9fc; border-top: 1px solid #e9e5ef; }
.new-therapist-section.directory-newcomers { margin-top: 0; padding-top: 0; border-top: 1px solid #e9e5ef; }

/* Four cards on a desktop and two on a phone; each track remains swipeable. */
.carousel-shell { width: min(var(--reference-width), calc(100% - 72px)); }
.therapist-grid { grid-auto-columns: calc((100% - 60px) / 4); gap: 20px; padding: 0 1px 10px; }
.therapist-directory-grid { width: min(var(--reference-width), calc(100% - 72px)); grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 20px; }
.therapist-card { border: 1px solid #c8b993; box-shadow: none; }
.therapist-photo { aspect-ratio: 3 / 4; }
.therapist-info { min-height: 127px; padding: 14px 12px 15px; background: #fff; }
.therapist-category { color: #ad8a9a; font-size: 10px; }
.therapist-info h3 { margin: 7px 0; font: 400 20px/1.5 "Yu Mincho", "Hiragino Mincho ProN", serif; }
.therapist-description { min-height: 1.7em; font-size: 11px; line-height: 1.65; }
.therapist-more { margin-top: 11px; font-size: 10px; }
.therapist-card a:focus-visible { outline: 2px solid var(--gold-dark); outline-offset: -3px; }
.carousel-arrow { width: 35px; height: 35px; border-radius: 0; border-color: #c5b58f; color: #9c865f; background: rgba(255,255,255,.94); box-shadow: none; }
.carousel-prev { left: -19px; }
.carousel-next { right: -19px; }
.carousel-dots { margin-top: 20px; }
.carousel-dot { width: 7px; height: 7px; }
.section-pill-link { min-height: 42px; border-radius: 0; font-size: 11px; background: #fff; }
.new-therapist-note { border-color: #e2dbe9; background: #fff; }
.therapist-directory-section { min-height: 520px; padding: 0 0 65px; background: #fff; }
.therapist-directory-section .section-heading { margin-top: 0; }

/* The blog is a wide image carousel, like the reference event area. */
.event-section { padding: 54px 0 58px; background: #fff; }
.event-section > .section-inner { max-width: none; }
.event-section .section-heading { margin-bottom: 27px; text-align: center; }
.event-carousel { width: min(900px, calc(100% - 90px)); }
.event-carousel .news-grid { grid-auto-columns: 100%; gap: 22px; padding: 0 1px 6px; }
.event-carousel .news-card { border-color: #d6c9ae; box-shadow: none; }
.event-carousel .news-photo { aspect-ratio: 2.45 / 1; }
.event-carousel .news-info { padding: 13px 20px 16px; }
.event-carousel .news-info h3 { font-size: 17px; }
.event-carousel .news-info p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 11px; }
.event-carousel .carousel-arrow { top: 38%; }

/* A wide news column and two narrower social columns share a fine outer rule. */
#updates-hub {
  display: grid;
  width: min(var(--reference-width), calc(100% - 72px));
  margin: 4px auto 55px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 25px;
  align-items: stretch;
}
#updates-hub #news, #updates-hub #social { min-width: 0; margin: 0; padding: 0; background: #fff; }
#updates-hub #news > .section-inner, #updates-hub #social > .section-inner { width: 100%; height: 100%; }
#updates-hub #news { border: 1px solid var(--reference-rule); }
#updates-hub #news .section-heading { margin: 0; padding: 25px 18px 19px; text-align: center; }
#updates-hub .section-heading .section-label { font-size: 33px; }
#updates-hub .section-heading h2 { font-size: 14px; }
#updates-hub .news-list {
  height: 300px;
  margin: 0 20px 20px;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-width: thin;
  scrollbar-color: #c5b699 #f5f2f8;
  border-top: 1px solid #e5dfe9;
}
#updates-hub .news-list::-webkit-scrollbar { width: 5px; }
#updates-hub .news-list::-webkit-scrollbar-track { background: #f5f2f8; }
#updates-hub .news-list::-webkit-scrollbar-thumb { background: #c5b699; }
#updates-hub .news-list-item { grid-template-columns: 78px minmax(0, 1fr); align-items: start; gap: 6px 13px; padding: 16px 0; }
#updates-hub .news-list-image { grid-column: 1; grid-row: 1 / span 2; width: 78px; height: 76px; }
#updates-hub .news-list-item time { grid-column: 2; grid-row: 1; font-size: 10px; }
#updates-hub .news-list-item > div { grid-column: 2; grid-row: 2; }
#updates-hub .news-list-item h3 { font-size: 13px; line-height: 1.7; }
#updates-hub .news-list-item p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 10px; }
#updates-hub .social-grid { height: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
#updates-hub .social-card { min-width: 0; min-height: 405px; padding: 25px 14px 22px; display: flex; flex-direction: column; align-items: center; border: 1px solid var(--reference-rule); background: #fff; text-align: center; }
#updates-hub .social-card .section-label { margin: 0 0 7px; color: #a18a60; font: 400 clamp(23px, 2.3vw, 32px)/1.2 Georgia, serif; letter-spacing: .01em; }
#updates-hub .social-card h2 { color: #8b7a68; font: 400 14px/1.8 "Yu Mincho", serif; }
#updates-hub .social-card > p:not(.section-label) { width: 100%; margin-top: 35px; color: var(--muted); font-size: 11px; line-height: 2; }
#updates-hub .social-card > a { width: 100%; min-height: 44px; margin: auto 0 0; padding: 12px 0 5px; justify-content: center; gap: 8px; border-bottom-color: #c5b699; font-size: 10px; }
.social-placeholder { width: 100%; flex: 1; min-height: 130px; margin: 20px 0; display: grid; place-items: center; border: 1px solid #eee9f1; color: #b0a5b7; background: linear-gradient(145deg, #f7f4fa, #fff); font: 14px Georgia, serif; }

/* Four feature links and partner banners close the home page. */
.contents-section { padding: 40px 5% 48px; border-top: 1px solid #eee9f1; background: #f3f0f7; }
.contents-inner { max-width: var(--reference-width); }
.contents-inner > h2 { margin-bottom: 24px; color: #a18a60; font-size: 26px; letter-spacing: .1em; }
.contents-grid { gap: 18px; }
.contents-card { min-height: 182px; border-color: #c9bc9e; background: rgba(255,255,255,.85); box-shadow: none; }
.contents-icon { width: 44px; height: 44px; margin-bottom: 11px; }
.contents-card strong { font-size: 16px; }
.contents-card small { margin-top: 7px; font-size: 10px; }
.partner-links { gap: 25px; padding: 30px 5%; border-top: 1px solid #eee9f1; }
.footer { padding-top: 40px; padding-bottom: 27px; background: #777080; }
.footer-inner { max-width: var(--reference-width); }
.footer-nav { gap: 11px 17px; }
.footer-nav a { font-size: 10px; }

/* Lower pages use the same restrained width and generous spacing. */
body[data-page]:not([data-page="home"]) .system-section,
body[data-page]:not([data-page="home"]) .access-section,
body[data-page]:not([data-page="home"]) .contact-section { padding: 55px 5% 70px; background: #fff; }
body[data-page]:not([data-page="home"]) .section > .section-inner { max-width: var(--reference-width); }
body[data-page]:not([data-page="home"]) .section-heading { margin-bottom: 31px; }
body[data-page]:not([data-page="home"]) .therapist-section { padding-top: 42px; }
body[data-page]:not([data-page="home"]) .therapist-section .section-heading { min-height: 95px; background: #f5f2f8; }
.schedule-intro { width: min(var(--reference-width), calc(100% - 72px)); margin: 35px auto 30px; text-align: center; }
.schedule-intro p { margin: 8px 0; color: var(--muted); font-size: 12px; }
.schedule-date { color: #a18a60; font: 400 25px/1.5 Georgia, "Yu Mincho", serif; letter-spacing: .08em; }
.recruit-copy, .page-notice { width: min(850px, 90%); margin: 40px auto; padding: 28px 32px; border: 1px solid #ddd4e4; background: #faf8fc; color: #7c7284; font-size: 13px; line-height: 2.1; }
.recruit-copy h2, .recruit-copy h3 { color: #9b8560; font-family: "Yu Mincho", serif; font-weight: 400; }
.recruit-copy p, .page-notice p { margin: 0 0 14px; }
.recruit-copy p:last-child, .page-notice p:last-child { margin-bottom: 0; }
.recruit-copy dl { margin: 24px 0; border-top: 1px solid #dfd6e7; }
.recruit-copy dt { padding-top: 14px; color: #8f7b5a; font-weight: 500; }
.recruit-copy dd { margin: 0; padding: 0 0 14px; border-bottom: 1px solid #dfd6e7; }
.page-notice a, .recruit-copy a { color: #9a8056; text-decoration: underline; text-underline-offset: 3px; }

#profileContent { width: min(1000px, 90%); margin: 45px auto 65px; }
.profile-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 44px; align-items: start; }
.profile-picture { overflow: hidden; border: 1px solid #d5c7aa; background: #f3eef7; }
.profile-picture img, img.profile-picture { width: 100%; max-height: 690px; object-fit: cover; object-position: center top; }
.profile-details { padding: 8px 0; }
.profile-details h2, .profile-details h3 { margin: 0 0 18px; color: #8a7655; font: 400 27px/1.5 "Yu Mincho", serif; }
.profile-details p { color: #867a8d; font-size: 13px; line-height: 2; white-space: pre-line; overflow-wrap: anywhere; }
.profile-facts { margin: 25px 0; border-top: 1px solid #ded5e5; }
.profile-facts > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 14px; padding: 13px 0; border-bottom: 1px solid #ded5e5; }
.profile-facts dt { color: #9b8560; font-size: 12px; }
.profile-facts dd { margin: 0; color: #7d7285; font-size: 12px; overflow-wrap: anywhere; }
.profile-details .section-pill-link { width: 100%; margin-top: 25px; }
.article-layout { width: min(900px, 90%); margin: 45px auto 65px; }
.article-layout > img, .article-image { width: 100%; height: auto; margin-bottom: 25px; }
.article-layout time { color: #a18a60; font: 12px Georgia, serif; }
.article-layout h2 { color: #7e6f84; font: 400 24px/1.7 "Yu Mincho", serif; }
.article-body { color: #82758a; font-size: 14px; line-height: 2.1; white-space: pre-line; overflow-wrap: anywhere; }

@media (max-width: 980px) {
  body[data-page]:not([data-page="home"]) main { padding-top: 70px; }
  .therapist-grid { grid-auto-columns: calc((100% - 18px) / 2); gap: 18px; }
  .therapist-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #updates-hub { grid-template-columns: 1fr; gap: 24px; }
  #updates-hub .news-list { height: 275px; }
  #updates-hub .social-card { min-height: 265px; }
  #updates-hub .social-card .section-label { font-size: 31px; }
  #updates-hub .social-card > p:not(.section-label) { margin-top: 22px; }
  .social-placeholder { min-height: 85px; }
}

@media (max-width: 680px) {
  body[data-page]:not([data-page="home"]) main { padding-top: 64px; }
  .page-masthead { min-height: 165px; padding: 33px 15px 28px; }
  .page-masthead::before { left: 2%; width: 26%; }
  .page-masthead::after { right: 2%; width: 26%; }
  #pageEyebrow { font-size: 32px; }
  #pageTitle { font-size: 14px; }
  .breadcrumbs { width: 90%; min-height: 47px; padding: 13px 0; font-size: 10px; }
  .section-heading .section-label { font-size: clamp(30px, 8vw, 36px); letter-spacing: .01em; }
  .section-heading h2, .therapist-section .section-heading h2, .new-therapist-section .section-heading h2, .therapist-directory-section .section-heading h2 { font-size: 14px; }
  .therapist-section, .new-therapist-section { padding-bottom: 36px; }
  .therapist-section .section-heading, .new-therapist-section .section-heading, .therapist-directory-section .section-heading { min-height: 113px; margin-bottom: 23px; padding: 23px 12px; }
  .therapist-section .section-heading::before, .new-therapist-section .section-heading::before, .therapist-directory-section .section-heading::before { left: 0; width: 25%; }
  .therapist-section .section-heading::after, .new-therapist-section .section-heading::after, .therapist-directory-section .section-heading::after { right: 0; width: 25%; }
  .carousel-shell { width: calc(100% - 34px); }
  .therapist-grid { grid-auto-columns: calc((100% - 12px) / 2); gap: 12px; padding-bottom: 6px; }
  .therapist-directory-grid { width: calc(100% - 30px); gap: 20px 12px; }
  .therapist-photo { aspect-ratio: 3 / 4; }
  .therapist-info { min-height: 115px; padding: 10px 7px 12px; }
  .therapist-info h3 { margin: 5px 0; font-size: 17px; }
  .therapist-category, .therapist-description, .therapist-more { font-size: 9px; }
  .carousel-arrow { width: 29px; height: 33px; }
  .carousel-prev { left: -12px; }
  .carousel-next { right: -12px; }
  .carousel-dots { margin-top: 16px; }
  .section-pill-link { max-width: calc(100% - 34px); min-height: 39px; font-size: 10px; }
  .event-section { padding: 36px 0; }
  .event-carousel { width: 90%; }
  .event-carousel .news-grid { grid-auto-columns: 100%; gap: 14px; }
  .event-carousel .news-photo { aspect-ratio: 2.2 / 1; }
  .event-carousel .news-info { padding: 10px 12px 12px; }
  .event-carousel .news-info h3 { font-size: 14px; }
  .event-carousel .news-info p { font-size: 10px; }
  #updates-hub { width: 90%; margin-top: 0; margin-bottom: 36px; gap: 20px; }
  #updates-hub #news .section-heading { padding: 21px 14px 17px; }
  #updates-hub .section-heading .section-label { font-size: 31px; }
  #updates-hub .news-list { height: 280px; margin: 0 15px 15px; }
  #updates-hub .news-list-item { grid-template-columns: 72px minmax(0,1fr); gap: 5px 11px; }
  #updates-hub .news-list-image { width: 72px; height: 72px; }
  #updates-hub .social-grid { gap: 12px; }
  #updates-hub .social-card { min-height: 250px; padding: 23px 10px 18px; }
  #updates-hub .social-card .section-label { font-size: clamp(23px, 6.1vw, 30px); }
  #updates-hub .social-card h2 { font-size: 12px; }
  #updates-hub .social-card > p:not(.section-label) { font-size: 10px; }
  #updates-hub .social-card > a { flex-wrap: wrap; font-size: 9px; }
  .contents-section { padding: 30px 5% 35px; }
  .contents-inner > h2 { font-size: 23px; }
  .contents-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
  .contents-card { min-height: 150px; padding: 16px 7px; }
  .contents-card strong { font-size: 14px; }
  .contents-card small { font-size: 9px; }
  .partner-links { padding-top: 25px; padding-bottom: 25px; gap: 20px; }
  .footer { padding-top: 30px; padding-bottom: 24px; }
  .footer-nav { gap: 11px 17px; }
  body[data-page]:not([data-page="home"]) .system-section,
  body[data-page]:not([data-page="home"]) .access-section,
  body[data-page]:not([data-page="home"]) .contact-section { padding-top: 35px; padding-bottom: 45px; }
  .schedule-intro { width: 90%; margin: 25px auto; }
  .schedule-date { font-size: 21px; }
  .recruit-copy, .page-notice { margin: 27px auto; padding: 22px 20px; font-size: 12px; }
  #profileContent { margin-top: 28px; margin-bottom: 45px; }
  .profile-layout { grid-template-columns: 1fr; gap: 24px; }
  .profile-picture { width: min(100%, 420px); margin: 0 auto; }
  .profile-picture img, img.profile-picture { max-height: none; }
  .profile-details h2, .profile-details h3 { font-size: 23px; }
  .profile-facts > div { grid-template-columns: 90px minmax(0,1fr); }
  .article-layout { margin-top: 28px; margin-bottom: 45px; }
  .article-layout h2 { font-size: 21px; }
  .article-body { font-size: 12px; }
  .fixed-action-bar { display: grid; }
}

@media (prefers-reduced-motion: reduce) {
  .therapist-photo img, .news-photo img { transition: none; }
}

/* Shared link and detail treatments. */
.therapist-photo-link,.news-image-link { display:block; width:100%; height:100%; }
.therapist-photo-link img,.news-image-link img { width:100%; height:100%; object-fit:cover; }
.therapist-category:empty,.therapist-description:empty { display:none; }
.directory-count { margin:0 auto 24px; text-align:center; color:var(--muted); font-size:12px; letter-spacing:.08em; }
.schedule-status { margin:12px -12px -15px; padding:7px; background:#eee8f3; color:#8c7596; font-size:11px; }
.mobile-nav small { margin-left:auto; padding-right:18px; font:10px Georgia,serif; color:#a18a60; letter-spacing:.08em; }
.pc-nav a[aria-current],.footer-nav a[aria-current] { color:var(--gold); }
.profile-picture.image-missing { min-height:340px; }
.article-image img { width:100%; height:auto; }
a:focus-visible,button:focus-visible { outline:2px solid var(--gold-dark); outline-offset:4px; }
@media(max-width:680px) { .schedule-status { margin:10px -7px -12px; } }

/* The masthead supplies the title on the dedicated pages. */
body:not([data-page="home"]) #therapistList > .section-inner > .section-heading,
body:not([data-page="home"]) #therapist > .section-inner > .section-heading,
body:not([data-page="home"]) #system > .section-inner > .section-heading,
body:not([data-page="home"]) #access > .section-inner > .section-heading { display:none; }
body:not([data-page="home"]) #therapistList { padding-top:35px; }
body:not([data-page="home"]) #therapist { padding-top:1px; }
@media(min-width:981px) {
  .therapist-grid:not(:has(> .therapist-card:nth-child(5))) { justify-content:center; }
}
@media(max-width:980px) {
  .therapist-grid:has(> .therapist-card:only-child) { justify-content:center; }
}

.partner-links .partner-shop-link { flex-basis: 100%; width: auto; padding-top: 8px; color: var(--muted); font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
