/* centralnagoya.site 空室カレンダー部品（HP制作部 2026-11-03）
   サイト本体の :root トークン（--bg, --ink, --ai, --shu, --serif-ja, --gutter …）をそのまま使う。
   ★site.css に同名トークンがあるので、ここでは :root を定義しない。 */
.cn-cal{max-width:960px;margin:0 auto;padding:clamp(40px,7vw,88px) var(--gutter)}
.cn-cal__eyebrow{font-family:var(--serif-en);letter-spacing:.2em;text-transform:uppercase;font-size:13px;color:var(--ink-muted);margin:0 0 8px}
.cn-cal__title{font-family:var(--serif-ja);font-weight:500;font-size:clamp(22px,3vw,30px);margin:0 0 6px;letter-spacing:.06em}
.cn-cal__lead{font-size:13px;color:var(--ink-soft);margin:0 0 24px;line-height:1.8}
.cn-cal__nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.cn-cal__nav button{appearance:none;border:1px solid var(--rule-strong);background:transparent;color:var(--ink);width:40px;height:40px;font-size:16px;cursor:pointer}
.cn-cal__nav button:disabled{opacity:.3;cursor:default}
.cn-cal__months{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,48px)}
@media (max-width:640px){.cn-cal__months{grid-template-columns:1fr}}
.cn-cal__mname{font-family:var(--serif-ja);font-size:17px;text-align:center;margin:0 0 10px;letter-spacing:.08em}
.cn-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--rule)}
.cn-cal__dow{font-size:11px;color:var(--ink-muted);text-align:center;padding:8px 0;border-bottom:1px solid var(--rule)}
.cn-cal__dow.sun{color:var(--shu)}.cn-cal__dow.sat{color:var(--ai)}
.cn-cal__d{appearance:none;border:0;background:transparent;font:inherit;color:var(--ink);aspect-ratio:1/1;min-height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;position:relative;font-size:14px}
.cn-cal__d .mk{font-size:10px;line-height:1;color:var(--ai)}
.cn-cal__d.full{color:var(--ink-muted);cursor:default;background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(31,30,28,.06) 5px 6px)}
.cn-cal__d.full .mk{color:var(--ink-muted)}
.cn-cal__d.past{color:rgba(31,30,28,.25);cursor:default}
.cn-cal__d.co-ok{cursor:pointer}
.cn-cal__d.inrange{background:rgba(43,66,86,.12)}
.cn-cal__d.sel{background:var(--ai);color:var(--surface)}
.cn-cal__d.sel .mk{color:var(--surface)}
.cn-cal__d:focus-visible{outline:2px solid var(--ai);outline-offset:-2px}
.cn-cal__legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--ink-soft);margin:18px 0 0}
.cn-cal__legend i{display:inline-block;width:14px;height:14px;vertical-align:-2px;margin-right:6px;border:1px solid var(--rule)}
.cn-cal__legend .l-free i{background:var(--surface)}
.cn-cal__legend .l-full i{background:repeating-linear-gradient(135deg,var(--surface) 0 3px,rgba(31,30,28,.25) 3px 4px)}
.cn-cal__legend .l-sel i{background:var(--ai)}
.cn-cal__panel{margin-top:24px;padding:20px;border:1px solid var(--rule-strong);background:var(--surface);display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between}
.cn-cal__summary{font-size:14px;line-height:1.8}
.cn-cal__summary b{font-family:var(--serif-ja);font-weight:500;font-size:16px}
.cn-cal__hint{color:var(--ink-muted);font-size:13px}
.cn-cal__ctas{display:flex;flex-wrap:wrap;gap:10px}
.cn-cal__cta{display:inline-block;padding:12px 22px;font-size:14px;letter-spacing:.08em;text-decoration:none;border:1px solid var(--ink);color:var(--ink)}
.cn-cal__cta.primary{background:var(--ink);color:var(--surface)}
.cn-cal__cta[aria-disabled="true"]{opacity:.35;pointer-events:none}
.cn-cal__tools{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;margin-bottom:16px}
.cn-cal__types{display:flex;border:1px solid var(--rule-strong)}
.cn-cal__types:empty{display:none}
.cn-cal__types button{appearance:none;border:0;background:transparent;font:inherit;font-size:13px;padding:8px 14px;color:var(--ink-soft);cursor:pointer;letter-spacing:.04em}
.cn-cal__types button+button{border-left:1px solid var(--rule)}
.cn-cal__types button[aria-selected="true"]{background:var(--ink);color:var(--surface)}
.cn-cal__guests{font-size:13px;color:var(--ink-soft)}
.cn-cal__guests select{font:inherit;padding:6px 8px;border:1px solid var(--rule-strong);background:var(--surface);color:var(--ink)}
.cn-cal__d .mk.left{font-size:10px;letter-spacing:0;white-space:nowrap}
.cn-cal__d .mk.few{color:var(--shu)}
.cn-cal__note{font-size:11px;color:var(--ink-muted);margin:12px 0 0}
@media (max-width:640px){.cn-cal__panel{flex-direction:column;align-items:stretch}.cn-cal__ctas{flex-direction:column}.cn-cal__cta{text-align:center}}

.cn-cal__price{margin:-8px 0 22px;font-size:14px;line-height:1.7}
.cn-cal__price b{font-family:var(--serif-ja);font-weight:500;font-size:18px;letter-spacing:.04em}
.cn-cal__price small{display:block;font-size:12px;color:var(--ink-muted)}
.cn-cal__error{font-size:14px;color:var(--ink-soft);padding:20px;border:1px solid var(--rule)}

/* 満室のときの案内（ほかの宿・近い日程） */
.cn-cal__alt{margin-top:14px;padding:18px;border:1px solid var(--rule);background:var(--bg)}
.cn-alt__lead{margin:0 0 10px;font-size:14px;line-height:1.8}
.cn-alt__list{display:grid;gap:14px}
.cn-alt{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:start;padding:12px;background:var(--surface);border:1px solid var(--rule)}
.cn-alt img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.cn-alt__name{margin:0;font-family:var(--serif-en);font-size:18px;letter-spacing:.04em}
.cn-alt__meta{margin:2px 0 0;font-size:12px;color:var(--ink-soft);line-height:1.7}
.cn-alt__fit{margin:4px 0 0;font-size:12px;color:var(--ai)}
.cn-alt__fit.is-over{color:var(--shu)}
.cn-alt__btns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.cn-alt__btns .cn-cal__cta{padding:10px 16px;font-size:13px}
.cn-alt__near{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.cn-alt__near button{appearance:none;border:1px solid var(--ai);background:var(--surface);color:var(--ai);font:inherit;font-size:13px;padding:8px 12px;cursor:pointer;min-height:44px}
@media (max-width:640px){.cn-alt{grid-template-columns:1fr}.cn-alt__btns{flex-direction:column}.cn-alt__btns .cn-cal__cta{text-align:center}}
.cn-cal__d.full:not(:disabled){cursor:pointer}
