/* ════════════ 【次期アップデート】申込導線・Schedule & Availability ════════════
   既存の home.css のトークン（アイボリー・ベージュ・ゴールド・明朝）をそのまま使う */

/* 開発プレビューの表示（本番には入れない） */
.dev-badge{position:static;display:block;margin:0;padding:.7em 16px calc(.7em + env(safe-area-inset-bottom));border-top:1px dashed var(--terracotta);background:rgba(252,251,249,.95);font-family:var(--label);font-size:.6875rem;letter-spacing:.04em;line-height:1.5;text-align:center;color:var(--terracotta)} /* 指示015：固定表示をやめ、ページの最後に置く（本文に重ならない） */

/* ── サービス紹介から直接お申し込み ── */
.style__apply{margin-top:.35rem}

/* ── お申し込み方法（Service の続き）：型どりの方法 × デザインを決めるタイミング（A〜D） ── */
.apply{margin-top:clamp(4.5rem,3.5rem + 5vw,8rem);padding-top:clamp(2.5rem,2rem + 2vw,3.5rem);border-top:1px solid var(--line)}
.apply__head{display:grid;gap:.7rem;justify-items:center;text-align:center;margin-bottom:clamp(2rem,1.6rem + 1.5vw,3rem)}
.apply__title{font-family:var(--serif-jp);font-size:clamp(1.3rem,1.15rem + .6vw,1.65rem);letter-spacing:.12em}
.apply__lead{font-size:var(--fs-small);color:var(--muted);letter-spacing:.08em;line-height:2}
.apply__grid{display:grid;gap:clamp(1.75rem,1.4rem + 1.5vw,2.75rem)}
.apply__method{display:grid;gap:.9rem;padding:clamp(1.4rem,1.1rem + 1.2vw,2rem) clamp(1.1rem,.8rem + 1.5vw,2rem);background:var(--ground);border-top:1px solid var(--gold)}
.apply__mname{display:grid;gap:.25rem;font-family:var(--serif-jp);font-size:clamp(1.12rem,1.05rem + .35vw,1.3rem);letter-spacing:.1em}
.apply__men{font-family:var(--label);font-size:var(--fs-label);letter-spacing:.22em;color:var(--gold-text)}
.apply__mprice{display:grid;gap:.1rem;font-size:var(--fs-note);letter-spacing:.06em;line-height:1.8;color:var(--ink-soft)}
.apply__mprice span{color:var(--muted)}
.apply__routes{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}
.route{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"tag name" ". text" ". btn" ". note";column-gap:.85rem;row-gap:.35rem;align-items:center;align-content:start;padding:1rem 0 .2rem;border-top:1px solid var(--line)}
.route > *{margin:0}
.route__text,.route__btn,.route__note{align-self:start}
.route__tag{grid-area:tag;display:grid;place-items:center;width:1.9rem;height:1.9rem;border:1px solid var(--gold);border-radius:50%;font-family:var(--serif);font-size:1rem;color:var(--gold-text)}
.route__name{grid-area:name;font-family:var(--serif-jp);font-size:1rem;letter-spacing:.1em;line-height:1.6}
.route__text{grid-area:text;font-size:var(--fs-note);line-height:1.85;color:var(--ink-soft)}
.route__btn{grid-area:btn;justify-self:start;margin-top:.35rem;min-width:min(100%,15rem)}
.route__btn.is-pending{opacity:.55;cursor:default;pointer-events:none}
.route__soon{margin-left:.6em;padding:.05em .55em;border:1px solid currentColor;border-radius:999px;font-size:.6875rem;letter-spacing:.06em}
.route__note{grid-area:note;font-size:.75rem;line-height:1.7;color:var(--muted)}
.apply__cta{display:grid;justify-items:center;gap:.9rem;margin-top:clamp(2rem,1.6rem + 1.5vw,3rem);text-align:center}
.apply__cta .btn{min-width:min(100%,20rem)}
.apply__help{font-size:var(--fs-note);color:var(--muted);letter-spacing:.06em;line-height:2}
.apply__fine{font-size:.75rem;color:var(--muted);line-height:1.8}
.apply__fine a{color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px}
@media (min-width:768px){
  .apply__grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(1.25rem,3vw,2.5rem)}
}
@media (max-width:599.98px){ .route__btn{justify-self:stretch} }

