@charset "UTF-8";
/* CSS Document */

/* セラピスト 名前・年齢（ヘッダーCSS） */
.therapist-profile-head {
  text-align: center;
  margin: 24px 0 32px;
}

.therapist-name {
  font-family: "Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-size: clamp(22px, 4vw, 30px);
  letter-spacing: 0.08em;
  line-height: 1.3;
}

.therapist-age {
  margin-top: 6px;
  font-family: "Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-size: 15px;
  color: #666;
}


/* 出勤時間 */
.therapist-worktime {
  text-align: center;
  margin-top: 12px;
  font-family: "Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
}

.worktime-label {
  display: block;
  font-size: 12px;
  letter-spacing: 0.15em;
  color: #888;
}

.worktime-value {
  font-size: 16px;
  letter-spacing: 0.08em;
}

/* トップページに戻る ボタン */
/* 中央揃え用ラッパー（Elementorの列に付けてもOK） */
.back-to-top-wrap {
  display: flex;
  justify-content: center;
  margin: 24px 0 40px;
}

/* ミニマルボタン */
.back-to-top-minimal {
  display: inline-block;
  padding: 10px 22px;

  border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.35);

  background: rgba(0,0,0,0.35);
  color: #fff;
  text-decoration: none;

  font-family: "Hiragino Mincho ProN","Yu Mincho","游明朝",serif;
  font-size: 13px;
  letter-spacing: 0.12em;

  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    opacity 0.25s ease;
}

/* hover */
.back-to-top-minimal:hover {
  background: rgba(0,0,0,0.55);
  border-color: rgba(255,255,255,0.55);
  opacity: 0.95;
}

/* active */
.back-to-top-minimal:active {
  opacity: 0.85;
}

/* ダーク背景以外でも使えるように */
@media (prefers-color-scheme: light) {
  .back-to-top-minimal {
    background: rgba(0,0,0,0.08);
    color: #333;
    border-color: rgba(0,0,0,0.25);
  }
  .back-to-top-minimal:hover {
    background: rgba(0,0,0,0.14);
  }
}

/* セラピスト名前 */
.elegant-mincho {
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Noto Serif JP",
    "MS PMincho",
    serif;

  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.6;

  color: #111;

  /* 上品さを出す微調整 */
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "palt" 1;
}


/* 本日の出勤一覧 */
/* PC：3列 / タブレット：2列 / モバイル：1列 */
.tw-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:18px;
}
@media (max-width: 900px){
  .tw-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px){
  .tw-grid{ grid-template-columns: 1fr; }
}

/* カード */
.tw-card{
  display:block;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  text-decoration:none;
  border:1px solid #eee;
  box-shadow:0 10px 25px rgba(0,0,0,.06);
}

/* 写真 */
.tw-photo{ padding:14px 14px 0; }
.tw-photo__img,
.tw-photo__ph{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:14px;
  display:block;
  background:#f3f3f3;
}

/* 情報 */
.tw-info{ padding:16px; }

/* 名前＋メタ行 */
.tw-titleLine{
  font-weight:800;
  font-size:18px;
  letter-spacing:.04em;
  line-height:1.25;
  margin-bottom:10px;
  word-break: break-word;
}

.tw-name{ font-weight:800; }

.tw-meta{
  font-weight:700;
  opacity:.85;
  font-size:14px;
  letter-spacing:.02em;
  margin-left:6px;
}

/* 出勤時間帯 */
.tw-shift{
  display:flex;
  align-items:center;
  gap:12px;
  background:#f3f3f3;
  border-radius:999px;
  padding:10px 14px;
}
.tw-time{
  font-weight:800;
  letter-spacing:.05em;
}

/* 時計アイコン */
.tw-clock{
  width:22px;
  height:22px;
  border-radius:50%;
  border:2px solid #c43636;
  position:relative;
  flex:0 0 auto;
}
.tw-clock:before{
  content:"";
  position:absolute;
  width:2px;
  height:7px;
  background:#c43636;
  left:50%;
  top:50%;
  transform:translate(-50%,-80%);
}
.tw-clock:after{
  content:"";
  position:absolute;
  width:7px;
  height:2px;
  background:#c43636;
  left:50%;
  top:50%;
  transform:translate(-10%,-50%);
}

.tw-empty{ opacity:.7; padding:20px; }
