/* レスポルト体験予約カレンダー — フロント v1.2.1 */
.wtc-wrap{--pk:#ff2d77;--or:#ff7a1a;--yl:#ffd60a;--gr:#06d6a0;--bl:#4cc9f0;--ink:#211a3d;
  max-width:1020px;margin:0 auto;padding:0 4px 34px;color:var(--ink);
  font-family:-apple-system,"Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;}
.wtc-wrap *,.wtc-wrap *::before,.wtc-wrap *::after{box-sizing:border-box;}

@keyframes wtcPop{0%{opacity:0;transform:translateY(18px) scale(.96)}100%{opacity:1;transform:none}}
@keyframes wtcPulse{0%,100%{box-shadow:0 10px 22px -6px rgba(255,45,119,.55)}50%{box-shadow:0 14px 34px -4px rgba(255,122,26,.65)}}
@keyframes wtcRing{0%{box-shadow:0 0 0 0 rgba(255,214,10,.75)}100%{box-shadow:0 0 0 12px rgba(255,214,10,0)}}

/* 凡例 */
.wtc-legend{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:6px 0 6px;}
.wtc-lg{display:inline-flex;align-items:center;gap:7px;background:#fff;border:2px solid var(--cc);
  color:var(--ink);border-radius:999px;padding:5px 14px;font-size:13px;font-weight:800;
  box-shadow:0 4px 10px -4px var(--cc);}
.wtc-lg i{width:12px;height:12px;border-radius:50%;background:var(--cc);flex:none;}

/* 月タブ */
.wtc-tabs{display:flex;gap:10px;justify-content:center;margin:14px 0 10px;flex-wrap:wrap;}
.wtc-tab{cursor:pointer;border:none;border-radius:999px;padding:10px 26px;font-size:20px;font-weight:900;
  color:#8b84a8;background:#f1eefb;transition:.2s;line-height:1;}
.wtc-tab small{font-size:12px;font-weight:800;margin-left:2px;}
.wtc-tab:hover{transform:translateY(-2px);}
.wtc-tab.is-on{color:#fff;background:linear-gradient(120deg,var(--pk),var(--or));
  box-shadow:0 10px 20px -8px rgba(255,45,119,.6);}

.wtc-month{display:none;animation:wtcPop .35s ease both;}
.wtc-month.is-on{display:block;}
.wtc-month-label{text-align:center;font-weight:900;font-size:18px;margin:6px 0 10px;color:var(--ink);}

/* グリッド（PC・スマホ共通） */
.wtc-grid{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed;background:none;border:none;margin:0;}
.wtc-grid th{padding:9px 0;text-align:center;font-size:13px;font-weight:900;color:#fff!important;border-radius:10px;
  background:linear-gradient(135deg,#8f88ff,#6c63ff)!important;border:none;}
.wtc-grid th.wd-0{background:linear-gradient(135deg,#ff6b8b,#ff2d77)!important;}
.wtc-grid th.wd-6{background:linear-gradient(135deg,#5fd0f7,#2fa8e0)!important;}
.wtc-grid td{vertical-align:top;background:#fdfcff!important;border:2px solid #efeaff;border-radius:12px;
  padding:5px 4px 7px;height:96px;position:relative;transition:.15s;opacity:1!important;filter:none!important;}
.wtc-grid td.wtc-empty{background:#f6f4fb!important;border-color:#f0edf8;}
.wtc-grid td.wd-0 .wtc-daynum{color:#ff2d77;}
.wtc-grid td.wd-6 .wtc-daynum{color:#2fa8e0;}
.wtc-grid td.is-today{border-color:var(--yl);background:#fffbe6!important;animation:wtcRing 2s ease-out infinite;}
.wtc-grid td.is-hol{background:#fff0f3!important;border-color:#ffd6e0;}
.wtc-grid td.is-hol .wtc-daynum{color:#ff2d77;}
.wtc-day-head{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:0 2px 3px;}
.wtc-daynum{font-weight:900;font-size:14px;color:#6d6590;}
.wtc-holname{font-size:9px;font-weight:900;color:#ff2d77;background:#ffe3ea;border-radius:6px;padding:1px 5px;
  line-height:1.3;}
.today-badge{display:inline-block;background:linear-gradient(120deg,#ffb703,#ff7a1a);color:#fff;font-size:10px;
  font-weight:900;border-radius:999px;padding:2px 8px;box-shadow:0 3px 8px -2px rgba(255,122,26,.6);}

/* 大会・行事のお休みバナー */
.wtc-sp-closure{background:linear-gradient(120deg,#ff5d8f,#ff8e53);color:#fff;font-size:10.5px;font-weight:900;
  border-radius:8px;padding:5px 7px;margin:3px 0;line-height:1.35;word-break:break-all;
  box-shadow:0 4px 10px -4px rgba(255,93,143,.6);}
.wtc-sp-closure::after{content:" のためお休み";font-weight:800;opacity:.95;}

/* チップ（開催枠）— 2段表示：上段=時間+記号、下段=コース名全文 */
.wtc-chip{display:block;width:100%;cursor:pointer;border:none;text-align:left;
  -webkit-appearance:none;appearance:none;
  background:var(--cc);
  background:linear-gradient(120deg,var(--cc),color-mix(in srgb,var(--cc) 62%,#ffffff));
  color:#fff;border-radius:9px;padding:5px 6px 6px;margin-top:4px;line-height:1.25;
  box-shadow:0 5px 12px -5px var(--cc);transition:.16s;position:relative;overflow:hidden;}
.wtc-chip::after{content:"";position:absolute;top:-60%;left:-30%;width:40%;height:220%;transform:rotate(25deg);
  background:rgba(255,255,255,.28);pointer-events:none;}
.wtc-chip:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:0 9px 18px -6px var(--cc);}
.wtc-chip-top{display:flex;align-items:center;gap:4px;}
.wtc-chip-time{font-size:10px;font-weight:900;background:rgba(0,0,0,.24);border-radius:6px;padding:1px 5px;
  letter-spacing:.02em;white-space:nowrap;}
.wtc-chip-mark{margin-left:auto;font-size:12px;font-weight:900;flex:none;}
.wtc-chip-name{display:block;font-size:11.5px;font-weight:800;margin-top:3px;
  white-space:normal;word-break:break-all;text-shadow:0 1px 2px rgba(0,0,0,.25);}
.wtc-chip-left{display:inline-block;background:#fff;color:#e03131;font-size:9.5px;font-weight:900;
  border-radius:6px;padding:1px 6px;margin-top:3px;}
.wtc-chip.st-full,.wtc-chip.st-closed{background:#d8d4e6;color:#8a839f;box-shadow:none;cursor:not-allowed;}
.wtc-chip.st-full::after,.wtc-chip.st-closed::after{display:none;}
.wtc-chip.st-full .wtc-chip-time,.wtc-chip.st-closed .wtc-chip-time{background:rgba(0,0,0,.12);}
.wtc-chip.st-full .wtc-chip-name,.wtc-chip.st-closed .wtc-chip-name{text-shadow:none;}
.wtc-chip.st-few{animation:wtcPulse 1.8s ease-in-out infinite;}

/* お休み状態：消さずに表示 */
.wtc-chip.st-rest{background:#eef4fb;color:#5b7fa6;border:1.5px dashed #a9c7e0;box-shadow:none;cursor:default;}
.wtc-chip.st-rest::after{display:none;}
.wtc-chip.st-rest .wtc-chip-time{background:#d9e6f2;color:#5b7fa6;}
.wtc-chip.st-rest .wtc-chip-name{text-shadow:none;text-decoration:line-through;text-decoration-thickness:1px;opacity:.8;}
.wtc-chip-rest{display:inline-block;background:#ff8fa3;color:#fff;font-size:9.5px;font-weight:900;
  border-radius:6px;padding:1px 7px;margin-top:3px;}

/* イベントチップ */
.wtc-chip-event{outline:2px solid #fff;outline-offset:-3px;}
.wtc-chip-event .wtc-chip-mark{color:#fff700;text-shadow:0 0 6px rgba(0,0,0,.35);}

/* 状態の説明・注意書き */
.wtc-notes{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:16px;}
.wtc-note-badge{font-size:12px;font-weight:800;border-radius:999px;padding:4px 12px;background:#e7f9f1;color:#0c8f66;}
.wtc-note-badge.few{background:#fff4e0;color:#d97706;}
.wtc-note-badge.full{background:#ffe6ec;color:#e03131;}
.wtc-note-badge.rest{background:#eef4fb;color:#5b7fa6;}
.wtc-note-badge.closed{background:#efedf5;color:#8a839f;}
.wtc-notice{text-align:center;font-size:12.5px;color:#6d6590;margin-top:10px;font-weight:700;}

/* モーダル表示中は追尾ボタン（無料体験のお申込・お電話）を隠す */
html.wtc-modal-open #atc-cta{visibility:hidden!important;opacity:0!important;pointer-events:none!important;}

/* 申し込み確認モーダル */
.wtc-modal{position:fixed;inset:0;z-index:2147483600;display:flex;align-items:center;justify-content:center;padding:18px;}
.wtc-modal[hidden]{display:none;}
.wtc-modal-bg{position:absolute;inset:0;background:rgba(28,20,55,.62);backdrop-filter:blur(3px);}
.wtc-modal-card{position:relative;background:#fff;border-radius:22px;max-width:430px;width:100%;
  overflow:hidden;animation:wtcPop .3s ease both;box-shadow:0 30px 70px -20px rgba(0,0,0,.5);}
.wtc-modal-x{position:absolute;top:10px;right:12px;z-index:2;border:none;background:rgba(255,255,255,.9);
  width:34px;height:34px;border-radius:50%;font-size:18px;font-weight:900;cursor:pointer;color:#584f7d;
  box-shadow:0 4px 10px rgba(0,0,0,.18);line-height:1;}
.wtc-modal-head{padding:26px 22px 18px;text-align:center;color:#fff;
  background:var(--mc,#ff2d77);
  background:linear-gradient(125deg,var(--mc,#ff2d77),color-mix(in srgb,var(--mc,#ff2d77) 55%,#ffd60a));}
.wtc-modal-course{font-size:22px;font-weight:900;text-shadow:0 2px 6px rgba(0,0,0,.25);}
.wtc-modal-body{padding:18px 22px 24px;text-align:center;}
.wtc-modal-date{font-size:20px;font-weight:900;margin:2px 0;color:var(--ink,#211a3d);}
.wtc-modal-time{font-size:16px;font-weight:800;margin:0 0 10px;color:#6c63ff;}
.wtc-modal-desc{font-size:13px;color:#6d6590;margin:0 0 8px;line-height:1.7;}
.wtc-modal-left{font-size:13px;font-weight:900;color:#e03131;margin:0 0 14px;min-height:1em;}
.wtc-modal-go{display:block;text-decoration:none!important;color:#fff!important;font-weight:900;font-size:16px;
  padding:15px 10px;border-radius:999px;background:linear-gradient(120deg,#ff2d77,#ff7a1a);
  animation:wtcPulse 1.8s ease-in-out infinite;transition:.15s;}
.wtc-modal-go:hover{transform:scale(1.03);color:#fff;}
.wtc-modal-hint{font-size:11.5px;color:#8b84a8;margin:10px 0 0;font-weight:700;}

/* 日別拡大モーダル（スマホ） */
.wtc-daymodal{position:fixed;inset:0;z-index:2147483500;display:flex;align-items:flex-end;justify-content:center;}
.wtc-daymodal[hidden]{display:none;}
.wtc-daymodal .wtc-modal-bg{position:absolute;inset:0;background:rgba(28,20,55,.62);backdrop-filter:blur(3px);}
.wtc-daymodal-card{position:relative;background:#fff;border-radius:22px 22px 0 0;width:100%;max-width:560px;
  max-height:82vh;overflow-y:auto;padding:20px 16px calc(26px + env(safe-area-inset-bottom,0px));
  animation:wtcPop .28s ease both;box-shadow:0 -18px 60px -18px rgba(0,0,0,.5);}
.wtc-daymodal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 40px 4px 4px;}
.wtc-daymodal-date{font-size:21px;font-weight:900;color:var(--ink,#211a3d);}
.wtc-daymodal-hol{font-size:12px;font-weight:900;color:#ff2d77;background:#ffe3ea;border-radius:8px;padding:3px 10px;}
.wtc-daymodal-hint{font-size:12px;font-weight:800;color:#8b84a8;margin:0 4px 10px;}
.wtc-daymodal-body .wtc-chip{margin:0 0 8px;padding:9px 11px 10px;border-radius:12px;pointer-events:auto!important;}
.wtc-daymodal-body .wtc-chip-time{font-size:12px;}
.wtc-daymodal-body .wtc-chip-name{font-size:14.5px;margin-top:4px;}
.wtc-daymodal-body .wtc-chip-left,.wtc-daymodal-body .wtc-chip-rest{font-size:11px;}
.wtc-daymodal-body .wtc-sp-closure{font-size:13px;padding:9px 12px;margin:0 0 8px;}
.wtc-daymodal-none{text-align:center;color:#8b84a8;font-weight:700;padding:18px 0;}

/* スマホ：同じグリッドをコンパクト表示、日付タップで拡大 */
@media (max-width:719px){
  .wtc-grid{border-spacing:2px;}
  .wtc-grid th{font-size:11px;padding:6px 0;border-radius:7px;}
  .wtc-grid td{height:auto;min-height:56px;padding:3px 3px 4px;border-radius:9px;border-width:1.5px;}
  .wtc-grid td.wtc-day{cursor:pointer;}
  .wtc-grid td.wtc-day.has-items:active{transform:scale(.96);}
  .wtc-day-head{margin:0 1px 2px;gap:2px;}
  .wtc-daynum{font-size:12px;}
  .wtc-holname{display:none;}
  .today-badge{font-size:8px;padding:1px 5px;}
  /* チップはミニバー化（タップは日付セル全体で受ける） */
  .wtc-grid .wtc-chip{pointer-events:none;padding:0;height:10px;border-radius:5px;margin-top:3px;box-shadow:none;}
  .wtc-grid .wtc-chip-top,.wtc-grid .wtc-chip-name,.wtc-grid .wtc-chip-left,.wtc-grid .wtc-chip-rest{display:none;}
  .wtc-grid .wtc-chip.st-few{animation:none;}
  .wtc-grid .wtc-sp-closure{pointer-events:none;height:10px;padding:0;margin:3px 0 0;font-size:0;border-radius:5px;
    background:repeating-linear-gradient(45deg,#ff5d8f,#ff5d8f 5px,#ff8e53 5px,#ff8e53 10px);}
  .wtc-grid .wtc-sp-closure::after{content:"";}
  .wtc-tab{padding:8px 20px;font-size:17px;}
}
/* PC：日別モーダルは中央表示 */
@media (min-width:720px){
  .wtc-daymodal{align-items:center;padding:18px;}
  .wtc-daymodal-card{border-radius:22px;}
}
/* 中間幅（タブレット）でもチップ文字が潰れないように微調整 */
@media (min-width:720px) and (max-width:960px){
  .wtc-chip-time{font-size:9px;}
  .wtc-chip-name{font-size:10.5px;}
  .wtc-grid{border-spacing:3px;}
}
