/* ============================================================
 * 日程調整モーダル（トップ系ページ用）
 * lead-pages.css を読み込まないページ（大学向けLPなど）で日程調整モーダルを開くためのスタイル。
 * 汎用クラスは .pp-modal の中だけに効くよう限定している。
 * ============================================================ */
.pp-modal [hidden]{display:none!important}
.pp-modal .btn-outline{background:#fff;color:var(--blue-deep);border:2px solid var(--blue);padding:10px 20px;box-shadow:none}
.pp-modal .btn-outline:hover{background:#F2FAFE;transform:translateY(-1px)}
.pp-modal .btn-outline .arrow{background:var(--blue);color:#fff}
.pp-modal .btn-lg{padding:15px 28px;font-size:15px;font-family:var(--font-round);font-weight:800}
.pp-modal .meta-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.pp-modal .meta-chips li{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--blue-deep);background:var(--bg-blue);padding:6px 12px;border-radius:999px}
.pp-modal .pp-notice{display:flex;gap:12px;align-items:flex-start;border-radius:var(--radius);padding:14px 16px;font-size:13.5px;line-height:1.8;margin:0 0 20px}
.pp-modal .pp-notice.warn{background:#FFF6D6;color:#6B4F00}
.pp-modal .pp-notice.error{background:var(--bg-pink);color:#9F1D35}
.pp-modal .pp-notice a{text-decoration:underline;text-underline-offset:2px;font-weight:700}
.pp-modal .spinner{width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;animation:pp-spin .8s linear infinite;display:inline-block}
@keyframes pp-spin{to{transform:rotate(360deg)}}
.pp-modal .thx-check{width:76px;height:76px;border-radius:50%;background:rgba(16,185,129,.12);color:var(--green);display:grid;place-items:center;margin:0 auto 22px}
.pp-modal .field{margin-bottom:18px;display:flex;flex-direction:column;gap:6px}
.pp-modal .field input,.pp-modal .field textarea{font-size:16px}
.pp-modal .field-error{display:none;font-size:12.5px;color:#E5484D;font-weight:700;line-height:1.5}
.pp-modal .field.has-error .field-error{display:block}
.pp-modal .field.has-error input{border-color:#E5484D;background:#FFF7F8}

/* ============================================================
 * 日程調整モーダル
 * ============================================================ */
body.modal-open{overflow:hidden}
.pp-modal-overlay{
  position:fixed;inset:0;z-index:200;background:rgba(14,27,46,.58);
  display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;transition:opacity .22s ease;
}
.pp-modal-overlay[hidden]{display:none}
.pp-modal-overlay.is-open{opacity:1}
.pp-modal{
  position:relative;background:#fff;border-radius:var(--radius-xl);width:100%;max-width:880px;
  max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;
  box-shadow:0 40px 80px -20px rgba(14,27,46,.45);
  transform:translateY(16px) scale(.98);transition:transform .25s cubic-bezier(.2,.7,.2,1);
}
.pp-modal-overlay.is-open .pp-modal{transform:none}
.pp-modal-close{
  position:absolute;top:14px;right:14px;z-index:2;width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;color:var(--muted);background:var(--bg-tint);transition:background .15s,color .15s;
}
.pp-modal-close:hover{background:var(--line);color:var(--ink)}
.pp-modal-close:focus-visible{outline:3px solid rgba(14,165,233,.4);outline-offset:2px}
.pp-modal-head{padding:36px 40px 20px;border-bottom:1px solid var(--line-soft)}
.pp-modal-head h2{font-family:var(--font-round);font-size:22px;font-weight:800;line-height:1.5;margin:0 0 8px;padding-right:40px}
.pp-modal-head p{font-size:14px;color:var(--ink-2);line-height:1.9;margin:0 0 14px}
.pp-modal-head .meta-chips{margin:0}
.pp-modal-body{padding:24px 40px 36px}
@media (max-width:640px){
  .pp-modal-overlay{padding:0;align-items:flex-end}
  .pp-modal{border-radius:22px 22px 0 0;max-height:94vh;max-height:94dvh;transform:translateY(40px)}
  .pp-modal-head{padding:26px 18px 16px}
  .pp-modal-head h2{font-size:18px}
  .pp-modal-head p{font-size:13.5px}
  .pp-modal-body{padding:18px 18px calc(24px + env(safe-area-inset-bottom))}
  .pp-modal-close{top:10px;right:10px}
}

/* 未接続表示 */
.sched-empty{
  text-align:center;border:2px dashed var(--line);border-radius:var(--radius-lg);padding:36px 24px;
}
.sched-empty .ico{width:56px;height:56px;border-radius:16px;background:var(--bg-blue);color:var(--blue);display:grid;place-items:center;margin:0 auto 16px}
.sched-empty h3{font-family:var(--font-round);font-size:17px;font-weight:800;margin:0 0 8px}
.sched-empty p{font-size:13.5px;color:var(--ink-2);line-height:1.9;margin:0 auto 20px;max-width:520px}
.sched-empty .actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
@media (max-width:640px){.sched-empty{padding:28px 16px}.sched-empty .actions .btn{width:100%}}

.sched-sample{
  background:#FFF6D6;color:#6B4F00;font-size:12.5px;font-weight:700;border-radius:10px;padding:8px 12px;margin:0 0 16px;line-height:1.6;
}
.sched-loading{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:14px;padding:60px 0}
.pp-modal .sched-loading .spinner{border-color:var(--line);border-top-color:var(--blue)}

/* カレンダー＋時間枠 */
.sched-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px}
@media (max-width:720px){.sched-grid{grid-template-columns:1fr;gap:20px}}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.cal-head strong{font-family:var(--font-round);font-size:16px;font-weight:800}
.cal-nav{display:flex;gap:6px}
.cal-nav button{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--bg-tint);color:var(--ink-2)}
.cal-nav button:hover:not(:disabled){background:var(--bg-blue);color:var(--blue-deep)}
.cal-nav button:disabled{opacity:.35;cursor:not-allowed}
.cal{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed}
.cal th{font-size:11.5px;font-weight:700;color:var(--muted-2);padding:4px 0;text-align:center}
.cal th:first-child{color:#E5484D}
.cal th:last-child{color:var(--blue-2)}
.cal td{padding:0;text-align:center}
.cal button{
  width:100%;aspect-ratio:1;max-height:48px;border-radius:12px;font-family:var(--font-en);font-weight:700;font-size:14px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:var(--muted-2);
}
.cal button[disabled]{cursor:default}
.cal button.avail{background:var(--bg-blue);color:var(--blue-deep)}
.cal button.avail::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--blue)}
.cal button.avail:hover{background:#D3ECF9}
.cal button.selected{background:var(--blue);color:#fff}
.cal button.selected::after{background:#fff}
.cal button.today{box-shadow:inset 0 0 0 1.5px var(--line)}
.cal button:focus-visible{outline:3px solid rgba(14,165,233,.4);outline-offset:1px}
.cal-legend{font-size:12px;color:var(--muted);margin-top:8px;display:flex;align-items:center;gap:6px}
.cal-legend i{width:12px;height:12px;border-radius:4px;background:var(--bg-blue);display:inline-block}

.slots h3{font-family:var(--font-round);font-size:15px;font-weight:800;margin:4px 0 12px}
.slots-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:300px;overflow:auto;padding:2px}
.slots-list button{
  padding:11px 6px;border-radius:10px;border:2px solid var(--line);background:#fff;
  font-family:var(--font-en);font-weight:700;font-size:14.5px;color:var(--ink-2);transition:border-color .15s,background .15s,color .15s;
}
.slots-list button:hover{border-color:var(--blue);color:var(--blue-deep)}
.slots-list button.selected{background:var(--blue);border-color:var(--blue);color:#fff}
.slots-empty{font-size:13.5px;color:var(--muted);background:var(--bg-tint);border-radius:var(--radius);padding:20px;text-align:center}

/* 確認ステップ */
.confirm-box{background:var(--bg-tint);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:20px;display:flex;gap:14px;align-items:center}
.confirm-box .ico{width:44px;height:44px;border-radius:12px;background:#fff;color:var(--blue);display:grid;place-items:center;flex-shrink:0}
.confirm-box .when{font-family:var(--font-round);font-weight:800;font-size:17px;line-height:1.5}
.confirm-box .sub{font-size:12.5px;color:var(--muted)}
.sched-actions{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:8px;flex-wrap:wrap}
.link-btn{font-size:14px;font-weight:700;color:var(--blue-deep);padding:10px 4px}
.link-btn:hover{text-decoration:underline;text-underline-offset:3px}
.field textarea{
  width:100%;padding:13px 14px;background:var(--bg-tint);border:2px solid transparent;border-radius:var(--radius);
  color:var(--ink);font-family:inherit;font-size:16px;min-height:88px;resize:vertical;
}
.field textarea:focus{outline:none;border-color:var(--blue);background:#fff}
@media (max-width:640px){ .sched-actions .btn{width:100%} .sched-actions{flex-direction:column-reverse;align-items:stretch} }

/* 完了ステップ */
.sched-done{text-align:center;padding:12px 0 4px}
.sched-done .thx-check{width:64px;height:64px;margin-bottom:16px}
.sched-done h3{font-family:var(--font-round);font-size:20px;font-weight:800;margin:0 0 10px}
.sched-done p{font-size:14px;color:var(--ink-2);line-height:1.9;margin:0 auto 18px;max-width:520px}
.sched-embed iframe{width:100%;height:640px;border:0;border-radius:var(--radius)}