/* ── Schedule & Availability ── */
.sched{display:grid;gap:clamp(2rem,1.6rem + 1.5vw,3rem)}
.sched .sec-head{margin-bottom:0}
.sched__fallback{text-align:center;color:var(--muted);font-size:var(--fs-small)}

/* 月間受付枠 */
.avail__card{max-width:560px;margin-inline:auto;padding:clamp(1.8rem,1.4rem + 1.5vw,2.6rem) clamp(1.4rem,1rem + 2vw,2.8rem);background:var(--panel);border-top:1px solid var(--gold);text-align:center;display:grid;gap:.55rem;justify-items:center}
.avail__eyebrow{font-family:var(--label);font-size:var(--fs-label);letter-spacing:.24em;color:var(--gold-text)}
.avail__month{font-family:var(--serif-jp);font-size:1.05rem;letter-spacing:.12em}
.avail__count{margin-top:.2rem;font-family:var(--serif-jp);font-size:1.15rem;letter-spacing:.1em;color:var(--ink)}
.avail__count strong{font-family:var(--serif);font-weight:400;font-size:clamp(3rem,2.4rem + 2.5vw,3.9rem);line-height:1;color:var(--gold);margin-inline:.1em}
.avail__cap{font-size:1rem;color:var(--muted)}
.avail__count.is-full,.avail__count--none{font-size:1.05rem;color:var(--muted)}
.avail__bar{width:min(100%,280px);height:2px;background:var(--line);overflow:hidden;margin:.4rem 0 .3rem}
.avail__bar span{display:block;height:100%;background:var(--gold)}
.avail__note{font-size:var(--fs-small);line-height:1.9;letter-spacing:.06em;color:var(--ink-soft)}
.avail__msg{font-family:var(--serif-jp);font-size:var(--fs-small);line-height:2;letter-spacing:.08em;color:var(--muted)}
.avail__dev{margin-top:.4rem;font-size:.6875rem;line-height:1.7;color:var(--terracotta)}

