@charset "utf-8";
/* Next's selection/grid/card layout, scoped to Takumi's pricing widget. */
.takumi-calendar {
  --sch-accent-rgb: 151, 99, 94;
  --sch-pink-rgb: 255, 217, 184;
  --sch-text: #333;
  color: #333;
  font-size: 14px;
  line-height: 1.6;
  margin: 1em 0;
}
.takumi-calendar *, .takumi-calendar *::before, .takumi-calendar *::after { box-sizing: border-box; }
.takumi-calendar p, .takumi-calendar ul { padding: 0; }
.takumi-calendar a { color: #97635e; text-decoration: none; }
.takumi-calendar [hidden] { display: none !important; }
.takumi-calendar button:focus-visible, .takumi-calendar a:focus-visible, .takumi-calendar select:focus-visible { outline: 3px solid #97635e; outline-offset: 3px; }
.takumi-calendar .cal-car-title { margin: 1.5em 0 0.8em; padding: 0.5em 0.7em; border-left: 4px solid #97635e; background: #fff4e9; font-size: 1.15em; font-weight: bold; }
/* ===== 入校日カレンダー ===== */
.takumi-calendar .cal { margin: 0 0.5em 2em; }

.takumi-calendar .cal-application-note {
  margin: 0.75em 0.5em 1em;
  padding: 0.75em 0.9em;
  color: #604a3b;
  background: #fff7ee;
  border-left: 4px solid #b1857a;
  border-radius: 4px;
  font-size: 0.9em;
  line-height: 1.7;
}
.takumi-calendar .cal-application-note strong { display: block; }

/* 空き状況は申込ボタンと分けて、カレンダーとプランに共通の凡例を置く。 */
.takumi-calendar .cal-availability-legend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4em 0.8em;
  margin: 0 0 0.8em;
  padding: 0.6em 0.8em;
  color: #555d60;
  background: #f7f8f8;
  border: 1px solid #dfe3e4;
  border-radius: 8px;
}
.takumi-calendar .cal-availability-legend strong {
  margin-right: 0.2em;
  font-size: 13px;
}
.takumi-calendar .cal-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.22em;
  padding: 0.2em 0.5em;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: 999px;
}
.takumi-calendar .cal-status b { font-size: 1.1em; line-height: 1; }
.takumi-calendar .cal-status.is-inquiry { color: #6e570e; background: #fff4d8; border-color: #e6c977; }
.takumi-calendar .cal-status.is-full { color: #60666a; background: #e3e6e8; border-color: #c5cace; }

/* PC＝カレンダー表 ／ SP＝入校日カード。どちらか一方だけ出す */
.takumi-calendar .cal-sp { display: none; }
@media (max-width: 767px) {
  .takumi-calendar .cal-pc { display: none; }
  .takumi-calendar .cal-sp { display: block; }
}

/* ===== SP：月・部屋タイプを選んで入校日をカードで見る ===== */
.takumi-calendar .cal-sp__block {
  padding: 0.9em 0.9em 1em;
  background: transparent;
  border-radius: 0;
}
.takumi-calendar .cal-sp__block + .cal-sp__block { margin-top: 0.6em; }
.takumi-calendar .cal-sp__label {
  margin: 0 0 0.5em;
  font-size: 0.85em;
  font-weight: 700;
  color: #6b4b3c;
}

/* 月は年を出さずボタンで並べる */
.takumi-calendar .cal-sp__months {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.takumi-calendar .cal-sp__month {
  flex: 0 0 auto;
  min-width: 4em;
  padding: 0.6em 0.9em;
  font-family: inherit;
  font-size: 1em;
  font-weight: 700;
  color: var(--sch-text);
  background: #fff;
  border: 2px solid rgba(var(--sch-accent-rgb), 0.4);
  border-radius: 8px;
  cursor: pointer;
}
.takumi-calendar .cal-sp__month.is-active {
  background: rgba(var(--sch-accent-rgb), 0.92);
  border-color: rgba(var(--sch-accent-rgb), 0.92);
  color: #fff;
}

/* 部屋タイプは2列。部屋タイプが15個ある校（takehara 普通車）でも縦に伸びすぎない */
.takumi-calendar .cal-sp__types {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.takumi-calendar .cal-sp__type {
  display: block;
  width: 100%;
  padding: 0.7em 0.6em;
  font-family: inherit;
  font-size: 0.85em;
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  word-break: break-word;
  color: var(--sch-text);
  background: #fff;
  border: 2px solid rgba(var(--sch-accent-rgb), 0.4);
  border-radius: 8px;
  cursor: pointer;
}
.takumi-calendar .cal-sp__type.is-active {
  background: rgba(var(--sch-accent-rgb), 0.92);
  border-color: rgba(var(--sch-accent-rgb), 0.92);
  color: #fff;
}

.takumi-calendar .cal-sp__type-group + .cal-sp__type-group { margin-top: 12px; }
.takumi-calendar .cal-sp__group-title,
.takumi-calendar .cal-sp__type-group > summary {
  display: flex;
  align-items: center;
  gap: 0.6em;
  margin: 0 0 6px;
  color: #6b4b3c;
  font-size: 0.9em;
  font-weight: 700;
}
.takumi-calendar .cal-sp__group-count { font-size: 0.8em; font-weight: 400; color: #7a6558; }
.takumi-calendar details.cal-sp__type-group { border: 2px solid #dfc1a7; border-radius: 6px; background: transparent; }
.takumi-calendar .cal-sp__type-group > summary { margin: 0; padding: 10px 12px; cursor: pointer; list-style: none; }
.takumi-calendar .cal-sp__type-group > summary::-webkit-details-marker { display: none; }
.takumi-calendar .cal-sp__type-group > summary::after { content: '+'; margin-left: auto; font-size: 1.2em; line-height: 1; }
.takumi-calendar .cal-sp__type-group[open] > summary::after { content: '−'; }
.takumi-calendar details.cal-sp__type-group > .cal-sp__types { padding: 0 8px 8px; }
.takumi-calendar .cal-sp__group-selected { padding: 1px 5px; border-radius: 3px; background: #97635e; color: #fff; font-size: 0.75em; }
.takumi-calendar .cal-sp__type-group > summary:focus-visible { outline: 3px solid #97635e; outline-offset: 2px; }

/* 選んだ部屋タイプを扱う宿舎 */
.takumi-calendar .cal-sp__stays {
  margin: 0.7em 0 0;
  padding: 0;
  list-style: none;
}
.takumi-calendar .cal-sp__stays[hidden] { display: none; }
.takumi-calendar .cal-sp__stays li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2em 0.8em;
  padding: 0.5em 0;
  border-top: 1px solid rgba(var(--sch-accent-rgb), 0.18);
}
.takumi-calendar .cal-sp__stays li::before { content: none; }
.takumi-calendar .cal-sp__stayname { font-size: 0.9em; font-weight: 600; color: var(--sch-text); }
.takumi-calendar .cal-sp__staysex { display: inline-flex; gap: 3px; }
.takumi-calendar .cal-sp__stays a { font-size: 0.85em; text-decoration: underline; }

/* 宿舎の男女別。0（未設定）は男女とも受け入れるので両方出る */
.takumi-calendar .cal-sex {
  display: inline-block;
  padding: 0.2em 0.45em;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  border-radius: 3px;
  white-space: nowrap;
}
.takumi-calendar .cal-sex--men { background: #3aa3c1; }
.takumi-calendar .cal-sex--women { background: #e2649a; }
.takumi-calendar .cal-sex + .cal-sex { margin-left: 3px; }

/* 入校日カード */
.takumi-calendar .cal-sp__cards {
  margin: 1em 0 0;
  padding: 0;
  list-style: none;
}
.takumi-calendar .cal-sp__cards[hidden] { display: none; }
/* 左に日程・料金・プラン、右に申し込みボタン */
.takumi-calendar .cal-card {
  display: flex;
  align-items: center;
  gap: 0.7em;
  margin: 0 0 10px;
  padding: 0.85em 0.9em;
  background: #fff;
  border: 1px solid rgba(var(--sch-accent-rgb), 0.3);
  border-radius: 10px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.takumi-calendar .cal-card::before { content: none; }
.takumi-calendar .cal-card p { margin: 0; }
.takumi-calendar .cal-card__info { flex: 1 1 auto; min-width: 0; }
.takumi-calendar .cal-card__date {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--sch-text);
}
.takumi-calendar .cal-card__arrow { margin: 0 0.3em; color: rgba(var(--sch-accent-rgb), 0.9); }
.takumi-calendar .cal-card__price {
  margin-top: 0.2em !important;
  font-size: 1.25em;
  font-weight: 700;
  color: #e94747;
  line-height: 1.2;
}
.takumi-calendar .cal-card__price span { font-size: 0.6em; font-weight: 600; }
.takumi-calendar .cal-card__plan {
  display: block;
  margin-top: 0.4em !important;
  font-size: 13px;
  color: #6b6b6b;
}
.takumi-calendar .cal-card__badge {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 0.3em;
  padding: 0.25em 0.6em;
  font-weight: 700;
  color: #fff;
  background: #a67547;
  border-radius: 4px;
}
.takumi-calendar .cal-card__room { display: block; margin-top: 0.3em; }
.takumi-calendar .cal-card__cta {
  flex: 0 0 auto;
  width: 6.2em;
  padding: 0.9em 0.4em;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  color: #fff !important;
  background: var(--color-cta-check, #2cb1bc);
  border-radius: 8px;
}
.takumi-calendar .cal-card__cta:hover { opacity: .88; }
.takumi-calendar .cal-card__cta.is-disabled {
  color: #fff !important;
  background: #969da1;
  cursor: not-allowed;
  pointer-events: none;
}
.takumi-calendar .cal-card.is-full {
  background: #eef0f1;
  border-color: #cfd4d6;
  box-shadow: none;
}
.takumi-calendar .cal-card.is-full .cal-card__date,
.takumi-calendar .cal-card.is-full .cal-card__price,
.takumi-calendar .cal-card.is-full .cal-card__plan { color: #747a7e; }
.takumi-calendar .cal-card__availability {
  display: flex;
  align-items: center;
  gap: 0.4em;
  margin-top: 0.45em !important;
  color: #555d60;
  font-size: 13px;
  line-height: 1.4;
}
/* 共通ヘッダー分は html の scroll-padding-top で確保済み。
   ここでは追従する学校内ナビの高さだけを足す。 */
.takumi-calendar #cal-carnav,
.takumi-calendar section[id],
.takumi-calendar .cal-card[id] { scroll-margin-top: 54px; }
@media screen and (min-width: 980px) {
  .takumi-calendar #cal-carnav,
  .takumi-calendar section[id],
  .takumi-calendar .cal-card[id] { scroll-margin-top: 58px; }
}
.takumi-calendar .cal-sp__summary-slot { margin-top: 0.8em; }
.takumi-calendar .cal-sp__summary-slot[hidden] { display: none; }
.takumi-calendar .cal-sp__month-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1em;
  margin-top: 0.8em;
  padding: 0.45em 0.7em;
  color: #6b4b3c;
  background: #fff7ee;
  border: 1px solid #dfcabe;
  border-radius: 8px;
}
.takumi-calendar .cal-sp__month-current { min-width: 4em; text-align: center; font-size: 16px; font-weight: 700; }
.takumi-calendar .cal-sp__month-step {
  min-width: 44px;
  min-height: 44px;
  padding: 0.3em 0.6em;
  font-family: inherit;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  color: #805036;
  background: #fff;
  border: 2px solid #d6b59c;
  border-radius: 6px;
  cursor: pointer;
}
.takumi-calendar .cal-sp__month-step:hover:not(:disabled) { background: #fff0df; }
.takumi-calendar .cal-sp__month-step:disabled { color: #a99b92; background: #f2eeea; border-color: #e2d8cf; cursor: default; }
.takumi-calendar .cal-sp__month-nav + .cal-sp__cards { margin-top: 0.7em; }
.takumi-calendar .cal-sp__summary {
  padding: 0.8em 0.9em;
  background: #fff7ed;
  border-left: 3px solid #b1857a;
  border-radius: 6px;
}
.takumi-calendar .cal-sp__summary-title {
  margin: 0 0 0.25em;
  color: #744f38;
  font-size: 0.92em;
  font-weight: 700;
}
.takumi-calendar .cal-sp__summary-note {
  margin: 0 0 0.65em;
  color: #715f53;
  font-size: 0.82em;
  line-height: 1.5;
}
.takumi-calendar .cal-sp__summary-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em;
}
.takumi-calendar .cal-sp__summary-link {
  display: inline-flex;
  align-items: center;
  min-height: 2.8em;
  padding: 0.35em 0.65em;
  color: #805036 !important;
  background: #fff;
  border: 2px solid #d6b59c;
  border-radius: 5px;
  font-size: 0.82em;
  font-weight: 700;
  text-decoration: underline;
}
.takumi-calendar .cal-sp__summary-link:hover,
.takumi-calendar .cal-sp__summary-link:focus-visible { background: #fff0df; }
.takumi-calendar .cal-sp__empty {
  margin: 1em 0 0;
  padding: 0.8em 0.9em;
  font-size: 0.9em;
  color: #6b5b5e;
  background: #f4f4f4;
  border-radius: 8px;
}
.takumi-calendar .cal-sp__empty[hidden] { display: none; }

/* フィルタ（入校月 / 部屋タイプ） */
.takumi-calendar .cal-filter {
  background: transparent;
  border-radius: 0;
  padding: 0.9em 1em;
  margin-bottom: 1em;
}
.takumi-calendar .cal-filter__row {
  display: flex;
  align-items: center;
  gap: 0.8em;
}
.takumi-calendar .cal-filter__row + .cal-filter__row { margin-top: 0.8em; }
.takumi-calendar .cal-filter__label {
  flex: 0 0 auto;
  font-weight: 600;
  font-size: 0.95em;
  color: var(--sch-text);
}
.takumi-calendar .cal-filter__fixed { font-size: 0.95em; color: var(--sch-text); }
.takumi-calendar .cal-filter__month {
  padding: 0.5em 0.8em;
  font-size: 1em;
  font-family: inherit;
  color: var(--sch-text);
  background: #fff;
  border: 2px solid rgba(var(--sch-accent-rgb), 0.45);
  border-radius: 8px;
}
.takumi-calendar .cal-rooms {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.takumi-calendar .cal-room {
  padding: 0.45em 0.9em;
  font-size: 0.9em;
  font-family: inherit;
  font-weight: 600;
  color: var(--sch-text);
  background: #fff;
  border: 2px solid rgba(var(--sch-accent-rgb), 0.3);
  border-radius: 999px;
  cursor: pointer;
  transition: .2s;
}
.takumi-calendar .cal-room:hover { border-color: rgba(var(--sch-accent-rgb), 0.7); }
.takumi-calendar .cal-room.is-active {
  background: rgba(var(--sch-accent-rgb), 0.9);
  border-color: rgba(var(--sch-accent-rgb), 0.9);
  color: #fff;
  cursor: default;
}

/* 月送り */
.takumi-calendar .cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5em;
  padding: 0.7em 0.6em;
  border: 1px solid rgba(var(--sch-accent-rgb), 0.55);
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  background: #fffaf5;
}
.takumi-calendar .cal-head__tit {
  flex: 1 1 auto;
  margin: 0;
  text-align: center;
  font-size: 1.05em;
  font-weight: 700;
  color: var(--sch-text);
}
.takumi-calendar .cal-nav {
  flex: 0 0 auto;
  padding: 0.35em 0.7em;
  font-size: 0.85em;
  font-family: inherit;
  font-weight: 600;
  color: rgba(var(--sch-accent-rgb), 0.95);
  background: none;
  border: 2px solid rgba(var(--sch-accent-rgb), 0.4);
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}
.takumi-calendar .cal-nav:hover { background: rgba(var(--sch-accent-rgb), 0.08); }

/* カレンダー本体 */
.takumi-calendar .cal-grid { overflow-x: auto; }
.takumi-calendar .cal-table {
  width: 100%;
  border-collapse: collapse;
  text-align: center;
  table-layout: fixed;
}
.takumi-calendar .cal-table th {
  width: calc(100% / 7);
  padding: 0.5em 0;
  font-size: 0.9em;
  font-weight: 600;
  color: var(--sch-text);
  background: rgba(var(--sch-pink-rgb), 0.26);
  border: 1px solid rgba(var(--sch-accent-rgb), 0.4);
}
.takumi-calendar .cal-table th.is-sun { color: #d33a3a; }
.takumi-calendar .cal-table th.is-sat { color: #2f7fbf; }
.takumi-calendar .cal-cell {
  vertical-align: top;
  padding: 0.25em 0.15em 0.4em;
  border: 1px solid rgba(var(--sch-accent-rgb), 0.4);
  background: #fff;
}
.takumi-calendar .cal-cell.is-blank { background: #fafafa; }
.takumi-calendar .cal-cell__day {
  display: block;
  font-size: 0.85em;
  color: #7a7a7a;
  line-height: 1.6;
}
.takumi-calendar .cal-cell__price {
  display: block;
  font-weight: 700;
  color: #e94747;
  line-height: 1.3;
}
.takumi-calendar .cal-cell__grad {
  display: block;
  font-size: 0.72em;
  color: #6b6b6b;
  line-height: 1.4;
}
.takumi-calendar .cal-cell.is-open {
  cursor: pointer;
}
.takumi-calendar .cal-cell.is-open .cal-cell__day { color: var(--sch-text); font-weight: 700; }
.takumi-calendar .cal-cell.is-picked { outline: 3px solid rgba(var(--sch-accent-rgb), 0.9); outline-offset: -3px; }
.takumi-calendar .cal-cell.is-open:focus-visible {
  outline: 3px solid rgba(var(--sch-accent-rgb), 0.9);
  outline-offset: -3px;
}
.takumi-calendar .cal-cell .cal-status {
  display: flex;
  width: max-content;
  max-width: calc(100% - 4px);
  margin: 0.1em auto 0.25em;
  padding-left: 0.4em;
  padding-right: 0.4em;
  font-size: 0.62em;
  overflow: hidden;
}
.takumi-calendar .cal-cell .cal-status__label { display: none; }

/* 匠で×（満室）の日。料金は見せるが、日付選択と申し込みはできない。 */
.takumi-calendar .cal-cell.is-full {
  background: #e8eaeb !important;
  color: #777d80;
  cursor: not-allowed;
}
.takumi-calendar .cal-cell.is-full .cal-cell__day,
.takumi-calendar .cal-cell.is-full .cal-cell__price,
.takumi-calendar .cal-cell.is-full .cal-cell__grad { color: #777d80; }

/* 選んだ部屋タイプのプラン設定が無い日。押せない */
.takumi-calendar .cal-cell.is-noplan {
  background: #ededed;
  color: #9a9a9a;
  cursor: default;
  pointer-events: none;
}
.takumi-calendar .cal-cell.is-noplan .cal-cell__day { color: #9a9a9a; font-weight: 400; }
.takumi-calendar .cal-cell__none {
  display: block;
  font-size: 0.85em;
  color: #b0b0b0;
  line-height: 1.6;
}

/* PCはセルから申し込みフォームへ直行する（SPはカレンダー自体を出さない） */
.takumi-calendar .cal-cell__cta {
  display: block;
  margin: 0.35em 2px 0;
  padding: 0.3em 0;
  font-size: 0.75em;
  font-weight: 700;
  line-height: 1.2;
  color: #fff !important;
  background: var(--color-cta-check, #2cb1bc);
  border-radius: 4px;
}
.takumi-calendar .cal-cell__cta:hover { opacity: .85; }
.takumi-calendar .cal-cell__cta.is-disabled {
  color: #fff !important;
  background: #969da1;
  cursor: not-allowed;
  pointer-events: none;
}

/* 料金帯（最安→高） */
.takumi-calendar .p1 { background: #fcff91 !important; }
.takumi-calendar .p2 { background: #ccfd6a !important; }
.takumi-calendar .p3 { background: #d2ffff !important; }
.takumi-calendar .p4 { background: #d0d0fd !important; }
.takumi-calendar .p5 { background: #cccc66 !important; }
.takumi-calendar .p6 { background: #ffd278 !important; }
.takumi-calendar .p7 { background: #fdd0fd !important; }

.takumi-calendar .cal-empty {
  margin: 0.7em 0.2em 0;
  padding: 0.7em 0.9em;
  font-size: 0.9em;
  color: #6b5b5e;
  background: #f4f4f4;
  border-radius: 8px;
}
.takumi-calendar .cal-empty[hidden] { display: none; }

.takumi-calendar .cal-legend {
  margin: 0.6em 0.2em 0;
  font-size: 0.8em;
  color: #6b6b6b;
}
.takumi-calendar .cal-legend__scale { display: inline-block; margin-right: 0.5em; }
.takumi-calendar .cal-legend__scale span {
  display: inline-block;
  width: 16px;
  height: 12px;
  margin: 0 1px;
  vertical-align: middle;
  border-radius: 2px;
}

/* 選んだ入校日の詳細。ここで部屋タイプと宿舎まで決められるようにする */
.takumi-calendar .cal-pick {
  position: relative;
  margin-top: 0.9em;
  padding: 1em 1.1em 1.1em;
  background: #fff4e9;
  border: 2px solid rgba(var(--sch-accent-rgb), 0.55);
  border-radius: 10px;
}
.takumi-calendar .cal-pick p { margin: 0 0 0.3em; color: var(--sch-text); }
.takumi-calendar .cal-pick__close {
  position: absolute;
  top: 0.3em;
  right: 0.4em;
  width: 2em;
  height: 2em;
  font-size: 1.1em;
  line-height: 1;
  color: #715444;
  background: none;
  border: none;
  cursor: pointer;
}
.takumi-calendar .cal-pick__date { font-size: 1.2em; font-weight: 700; }
.takumi-calendar .cal-pick__grad { font-size: 0.95em; color: #6b6b6b; }
.takumi-calendar .cal-pick__lead {
  margin-top: 0.9em !important;
  font-size: 0.9em;
  font-weight: 700;
  color: #6b6b6b;
}
.takumi-calendar .cal-pick__rooms {
  margin: 0 0 0.5em;
  padding: 0;
  list-style: none;
  background: #fff;
  border: 1px solid rgba(var(--sch-accent-rgb), 0.3);
  border-radius: 8px;
  overflow: hidden;
}
.takumi-calendar .cal-pick__room {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8em;
  padding: 0.65em 0.9em;
}
.takumi-calendar .cal-pick__room + .cal-pick__room { border-top: 1px solid rgba(var(--sch-accent-rgb), 0.2); }
.takumi-calendar .cal-pick__room.is-noplan { color: #9a9a9a; }
/* 左：宿舎名・部屋タイプ・料金 ／ 右：申し込み */
.takumi-calendar .cal-pick__roominfo {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8em;
  min-width: 0;
}
.takumi-calendar .cal-pick__roomname { flex: 1 1 auto; font-size: 0.9em; line-height: 1.5; text-align: left; }
.takumi-calendar .cal-pick__roomname a { text-decoration: underline; }
.takumi-calendar .cal-pick__roomprice { flex: 0 0 auto; font-weight: 700; white-space: nowrap; }
.takumi-calendar .cal-pick__availability {
  display: flex;
  align-items: center;
  gap: 0.4em;
  flex: 1 0 100%;
  color: #555d60;
  font-size: 0.8em;
}
/* プランごとの申し込み導線 */
.takumi-calendar .cal-pick__roomcta {
  flex: 0 0 auto;
  min-width: 5.5em;
  padding: 0.55em 0.9em;
  text-align: center;
  font-size: 0.85em;
  font-weight: 700;
  white-space: nowrap;
  background: var(--color-cta-check, #2cb1bc);
  color: #fff !important;
  border-radius: 999px;
}
.takumi-calendar .cal-pick__roomcta:hover { opacity: .88; }
.takumi-calendar .cal-pick__roomcta.is-off { background: none; }
.takumi-calendar .cal-pick__roomcta.is-disabled {
  background: #969da1;
  cursor: not-allowed;
}

.takumi-calendar .cal-note {
  margin: 0.8em 0.2em 0;
  font-size: 0.85em;
  line-height: 1.7;
  color: var(--sch-text);
}

/* --- SP：セルは日付と料金だけにして、詳細はカードで見せる --- */
@media (max-width: 767px) {
  .takumi-calendar .cal { margin-left: 0.25em; margin-right: 0.25em; }
}

/* --- PC：卒業予定日まで出す。カードは選択時だけの補助 --- */
@media (min-width: 768px) {
  .takumi-calendar .cal-cell { padding: 0.4em 0.25em 0.55em; }
  .takumi-calendar .cal-cell__price { font-size: 0.95em; }
}


/* Price-less licence schedules retain their date grid on phones. */
@media (max-width: 767px) {
  .takumi-calendar .cal--dates-only .cal-pc { display: block; }
  .takumi-calendar .cal--dates-only .cal-table { min-width: 0; }
  .takumi-calendar .cal-card { list-style: none; }
}
.takumi-calendar .cal-table { margin: 0; }
.takumi-calendar .cal-table th, .takumi-calendar .cal-table td { text-indent: 0; }
.takumi-calendar .cal-sp__cards > li { list-style: none; }
@media (prefers-reduced-motion: reduce) { .takumi-calendar * { transition: none !important; scroll-behavior: auto !important; } }
.calendar-all-prices { margin: 1em 0.5em; border: 1px solid #dfc1a7; border-radius: 6px; }
.calendar-all-prices > summary { padding: 0.85em; color: #97635e; background: #fff4e9; font-weight: bold; cursor: pointer; }
.calendar-all-prices[open] > summary { border-bottom: 1px solid #dfc1a7; }
