/*
 * Therapist Profile — isolated redesign.
 * This file is loaded after theme.css and public-ui.css only on cast.php.
 * All layout classes use the tp- namespace to avoid legacy profile overrides.
 */

.page-cast main{
  width:100%;
  overflow-x:hidden;
}

.page-cast .tp-page{
  --tp-max:1120px;
  --tp-bg:#11110e;
  --tp-panel:#1d1d18;
  --tp-panel-2:#25241e;
  --tp-line:#414035;
  --tp-line-soft:rgba(255,255,255,.09);
  --tp-text:#f1f0e8;
  --tp-muted:#aaa99f;
  --tp-accent:var(--neon,#d7b45a);
  width:100%;
  margin-top:20px;
  padding:34px 0 64px;
  background:
    radial-gradient(circle at 78% -10%,rgba(215,180,90,.08),transparent 30%),
    linear-gradient(180deg,#151510 0,#0c0c0a 100%);
  color:var(--tp-text);
}

/* Temporarily hidden until the gallery feature is needed again. */
.page-cast .tp-media-section{display:none!important}

/* Deliberately override the global .container shell only on this page. */
.page-cast .container.tp-shell{
  width:min(var(--tp-max),calc(100% - 80px))!important;
  max-width:var(--tp-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}

.page-cast .tp-titlebar{
  width:100%;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
  padding:0 0 22px;
  margin:0 0 24px;
  border-bottom:1px solid var(--tp-line);
}
.page-cast .tp-title-copy{min-width:0}
.page-cast .tp-eyebrow{
  display:block;
  margin-bottom:7px;
  color:var(--tp-accent);
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.24em;
}
.page-cast .tp-name-row{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:10px 16px;
}
.page-cast .tp-name-row h1{
  margin:0;
  color:var(--tp-text);
  font-family:"Noto Sans JP",Arial,sans-serif;
  font-size:clamp(34px,4vw,52px);
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.045em;
}
.page-cast .tp-roman-name{
  color:var(--tp-muted);
  font-size:12px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.page-cast .tp-measures{
  display:flex;
  align-items:center;
  gap:8px;
  margin:11px 0 0;
  color:#d2d1c8;
  font-size:13px;
  font-weight:700;
}
.page-cast .tp-measures span{color:#646359}

.page-cast .tp-top-book{
  flex:0 0 290px;
  min-height:64px;
  display:grid;
  grid-template-columns:26px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:11px 18px;
  border:1px solid var(--tp-accent);
  border-radius:7px;
  background:var(--tp-accent);
  color:#11140b;
  transition:transform .18s ease,filter .18s ease;
}
.page-cast .tp-top-book:hover{transform:translateY(-1px);filter:brightness(1.03)}
.page-cast .tp-top-book .icon{width:24px;height:24px}
.page-cast .tp-top-book span{display:grid;gap:1px}
.page-cast .tp-top-book small{font-size:8px;font-weight:900;letter-spacing:.14em}
.page-cast .tp-top-book strong{font-size:13px;font-weight:900}
.page-cast .tp-top-book>b{font-size:24px;line-height:1}

.page-cast .tp-main-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  align-items:start;
}
.page-cast .tp-visual-card,
.page-cast .tp-profile-card{
  min-width:0;
  border:1px solid var(--tp-line);
  border-radius:10px;
  background:linear-gradient(145deg,var(--tp-panel-2),var(--tp-panel));
  overflow:hidden;
}
.page-cast .tp-visual-card{
  width:100%;
  max-width:none;
  justify-self:stretch;
  padding:12px
}

.page-cast .tp-gallery{width:100%;min-width:0}
.page-cast .tp-gallery-stage{
  position:relative;
  width:100%;
  max-width:416px;
  margin:0 auto;
  aspect-ratio:4/5;
  min-height:0;
  overflow:hidden;
  border-radius:7px;
  background:#080807;
}
.page-cast .tp-main-photo{
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  background:#080807;
  cursor:zoom-in;
}
.page-cast .tp-main-photo img{
  display:block;
  width:100%;
  height:100%;
  min-height:0!important;
  max-height:none!important;
  object-fit:cover;
  object-position:center top;
  transition:opacity .16s ease,transform .35s ease;
}
.page-cast .tp-main-photo:hover img{transform:scale(1.012)}
.page-cast .tp-main-photo img.changing{opacity:.28}
.page-cast .tp-gallery-arrow{
  position:absolute;
  top:50%;
  z-index:4;
  width:42px;
  height:60px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(8,8,7,.66);
  color:#fff;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  backdrop-filter:blur(6px);
}
.page-cast .tp-gallery-arrow:hover{background:var(--tp-accent);color:#11140b;border-color:var(--tp-accent)}
.page-cast .tp-gallery-prev{left:12px}
.page-cast .tp-gallery-next{right:12px}
.page-cast .tp-gallery-count{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:4;
  display:flex;
  align-items:baseline;
  gap:5px;
  min-width:58px;
  justify-content:center;
  padding:6px 10px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(8,8,7,.72);
  color:#d8d7cf;
  font-size:10px;
  backdrop-filter:blur(6px);
}
.page-cast .tp-gallery-count b{color:var(--tp-accent);font-size:13px}
.page-cast .tp-thumbs{
  display:flex;
  gap:8px;
  width:100%;
  margin-top:10px;
  overflow-x:auto;
  padding:0 0 2px;
  scrollbar-width:thin;
}
.page-cast .tp-thumbs button{
  flex:0 0 72px;
  width:72px;
  height:88px;
  padding:2px;
  border:1px solid #4a493e;
  border-radius:5px;
  background:#11110e;
  opacity:.55;
  overflow:hidden;
  cursor:pointer;
  transition:opacity .18s ease,border-color .18s ease;
}
.page-cast .tp-thumbs button.active,
.page-cast .tp-thumbs button:hover{opacity:1;border-color:var(--tp-accent)}
.page-cast .tp-thumbs img{width:100%;height:100%;object-fit:cover}

.page-cast .tp-profile-card{
  display:flex;
  flex-direction:column;
  padding:22px 24px 20px;
  border-color:#454536;
  background:
    radial-gradient(circle at 88% 12%,rgba(219,255,0,.05),transparent 28%),
    linear-gradient(135deg,#2b2b21 0%,#23231c 48%,#1c1c17 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 14px 34px rgba(0,0,0,.14);
}
.page-cast .tp-card-identity{
  padding:1px 5px 14px;
  border-bottom:1px solid #555444;
}
.page-cast .tp-card-name-row{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:10px 22px;
}
.page-cast .tp-card-name-row h2{
  margin:0;
  color:#e5ff00;
  font-family:"Noto Sans JP",Arial,sans-serif;
  font-size:clamp(32px,3vw,43px);
  line-height:1.1;
  font-weight:950;
  letter-spacing:.015em;
  text-shadow:0 0 14px rgba(216,255,0,.08);
}
.page-cast .tp-card-name-row span{
  color:#d0cfc6;
  font-size:13px;
  line-height:1;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.page-cast .tp-card-measures{
  margin:17px 0 0;
  color:#f0efe8;
  font-size:20px;
  line-height:1.4;
  font-weight:600;
  letter-spacing:.015em;
}
.page-cast .tp-card-measures i{
  margin:0 5px;
  color:#a9a89f;
  font-style:normal;
}
.page-cast .tp-facts{
  display:block;
  border:0;
}
.page-cast .tp-fact,
.page-cast .tp-fact-wide{
  min-width:0;
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:start;
  gap:20px;
  min-height:0;
  padding:13px 6px;
  border:0;
  border-bottom:1px solid #555444;
  background:transparent;
}
.page-cast .tp-fact small{
  color:#dcff00;
  font-size:14px;
  line-height:1.55;
  font-weight:900;
  letter-spacing:.01em;
}
.page-cast .tp-fact strong{
  min-width:0;
  color:#f1f0e8;
  font-size:14px;
  line-height:1.6;
  font-weight:600;
  overflow-wrap:anywhere;
}
.page-cast .tp-profile-message,
.page-cast .tp-intro-block{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:20px;
  margin:0;
  padding:13px 6px;
  border:0;
  border-bottom:1px solid #555444;
  background:transparent;
}
.page-cast .tp-profile-message small,
.page-cast .tp-intro-block>small{
  display:block;
  margin:0;
  color:#dcff00;
  font-size:14px;
  line-height:1.55;
  font-weight:900;
  letter-spacing:.01em;
}
.page-cast .tp-profile-message p,
.page-cast .tp-intro-block p{
  margin:0;
  color:#f0efe8;
  font-size:14px;
  line-height:1.8;
  font-weight:500;
}
.page-cast .tp-traits{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:13px 5px 2px;
}
.page-cast .tp-traits span{
  padding:8px 12px 9px;
  border:1px solid #879a18;
  border-radius:4px;
  background:rgba(12,13,8,.58);
  color:#f2f2e8;
  font-size:14px;
  line-height:1.15;
  font-weight:850;
  letter-spacing:.015em;
}
.page-cast .tp-book-button{
  width:100%;
  min-height:76px;
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin-top:22px;
  padding:11px 17px;
  border:1px solid #e1ff00;
  border-radius:6px;
  background:linear-gradient(90deg,#d7f000 0%,#efff17 52%,#d8ef00 100%);
  color:#11140b;
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset;
  transition:filter .18s ease,transform .18s ease,box-shadow .18s ease;
}
.page-cast .tp-book-button:hover{
  filter:brightness(1.04);
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(206,239,0,.12),0 0 0 1px rgba(255,255,255,.16) inset;
}
.page-cast .tp-book-button .icon{width:27px;height:27px}
.page-cast .tp-book-button span{display:flex;align-items:baseline;gap:9px}
.page-cast .tp-book-button small{font-size:16px;font-weight:800;letter-spacing:.01em}
.page-cast .tp-book-button strong{font-size:19px;font-weight:800;letter-spacing:.035em}
.page-cast .tp-book-button>b{font-size:29px;line-height:1;font-weight:400}

.page-cast .tp-section{
  width:100%;
  margin-top:24px;
  padding:22px 24px 24px;
  border:1px solid var(--tp-line);
  border-radius:10px;
  background:linear-gradient(145deg,#222119,#171713);
}
.page-cast .tp-section-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--tp-line-soft);
}
.page-cast .tp-section-heading span{
  display:block;
  color:var(--tp-accent);
  font-size:9px;
  line-height:1;
  font-weight:900;
  letter-spacing:.2em;
}
.page-cast .tp-section-heading h2{
  margin:5px 0 0;
  color:var(--tp-text);
  font-family:"Noto Sans JP",Arial,sans-serif;
  font-size:24px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:-.025em;
}
.page-cast .tp-section-heading p{
  margin:0;
  color:#8e8d84;
  font-size:10px;
  line-height:1.5;
  text-align:right;
}
.page-cast .tp-week-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
}
.page-cast .tp-day-card{
  min-width:0;
  min-height:126px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:12px 8px 9px;
  border:1px solid #49483d;
  border-radius:7px;
  background:#302f28;
  color:#ebeae2;
  text-align:center;
  transition:border-color .18s ease,transform .18s ease;
}
.page-cast .tp-day-card:hover{border-color:#767568;transform:translateY(-1px)}
.page-cast .tp-day-date{display:flex;align-items:center;gap:5px}
.page-cast .tp-day-date b{font-size:14px;line-height:1}
.page-cast .tp-day-date small{
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#25241f;
  color:#aaa99f;
  font-size:8px;
}
.page-cast .tp-day-card>strong{
  width:100%;
  min-height:40px;
  display:grid;
  place-items:center;
  padding:6px 3px;
  border-radius:5px;
  background:#414036;
  color:#f0efe7;
  font-size:9px;
  line-height:1.4;
  font-weight:800;
  overflow-wrap:anywhere;
}
.page-cast .tp-day-card>em{
  color:#85847b;
  font-size:7px;
  line-height:1;
  font-style:normal;
  font-weight:900;
  letter-spacing:.15em;
}
.page-cast .tp-day-card.active{border-color:var(--tp-accent);box-shadow:0 0 0 1px rgba(215,180,90,.08) inset}
.page-cast .tp-day-card.active>strong{background:var(--tp-accent);color:#11140b}
.page-cast .tp-day-card.active>em{color:var(--tp-accent)}
.page-cast .tp-day-card.off>strong,
.page-cast .tp-day-card.undecided>strong{background:#26251f;color:#9e9d94}

.page-cast .tp-media-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.page-cast .tp-media-item{
  position:relative;
  min-width:0;
  margin:0;
  padding:0;
  border:1px solid #454439;
  border-radius:7px;
  background:#0f0f0c;
  overflow:hidden;
}
.page-cast .tp-media-photo{
  aspect-ratio:4/5;
  cursor:zoom-in;
}
.page-cast .tp-media-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease,filter .35s ease;
}
.page-cast .tp-media-photo span{
  position:absolute;
  left:9px;
  bottom:9px;
  padding:5px 7px;
  border-radius:3px;
  background:rgba(8,8,7,.72);
  color:#fff;
  font-size:7px;
  font-weight:900;
  letter-spacing:.12em;
  opacity:0;
  transition:opacity .2s ease;
}
.page-cast .tp-media-photo:hover{border-color:var(--tp-accent)}
.page-cast .tp-media-photo:hover img{transform:scale(1.025);filter:brightness(.82)}
.page-cast .tp-media-photo:hover span{opacity:1}
.page-cast .tp-media-video{min-height:220px}
.page-cast .tp-media-video video{display:block;width:100%;height:100%;min-height:220px;object-fit:contain;background:#000}
.page-cast .tp-media-video>small{display:block;padding:8px 10px;color:#c8c7bf;font-size:9px}
.page-cast .tp-video-frame{position:relative;width:100%;padding-top:56.25%;background:#000}
.page-cast .tp-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.page-cast .tp-media-book-button{
  width:100%;
  min-height:80px;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 28px;
  align-items:center;
  gap:18px;
  margin-top:22px;
  padding:12px 28px;
  border:1px solid #e3ff00;
  border-radius:6px;
  background:linear-gradient(90deg,#d7ed00 0%,#efff18 48%,#d7ed00 100%);
  color:#101208;
  box-shadow:0 0 0 1px rgba(255,255,255,.14) inset;
  transition:filter .18s ease,transform .18s ease,box-shadow .18s ease;
}
.page-cast .tp-media-book-button:hover{
  filter:brightness(1.035);
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(206,239,0,.12),0 0 0 1px rgba(255,255,255,.18) inset;
}
.page-cast .tp-media-book-icon{
  display:grid;
  place-items:center;
}
.page-cast .tp-media-book-icon .icon{width:31px;height:31px}
.page-cast .tp-media-book-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:1px;
}
.page-cast .tp-media-book-copy strong{
  font-size:22px;
  line-height:1.2;
  font-weight:700;
  letter-spacing:.025em;
}
.page-cast .tp-media-book-copy small{
  font-size:11px;
  line-height:1.4;
  font-weight:650;
  letter-spacing:.01em;
}
.page-cast .tp-media-book-button>b{
  justify-self:end;
  font-size:34px;
  line-height:1;
  font-weight:350;
}

@media(max-width:940px){
  .page-cast .container.tp-shell{width:min(var(--tp-max),calc(100% - 36px))!important}
  .page-cast .tp-main-grid{grid-template-columns:1fr}
  .page-cast .tp-visual-card{max-width:440px;width:100%;margin:0 auto}
  .page-cast .tp-profile-card{padding:26px 28px}
  .page-cast .tp-book-button{margin-top:22px}
  .page-cast .tp-week-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .page-cast .tp-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:720px){
  .page-cast .tp-page{padding:22px 0 42px}
  .page-cast .container.tp-shell{width:min(var(--tp-max),calc(100% - 24px))!important}
  .page-cast .tp-titlebar{align-items:stretch;flex-direction:column;gap:16px;margin-bottom:16px;padding-bottom:16px}
  .page-cast .tp-top-book{flex-basis:auto;width:100%;min-height:58px}
  .page-cast .tp-name-row h1{font-size:34px}
  .page-cast .tp-main-grid{gap:14px}
  .page-cast .tp-visual-card{padding:9px;border-radius:8px}
  .page-cast .tp-gallery-stage{border-radius:5px}
  .page-cast .tp-gallery-arrow{width:36px;height:52px;font-size:28px}
  .page-cast .tp-gallery-prev{left:8px}
  .page-cast .tp-gallery-next{right:8px}
  .page-cast .tp-thumbs button{flex-basis:60px;width:60px;height:74px}
  .page-cast .tp-profile-card{padding:20px 17px;border-radius:8px}
  .page-cast .tp-card-name-row h2{font-size:34px}
  .page-cast .tp-card-measures{font-size:14px}
  .page-cast .tp-fact,
  .page-cast .tp-fact-wide,
  .page-cast .tp-profile-message,
  .page-cast .tp-intro-block{grid-template-columns:124px minmax(0,1fr);gap:14px;padding:12px 4px}
  .page-cast .tp-fact small,
  .page-cast .tp-fact strong,
  .page-cast .tp-profile-message small,
  .page-cast .tp-profile-message p,
  .page-cast .tp-intro-block>small,
  .page-cast .tp-intro-block p{font-size:13px}
  .page-cast .tp-traits{margin:16px 4px 2px}
  .page-cast .tp-traits span{font-size:13px;padding:8px 11px}
  .page-cast .tp-book-button{min-height:68px}
  .page-cast .tp-book-button small{font-size:14px}
  .page-cast .tp-book-button strong{font-size:17px}
  .page-cast .tp-media-book-button{min-height:72px;grid-template-columns:34px minmax(0,1fr) 24px;gap:12px;padding:10px 18px}
  .page-cast .tp-media-book-icon .icon{width:27px;height:27px}
  .page-cast .tp-media-book-copy strong{font-size:18px}
  .page-cast .tp-media-book-copy small{font-size:10px}
  .page-cast .tp-section{margin-top:14px;padding:17px 13px 18px;border-radius:8px}
  .page-cast .tp-section-heading{align-items:flex-start;flex-direction:column;gap:7px;margin-bottom:13px;padding-bottom:12px}
  .page-cast .tp-section-heading h2{font-size:17px}
  .page-cast .tp-section-heading p{text-align:left}
  .page-cast .tp-week-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .page-cast .tp-day-card{min-height:110px}
  .page-cast .tp-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
}

@media(max-width:430px){
  .page-cast .container.tp-shell{width:calc(100% - 20px)!important}
  .page-cast .tp-name-row{gap:5px 10px}
  .page-cast .tp-name-row h1{font-size:30px}
  .page-cast .tp-roman-name{font-size:9px}
  .page-cast .tp-measures{font-size:11px}
  .page-cast .tp-profile-card{padding:18px 13px}
  .page-cast .tp-card-name-row{gap:7px 12px}
  .page-cast .tp-card-name-row h2{font-size:31px}
  .page-cast .tp-card-name-row span{font-size:11px}
  .page-cast .tp-card-measures{margin-top:13px;font-size:15px}
  .page-cast .tp-fact,
  .page-cast .tp-fact-wide,
  .page-cast .tp-profile-message,
  .page-cast .tp-intro-block{grid-template-columns:108px minmax(0,1fr);gap:10px;padding:11px 3px}
  .page-cast .tp-fact small,
  .page-cast .tp-profile-message small,
  .page-cast .tp-intro-block>small{font-size:12px}
  .page-cast .tp-traits span{font-size:13px}
  .page-cast .tp-media-book-button{grid-template-columns:30px minmax(0,1fr) 20px;gap:9px;padding:10px 13px}
  .page-cast .tp-media-book-copy strong{font-size:16px}
  .page-cast .tp-media-book-copy small{font-size:9px}
  .page-cast .tp-media-book-button>b{font-size:29px}
  .page-cast .tp-media-grid{gap:6px}
}

/* =========================================================
   Profile refinement — CTA stability + readable profile card
   Keep these overrides at the end of the file so global theme
   anchor/typography rules cannot flatten the profile UI.
   ========================================================= */

/* Larger, more balanced typography inside the information card. */
.page-cast .tp-profile-card{
  font-size:14px;
  line-height:1.55;
}
.page-cast .tp-profile-card .tp-card-name-row h2{
  font-size:clamp(32px,2.7vw,40px);
  line-height:1.1;
}
.page-cast .tp-profile-card .tp-card-name-row span{
  font-size:13px;
  line-height:1.2;
}
.page-cast .tp-profile-card .tp-card-measures{
  margin-top:14px;
  font-size:18px;
  line-height:1.4;
}
.page-cast .tp-profile-card .tp-fact,
.page-cast .tp-profile-card .tp-fact-wide{
  grid-template-columns:136px minmax(0,1fr);
  gap:16px;
  padding:9px 5px;
}
.page-cast .tp-profile-card .tp-fact small{
  font-size:13.5px;
  line-height:1.45;
}
.page-cast .tp-profile-card .tp-fact strong{
  font-size:14px;
  line-height:1.55;
}

/* Message is intentionally a highlighted block instead of looking
   like a broken continuation of the facts table. */
.page-cast .tp-profile-card .tp-profile-message{
  display:grid;
  grid-template-columns:136px minmax(0,1fr);
  align-items:start;
  gap:16px;
  margin:14px 0 0;
  padding:12px 12px 13px;
  border:1px solid rgba(220,255,0,.18);
  border-left:3px solid #dcff00;
  border-radius:6px;
  background:linear-gradient(90deg,rgba(220,255,0,.055),rgba(255,255,255,.018));
}
.page-cast .tp-profile-card .tp-profile-message small{
  display:block;
  margin:0;
  color:#dcff00;
  font-size:13.5px;
  line-height:1.45;
  font-weight:900;
  letter-spacing:.01em;
}
.page-cast .tp-profile-card .tp-profile-message p{
  margin:0;
  color:#f4f3eb;
  font-size:14px;
  line-height:1.65;
  font-weight:550;
  overflow-wrap:anywhere;
}

.page-cast .tp-profile-card .tp-intro-block{
  grid-template-columns:136px minmax(0,1fr);
  gap:16px;
  padding:10px 5px;
}
.page-cast .tp-profile-card .tp-intro-block>small,
.page-cast .tp-profile-card .tp-intro-block p{
  font-size:14px;
}
.page-cast .tp-profile-card .tp-intro-block p{
  line-height:1.65;
}
.page-cast .tp-profile-card .tp-traits span{
  font-size:13px;
  padding:7px 10px 8px;
}

/* Explicit space between therapist introduction and booking CTA. */
.page-cast .tp-profile-card .tp-book-button{
  margin-top:24px!important;
  min-height:70px;
}
.page-cast .tp-profile-card .tp-intro-block + .tp-book-button{
  margin-top:28px!important;
}
.page-cast .tp-profile-card .tp-book-button small{font-size:14px}
.page-cast .tp-profile-card .tp-book-button strong{font-size:17px}

/* Gallery-bottom WEB reservation button.
   Use explicit !important values because global public styles also
   target anchors and can otherwise make this CTA look like plain text. */
.page-cast a.tp-media-book-button,
.page-cast .tp-shell > a.tp-media-book-button{
  box-sizing:border-box!important;
  width:100%!important;
  min-height:86px!important;
  display:grid!important;
  grid-template-columns:46px minmax(0,1fr) 46px!important;
  align-items:center!important;
  gap:20px!important;
  margin:24px 0 0!important;
  padding:13px 30px!important;
  border:1px solid #e4ff00!important;
  border-radius:7px!important;
  background:linear-gradient(90deg,#d7ed00 0%,#efff18 48%,#d7ed00 100%)!important;
  color:#101208!important;
  text-decoration:none!important;
  font-family:inherit!important;
  line-height:1.2!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.16) inset,0 8px 24px rgba(0,0,0,.18)!important;
  cursor:pointer!important;
  overflow:hidden!important;
  opacity:1!important;
  visibility:visible!important;
  transition:filter .18s ease,transform .18s ease,box-shadow .18s ease!important;
}
.page-cast a.tp-media-book-button:hover,
.page-cast .tp-shell > a.tp-media-book-button:hover{
  background:linear-gradient(90deg,#e1f600 0%,#f4ff35 48%,#e1f600 100%)!important;
  color:#101208!important;
  text-decoration:none!important;
  filter:brightness(1.02)!important;
  transform:translateY(-1px)!important;
  box-shadow:0 12px 30px rgba(206,239,0,.14),0 0 0 1px rgba(255,255,255,.2) inset!important;
}
.page-cast a.tp-media-book-button .tp-media-book-icon{
  width:46px!important;
  height:46px!important;
  display:grid!important;
  place-items:center!important;
  color:#101208!important;
}
.page-cast a.tp-media-book-button .tp-media-book-icon .icon{
  width:33px!important;
  height:33px!important;
  display:block!important;
}
.page-cast a.tp-media-book-button .tp-media-book-copy{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  text-align:center!important;
  color:#101208!important;
}
.page-cast a.tp-media-book-button .tp-media-book-copy strong{
  display:block!important;
  margin:0!important;
  color:#101208!important;
  font-size:23px!important;
  line-height:1.2!important;
  font-weight:750!important;
  letter-spacing:.02em!important;
}
.page-cast a.tp-media-book-button .tp-media-book-copy small{
  display:block!important;
  margin:0!important;
  color:#20230c!important;
  font-size:12px!important;
  line-height:1.45!important;
  font-weight:700!important;
}
.page-cast a.tp-media-book-button>b{
  display:block!important;
  justify-self:center!important;
  margin:0!important;
  color:#101208!important;
  font-size:38px!important;
  line-height:1!important;
  font-weight:350!important;
}

@media(max-width:720px){
  .page-cast .tp-profile-card{
    font-size:14px;
  }
  .page-cast .tp-profile-card .tp-card-name-row h2{font-size:32px}
  .page-cast .tp-profile-card .tp-card-name-row span{font-size:13px}
  .page-cast .tp-profile-card .tp-card-measures{font-size:17px}
  .page-cast .tp-profile-card .tp-fact,
  .page-cast .tp-profile-card .tp-fact-wide,
  .page-cast .tp-profile-card .tp-intro-block{
    grid-template-columns:116px minmax(0,1fr);
    gap:12px;
    padding:10px 4px;
  }
  .page-cast .tp-profile-card .tp-fact small,
  .page-cast .tp-profile-card .tp-fact strong,
  .page-cast .tp-profile-card .tp-intro-block>small,
  .page-cast .tp-profile-card .tp-intro-block p{
    font-size:13px;
  }
  .page-cast .tp-profile-card .tp-profile-message{
    grid-template-columns:116px minmax(0,1fr);
    gap:12px;
    margin-top:13px;
    padding:11px 10px;
  }
  .page-cast .tp-profile-card .tp-profile-message small,
  .page-cast .tp-profile-card .tp-profile-message p{font-size:13px}
  .page-cast .tp-profile-card .tp-traits span{font-size:13px}
  .page-cast .tp-profile-card .tp-book-button{margin-top:22px!important}
  .page-cast .tp-profile-card .tp-intro-block + .tp-book-button{margin-top:26px!important}

  .page-cast a.tp-media-book-button,
  .page-cast .tp-shell > a.tp-media-book-button{
    min-height:76px!important;
    grid-template-columns:36px minmax(0,1fr) 36px!important;
    gap:12px!important;
    padding:11px 18px!important;
  }
  .page-cast a.tp-media-book-button .tp-media-book-icon{
    width:36px!important;
    height:36px!important;
  }
  .page-cast a.tp-media-book-button .tp-media-book-icon .icon{
    width:28px!important;
    height:28px!important;
  }
  .page-cast a.tp-media-book-button .tp-media-book-copy strong{font-size:18px!important}
  .page-cast a.tp-media-book-button .tp-media-book-copy small{font-size:10px!important}
  .page-cast a.tp-media-book-button>b{font-size:31px!important}
}

@media(max-width:480px){
  .page-cast .tp-profile-card .tp-fact,
  .page-cast .tp-profile-card .tp-fact-wide,
  .page-cast .tp-profile-card .tp-intro-block,
  .page-cast .tp-profile-card .tp-profile-message{
    grid-template-columns:108px minmax(0,1fr);
    gap:11px;
  }
  .page-cast .tp-profile-card .tp-fact small,
  .page-cast .tp-profile-card .tp-fact strong,
  .page-cast .tp-profile-card .tp-intro-block>small,
  .page-cast .tp-profile-card .tp-intro-block p,
  .page-cast .tp-profile-card .tp-profile-message small,
  .page-cast .tp-profile-card .tp-profile-message p{font-size:13px}

  .page-cast a.tp-media-book-button,
  .page-cast .tp-shell > a.tp-media-book-button{
    grid-template-columns:31px minmax(0,1fr) 31px!important;
    gap:9px!important;
    padding:10px 13px!important;
  }
  .page-cast a.tp-media-book-button .tp-media-book-icon{
    width:31px!important;
    height:31px!important;
  }
  .page-cast a.tp-media-book-button .tp-media-book-icon .icon{
    width:25px!important;
    height:25px!important;
  }
  .page-cast a.tp-media-book-button .tp-media-book-copy strong{font-size:16px!important}
  .page-cast a.tp-media-book-button .tp-media-book-copy small{font-size:9px!important}
  .page-cast a.tp-media-book-button>b{font-size:28px!important}
}


/* =========================================================
   Profile title hero — match セラピスト一覧 page hero
   ========================================================= */
.page-cast .tp-page{
  padding-top:0!important;
}
.page-cast .tp-titlebar{
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  height:190px!important;
  min-height:190px!important;
  margin:0 0 30px!important;
  padding:0!important;
  border:0!important;
  border-bottom:1px solid #332d21!important;
  border-radius:0!important;
  background:radial-gradient(circle at 80% 0,#2c2619 0,#111 42%,#090909 100%)!important;
  color:#eee8d9!important;
  overflow:hidden!important;
}
.page-cast .tp-titlebar::after{display:none!important}
.page-cast .tp-titlebar-inner{
  box-sizing:border-box!important;
  width:min(1180px,calc(100% - 36px))!important;
  max-width:1180px!important;
  height:100%!important;
  margin-inline:auto!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:32px!important;
}
.page-cast .tp-titlebar .tp-title-copy,
.page-cast .tp-titlebar .tp-top-book{position:relative;z-index:1}
.page-cast .tp-titlebar .tp-eyebrow{
  display:block!important;
  margin:0!important;
  color:#c3a55f!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.18em!important;
}
.page-cast .tp-titlebar .tp-name-row{
  display:flex!important;
  align-items:baseline!important;
  flex-wrap:wrap!important;
  gap:8px 16px!important;
}
.page-cast .tp-titlebar .tp-name-row h1{
  margin:5px 0!important;
  color:#e5ce95!important;
  font-family:Arial,Helvetica,"Noto Sans JP",sans-serif!important;
  font-size:clamp(30px,3.4vw,48px)!important;
  line-height:1.15!important;
  font-weight:950!important;
  letter-spacing:-.035em!important;
}
.page-cast .tp-titlebar .tp-roman-name{
  color:#bdb5a3!important;
  font-size:11px!important;
  letter-spacing:.12em!important;
}
.page-cast .tp-titlebar .tp-measures{
  margin:0!important;
  color:#bdb5a3!important;
  font-size:12px!important;
  line-height:1.6!important;
}
.page-cast .tp-titlebar .tp-measures span{color:#6e6655!important}
.page-cast .tp-titlebar .tp-top-book{
  flex:0 0 290px!important;
}

/* Keep both columns the same height, then use the left remainder for photo slides. */
@media(min-width:941px){
  .page-cast .tp-main-grid{align-items:stretch!important}
  .page-cast .tp-visual-card{display:flex!important;flex-direction:column!important;height:100%!important}
  .page-cast .tp-gallery{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;min-height:0!important}
  .page-cast .tp-slide-selector{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;min-height:190px!important}
  .page-cast .tp-thumbs{flex:1 1 auto!important;min-height:0!important}
}

.page-cast .tp-slide-selector{
  margin-top:14px;
  padding-top:12px;
  border-top:1px solid #454439;
}
.page-cast .tp-slide-selector-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.page-cast .tp-slide-selector-heading span{
  color:var(--tp-accent);
  font-size:10px;
  line-height:1;
  font-weight:900;
  letter-spacing:.18em;
}
.page-cast .tp-slide-selector-heading small{
  color:#8f8e84;
  font-size:9px;
  line-height:1.3;
}
.page-cast .tp-thumbs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-rows:minmax(105px,1fr)!important;
  gap:8px!important;
  width:100%!important;
  margin:0!important;
  padding:0 2px 2px 0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  scrollbar-width:thin;
}
.page-cast .tp-thumbs button{
  position:relative!important;
  flex:none!important;
  width:100%!important;
  height:auto!important;
  min-height:105px!important;
  padding:2px!important;
  border:1px solid #4a493e!important;
  border-radius:5px!important;
  background:#11110e!important;
  opacity:.62!important;
  overflow:hidden!important;
  cursor:pointer!important;
  transition:opacity .18s ease,border-color .18s ease,transform .18s ease!important;
}
.page-cast .tp-thumbs button:hover{transform:translateY(-1px)}
.page-cast .tp-thumbs button.active,
.page-cast .tp-thumbs button:hover{opacity:1!important;border-color:var(--tp-accent)!important}
.page-cast .tp-thumbs button img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:101px!important;
  object-fit:cover!important;
  object-position:center top!important;
}
.page-cast .tp-thumbs button>span{
  position:absolute;
  right:6px;
  bottom:5px;
  min-width:24px;
  padding:3px 5px;
  border-radius:999px;
  background:rgba(8,8,7,.72);
  color:#efeee6;
  font-size:8px;
  line-height:1;
  font-weight:850;
  text-align:center;
}
.page-cast .tp-thumbs button.active>span{background:var(--tp-accent);color:#11140b}

@media(max-width:940px){
  .page-cast .tp-titlebar{min-height:0!important;padding:26px 28px!important}
  .page-cast .tp-titlebar::after{width:190px;height:190px;right:-25px;top:-64px}
  .page-cast .tp-slide-selector{min-height:0!important}
  .page-cast .tp-thumbs{
    display:flex!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
  }
  .page-cast .tp-thumbs button{
    flex:0 0 82px!important;
    width:82px!important;
    height:104px!important;
    min-height:104px!important;
  }
  .page-cast .tp-thumbs button img{min-height:0!important}
}

@media(max-width:720px){
  .page-cast .tp-titlebar{
    align-items:stretch!important;
    flex-direction:column!important;
    gap:18px!important;
    padding:24px 20px!important;
  }
  .page-cast .tp-titlebar .tp-name-row h1{font-size:36px!important}
  .page-cast .tp-titlebar .tp-top-book{width:100%!important}
  .page-cast .tp-slide-selector-heading{align-items:flex-end}
  .page-cast .tp-thumbs button{flex-basis:72px!important;width:72px!important;height:90px!important;min-height:90px!important}
}

@media(max-width:430px){
  .page-cast .tp-titlebar{padding:21px 16px!important}
  .page-cast .tp-titlebar .tp-name-row h1{font-size:32px!important}
  .page-cast .tp-slide-selector-heading small{font-size:8px}
}


/* =========================================================
   PHOTO SELECT — independent thumbnail selector card
   ========================================================= */
.page-cast .tp-visual-card{
  height:auto!important;
}
.page-cast .tp-gallery{
  height:auto!important;
}
.page-cast .tp-photo-picker{
  display:block!important;
  flex:none!important;
  min-height:0!important;
  margin:18px 0 0!important;
  padding:16px!important;
  border:1px solid #47463a!important;
  border-radius:8px!important;
  background:linear-gradient(180deg,#1a1a16 0%,#10100d 100%)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.18)!important;
}
.page-cast .tp-photo-picker .tp-slide-selector-heading{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:18px!important;
  margin:0 0 13px!important;
  padding:0 0 11px!important;
  border-bottom:1px solid #3d3c32!important;
}
.page-cast .tp-photo-picker .tp-slide-selector-heading>div{
  display:grid!important;
  gap:5px!important;
}
.page-cast .tp-photo-picker .tp-slide-selector-heading span{
  color:var(--tp-accent)!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:.2em!important;
}
.page-cast .tp-photo-picker .tp-slide-selector-heading strong{
  color:#f0efe7!important;
  font-size:15px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.04em!important;
}
.page-cast .tp-photo-picker .tp-slide-selector-heading small{
  color:#97968d!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.page-cast .tp-photo-picker .tp-slide-selector-heading small b{
  color:var(--tp-accent)!important;
  font-size:17px!important;
  font-weight:900!important;
}
.page-cast .tp-photo-picker .tp-thumbs{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-auto-rows:auto!important;
  gap:9px!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
}
.page-cast .tp-photo-picker .tp-thumbs button{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:4/5!important;
  padding:3px!important;
  border:1px solid #49483d!important;
  border-radius:6px!important;
  outline:0!important;
  background:#0c0c0a!important;
  opacity:.66!important;
  overflow:hidden!important;
  cursor:pointer!important;
  transform:none!important;
  box-shadow:none!important;
  transition:opacity .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease!important;
}
.page-cast .tp-photo-picker .tp-thumbs button:hover{
  opacity:.92!important;
  border-color:#777568!important;
  transform:translateY(-1px)!important;
}
.page-cast .tp-photo-picker .tp-thumbs button.active,
.page-cast .tp-photo-picker .tp-thumbs button[aria-pressed="true"]{
  opacity:1!important;
  border-color:var(--tp-accent)!important;
  box-shadow:0 0 0 2px var(--tp-accent) inset,0 0 0 1px rgba(205,255,0,.18)!important;
}
.page-cast .tp-photo-picker .tp-thumbs button img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
  object-position:center top!important;
  border-radius:3px!important;
  filter:saturate(.82) brightness(.82)!important;
  transition:filter .18s ease,transform .22s ease!important;
}
.page-cast .tp-photo-picker .tp-thumbs button:hover img,
.page-cast .tp-photo-picker .tp-thumbs button.active img,
.page-cast .tp-photo-picker .tp-thumbs button[aria-pressed="true"] img{
  filter:none!important;
}
.page-cast .tp-photo-picker .tp-thumbs button.active img,
.page-cast .tp-photo-picker .tp-thumbs button[aria-pressed="true"] img{
  transform:scale(1.018)!important;
}
.page-cast .tp-photo-picker .tp-thumb-number{
  position:absolute!important;
  right:7px!important;
  bottom:7px!important;
  left:auto!important;
  top:auto!important;
  min-width:26px!important;
  padding:4px 6px!important;
  border-radius:999px!important;
  background:rgba(8,8,7,.78)!important;
  color:#f0efe7!important;
  font-size:9px!important;
  line-height:1!important;
  font-weight:900!important;
  text-align:center!important;
}
.page-cast .tp-photo-picker .tp-thumbs button.active .tp-thumb-number,
.page-cast .tp-photo-picker .tp-thumbs button[aria-pressed="true"] .tp-thumb-number{
  background:var(--tp-accent)!important;
  color:#11140b!important;
}

@media(min-width:941px){
  .page-cast .tp-main-grid{
    align-items:stretch!important;
  }
  .page-cast .tp-visual-card,
  .page-cast .tp-profile-card{
    height:100%!important;
    align-self:stretch!important;
  }
  .page-cast .tp-visual-card{
    display:flex!important;
    flex-direction:column!important;
  }
  .page-cast .tp-gallery{
    display:flex!important;
    flex-direction:column!important;
    flex:1 1 auto!important;
    height:100%!important;
    min-height:0!important;
  }
  .page-cast .tp-gallery-stage{
    flex:0 0 auto!important;
  }
  .page-cast .tp-photo-picker,
  .page-cast .tp-slide-selector{
    display:flex!important;
    flex-direction:column!important;
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
  }
  .page-cast .tp-photo-picker .tp-thumbs{
    align-content:start!important;
  }
}
@media(max-width:940px){
  .page-cast .tp-photo-picker .tp-thumbs{
    grid-template-columns:repeat(4,minmax(78px,1fr))!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding-bottom:4px!important;
  }
  .page-cast .tp-photo-picker .tp-thumbs button{
    min-width:78px!important;
  }
}
@media(max-width:620px){
  .page-cast .tp-photo-picker{padding:12px!important;margin-top:12px!important}
  .page-cast .tp-photo-picker .tp-slide-selector-heading{margin-bottom:10px!important;padding-bottom:9px!important}
  .page-cast .tp-photo-picker .tp-slide-selector-heading strong{font-size:14px!important}
  .page-cast .tp-photo-picker .tp-thumbs{
    display:flex!important;
    gap:8px!important;
  }
  .page-cast .tp-photo-picker .tp-thumbs button{
    flex:0 0 76px!important;
    width:76px!important;
    min-width:76px!important;
    height:96px!important;
    aspect-ratio:auto!important;
  }
  .page-cast .tp-photo-picker .tp-thumb-number{font-size:8px!important;right:5px!important;bottom:5px!important}
}

/* Single-photo profiles still keep the independent PHOTO SELECT card visible. */
.page-cast .tp-photo-picker.is-single-photo .tp-thumbs{
  grid-template-columns:minmax(110px,150px)!important;
  justify-content:start!important;
}
.page-cast .tp-photo-picker.is-single-photo .tp-thumbs button{
  width:100%!important;
  max-width:150px!important;
}
@media(max-width:620px){
  .page-cast .tp-photo-picker.is-single-photo .tp-thumbs{
    display:flex!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-thumbs button{
    flex:0 0 76px!important;
    width:76px!important;
    max-width:76px!important;
  }
}


/* Final responsive rules for the list-page-style profile hero. */
@media(max-width:940px){
  .page-cast .tp-titlebar{height:auto!important;min-height:190px!important;margin-bottom:22px!important;padding:0!important}
  .page-cast .tp-titlebar-inner{
    width:min(100% - 30px,1180px)!important;
    min-height:190px!important;
    padding:24px 0!important;
    align-items:center!important;
    flex-direction:column!important;
    justify-content:center!important;
    gap:16px!important;
  }
  .page-cast .tp-titlebar .tp-title-copy{width:100%!important}
  .page-cast .tp-titlebar .tp-top-book{width:100%!important;flex:0 0 auto!important}
}
@media(max-width:620px){
  .page-cast .tp-titlebar{min-height:190px!important;padding:0!important}
  .page-cast .tp-titlebar-inner{width:min(100% - 24px,1180px)!important;padding:22px 0!important}
  .page-cast .tp-titlebar .tp-name-row h1{font-size:clamp(30px,10vw,40px)!important}
  .page-cast .tp-titlebar .tp-roman-name{font-size:10px!important}
  .page-cast .tp-titlebar .tp-measures{font-size:11px!important}
}

/* =========================================================
   Final height tuning — compact single-photo selector and
   vertically balanced therapist information card.
   ========================================================= */
@media(min-width:941px){
  /* A single thumbnail must stay visible, but it should never absorb
     the spare height of the left column. */
  .page-cast .tp-photo-picker.is-single-photo,
  .page-cast .tp-slide-selector.is-single-photo{
    flex:0 0 auto!important;
    height:auto!important;
    min-height:0!important;
    padding:12px 14px!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-slide-selector-heading{
    margin-bottom:9px!important;
    padding-bottom:8px!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-slide-selector-heading>div{
    gap:3px!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-slide-selector-heading span{
    font-size:9px!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-slide-selector-heading strong{
    font-size:13px!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-slide-selector-heading small{
    font-size:10px!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-slide-selector-heading small b{
    font-size:14px!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-thumbs{
    grid-template-columns:100px!important;
    flex:0 0 auto!important;
    align-content:start!important;
  }
  .page-cast .tp-photo-picker.is-single-photo .tp-thumbs button{
    width:100px!important;
    max-width:100px!important;
    aspect-ratio:4/5!important;
  }

  /* Let the profile content itself use the available card height.
     The facts rows share any spare space instead of leaving a dead area
     at the bottom of the card. */
  .page-cast .tp-profile-card{
    display:flex!important;
    flex-direction:column!important;
  }
  .page-cast .tp-profile-card .tp-card-identity{
    flex:0 0 auto!important;
  }
  .page-cast .tp-profile-card .tp-facts{
    display:flex!important;
    flex:1 1 auto!important;
    min-height:0!important;
    flex-direction:column!important;
  }
  .page-cast .tp-profile-card .tp-fact,
  .page-cast .tp-profile-card .tp-fact-wide{
    flex:1 1 0!important;
    align-items:center!important;
    min-height:42px!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }
  .page-cast .tp-profile-card .tp-profile-message,
  .page-cast .tp-profile-card .tp-traits,
  .page-cast .tp-profile-card .tp-intro-block,
  .page-cast .tp-profile-card .tp-book-button{
    flex:0 0 auto!important;
  }
  .page-cast .tp-profile-card .tp-book-button{
    margin-top:16px!important;
  }
  .page-cast .tp-profile-card .tp-intro-block + .tp-book-button{
    margin-top:18px!important;
  }
}

/* Keep Profile action buttons on the same rounded geometry as the public site. */
.page-cast .tp-book-button,
.page-cast .tp-media-book-button,
.page-cast .tp-shell > a.tp-media-book-button{
  border-radius:8px!important;
}
.page-cast .tp-top-book{
  border-radius:8px!important;
}
.page-cast button,
.page-cast .tp-top-book,
.page-cast .tp-book-button,
.page-cast .tp-media-book-button{
  border-radius:8px!important;
}

/* Final cast-page palette override. */
.page-cast .tp-page{
  --tp-max:840px!important;
  --tp-accent:#c4a15a!important;
  background:
    radial-gradient(circle at 78% -10%,rgba(196,161,90,.08),transparent 30%),
    linear-gradient(180deg,#15120e 0,#0c0b09 100%)!important;
}
.page-cast .tp-card-name-row h2,
.page-cast .tp-fact small,
.page-cast .tp-profile-message small,
.page-cast .tp-intro-block>small,
.page-cast .tp-section-heading span,
.page-cast .tp-gallery-count b,
.page-cast .tp-day-card.active>em{
  color:#d7b45a!important;
  text-shadow:none!important;
}
.page-cast .tp-profile-card{
  border-color:#6b5731!important;
  background:
    radial-gradient(circle at 88% 12%,rgba(196,161,90,.08),transparent 28%),
    linear-gradient(135deg,#211b12 0%,#18140f 48%,#12110d 100%)!important;
}
.page-cast .tp-traits span{
  border-color:#806735!important;
  background:rgba(30,23,14,.72)!important;
}
.page-cast .tp-book-button{
  border-color:#c4a15a!important;
  background:linear-gradient(90deg,#8f7138 0%,#c4a15a 52%,#a98645 100%)!important;
  color:#15130e!important;
  box-shadow:none!important;
}
.page-cast .tp-book-button:hover{box-shadow:0 10px 24px rgba(196,161,90,.12)!important}
.page-cast .tp-day-card.active{
  border-color:#c4a15a!important;
  box-shadow:0 0 0 1px rgba(196,161,90,.12) inset!important;
}
.page-cast .tp-day-card.active>strong{
  background:#c4a15a!important;
  color:#15130e!important;
}
.page-cast .tp-gallery-arrow:hover,
.page-cast .tp-thumbs button.active,
.page-cast .tp-thumbs button:hover{
  border-color:#c4a15a!important;
}
.page-cast .tp-profile-card .tp-profile-message{
  border-color:rgba(196,161,90,.24)!important;
  border-left-color:#c4a15a!important;
  background:linear-gradient(90deg,rgba(196,161,90,.08),rgba(255,255,255,.018))!important;
}
.page-cast a.tp-media-book-button,
.page-cast .tp-shell > a.tp-media-book-button{
  border-color:#c4a15a!important;
  background:linear-gradient(90deg,#8f7138 0%,#c4a15a 48%,#a98645 100%)!important;
  color:#15130e!important;
  box-shadow:none!important;
}
.page-cast a.tp-media-book-button:hover,
.page-cast .tp-shell > a.tp-media-book-button:hover{
  background:linear-gradient(90deg,#a98645 0%,#d7b45a 48%,#b9924d 100%)!important;
  color:#15130e!important;
}

/* Jun profile layout: photo-led editorial composition with a separate stats panel. */
.page-cast .tp-page{
  margin-top:0!important;
  padding:24px 0 56px!important;
  background:
    radial-gradient(circle at 12% 8%,rgba(196,161,90,.08),transparent 28%),
    linear-gradient(180deg,#17140e 0,#0c0b09 100%)!important;
}
.page-cast .tp-profile-toolbar{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  min-height:32px!important;
  margin-bottom:16px!important;
}
.page-cast .tp-back-link{
  display:inline-flex!important;
  align-items:center!important;
  gap:6px!important;
  color:#eee9df!important;
  font-size:12px!important;
  font-weight:700!important;
}
.page-cast .tp-back-link:first-letter{color:#d7b45a!important}
.page-cast .tp-back-link:hover{color:#d7b45a!important}
.page-cast .tp-toolbar-label{
  color:#d7b45a!important;
  font-size:9px!important;
  font-weight:900!important;
  letter-spacing:.2em!important;
}
.page-cast .tp-main-grid{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.55fr)!important;
  gap:18px!important;
}
.page-cast .tp-visual-card,
.page-cast .tp-profile-card{
  border-color:#4d4028!important;
  border-radius:7px!important;
  background:linear-gradient(145deg,#282116,#17130e)!important;
  box-shadow:0 14px 30px rgba(0,0,0,.18)!important;
}
.page-cast .tp-visual-card{padding:10px!important}
.page-cast .tp-gallery-stage{max-width:none!important;aspect-ratio:4/5!important;border-radius:5px!important}
.page-cast .tp-slide-selector,
.page-cast .tp-photo-picker{
  padding:10px 0 0!important;
  border:0!important;
  background:transparent!important;
}
.page-cast .tp-slide-selector-heading{display:none!important}
.page-cast .tp-thumbs{gap:7px!important;margin-top:0!important;padding:0!important}
.page-cast .tp-thumbs button{flex-basis:68px!important;width:68px!important;height:84px!important;border-color:#5b4b30!important;border-radius:3px!important}
.page-cast .tp-thumbs button.active{border-color:#d7b45a!important;box-shadow:0 0 0 1px rgba(215,180,90,.3)!important}
.page-cast .tp-profile-card{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(180px,.92fr)!important;
  align-items:start!important;
  gap:18px!important;
  padding:20px!important;
}
.page-cast .tp-profile-copy,
.page-cast .tp-facts-panel{min-width:0!important}
.page-cast .tp-profile-copy .tp-card-identity{padding:2px 4px 16px!important;border-bottom:1px solid #6b5731!important}
.page-cast .tp-profile-card .tp-card-name-row{display:block!important}
.page-cast .tp-profile-card .tp-card-name-row h2{
  color:#d7b45a!important;
  font-size:clamp(38px,4vw,56px)!important;
  line-height:.98!important;
  letter-spacing:.01em!important;
}
.page-cast .tp-profile-card .tp-card-name-row span{
  display:block!important;
  margin-top:8px!important;
  color:#f1ede3!important;
  font-size:15px!important;
  text-transform:none!important;
}
.page-cast .tp-profile-card .tp-card-measures{margin-top:18px!important;color:#f1ede3!important;font-size:17px!important}
.page-cast .tp-profile-card .tp-card-measures i{color:#a38c65!important}
.page-cast .tp-profile-card .tp-traits{margin:18px 0 20px!important;gap:8px!important}
.page-cast .tp-profile-card .tp-traits span{padding:8px 11px!important;border-color:#806735!important;background:rgba(28,22,14,.72)!important;color:#eee9df!important;font-size:12px!important}
.page-cast .tp-profile-card .tp-intro-block{
  display:block!important;
  margin:0!important;
  padding:16px 4px 0!important;
  border:0!important;
}
.page-cast .tp-profile-card .tp-intro-block>small{
  display:block!important;
  margin-bottom:12px!important;
  color:#d7b45a!important;
  font-size:14px!important;
  letter-spacing:.04em!important;
}
.page-cast .tp-profile-card .tp-intro-block p{color:#f1ede3!important;font-size:13px!important;line-height:1.9!important}
.page-cast .tp-facts-panel{
  padding:16px 14px!important;
  border:1px solid #4d4028!important;
  border-radius:6px!important;
  background:rgba(47,40,27,.72)!important;
}
.page-cast .tp-facts-heading{padding-bottom:12px!important;border-bottom:1px solid #c4a15a!important}
.page-cast .tp-facts-heading span{color:#d7b45a!important;font-size:16px!important;font-weight:900!important;letter-spacing:.02em!important}
.page-cast .tp-facts-panel .tp-facts{display:block!important}
.page-cast .tp-facts-panel .tp-fact{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;padding:10px 0!important;border-bottom:1px dotted rgba(215,180,90,.34)!important}
.page-cast .tp-facts-panel .tp-fact:last-child{border-bottom:0!important}
.page-cast .tp-facts-panel .tp-fact small{color:#f1ede3!important;font-size:12px!important;font-weight:600!important}
.page-cast .tp-facts-panel .tp-fact strong{color:#f1ede3!important;font-size:12px!important;text-align:right!important}
.page-cast .tp-profile-book-button{
  grid-column:1/-1!important;
  margin:0!important;
  min-height:76px!important;
  border-radius:5px!important;
}
.page-cast .tp-profile-book-button span{align-items:baseline!important;gap:10px!important}
.page-cast .tp-profile-book-button em{font-size:13px!important;font-style:normal!important;font-weight:700!important}
.page-cast .tp-media-section{display:block!important}
.page-cast .tp-section{margin-top:18px!important;padding:18px 20px 20px!important;border-color:#4d4028!important;border-radius:7px!important;background:linear-gradient(145deg,#242015,#17130e)!important}
.page-cast .tp-section-heading{margin-bottom:14px!important;padding-bottom:11px!important;border-color:rgba(215,180,90,.28)!important}
.page-cast .tp-section-heading span{color:#d7b45a!important;font-size:14px!important;letter-spacing:.02em!important}
.page-cast .tp-section-heading h2{font-size:13px!important;color:#eee9df!important}
.page-cast .tp-section-heading p{color:#b6aa91!important}
.page-cast .tp-week-grid{gap:0!important;border:1px solid #5b4b30!important;border-radius:4px!important;overflow:hidden!important}
.page-cast .tp-day-card{min-height:118px!important;padding:11px 6px 8px!important;border:0!important;border-right:1px solid #5b4b30!important;border-radius:0!important;background:rgba(22,19,14,.7)!important}
.page-cast .tp-day-card:last-child{border-right:0!important}
.page-cast .tp-day-date b{color:#f1ede3!important;font-size:13px!important}
.page-cast .tp-day-date small{background:transparent!important;color:#d7b45a!important;font-size:9px!important}
.page-cast .tp-day-card>strong{min-height:54px!important;background:transparent!important;color:#f1ede3!important;font-size:13px!important;line-height:1.45!important}
.page-cast .tp-day-card>em{color:#a89574!important}
.page-cast .tp-day-card.active{border-color:#5b4b30!important;background:rgba(196,161,90,.08)!important}
.page-cast .tp-day-card.active>strong{background:transparent!important;color:#d7b45a!important}
.page-cast .tp-day-card.active>em{color:#d7b45a!important}
.page-cast .tp-media-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important}
.page-cast .tp-media-item{border-color:#5b4b30!important;border-radius:4px!important}

@media(max-width:940px){
  .page-cast .tp-profile-card{grid-template-columns:minmax(0,1.05fr) minmax(220px,.95fr)!important}
}
@media(max-width:720px){
  .page-cast .tp-profile-toolbar{align-items:flex-start!important;flex-direction:column!important;gap:8px!important;margin-bottom:12px!important}
  .page-cast .tp-main-grid{grid-template-columns:1fr!important}
  .page-cast .tp-profile-card{grid-template-columns:1fr!important;gap:14px!important;padding:14px!important}
  .page-cast .tp-facts-panel{padding:14px 12px!important}
  .page-cast .tp-section{padding:15px 12px 16px!important}
  .page-cast .tp-week-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .page-cast .tp-day-card{border-right:1px solid #5b4b30!important;border-bottom:1px solid #5b4b30!important}
  .page-cast .tp-day-card:nth-child(2n){border-right:0!important}
  .page-cast .tp-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Keep the gallery hidden until its access flow is ready. */
.page-cast .tp-media-section{display:none!important}

/* Therapist profile: equal three-column layout. */
.page-cast .tp-main-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:18px!important;
}

.page-cast .tp-visual-card,
.page-cast .tp-profile-card,
.page-cast .tp-facts-panel{
  height:100%!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

.page-cast .tp-visual-card{
  max-width:none!important;
  margin:0!important;
}

/* The middle column is content-only; BASIC STATS is a separate right card. */
.page-cast .tp-profile-card{
  display:block!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}

.page-cast .tp-profile-copy{
  height:100%!important;
  padding:20px 4px!important;
  box-sizing:border-box!important;
}

.page-cast .tp-facts-panel{
  align-self:stretch!important;
  padding:16px 14px!important;
  border:1px solid #4d4028!important;
  border-radius:6px!important;
  background:rgba(47,40,27,.72)!important;
  box-shadow:0 14px 30px rgba(0,0,0,.18)!important;
}

.page-cast .tp-profile-book-button{
  margin-top:22px!important;
  grid-column:auto!important;
}

@media(max-width:940px){
  .page-cast .tp-main-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media(max-width:720px){
  .page-cast .tp-main-grid{
    grid-template-columns:1fr!important;
  }

  .page-cast .tp-profile-copy{
    height:auto!important;
    padding:0!important;
  }

  .page-cast .tp-visual-card,
  .page-cast .tp-profile-card,
  .page-cast .tp-facts-panel{
    height:auto!important;
  }
}
