/* ===== 診療カレンダーブロック（.cal- プレフィックスで既存CSSと分離） ===== */
#calendar{--cal-rose:#b25d78;--cal-rose-d:#8f4560;--cal-plum:#4a2b3a;--cal-ink:#3b3036;--cal-mute:#7d6f75;--cal-line:#e6d3da;--cal-bg:#fbf5f7;--cal-red:#d9463e;
 position:relative;padding:96px 0 104px;background:linear-gradient(180deg,#fff 0%,var(--cal-bg) 18%,#f7e9ee 100%);overflow:hidden;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;color:var(--cal-ink);line-height:1.8}
#calendar::before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 50% 50%,rgba(178,93,120,.10) 0 1px,transparent 1.5px);background-size:26px 26px;opacity:.5;pointer-events:none}
#calendar::after{content:"CALENDAR";position:absolute;right:-20px;top:36px;font-family:"Shippori Mincho",serif;font-size:190px;letter-spacing:.06em;color:rgba(178,93,120,.06);line-height:1;pointer-events:none}
.cal-inner{position:relative;max-width:1180px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:230px 1fr;gap:48px}
.cal-body{min-width:0}
.cal-label-en{font-family:"Shippori Mincho",serif;font-size:34px;letter-spacing:.18em;color:var(--cal-rose);line-height:1.2}
.cal-label-ja{font-size:12px;letter-spacing:.2em;color:var(--cal-mute);margin-top:12px}
.cal-label-bar{width:36px;height:2px;background:var(--cal-rose);margin-top:22px}
.cal-h2{font-family:"Shippori Mincho",serif;font-weight:600;font-size:34px;line-height:1.5;letter-spacing:.06em;color:var(--cal-plum)}
.cal-h2 .cal-m{font-family:"Shippori Mincho",serif;font-size:52px;color:var(--cal-rose);margin:0 4px;line-height:1}
.cal-lead{margin-top:18px;font-size:15px;max-width:720px}
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:34px;gap:16px;flex-wrap:wrap}
.cal-tabs{display:flex;align-items:center;gap:8px}
.cal-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:1px solid var(--cal-line);border-radius:999px;background:#fff;font-size:13px;letter-spacing:.08em;color:var(--cal-mute);text-decoration:none;cursor:pointer;font-family:inherit;transition:.2s}
.cal-tab:hover{border-color:var(--cal-rose);color:var(--cal-rose)}
.cal-tab.is-active{background:var(--cal-rose);border-color:var(--cal-rose);color:#fff;font-weight:700}
.cal-legend{display:flex;gap:18px;font-size:13px;color:var(--cal-mute);align-items:center}
.cal-legend b{color:var(--cal-red)}
.cal-card{margin-top:22px;background:#fff;border:1px solid var(--cal-line);box-shadow:0 18px 44px rgba(120,60,85,.10);position:relative;padding:14px}
.cal-card::before{content:"";position:absolute;left:-12px;top:-12px;width:64px;height:64px;border-left:2px solid var(--cal-rose);border-top:2px solid var(--cal-rose);opacity:.6}
.cal-card::after{content:"";position:absolute;right:-12px;bottom:-12px;width:64px;height:64px;border-right:2px solid var(--cal-rose);border-bottom:2px solid var(--cal-rose);opacity:.6}
.cal-panel{display:none}
.cal-panel.is-active{display:block}
.cal-panel img{display:block;width:100%;height:auto}
.cal-cap{display:flex;justify-content:space-between;align-items:center;padding:12px 6px 2px;font-size:12px;color:var(--cal-mute);letter-spacing:.06em}
.cal-cap a{color:var(--cal-rose);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px}
.cal-notes{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;font-size:14px}
.cal-notes li{list-style:none;position:relative;padding-left:20px}
.cal-notes li::before{content:"";position:absolute;left:0;top:11px;width:10px;height:10px;border-radius:50%;background:var(--cal-rose);opacity:.7}
.cal-notes b{color:var(--cal-rose-d)}
.cal-cta{margin-top:40px;padding:28px 32px;background:#fff;border:1px solid var(--cal-line);display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cal-cta-t{font-family:"Shippori Mincho",serif;font-size:20px;color:var(--cal-plum);letter-spacing:.06em}
.cal-cta-t small{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:13px;color:var(--cal-mute);letter-spacing:.06em;margin-top:4px}
.cal-btns{display:flex;gap:12px}
.cal-btn{display:inline-flex;align-items:center;justify-content:center;min-width:200px;height:56px;padding:0 26px;font-size:14px;font-weight:700;letter-spacing:.1em;text-decoration:none;border:1px solid var(--cal-rose)}
.cal-btn.is-line{background:var(--cal-rose);color:#fff;box-shadow:0 10px 22px rgba(178,93,120,.28)}
.cal-btn.is-tel{background:#fff;color:var(--cal-rose)}
.cal-sp{display:none}
@media (max-width:820px){
 #calendar{padding:64px 0 72px}#calendar::after{font-size:96px;top:18px;right:-10px}
 .cal-inner{grid-template-columns:1fr;gap:26px;padding:0 20px}
 .cal-label-en{font-size:26px}.cal-label-bar{margin-top:14px}
 .cal-h2{font-size:23px;letter-spacing:.03em}.cal-h2 .cal-m{font-size:38px}.cal-sp{display:inline}
 .cal-lead{font-size:14px}
 .cal-toolbar{margin-top:22px}.cal-legend{font-size:12px;gap:12px}
 .cal-tab{padding:8px 14px;font-size:12px}
 .cal-card{padding:8px}.cal-card::before,.cal-card::after{display:none}
 .cal-cap{flex-direction:column;align-items:flex-start;gap:4px}
 .cal-notes{grid-template-columns:1fr;gap:10px;font-size:13px;margin-top:20px}
 .cal-cta{padding:20px;margin-top:28px}.cal-cta-t{font-size:17px}
 .cal-btns{width:100%;flex-direction:column}.cal-btn{width:100%}
}
/* ---- 2026-09-04 修正：SPでCTAボタンが枠外にはみ出す（サイト共通CSSにbox-sizing指定がないため） ---- */
.cal-cta,.cal-btns,.cal-btn,.cal-tab,.cal-card,.cal-inner{box-sizing:border-box}
@media (max-width:820px){
 .cal-btn{min-width:0;max-width:100%;padding:0 16px;letter-spacing:.06em;white-space:nowrap}
 .cal-cta-t{width:100%}
}