/* カレンダー */
.cal{transition:opacity .3s var(--ease)}
.cal.is-loading{opacity:.4}
.cal__wrap{display:grid;gap:1.5rem}
.cal__head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;margin-bottom:.8rem}
.cal__nav{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:none;color:var(--ink-soft);cursor:pointer}
.cal__nav:disabled{opacity:.25;cursor:default}
.cal__title{display:flex;justify-content:center;align-items:baseline;gap:.7rem}
.cal__year{font-family:var(--serif);font-size:1rem;letter-spacing:.08em;color:var(--muted)}
.cal__month{font-family:var(--serif-jp);font-size:1.35rem;letter-spacing:.12em}
.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal__wd{padding:.3rem 0;text-align:center;font-family:var(--label);font-size:var(--fs-label);letter-spacing:.1em;color:var(--muted)}
.cal__wd.is-sun,.cal__date.is-sun{color:#A86A58}
.cal__wd.is-sat,.cal__date.is-sat{color:#6E83A0}
.cal__day{display:grid;grid-template-rows:auto 1fr 1fr;gap:3px;min-height:4.4rem;padding:.35rem .25rem .3rem;border:1px solid transparent;background:var(--ground);text-align:center;font:inherit;color:inherit;transition:border-color .25s var(--ease),background-color .25s var(--ease)}
button.cal__day{cursor:pointer;background:#fff;border-color:var(--line)}
button.cal__day:hover{border-color:var(--gold)}
.cal__day.is-selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.cal__day.is-past{opacity:.35}
.cal__date{font-family:var(--serif);font-size:.95rem;line-height:1.2}
.cal__day.is-today .cal__date{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.cal__slot{display:grid;place-items:center;border-radius:2px;font-size:.75rem;line-height:1.35;background:color-mix(in srgb,var(--c,#ccc) 45%,#fff);color:var(--ink)}
.cal__slot.is-closed{background:color-mix(in srgb,var(--c,#ccc) 16%,#fff);color:var(--muted)}
.cal__slot.is-none{background:transparent;color:var(--line)}
.cal__legend{display:grid;gap:.7rem;margin-top:1rem}
.cal__regions{display:flex;flex-wrap:wrap;gap:.4rem .9rem;padding:0;margin:0;list-style:none}
.cal__regions li{display:inline-flex;align-items:center;gap:.45rem;font-size:var(--fs-note);letter-spacing:.06em;color:var(--ink-soft)}
.cal__regions li::before{content:"";width:.95rem;height:.95rem;border-radius:2px;background:color-mix(in srgb,var(--c) 55%,#fff);border:1px solid color-mix(in srgb,var(--c) 80%,#000 0%)}
.cal__statuses{font-size:var(--fs-label);letter-spacing:.06em;line-height:1.8;color:var(--muted)}
.cal__empty{margin-top:.8rem;font-size:var(--fs-small);color:var(--muted)}
.cal__panel{padding:1.3rem 1.2rem 1.4rem;background:var(--panel);border-top:1px solid var(--gold);display:grid;gap:.9rem;align-content:start}
.cal__panel.is-empty{place-items:center;min-height:6rem}
.cal__hint{font-size:var(--fs-small);color:var(--muted);line-height:1.9;text-align:center}
.cal__pdate{font-family:var(--serif-jp);font-size:1.15rem;letter-spacing:.1em}
.cal__opts{display:grid;gap:.5rem}
.cal__opt{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"time status" "region region";gap:.3rem .8rem;align-items:center;width:100%;padding:.8rem .9rem;border:1px solid var(--line);background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .25s var(--ease),background-color .25s var(--ease)}
.cal__opt:disabled{cursor:default;background:transparent;color:var(--muted)}
.cal__opt:not(:disabled):hover{border-color:var(--gold)}
.cal__opt.is-chosen{border-color:var(--gold);background:var(--select);box-shadow:inset 0 0 0 1px var(--gold)}
.cal__otime{grid-area:time;font-family:var(--label);font-size:var(--fs-small);letter-spacing:.08em}
.cal__ostatus{grid-area:status;justify-self:end;font-size:var(--fs-note);letter-spacing:.06em}
.cal__opt.is-open .cal__ostatus{color:var(--gold-on-select)}
.cal__oregion{grid-area:region;display:inline-flex;align-items:center;gap:.45rem;font-size:var(--fs-note);letter-spacing:.06em;color:var(--ink-soft)}
.cal__oregion::before{content:"";width:.8rem;height:.8rem;border-radius:2px;background:color-mix(in srgb,var(--c,transparent) 55%,#fff)}
.cal__opt.is-none .cal__oregion::before{display:none}
.cal__apply{width:100%}
.cal__apply.is-disabled{opacity:.35;pointer-events:none}
.cal__pnote{font-size:var(--fs-note);line-height:1.8;color:var(--muted)}
.cal__notes{display:grid;gap:.35rem;margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.cal__notes p{font-size:var(--fs-note);line-height:1.9;color:var(--muted)}
.sched__error{display:grid;gap:1.1rem;justify-items:center;max-width:520px;margin-inline:auto;padding:2rem 1.4rem;background:var(--panel);border-top:1px solid var(--gold);text-align:center;font-size:var(--fs-small);line-height:2;color:var(--ink-soft)}
@media (max-width:599.98px){
  .cal__grid{gap:3px}
  .cal__day{min-height:3.9rem;padding:.3rem .15rem .25rem;gap:2px}
  .cal__slot{font-size:.6875rem}
}
@media (min-width:960px){
  .cal__wrap{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:start}
  .cal__panel{position:sticky;top:calc(var(--header-h) + 1.5rem);margin-top:3.6rem}
  .cal__day{min-height:5.2rem}
  .cal__slot{font-size:.8125rem}
}

/* ヘッダー：メニューに Schedule が増えたため、CTA を1行に保つ */
@media (min-width:960px){
  .nav{gap:clamp(1.1rem,2.1vw,2.6rem)}
  .header__cta{white-space:nowrap}
}

/* Schedule：サンプル表示・全国対応の案内・エリア未設定・確認の手順 */
.cal__mock{margin:-.2rem 0 .7rem;text-align:center;font-size:.6875rem;letter-spacing:.06em;color:var(--terracotta)}
.cal__area{margin-top:.6rem;font-size:var(--fs-note);line-height:1.85;color:var(--muted)}
.cal__opt.is-noarea .cal__oregion{color:var(--muted)}
.cal__confirm{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--gold);background:#fff}
.cal__ctitle{font-family:var(--serif-jp);font-size:1rem;letter-spacing:.08em}
.cal__csum{display:grid;gap:.35rem;margin:0}
.cal__csum div{display:grid;grid-template-columns:5.5rem 1fr;gap:.6rem;font-size:var(--fs-small)}
.cal__csum dt{color:var(--muted);font-size:var(--fs-note);letter-spacing:.08em}
.cal__cnote{font-size:var(--fs-note);line-height:1.85;color:var(--ink-soft)}
.cal__cnote--handoff{color:var(--muted)}
.cal__back{justify-self:center;min-height:44px;padding:0 1rem;border:0;background:none;font:inherit;font-size:var(--fs-note);letter-spacing:.08em;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
button.cal__apply.is-disabled{opacity:.35;cursor:default}
/* 文中の小さなリンクも押しやすく（44px の高さを確保） */
.apply__fine a{display:inline-flex;align-items:center;min-height:44px;padding-inline:.15em}
/* 申込方法：対面とキットの違い（サービス紹介と同じ特徴の表記） */
.apply__mfeat{margin:0;padding:0;list-style:none;gap:.4rem;align-items:flex-start;align-self:start}
.apply__mfeat li{padding:.28em .75em;letter-spacing:.06em;background:transparent}
.sched__error-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}
/* PC：サービス紹介（#service）は写真が無いと2列のグリッドになる。申込方法はその中にあるため、2列をまたいで全幅を使う */
.apply{grid-column:1/-1}
/* 出張予定（2026-10-16 代表承認の新機能・未公開）：カレンダーのマスに都道府県名（金の色の枠）・日付の欄に案内と相談 */
.cal__slot.is-trip{background:#fff;border:1px solid var(--gold);color:var(--ink);font-size:.625rem;letter-spacing:-.04em;white-space:nowrap;overflow:hidden}
@media (min-width:768px){.cal__slot.is-trip{font-size:.6875rem;letter-spacing:0}}
.cal__opt.is-trip .cal__ostatus{color:var(--ink-soft)}
.cal__trip{display:grid;gap:.6rem;margin-top:1rem;padding:1rem;border:1px solid var(--gold);background:#fff}
.cal__tlead{font-weight:500;letter-spacing:.06em}
.cal__ttext{font-size:var(--fs-note);line-height:1.85;color:var(--ink-soft)}
.cal__tconsult{justify-self:start}
@media (max-width:360px){.cal__slot.is-trip{font-size:.53rem;letter-spacing:-.06em}}
@media (max-width:340px){.cal__slot.is-trip{font-size:.5rem;letter-spacing:-.08em}}
/* ── 2026-10-16 構成変更（代表承認・完成デザインは未承認・未公開）：HOME のコンパクトな月間ご案内枠／受付カレンダーの専用ページ ── */
.sec--mini{padding-block:clamp(2rem,1.6rem + 1.6vw,3rem)}
.avail-mini__card{max-width:640px;margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1.6rem;padding:1.1rem clamp(1.2rem,1rem + 1.5vw,2rem);background:var(--panel);border-top:1px solid var(--gold)}
.avail-mini__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem 1rem}
.avail-mini__head .avail__eyebrow{flex-basis:100%}
.avail-mini__month{font-family:var(--serif-jp);font-size:1rem;letter-spacing:.12em}
.avail-mini__count{font-family:var(--serif-jp);font-size:1rem;letter-spacing:.1em;color:var(--ink)}
.avail-mini__count strong{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1;color:var(--gold);margin-inline:.08em}
.avail-mini__count.is-full{color:var(--muted)}
.avail-mini__link{white-space:nowrap}
.avail-mini__card .avail__dev{flex-basis:100%;margin:0}
/* 専用ページ */
.sec--schedule-page{padding-top:clamp(1rem,.6rem + 1.5vw,2rem)}
.phero__title--schedule{letter-spacing:.08em}
.sched__cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.6rem;padding-top:.5rem}
.trips{max-width:720px;margin-inline:auto;width:100%}
.trips__title{font-family:var(--serif-jp);font-weight:400;font-size:1.05rem;letter-spacing:.14em;text-align:center;margin-bottom:.9rem}
.trips__list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr))}
.trips__item{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;min-height:48px;padding:.7rem 1rem;border:1px solid var(--gold);background:#fff;font:inherit;color:var(--ink);text-align:left;cursor:pointer;transition:background-color .25s var(--ease)}
.trips__item:hover{background:var(--select)}
.trips__pref{font-family:var(--serif-jp);letter-spacing:.1em}
.trips__when{font-size:var(--fs-note);color:var(--ink-soft);letter-spacing:.04em}
.cal__tlegend .cal__slot{display:inline-grid;padding:.05rem .4rem;margin-right:.1rem}
.avail-mini__msg{flex-basis:100%;margin:0}
/* 月間ご案内枠（2026-10-16 代表のデザイン調整：HOME・専用ページ共通・コンパクト・数字が主役） */
.avail-c{max-width:440px;margin-inline:auto;display:grid;justify-items:center;gap:.15rem;padding:1.15rem 1.25rem 1.25rem;background:var(--panel);border-top:1px solid var(--gold);text-align:center}
.avail-c__month{font-family:var(--serif-jp);font-size:.95rem;letter-spacing:.12em;margin-top:.15rem}
.avail-c__count{display:flex;align-items:baseline;justify-content:center;gap:.35rem;font-family:var(--serif-jp);letter-spacing:.08em;color:var(--ink);line-height:1}
.avail-c__pre{font-size:.95rem}
.avail-c__num{font-family:var(--serif);font-weight:400;font-size:clamp(3.2rem,2.8rem + 2vw,4.2rem);line-height:.95;color:var(--gold);margin-inline:.05em}
.avail-c__cap{font-size:1rem;color:var(--muted);letter-spacing:.06em}
.avail-c__count.is-full,.avail-c__count.is-none{font-size:1rem;color:var(--muted);margin-block:.35rem}
.avail-c__note{font-size:var(--fs-note);letter-spacing:.08em;color:var(--ink-soft);margin-top:.2rem}
.avail-c__link{margin-top:.55rem}
.avail-c .avail__dev{margin-top:.35rem}
.sec--mini{padding-block:clamp(1.5rem,1.2rem + 1.2vw,2.4rem)}
.avail-c{gap:.1rem;padding:.9rem 1.25rem 1rem}
.avail-c__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;column-gap:.9rem;row-gap:0;margin-top:.1rem}
.avail-c__month{margin-top:0}
.avail-c__num{font-size:clamp(3rem,2.6rem + 2vw,4rem)}
.avail-c__note{margin-top:.1rem}
.avail-c__link{margin-top:.35rem}
.avail-c .avail__dev{margin-top:.2rem;font-size:.6875rem}
.sec--mini{padding-block:clamp(1.1rem,.9rem + 1vw,1.8rem)}
/* 専用ページの見出し（2026-10-16「ご予約カレンダー」）：スマホで縦を詰める（書体・色はそのまま） */
@media (max-width:599.98px){
  .phero--schedule{padding:1.6rem 0 1.4rem}
  .phero--schedule .phero__inner{gap:.6rem}
  .phero--schedule .phero__lead{line-height:1.9}
}
/* HOME の月間ご案内枠：PC は横長のコンパクトな枠（2026-10-16 代表の希望）。左 MONTHLY AVAILABILITY／中央 月と残り（共通の注記）／右 受付カレンダーを見る。
   前の「ご利用の流れ」と同じ地の色にして続きとして見せ、上下の余白を詰めて Craftsmanship へつなぐ。スマホ・タブレットは今の縦型のまま */
@media (min-width:960px){
  #schedule-summary{background:var(--panel);padding-block:0 clamp(2.6rem,2rem + 1.4vw,3.6rem)}
  .avail-mini .avail-c{max-width:1040px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-areas:"eyebrow main link" "eyebrow note link" "dev dev dev";align-items:center;column-gap:clamp(2rem,3vw,3.5rem);row-gap:.15rem;padding:1.5rem clamp(2rem,2.5vw,3rem);background:var(--ground);text-align:center}
  .avail-mini .avail-c .avail__eyebrow{grid-area:eyebrow;justify-self:start;text-align:left}
  .avail-mini .avail-c__row{grid-area:main;margin:0}
  .avail-mini .avail-c__note{grid-area:note;margin:0}
  .avail-mini .avail-c__link{grid-area:link;justify-self:end;margin:0}
  .avail-mini .avail-c .avail__dev{grid-area:dev;margin-top:.5rem}
}
